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

Random search ด้วย XGBoost

GridSearchCV อาจใช้เวลานานมากในหลายกรณี ดังนั้นในทางปฏิบัติ อาจเลือกใช้ RandomizedSearchCV แทน ซึ่งเป็นสิ่งที่จะทำในแบบฝึกหัดนี้ ข่าวดีคือต้องปรับแก้โค้ดจาก GridSearchCV เพียงเล็กน้อยเท่านั้น ความแตกต่างหลักคือต้องระบุพารามิเตอร์ param_distributions แทน param_grid

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

Extreme Gradient Boosting with XGBoost

ดูคอร์ส

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

  • สร้าง parameter grid ชื่อ gbm_param_grid ที่ประกอบด้วยลิสต์ค่าเดียวสำหรับ 'n_estimators' (ค่า 25) และลิสต์ค่า 'max_depth' ตั้งแต่ 2 ถึง 11 สำหรับ 'max_depth' — ใช้ range(2, 12) สำหรับส่วนนี้
  • สร้างออบเจกต์ RandomizedSearchCV ชื่อ randomized_mse โดยส่งค่าดังนี้: parameter grid ไปยัง param_distributions, XGBRegressor ไปยัง estimator, "neg_mean_squared_error" ไปยัง scoring, 5 ไปยัง n_iter และ 4 ไปยัง cv รวมทั้งระบุ verbose=1 เพื่อให้เข้าใจผลลัพธ์ได้ง่ายขึ้น
  • Fit ออบเจกต์ RandomizedSearchCV กับ X และ y

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

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

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

# Instantiate the regressor: gbm
gbm = xgb.XGBRegressor(n_estimators=10)

# Perform random search: grid_mse
randomized_mse = ____


# Fit randomized_mse to the data
____

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