XGBoost로 그리드 서치
이제 XGBoost에서 개별 매개변수를 조정하는 방법을 배웠으니, scikit-learn의 GridSearch와 RandomizedSearch 기능을 활용해 내부 교차 검증을 수행하는 GridSearchCV와 RandomizedSearchCV로 한 단계 더 나아가 보겠습니다. 이를 통해 여러 매개변수에 대해 가능한 값들의 조합을 대상으로, 모든 경우를 살펴보며 최적의 모델을 찾을 수 있어요. 그럼 GridSearchCV부터 시작해 볼까요!
이 연습은 강의의 일부입니다
XGBoost로 익히는 Extreme Gradient Boosting
연습 안내
gbm_param_grid라는 이름의 매개변수 그리드를 만드세요. 여기에는"colsample_bytree"값 리스트(0.3,0.7), 단일 값 리스트"n_estimators"(50), 그리고 2개의"max_depth"값(2,5) 리스트가 포함되어야 해요.XGBRegressor객체를gbm이라는 이름으로 인스턴스화하세요.GridSearchCV객체grid_mse를 만드세요.param_grid에는 매개변수 그리드를,estimator에는XGBRegressor를,scoring에는"neg_mean_squared_error"를,cv에는4를 전달하세요. 또한 출력 내용을 더 잘 이해할 수 있도록verbose=1을 지정하세요.GridSearchCV객체를X와y에 대해 학습(fit)하세요.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(____)))