開始使用免費開始

使用 XGBoost 進行 Grid search

你已經學會如何用 XGBoost 個別調整參數。現在讓我們更進一步,結合 scikit-learn 的 GridSearchRandomizedSearch,並透過 GridSearchCVRandomizedSearchCV 在內部進行交叉驗證。你將用它們在多個參數上,同步遍歷一組可能的參數值,徹底搜尋出表現最佳的模型。先從 GridSearchCV 開始動手吧!

本練習屬於課程

使用 XGBoost 的極端梯度提升

檢視課程

練習說明

  • 建立名稱為 gbm_param_grid 的參數網格,其中包含 "colsample_bytree" 的值列表(0.30.7)、"n_estimators" 的單一值列表(50),以及 2 個 "max_depth" 值(25)的列表。
  • 建立一個名為 gbmXGBRegressor 物件。
  • 建立一個名為 grid_mseGridSearchCV 物件,並傳入:將參數網格指定給 param_grid、將 XGBRegressor 指定給 estimator、將 "neg_mean_squared_error" 指定給 scoring,以及將 4 指定給 cv。同時指定 verbose=1,以便更清楚理解輸出內容。
  • GridSearchCV 物件擬合至 Xy
  • 分別使用 grid_mse.best_params_.best_score_ 屬性,列印最佳參數組合與最低的 RMSE。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# 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(____)))
編輯並執行程式碼