Cross validation
Cross validation เป็นเทคนิคที่ใช้ตรวจสอบประสิทธิภาพของโมเดลบนข้อมูลที่ไม่ได้ใช้ในการฝึก เพื่อให้มั่นใจว่าผลลัพธ์ที่ได้ไม่ได้เกิดจากการแบ่งข้อมูลในลักษณะใดลักษณะหนึ่งโดยเฉพาะ ในแบบฝึกหัดนี้ จะใช้ฟังก์ชันจาก sklearn เพื่อรัน K-fold cross validation โดยใช้โมดูล KFold() เพื่อประเมินค่า precision และ recall ของ decision tree
X_train, y_train, X_test, y_test มีพร้อมใช้งานใน workspace แล้ว เช่นเดียวกับ pandas ในชื่อ pd, numpy ในชื่อ np และ sklearn นอกจากนี้ KFold() และ cross_val_score() จาก sklearn.model_selection ก็พร้อมใช้งานเช่นกัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การพยากรณ์ CTR ด้วย Machine Learning ใน Python
คำแนะนำการฝึกหัด
- สร้าง decision tree classifier
- ตั้งค่า K-Fold cross validation โดยกำหนด 4 splits แล้วกำหนดให้กับตัวแปร
k-fold - ใช้
k_foldรัน cross validation ด้วยcross_val_score()เพื่อประเมินค่า precision และ recall ของโมเดล (ห้ามใช้recall_score()หรือprecision_score()นะ!)
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Create model
clf = ____
# Set up k-fold
k_fold = ____(n_splits = 4, random_state = 0, shuffle = True)
# Evaluate precision and recall for each fold
precision = ____(
clf, X_train, ____, cv = ____, scoring = 'precision_weighted')
recall = ____(
clf, X_train, ____, cv = ____, scoring = 'recall_weighted')
print("Precision scores: %s" %(precision))
print("Recall scores: %s" %(recall))