hitexts

Hi, We texts to you.

Model Evaluation มีตัววัดผลอะไรบ้างและทำไปเพื่ออะไร

การประเมินผลนั้นจำเป็นกับการทำ Machine Learning อย่างมาก เพราะมันเป็นสิ่งที่เอาไว้วัดว่าโมเดลนั้น ๆ ทำงานเป็นอย่างไร ประเมินผลว่าทำงานได้น่าพึงพอใจแล้วหรือไม่ รวมถึงยังไว้ใช้เปรียบเทียบระหว่างโมเดลเพื่อตอบคำถามที่ว่าเราควรเลือกใช้โมเดลไหนดีได้อีกด้วย ซึ่งการวัดผลสำหรับโมเดลนั้นบทความนี้จะมานำเสนอด้วยกัน 2 ประเภทหลัก ๆ คือ การประเมินผลสำหรับงานด้าน Classification (จำแนกประเภท) และการประเมินผลสำหรับงานด้าน Regression (ทำนายค่า) ปล. ในการทำงานจริงนั้นการประเมินผลโมเดลจำพวก Classification จะค่อนข้างยากมากเพราะบนโลกจริงนั้นงานมีความต่อเนื่องในขณะที่การจำแนกประเภทนั้นค่าที่เราคาดหวังเป็นค่าที่ไม่ต่อเนื่อง

Model Evaluation สำหรับงานด้าน Classification

สำหรับงานการจำแนกประเภทนั้นก่อนอื่นจะต้องเข้าใจนิยามของ 4 คำนี้ก่อน

  1. True Positive (TP) คือ โมเดลจำแนกได้อย่างถูกต้องตรงกับค่าจริงที่คาดหวัง
  2. True Negative (TN) คือ โมเดลจำแนกได้อย่างถูกต้องตรงกับค่าจริงที่ไม่ได้คาดหวัง
  3. False Positive (FP) คือ โมเดลจำแนกผิดพลาดไม่ตรงกับค่าจริง แต่ตรงกับค่าที่คาดหวัง
  4. False Negative (FN) คือ โมเดลจำแนกผิดพลาดไม่ตรงกับค่าจริง และตรงกับค่าที่ไม่คาดหวัง

เช่น โมเดล Classsification สำหรับจำแนกทุเรียนหมอนทองกับทุเรียนก้านยาว โดยที่คาดหวังว่าโมเดลจะจำแนกทุเรียนหมอนทองได้ (ให้หมอนทองเป็น Positive และก้านยาวเป็น Negative)
ผู้ทดลองทำการส่งรูปทุเรียนหมอนทองให้โมเดลจำแนกและได้ผลว่าเป็นหมอนทอง แบบนี้เรียก TP
ผู้ทดลองทำการส่งรูปทุเรียนก้านยาวให้โมเดลจำแนกและได้ผลว่าเป็นก้านยาว แบบนี้เรียก TN
ผู้ทดลองทำการส่งรูปทุเรียนก้านยาวให้โมเดลจำแนกและได้ผลว่าเป็นหมอนทอง แบบนี้เรียก FP
ผู้ทดลองทำการส่งรูปทุเรียนหมอนทองให้โมเดลจำแนกและได้ผลว่าเป็นก้านยาว แบบนี้เรียก FN
ซึ่งปกติแล้วเราจะนำเสนอจำนวน TP FP TN FN เหล่านี้ด้วย Confusion Matrix

Accuracy >> (TP + TN) / (TP + FP + TN + FN)
สำหรับวัดว่าโมเดลนั้นทำนายได้ถูกต้องแค่ไหน โดยนำค่าที่ทำนายได้ถูกต้องทั้งหมดหารด้วยค่าทั้งหมดที่ให้โมเดลทำนาย แต่ปัญหามีอยู่ว่าถ้าเป็นการจำแนกประเภทที่มากกว่า 2 คลาสขึ้นไปวิธีนี้จะไม่สามารถวัดค่าความแม่นยำบนแต่ละคลาสได้ และถ้าชุดข้อมูลไม่บาลานซ์กันนั้นก็จะส่งผลให้ผลลัพธ์ของวิธีนี้ผิดพลาดได้ เช่นว่า ถ้าชุดข้อมูลมีทุเรียนหมอนทองมากกว่าทุเรียนก้านยาว แน่นอนว่ามันก็ต้องทำนายเก่งบนทุเรียนหมอนทองและส่งผลให้ Accuracy สูงตามไปด้วยเพราะเฉลยเองก็มีแต่หมอนทองเป็นส่วนใหญ่ จึงทำให้ไม่ทราบเลยว่ามันสามารถแยกแยะได้จริงหรือไม่

Precision/Recall >> Precision = TP/(TP + FP), Recall = TP/(TP + FN)
สองอย่างนี้จะต้องรายงานด้วยกันเสมอ โดยมีความหมายคือ
Precision มองในมุมว่าโมเดลทำนายได้แม่นยำแค่ไหนในค่าที่สนใจ เช่น ในผลการทำนายที่เป็นหมอนทองทั้งหมดโมเดลทำนายว่าเป็นหมอนทองได้อย่างถูกต้องมากน้อยแค่ไหน
Recall มองในมุมว่าโมเดลทำนายได้ถูกต้องแค่ไหน เช่น ในผลการทำนายที่ทั้งถูกและผิดโมเดลทำนายว่าเป็นหมอนทองได้อย่างถูกต้องมากน้อยแค่ไหน

F1-Score >> 2 * ((precision x recall) / (precision + recall))
โดยการที่ต้องเลือกว่าจะใช้โมเดลไหนดีจำเป็นจะต้องมีค่าที่ใช้สำหรับตัดสินใจได้ ดังนั้นจึงนำ Precision และ Recall มาหาค่าเฉลี่ยแบบฮาร์โมนิก ซึ่งยิ่ง 2 ค่านี้สูงก็จะทำให้ F1 สูงตามไปด้วย

ROC curve >> TPR = TP / (TP + FN), FPR = FP / (FP + TN)
เป็นการพล็อตระหว่างค่าอัตราส่วนที่ทำนายได้อย่างถูกต้อง กับ ค่าอัตราส่วนที่ทำนายผิดแต่ตรงกับค่าคาดหวัง โดยไว้ใช้สำหรับ Classification แบบที่มีแค่ 2 คลาส ใช้เพื่อเลือกค่า Threshold ให้กับโมเดล

Model Evaluation สำหรับงานด้าน Regression

RMSE >> y คือ ค่าคาดหวัง, X คือ ข้อมูล, m คือจำนวนของข้อมูลที่นำมาทดสอบ, h คือฟังก์ชันของการทำนาย
เป็นการวัดค่าส่วนเบี่ยงเบนมาตรฐานของค่าความผิดพลาดที่เกิดขึ้นในการทำนายผล เช่นว่าค่าที่ทำนายออกมานั้นผิดไปจากค่าจริงโดยมีส่วนเบี่ยงเบนอยู่ที่เท่าไหร่

MAE >> y คือ ค่าคาดหวัง, X คือ ข้อมูล, m คือจำนวนของข้อมูลที่นำมาทดสอบ, h คือฟังก์ชันของการทำนาย
ถ้าข้อมูลมี Outliers การใช้ MAE จะให้ผลที่เหมาะสมกว่า

R**2 (R Square) >> y คือค่าที่สนใจ, f คือค่าทำนาย
คือสัดส่วนของค่าความแปรปรวนระหว่างความแปรปรวนของข้อมูล กับ ค่าที่ทำนาย

Conclusion

อย่าลืมที่จะวัดผลอย่างถูกวิธีเพราะสิ่งนี้จะช่วยให้คุณเลือกโมเดลไปใช้งานได้อย่างถูกต้องเหมาะสมมากยิ่งขึ้น และนอกจากตัววัดเหล่านี้แล้วก็ยังอีกหลายวิธีการสำหรับวัดผลตามประเภทงานหรือโมเดลที่ยาก ๆ แบบอื่น ๆ ไปจนถึงกลยุทธ์การเลือกโมเดลและการแบ่งข้อมูลเพื่อวัดผลก็เป็นสิ่งที่ต้องคำนึงเช่นกัน

Related Post

Metadata คืออะไร บอกอะไรเกี่ยวกับชุดข้อมูลนั้น ๆ บ้าง
25Sep

Metadata คืออะไร บอกอะไรเกี่ยวกับชุดข้อมูลนั้น ๆ บ้าง

Metadata คือข้อมูลที่อธิบายชุดข้อมูล เพื่อให้เข้าใจได้เบื้องต้นว่าเป็นชุดข้อมูลเกี่ยวกับอะไร ประเภทไฟล์ วันที่สร้างและปรับปรุง

Mutual Information ขั้นตอนแรกที่แนะนำให้ทำตอนเริ่มโปรเจค ML
05Aug

Mutual Information ขั้นตอนแรกที่แนะนำให้ทำตอนเริ่มโปรเจค ML

การทำงานด้าน Machine Learning นั้นจะต้องเจอข้อมูลและมีคำถามเสมอว่าควรเริ่มจากอะไรดี โดย Mutual Information เป็นหนึ่งในขั้นตอนที่แนะนำให้ทำ

One Hot Encoding วิธีแปลงข้อมูลประเภท Category เพื่อใช้เทรนโมเดล
01Aug

One Hot Encoding วิธีแปลงข้อมูลประเภท Category เพื่อใช้เทรนโมเดล

วิธีการแปลงข้อมูลประเภทหมวดหมู่/ประเภท (ที่เป็นตัวอักษร) ให้เป็นชุดตัวเลขด้วยวิธีการ One Hot Encoding เพื่อให้โมเดลสามารถเรียนรู้ได้

ANN (Artificial Neural Network) พื้นฐานของ Deep Learning
22Jul

ANN (Artificial Neural Network) พื้นฐานของ Deep Learning

การเรียนรู้เชิงลึก (Deep Learning) นั้นเป็นเทคนิคที่มัประสิทธิภาพมากในงาน Machine Learning ปัจจุบันซึ่งเบื้องหลังของมันก็คือการใช้ ANN

Parsing Dates การจัดการกับข้อมูลวันที่ในชุดข้อมูลด้วย Pandas
04Jul

Parsing Dates การจัดการกับข้อมูลวันที่ในชุดข้อมูลด้วย Pandas

ในหลาย ๆ ชุดข้อมูลมักจะมีการเก็บวันที่ไว้ด้วยเสมอ ซึ่งการ Parsing Dates จะช่วยให้ใช้งานวันที่เหล่านั้นได้ง่ายยิ่งขึ้น

Data source แหล่งชุดข้อมูลสำหรับใช้ทำงานด้านข้อมูลช่วยให้โปรเจคราบรื่นยิ่งขึ้น
01Jul

Data source แหล่งชุดข้อมูลสำหรับใช้ทำงานด้านข้อมูลช่วยให้โปรเจคราบรื่นยิ่งขึ้น

การจะเริ่มทำโปรเจคอะไรสักอย่างสิ่งที่ขาดไม่ได้เลยคือข้อมูล แล้วยิ่งเป็นงานที่เกี่ยวข้องกับ Data แล้วนั้น Data source จึงเป็นสิ่งจำเป็นมาก

© 2022 hitexts. All rights reserved