เมตริกประสิทธิภาพสำหรับโมเดล RF
ในแบบฝึกหัดก่อนหน้า คุณได้คะแนนความแม่นยำของโมเดล random forest ไปแล้ว แต่คราวนี้เราทราบดีว่า ความแม่นยำอาจทำให้เข้าใจผิดได้ ในกรณีของการตรวจจับการฉ้อโกง เมื่อข้อมูลมีความไม่สมดุลสูง AUROC curve จะเป็นเมตริกประสิทธิภาพที่เชื่อถือได้มากกว่า และใช้เปรียบเทียบตัวแยกประเภทต่าง ๆ ได้ นอกจากนี้ classification report ยังบอกค่า precision และ recall ของโมเดล ส่วน confusion matrix จะแสดงให้เห็นว่าโมเดลทำนายกรณีการฉ้อโกงได้ถูกต้องกี่กรณี มาดึงเมตริกประสิทธิภาพเหล่านี้กัน
จะทำงานต่อจากโมเดล random forest เดิมในแบบฝึกหัดก่อนหน้า โดยโมเดลที่กำหนดเป็น model = RandomForestClassifier(random_state=5) ถูก fit กับข้อมูลชุด training ไว้แล้ว และ X_train, y_train, X_test, y_test พร้อมใช้งาน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การตรวจจับการฉ้อโกงด้วย Python
คำแนะนำการฝึกหัด
- นำเข้า classification report, confusion matrix และ ROC score จาก
sklearn.metrics - รับค่าการพยากรณ์แบบ binary จากโมเดล random forest
modelที่เทรนแล้ว - รับค่าความน่าจะเป็นของการพยากรณ์โดยรันฟังก์ชัน
predict_proba() - สร้าง classification report และ confusion matrix โดยเปรียบเทียบ
y_testกับpredicted
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import the packages to get the different performance metrics
from sklearn.metrics import ____, ____, ____
# Obtain the predictions from our random forest model
predicted = model.____(X_test)
# Predict probabilities
probs = ____.____(X_test)
# Print the ROC curve, classification report and confusion matrix
print(____(y_test, probs[:,1]))
print(____(____, predicted))
print(____(____, ____))