Grid Search
จากบทเรียนก่อนหน้า เราได้สร้างโมเดล Gradient Boosting พื้นฐานไว้แล้ว เป้าหมายในแบบฝึกหัดนี้คือการหาค่า hyperparameter max_depth ที่ดีที่สุดสำหรับโมเดลดังกล่าว โดย hyperparameter นี้จะจำกัดจำนวน node ในแต่ละต้นไม้ คุณจะใช้การทำ K-fold cross-validation เพื่อวัดประสิทธิภาพของโมเดลในแต่ละค่า hyperparameter
ฟังก์ชัน get_cv_score() ได้เตรียมไว้ให้แล้ว โดยรับชุดข้อมูล train และ dictionary ของพารามิเตอร์โมเดลเป็น argument แล้วคืนค่า RMSE จากการทำ cross-validation แบบ 3-fold
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การแข่งขัน Kaggle ด้วย Python
คำแนะนำการฝึกหัด
- กำหนด grid สำหรับค่า
max_depthที่เป็นไปได้ ได้แก่ 3, 6, 9, 12 และ 15 - ส่งค่า hyperparameter แต่ละตัวใน grid ไปยัง dictionary
paramsของโมเดล
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Possible max depth values
max_depth_grid = [____]
results = {}
# For each value in the grid
for max_depth_candidate in max_depth_grid:
# Specify parameters for the model
params = {'max_depth': ____}
# Calculate validation score for a particular hyperparameter
validation_score = get_cv_score(train, params)
# Save the results for each max depth value
results[max_depth_candidate] = validation_score
print(results)