ไปให้ไกลกว่าแค่ความแม่นยำ
ในแบบฝึกหัดนี้ เราจะประเมินค่า AUC ของ ROC curve สำหรับโมเดล decision tree พื้นฐาน เพื่อวิเคราะห์ประสิทธิภาพได้ลึกกว่าการดูแค่ความแม่นยำ ขอให้จำไว้ว่า classifier แบบสุ่มจะมี AUC อยู่ที่ 0.5 ดังนั้นเป้าหมายคือให้ได้คะแนนสูงกว่านั้น
X คือ DataFrame ที่เก็บฟีเจอร์ และ y คือ DataFrame ที่เก็บค่าเป้าหมาย โดย sklearn และ pandas ในชื่อ pd พร้อมใช้งานใน workspace แล้ว
เราจะใช้การตั้งค่านี้เพื่อดูค่า AUC ของ ROC curve
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การพยากรณ์ CTR ด้วย Machine Learning ใน Python
คำแนะนำการฝึกหัด
- แบ่งข้อมูลออกเป็นชุดฝึกและชุดทดสอบ
- Fit classifier ด้วยข้อมูลฝึก จากนั้นทำนายผลสำหรับข้อมูลทดสอบโดยใช้
predict_proba()และpredict() - ประเมินค่า AUC ใต้ ROC curve ด้วยฟังก์ชัน
roc_curve()บนy_testผ่านroc_curve(y_test, y_score[:, 1])
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Training and testing
X_train, X_test, y_train, y_test = \
____(X, y, test_size = .2, random_state = 0)
# Create decision tree classifier
clf = DecisionTreeClassifier()
# Train classifier - predict probability score and label
y_score = clf.fit(____, ____).predict_proba(____)
y_pred = clf.fit(____, ____).predict(____)
# Get ROC curve metrics
fpr, tpr, thresholds = ____(____, y_score[:, 1])
roc_auc = auc(fpr, tpr)
print(roc_auc)