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

Grid search กับ XGBoost

หลังจากที่เรียนรู้วิธีปรับพารามิเตอร์ทีละตัวใน XGBoost แล้ว ก็ถึงเวลายกระดับการ tune พารามิเตอร์ด้วยความสามารถ GridSearch และ RandomizedSearch ของ scikit-learn ซึ่งมี cross-validation ในตัวผ่านฟังก์ชัน GridSearchCV และ RandomizedSearchCV เราจะใช้ฟังก์ชันเหล่านี้เพื่อค้นหาโมเดลที่ดีที่สุดจากชุดค่าพารามิเตอร์ที่เป็นไปได้หลายค่าพร้อมกัน เริ่มต้นกันเลยด้วย GridSearchCV!

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Extreme Gradient Boosting with XGBoost

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้าง parameter grid ชื่อ gbm_param_grid ที่ประกอบด้วย: ลิสต์ของค่า "colsample_bytree" (0.3, 0.7), ลิสต์ที่มีค่าเดียวสำหรับ "n_estimators" (50) และลิสต์ของค่า "max_depth" 2 ค่า (2, 5)
  • สร้าง object XGBRegressor ชื่อ gbm
  • สร้าง object GridSearchCV ชื่อ grid_mse โดยส่ง: parameter grid ไปที่ param_grid, XGBRegressor ไปที่ estimator, "neg_mean_squared_error" ไปที่ scoring และ 4 ไปที่ cv พร้อมระบุ verbose=1 เพื่อให้เข้าใจผลลัพธ์ได้ดียิ่งขึ้น
  • Fit object GridSearchCV กับ X และ y
  • แสดงค่าพารามิเตอร์ที่ดีที่สุดและค่า RMSE ต่ำสุด โดยใช้ attribute .best_params_ และ .best_score_ ของ grid_mse ตามลำดับ

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Create the parameter grid: gbm_param_grid
gbm_param_grid = {
    '____': [____, ____],
    '____': [____],
    '____': [____, ____]
}

# Instantiate the regressor: gbm
gbm = ____

# Perform grid search: grid_mse
grid_mse = ____


# Fit grid_mse to the data
____

# Print the best parameters and lowest RMSE
print("Best parameters found: ", ____)
print("Lowest RMSE found: ", np.sqrt(np.abs(____)))
แก้ไขและรันโค้ด