Evaluation Metrics for Classification Model

Evaluation Metrics for Classification Model
Photo by Ann H: https://www.pexels.com/photo/the-word-evaluation-from-wooden-letters-15351348/

การประเมิน (Evaluate) Model  เป็นส่วนสำคัญในการสร้าง Machine Learning models ที่มีประสิทธิภาพ

  • ในการประเมินการ Classification ตัวชี้วัดที่ใช้บ่อยที่สุด ควรจะเป็น “Accuracy”
  • เมื่อ Model มี Accuracy = 99% เราเชื่อว่า มันน่าจะดี แต่มันไม่จริงเสมอไป และในบางสถานการณ์อาจทำให้เข้าใจผิดได้

ใน Blog นี้ จะอธิบาย 4 เรื่อง ดังนี้

  • Confusion Matrix สำหรับ Binary Classification
  • Metrics สำหรับประเมินการ Classification : Accuracy, Recall, Precision และ F1- Score
  • ข้อแตกต่างระหว่าง Recall และ Precision ในกรณีต่างๆ
  • Decision Thresholds และ Receiver Operating Characteristic (ROC) curve

ปัญหา Binary Classification การทำนายมีเพียง 2 Classes คือ "ใช่" หรือ "ไม่ใช่"

  • เช่น การจำแนก เพื่อทำนายว่ารูปภาพเป็น สุนัข หรือ แมว ใน Supervised Learning เราจะ Train model จากข้อมูล Train ขึ้นมาก่อน จากนั้น ทดสอบ Model กับข้อมูล Test
  • เมื่อ Model มีการทำนายจากข้อมูล X_test ได้ผลทำนายเป็น y_test เราจะเปรียบเทียบกับค่า y_actual (Label ที่ถูกต้อง)
Image modified from here
  • หากใส่ภาพสุนัขเข้าไป ใน Model ที่ผ่านการ Train แล้ว Model ทำนายว่าเป็น สุนัข เมื่อนำไปเปรียบเทียบ Label ผลลัพธ์ คือ ถูกต้อง หากทำนายว่าเป็น แมว ผลลัพธ์นี้ จะถือว่า ไม่ถูกต้อง
  • ทำกับภาพทั้งหมดในข้อมูล X_test ท้ายที่สุด เราจะมีจำนวนการจับคู่ที่ ถูกต้อง / ไม่ถูกต้อง ในการประเมินลักษณะนี้ ค่า ถูกต้อง / ไม่ถูกต้อง ถือว่ามีน้ำหนักเท่ากัน ดังนั้น การวัดโดยใช้ Metrics เดียว (Accuracy) จะไม่บอกเรื่องราวทั้งหมด
  • ดังที่ได้กล่าวมา Accuracy เป็นหนึ่งในตัวชี้วัดการประเมินทั่วไป คำนวณจาก
“จำนวนการทำนายถูก ทั้งหมด” หารด้วย “จำนวนการทำนาย ทั้งหมด”
  • แต่ในบทความนี้ จะพูดถึง Metrics อื่นๆ ด้วย

ข้อมูลส่วนใหญ่ ไม่สมดุล

  • ค่า Accuracy จะมีประสิทธิภาพ เมื่อ Target มี Class ที่สมดุล แต่จะไม่มีประสิทธิภาพ เมื่อ Target มี Class ที่ไม่สมดุล เช่น หากมีจำนวน สุนัข 99 ภาพ และ แมวเพียง 1 ภาพ ในข้อมูล  Train ของเรา Model นั้น ทำนาย สุนัข เพียงอย่างเดียว จะได้ ค่า Accuracy ที่ 99% แล้ว
  • ในความเป็นจริง ข้อมูลส่วนใหญ่ก็ ไม่สมดุล เช่น Spam Mail, การฉ้อโกง (Fraud) บัตรเครดิต และ การวินิจฉัยทางการแพทย์ ดังนั้น หากต้องการเห็นภาพรวมของการประเมิน Model ทั้งหมด จึงควรพิจารณาตัวชี้วัดอื่นๆ ด้วย เช่น Recall และ Precision

Confusion Matrix

  • ประสิทธิภาพของ Classification Model จะขึ้นอยู่กับ จำนวนที่ Model ทำนาย ถูกต้อง และ ไม่ถูกต้อง
  • Confusion Matrix ทำให้สามารถเห็น Insights ที่ลึกมากยิ่งขึ้น ไม่เพียง แต่ประสิทธิภาพของ Model แต่รวมไปถึง การทำนาย ว่า Class ใด ถูกต้อง / ไม่ถูกต้อง และ ประเภทของความผิดพลาดที่เกิดขึ้น
  • ใน Confusion matrix มีการคำนวณตัวชี้วัดการ Classification 4 แบบ ดังนี้
  1. TP : ค่าจริง เป็น Positive -> ค่าที่ ทำนาย เป็น Positive
  2. FN : ค่าจริง เป็น Positive -> ค่าที่ ทำนาย เป็น Negative
  3. TN : ค่าจริง เป็น Negative -> ค่าที่ ทำนาย เป็น Negative
  4. FP : ค่าจริง เป็น Negative -> ค่าที่ ทำนาย เป็น Positive
  • Confusion Matrix สามารถวัด Recall, Precision, Accuracy และ AUC-ROC Curve
https://dzone.com/articles/understanding-the-confusion-matrix

4 สมการของ Classification Metrics

Precision และ Recall

  • Precision คือ อัตราส่วน ระหว่าง True Positive และค่าที่ทำนาย Positive ทั้งหมด (TP + FP) การที่ Precision ต่ำ หมายถึง “ค่า FP ที่สูง”
  • Recall (หรือ Sensitivity) คือ อัตราส่วน ระหว่าง True Positive และค่า Positive ทั้งหมดในชุดข้อมูล (TP + FN) การที่ Recall ต่ำ หมายถึง “ค่า FN ที่สูง”

Precision และ Recall ไปสู่ F1 Score

  • ในตัวอย่างทั้ง 3 กรณี เราต้องการทำให้ค่า Precision หรือ Recall สูงที่สุด
  • เช่น ในกรณี หนี้เสีย / หนี้ดี ต้องลดค่า FN เพื่อให้ค่า Recall เพิ่มขึ้น
  • สำหรับ ในกรณีที่ต้องการ Optimize ทั้งสองค่า (Precision & Recall) สามารถเลือกใช้ค่า F1 Score

Decision Thresholds และ ROC Curve

  • ROC (Receiver Operating Characteristic) คือ เทคนิคการ Visualization เพื่อแสดงประสิทธิภาพของ Classification Model
  • เป็น Trade-off ระหว่าง TPR (True Positive Rate) และ FPR (False Positive Rate) ที่ค่า Probability threshold ที่ต่างกัน
  • TPR คือ Recall และ FPR คือ ความน่าจะเป็นของ False Alarm
  • ROC คือ การ Plot ระหว่าง TPR & FPR เป็นฟังก์ชันของ Model’s Threshold เพื่อจำแนกค่า Positive
  • ให้ค่า c เป็นค่าคงที่ Decision Threshold พิจารณา ROC curve ด้านล่าง (ค่า default, c = 0.5)
  1. เมื่อ c = 0.2 ทั้ง TPR และ FPR เพิ่มขึ้น
  2. เมื่อ c = 0.8 ทั้ง TPR และ FPR จะลดลง
  3. เมื่อ c มีค่าลดลง TPR และ FPR จะเพิ่มขึ้น
Image modified from here
  • เมื่อ c = 1 ทุกกรณีจะถูกทำนายเป็น Negative (TPR = FPR = 0) ในทางตรงกันข้าม เมื่อ c = 0 ทุกกรณีจะถูกทำนายเป็น Positive (TPR = FPR = 1)
  • ประสิทธิภาพของ Model สามารถประเมิน โดยพื้นที่ใต้ ROC curve (AUC) โดยทั่วไป 0.9–1 = ดีเยี่ยม, 0.8-0.9 = ดี, 0.7-0.8 = พอใช้, 0.6-0.7 = แย่, 0.5-0.6 = แย่มาก

******

ข้อมูลอ้างอิง - https://www.kdnuggets.com/2020/04/performance-evaluation-metrics-classification.html