ในการวัดประสิทธิภาพของ model ที่เราได้สร้างมาด้วยความยากลำบากนั้น ซึ่งเรียกขั้นตอนนี้ว่า evaluate model ในกรณีที่เป็นแบบ regression หรือ target ข้อมูลเป็นแบบ scale หรือแบบตัวเลขซึ่งมีทั้งแบบ discrete พวกจำนวนเต็มและ continuous แบบต่อเนื่อง เราจะใช้ตามข้อมูลด้านล่าง ดังนี้
การวัดประสิทธิภาพ regression
– Mean Squared Error(MSE)

– Root-Mean-Squared-Error(RMSE)

– Mean-Absolute-Error(MAE)

ส่วนตัวจะใช้ RMSE เป็นหลักครับ สูตรคำนวณตามภาพด้านบนครับ
การวัดประสิทธิภาพ classification
classification หรือ target เป็นแบบ categorical หรือถ้ามีสองค่าก็จะเรียกว่าไบนารี เช่น การทายว่าเป็นหมาหรือแมว , เป็นมะเร็งหรือไม่เป็น, ท้องหรือไม่ท้อง เป็นต้น กรณีนี้เราจะใช้ดังนี้
◦ Confusion Matrix
◦ Precision and Recall
◦ Accuracy
◦ F-Measure
◦ ROC Graph and Area Under Curve (AUC)
ซึ่งในบทความนี้เราจะมาเน้นกันในส่วนของ การวัดประสิทธิภาพของ model classification กันครับ ก่อนอื่นเราต้องมาทำความรู้จักกับ False Positive,True Positive, False Negative,True Negative ซึ่งค่าเหล่านี้จะได้มาจากตาราง confusion matrix ครับ เรามาดูตัวอย่างกันครับ

จากภาพข้างบน ในกรณีนี้ผู้ทำภาพซึ่งน่าจะเป็นชาวต่างชาติต้องการสื่อให้เข้าใจง่ายขึ้นครับ ในภาพนี้เราจะแทนคุณหมอให้เป็น model ที่ทำนายว่าคนไข้กำลังตั้งท้องอยู่หรือไม่
1) True Positive คือ จำนวนที่ทำนายตรงกับข้อมูลจริงในคลาสที่กำลังพิจารณา (โมเดลบอกท้อง ผลจริงคือท้อง)
2) False Positive คือ จำนวนที่ทำนายผิดเป็นคลาสที่กำลังพิจารณา (โมเดลบอกท้อง ผลจริงคือไม่ท้อง)
3) False Negative คือ จำนวนที่ทำนายผิดเป็นคลาสที่ไม่ได้พิจารณา (โมเดลบอกไม่ท้อง ผลจริงคือท้อง)
4)True Negative คือ จำนวนที่ทำนายตรงกับข้อมูลจริงในคลาสที่ไม่ได้พิจารณา (โมเดลบอกไม่ท้อง ผลจริงคือไม่ท้อง)
จากตัวอย่างนี้ แสดงให้เห็นว่า จะมีกรณีที่เราจำเป็นต้องพิจารณาจากสถานการณ์จริงว่าเหตุการณ์ไหนที่อยู่ในเกณฑ์ที่รับได้หรือเหตุการณ์ไหนที่ต้องระมัดระวังไม่ให้เกิดขึ้น กรณีข้างบนนี้ type 2 error น่าจะไม่ควรให้เกิด เพราะจะทำให้เกิดอันตรายได้ ดังนั้น ควรลดค่า False Negative ให้ได้มากที่สุด ต่อไปเรามาดูว่าจะนำค่าเหล่านี้ไปใช้กับอะไรบ้าง
สูตรคำนวณค่าต่างๆ

Confusion Matrix

ตัวอย่างการคำนวณ
1) Accuracy
ค่าความแม่นยำโดยรวม คำนวนได้จากสูตร
Accuracy = (TP+TN)/(TP+TN+FP+FN) = (20+1820)/(20+1820+180+10) = 0.91
หรือ ค่าที่โมเดลทายถูกทั้งหมด/ค่าทั้งหมด
2) Precision หรือ Positive Predictive Value
ความแม่นยำที่สนใจแค่ในส่วนที่โมเดลทำนายถูกว่าเป็นคลาสที่กำลังพิจารณา
Precision = TP/(TP+FP) = 20/(20+180) = 0.1
หรือ ค่าที่โมเดลทายเป็นคลาสที่กำลังพิจารณาถูก/ค่าที่โมเดลทำนายว่าเป็นคลาสที่กำลังพิจารณาทั้งถูกและผิด
3) Sensitivity หรือ Recall
ความไว ความแม่นยำที่สนใจในส่วนของเหตุการณ์จริงที่เกิด
Sensitivity/Recall = TP/(TP+FN) = 20/(20+10) = 0.67
หรือ ค่าที่โมเดลทายเป็นคลาสที่กำลังพิจารณาถูก/ค่าเหตุการณ์จริงเป็นคลาสที่กำลังพิจารณาทั้งถูกและผิด
4) Specificity
ความจำเพาะ หาค่าได้จากสูตร
Specificity = TN/(TN+FP) = 1820/(1820+180) = 0.91
5) F1-Score
เป็นค่าที่ได้จากการเอาค่า precision และ recall มาคำนวณรวมกัน F1 สร้างขึ้นมาเพื่อเป็น single metric ที่วัดความสามารถของโมเดล ไม่ต้องเลือกระหว่าง precision, recall เพราะเฉลี่ยให้แล้ว
F1 = 2*[(precision*recall)/(precision+recall)] = 2*[(0.1*0.67)/(0.1+0.67)]
= 0.17
การดูผล Sensitivity and Specificity
ความไว(Sensitivity) มีประโยชน์ในการป้องกันผลลบปลอม (false negative / Type 2 error) เพราะว่าการทดสอบยิ่งไวมากเท่าไร โอกาสการได้ผลลบ (เช่น การพบว่าไม่มีโรค แต่จริง ๆ มีโรค) ก็น้อยลงเท่านั้น และดังนั้น ถ้าความไวอยู่ที่ 100% โอกาสได้ผลลบปลอมก็อยู่ที่ 0%
ความจำเพาะ(Specificity) มีประโยชน์ในการป้องกันผลบวกปลอม (false positive / Type 1 error) เพราะว่าการทดสอบยิ่งจำเพาะมากเท่าไร โอกาสการได้ผลบวก (เช่น การพบว่ามีโรคแต่จริง ๆ ไม่มีโรค) ก็น้อยลงเท่านั้น และดังนั้น ถ้าความจำเพาะอยู่ที่ 100% โอกาสได้ผลบวกปลอมก็อยู่ที่ 0%
ตัวอย่าง
เพื่อความปลอดภัยของท่าอากาศยาน เครื่องตรวจโลหะอาจจะตั้งให้ส่งสัญญาณเตือนแม้สำหรับวัตถุที่เสี่ยงน้อย เช่น หัวเข็มขัดหรือลูกกุญแจ (คือการตรวจมีความจำเพาะต่ำ specificity และ การตรวจมีความไวสูง sensitivity) เพื่อลดโอกาสเสี่ยงพลาดวัตถุอันตราย การแลกเปลี่ยนข้อดีข้อเสียเช่นนี้สามารถแสดงในกราฟเส้นโค้ง receiver operating characteristic (ROC) การทดสอบที่สมบูรณ์จะไว 100% (เช่น คนป่วยทั้งหมดมีผลบวก) และจำเพาะ 100% (เช่น คนปกติทั้งหมดมีผลลบ) แต่ว่า โดยทฤษฎีแล้ว การทดสอบทุกอย่างจะมีขอบเขตความผิดพลาดต่ำสุดที่เรียกว่า Bayes error rate
การวัดผลในทางการแพทย์
ค่า Sensitivity หรือ “true positive rate” คือสัดส่วนของผู้ป่วยที่ให้ผลการทดสอบเป็นบวกต่อผู้ป่วยทั้งหมด ในทางปฏิบัติควรเลือกใช้การตรวจที่มีค่า Sensitivity สูงๆ ในการตรวจคัดกรองผู้ป่วยสําหรับโรคที่มีความรุนแรงมากแต่สามารถรักษาได้ นอกจากนี้ยังเหมาะจะใช้ เป็นการตรวจเบื้องตนเพื่อลดจํานวนผู้ป่วยที่จะต้องทำการตรวจที่จําเพาะ(specitivity)ขึ้นเพื่อการวินิจฉัยต่อไป ผลการตรวจด้วยวิธีการที่มีค่า Sensitivity สูง
ค่า Specificity หรือ “true negative rate” สูง หมายความว่าผู้ป่วยที่โมเดลทำนายว่าเป็นโรคมีโอกาสที่จะเป็นโรคจริงสูง ดังนั้นจึงมีประโยชน์ในการยืนยันการวินิจฉัยในกรณีที่มีข้อมูลจากการตรวจอื่นชี้แนะมาบ้างแล้วว่าผู้ป่วยน่าจะป่วยด้วยโรคนั้น และช่วยป้องกันกรณีที่โมเดลทำนายว่ามีโรคแต่จริงๆไม่มี ซึ่งจะก่อให้เกิดผลเสียแก่ผู้ป่วยอย่างมากทั้งด้าน จิตใจและการรักษาเสี่ยงต่ออันตราย เช่น กรณีของโรคมะเร็ง หรือทางด้านค่าใช้จ่ายในการรักษา เป็นต้น
ROC Curve (receiver operating characteristic)

ในการศึกษาเรื่อง ROC curve มี 2 ประเด็นสำคัญ ที่ต้องให้ความสำคัญ ได้แก่
1. Optimal cut-off point ของ ROC
การเลือก Optimal cut-off point ที่จะได้ค่า AUC มากที่สุด (ให้ผลดีที่สุด) คือ จุดที่อยุ่ใกล้มุมซ้ายบนมากที่สุด ซึ่งจะเป็นจุดที่ Sensitivity สูงและ Specificity สูงด้วยเช่นกัน ซึ่งในทางปฏิบัตินั้น ขึ้นกับจุดประสงค์ของการใช้เครื่องมือ เช่น ถ้าต้องการเครื่องมือที่ sensitivity สูงก็อาจเลือกใช้จุด A แต่ถ้าต้องการใช้เครื่องมือที่ specificity สูงก็อาจเลือกใช้จุด D เป็นต้น รวมถึงปัจจัยอื่น ๆ เช่น ในแง่ของการนำเครื่องมือมาใช้จริงอาจต้องคำนึงถึงผลต่างๆที่ตามมา เช่น cost,สภาพจิตใจ อื่นๆ ตามที่กล่าวมาแล้วข้างต้น
2. พื้นที่ใต้กราฟ (AUC; Area under the curve)
ค่ายิ่งเข้าใกล้ 1 มากยิ่งดี เพราะโมเดลจะมีประสิทธิภาพ
ตัวอย่างอื่นๆของ ROC Curve


Precision-Recall Curve

สรุปในส่วนการวัดผล classification คิดว่าคงต้องพิจารณาทั้งหมด ตั้งแต่ confusion matrix จนถึงค่าข้างบนดังกล่าวข้างต้นครับ
4