시작하기무료로 시작하기

XGBoost로 랜덤 서치 수행하기

종종 GridSearchCV는 실행 시간이 매우 오래 걸리기 때문에, 실제로는 이 연습 문제에서처럼 RandomizedSearchCV를 사용하는 편이 좋습니다. 다행히 RandomizedSearchCV를 쓰려면 기존 GridSearchCV 코드에서 몇 가지만 바꾸면 됩니다. 핵심 차이는 param_grid 대신 param_distributions 매개변수를 지정해야 한다는 점입니다.

이 연습은 강의의 일부입니다

XGBoost로 익히는 Extreme Gradient Boosting

강의 보기

연습 안내

  • gbm_param_grid라는 이름의 파라미터 그리드를 만드세요. 여기에는 'n_estimators'에 대해 단일 값 25가 들어 있는 리스트와, 'max_depth'에 대해 2부터 11까지의 값 리스트가 들어가야 합니다. 이를 위해 range(2, 12)를 사용하세요.
  • randomized_mse라는 RandomizedSearchCV 객체를 만드세요. 다음을 전달합니다: param_distributions에는 방금 만든 파라미터 그리드, estimator에는 XGBRegressor, scoring에는 "neg_mean_squared_error", n_iter에는 5, cv에는 4. 또한 출력 내용을 더 잘 이해할 수 있도록 verbose=1을 지정하세요.
  • RandomizedSearchCV 객체를 Xy에 맞춰 학습(fit)하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# 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_)))
코드 편집 및 실행