ประเมินผล Decision Tree
ประเมินคุณภาพของโมเดลได้โดยดูว่าโมเดลทำงานได้ดีเพียงใดบนข้อมูลทดสอบ เนื่องจากโมเดลไม่เคยเห็นข้อมูลชุดนี้ระหว่างการฝึก ผลที่ได้จึงเป็นการประเมินที่เป็นกลางและน่าเชื่อถือ
Confusion matrix ช่วยสรุปภาพรวมของการพยากรณ์เทียบกับค่าจริงได้อย่างชัดเจน โดยแบ่งออกเป็น 4 ช่องที่แสดงจำนวนของ:
- True Negatives (TN) — โมเดลพยากรณ์ผลลบ และค่าจริงก็เป็นผลลบ
- True Positives (TP) — โมเดลพยากรณ์ผลบวก และค่าจริงก็เป็นผลบวก
- False Negatives (FN) — โมเดลพยากรณ์ผลลบ แต่ค่าจริงเป็นผลบวก
- False Positives (FP) — โมเดลพยากรณ์ผลบวก แต่ค่าจริงเป็นผลลบ
ผลรวมของ TN, TP, FN และ FP ควรเท่ากับจำนวนระเบียนในข้อมูลทดสอบ ซึ่งเป็นเพียงส่วนหนึ่งของข้อมูลเที่ยวบิน สามารถเปรียบเทียบกับจำนวนระเบียนในข้อมูลทดสอบได้ผ่าน flights_test.count()
หมายเหตุ: การพยากรณ์เหล่านี้ทำบนข้อมูล ทดสอบ ดังนั้นตัวเลขที่ได้จะน้อยกว่าที่จะได้หากพยากรณ์บนข้อมูลฝึก
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Machine Learning with PySpark
คำแนะนำการฝึกหัด
- สร้าง confusion matrix โดยนับจำนวนการรวมกันของ
labelและpredictionแล้วแสดงผลลัพธ์ - นับจำนวน True Negatives, True Positives, False Negatives และ False Positives
- คำนวณความแม่นยำ (accuracy)
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create a confusion matrix
prediction.groupBy(____, 'prediction').____().____()
# Calculate the elements of the confusion matrix
TN = prediction.filter('prediction = 0 AND label = prediction').count()
TP = prediction.____('____ AND ____').____()
FN = prediction.____('____ AND ____').____()
FP = prediction.____('____ AND ____').____()
# Accuracy measures the proportion of correct predictions
accuracy = ____
print(accuracy)