Precision and Recall

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

Precisionrecall

จากโมเดลด้านบนจะเห็นได้ว่าเราจะแบ่งประเภทของการจำแนกได้สี่แบบ
True Positives (TP) คือ ทำนายว่าเป็นหมา แล้วหน้าจริงๆก็เป็นหมา
True Negatives(TN) คือ ทำนายว่าไม่เป็นหมา หน้าจริงๆก็ไม่ใช่หมา
False Positives(FP) คือ ทำนายว่าเป็นหมา แต่หน้าจริงๆไม่ใช่หมา
False Negatives(FN) คือ ทำนายว่าไม่เป็นหมา แต่หน้าจริงๆเป็นหมา

การหาความแม่นยำ Precision = TP/(TP+FP) = จากโมเดลด้านบนจะได้ว่า 5/(5+3)=  0.625 ถ้าเต็ม 1 คือมีความแม่นยำสูง

การหาความมีประสิทธิภาพ Recall(หรืออีกชื่อเรียก sensitivity) = TP/(TP+FN) = จากโมเดลด้านบนจะได้ว่า 5/(5+7) =0.4167 ตรงนี้ตีความง่ายๆว่ามีใบหน้าน้องหมามากมายที่ไม่ได้ถูกระบุ การรู้จำหน้าน้องหมาต่ำ
ยังสามารถหาค่าอื่นๆได้อีกเช่น Accuracy, Misclassification Rate เป็นต้น คลิกที่นี่ครับ

มีระบบการวัดการทำงานของโมเดลอันหนึ่งที่เรียกว่า F-score คือระบบการวัดที่ใช้ค่าเฉลี่ยฮาร์โมนิคระหว่าง Precision และ Recall โดยใช้สูตรดังนี้ (2 x Precision x Recall) / (Presision+Recall)

จากโมเดลด้านบนจะได้ว่า F-score = (2 x 0.625 x 0.4167) / (0.625+0.4167) = 0.5 ซึ่งถ้าใกล้ 1 จะถือว่าเป็นโมเดลที่ดี สรุปได้ว่าโมเดลด้านบนนี้ยังทำงานไม่ค่อยดีเท่าไร ต้องมีการปรับแก้โมเดลกันอีกเพื่อการทำงานที่ดียิ่งขึ้น

Ref:
[1] https://en.wikipedia.org/wiki/Confusion_matrix
[2] https://en.wikipedia.org/wiki/Precision_and_recall
[3] https://en.wikipedia.org/wiki/F1_score
[4] http://www.dataschool.io/simple-guide-to-confusion-matrix-terminology/

Leave a Reply

Your email address will not be published. Required fields are marked *