สถิติ Cross-validation
คุณใช้ grid search CV เพื่อปรับจูน random forest classifier และตอนนี้ต้องการตรวจสอบผลลัพธ์ของ cross-validation เพื่อให้แน่ใจว่าโมเดลไม่ overfit โดยเฉพาะอย่างยิ่ง ต้องการหาผลต่างระหว่างค่าเฉลี่ยของ test score กับค่าเฉลี่ยของ training score ในแต่ละ fold ชุดข้อมูลพร้อมใช้งานในรูปแบบ X_train และ y_train pipeline อยู่ในตัวแปร pipe และมีโมดูลที่โหลดไว้ล่วงหน้าแล้ว รวมถึง pandas ในชื่อ pd และ GridSearchCV()
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การออกแบบ Machine Learning Workflows ด้วย Python
คำแนะนำการฝึกหัด
- สร้าง grid search object โดยกำหนดให้มีสาม fold และตั้งค่าให้คืนค่าสถิติทั้งของชุด training และชุด test
- ฟิต grid search object กับข้อมูล training
- เก็บผลลัพธ์ของ cross-validation ซึ่งอยู่ใน attribute
cv_results_ของ CV object ที่ฟิตแล้ว ลงใน dataframe - แสดงผลต่างระหว่างคอลัมน์ที่เก็บค่าเฉลี่ยของ test score และคอลัมน์ที่เก็บค่าเฉลี่ยของ training score
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Fit your pipeline using GridSearchCV with three folds
grid_search = GridSearchCV(
pipe, params, ____=3, return_train_score=____)
# Fit the grid search
gs = grid_search.____(____, ____)
# Store the results of CV into a pandas dataframe
results = pd.____(gs.____)
# Print the difference between mean test and training scores
print(
results[____]-results['mean_train_score'])