시작하기무료로 시작하기

XGBoost로 그리드 서치

이제 XGBoost에서 개별 매개변수를 조정하는 방법을 배웠으니, scikit-learn의 GridSearchRandomizedSearch 기능을 활용해 내부 교차 검증을 수행하는 GridSearchCVRandomizedSearchCV로 한 단계 더 나아가 보겠습니다. 이를 통해 여러 매개변수에 대해 가능한 값들의 조합을 대상으로, 모든 경우를 살펴보며 최적의 모델을 찾을 수 있어요. 그럼 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 객체를 Xy에 대해 학습(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(____)))
코드 편집 및 실행