เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

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)
แก้ไขและรันโค้ด