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객체를X와y에 맞춰 학습(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_)))