Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

ROC (Receiver Operating Characteristic Curve) คืออะไร?


ROC** ย่อมาจาก **Receiver Operating Characteristic Curve** เป็นวิธีการแสดงผลแบบกราฟิกเพื่อแสดง trade-off (การแลกเปลี่ยน) ระหว่าง True Positive Rate (TPR) และ False Positive Rate (FPR) ของ classifier (ตัวจำแนก)

ในกราฟ ROC แกน Y (g axis) คือ True Positive Rate (TPR) และแกน X (r axis) คือ False Positive Rate (FPR) แต่ละจุดบนเส้นโค้งสอดคล้องกับหนึ่งโมเดลที่ถูก persuade (induced) โดย classifier

มีจุดสำคัญหลายจุดบนเส้นโค้ง ROC ที่มีการตีความที่รู้จักกันดี −

  • (TPR: 0, FPR: 0) − โมเดลทำนายทุก instance เป็น negative class

  • (TPR: 1, FPR: 1) − โมเดลทำนายทุก instance เป็น positive class

  • (TPR: 1, FPR: 0) − โมเดลที่สมบูรณ์แบบ (ideal model)

โมเดล classification ที่ดีที่สุดควรอยู่ใกล้มุมซ้ายบน (upper left) มากที่สุด ในขณะที่โมเดลที่ทายสุ่ม (random guessing) จะอยู่ตามเส้นทแยงมุมหลัก (main diagonal) เชื่อมจุด (TPR:0, FPR:0) และ (TPR:1, FPR:1) การทายสุ่มหมายถึง record ถูกจัดเป็น positive class ด้วยความน่าจะเป็นคงที่ p โดยไม่คำนึงถึง attribute set

เพื่อวาดเส้นโค้ง ROC classifier ต้องสามารถสร้าง output แบบต่อเนื่อง (continuous-valued output) ที่สามารถใช้จัดอันดับ (rank) การทำนายได้ ตั้งแต่ instance ที่น่าจะเป็น positive class มากที่สุด ไปจนถึงน้อยที่สุด Output เหล่านี้อาจสอดคล้องกับ posterior probabilities จาก Bayesian classifier หรือ numeric-valued outputs จาก Artificial Neural Network

กระบวนการสร้าง ROC Curve:

  1. สมมติ continuous-valued outputs แทน positive class เรียง test data ตามลำดับเพิ่มของค่า output
  2. เลือก test data ที่จัดอันดับต่ำสุด (ค่า output ต่ำสุด) กำหนด instance ที่เลือกและที่จัดอันดับตามมาเป็น positive class วิธีนี้เหมือนกำหนดทุก test data เป็น positive class เนื่องจาก positive instances ทั้งหมดถูกจัดถูกต้อง และ negative instances ถูกจัดผิด ทำให้ TPR=1, FPR=1
  3. เลือก test data ตัวถัดไปจากลิสต์ที่เรียงแล้ว กำหนด instance ที่เลือกและตามมาเป็น positive ส่วนที่จัดอันดับต่ำกว่าเป็น negative อัปเดตจำนวน TP และ FP โดยตรวจสอบ class label จริงของ instance ที่เลือกไปก่อนหน้า
  4. ถ้า instance ก่อนหน้าเป็น positive class จำนวน TP ลดลง FP คงเดิม ถ้าเป็น negative class จำนวน FP ลดลง TP คงเดิม
  5. ทำซ้ำขั้นตอน 3 และอัปเดต TP, FP จนกว่าจะเลือก test data ที่จัดอันดับสูงสุด
  6. Plot TPR ต่อ FPR ของ classifier