부스팅 대결: Light vs Extreme
CatBoost 모델의 성능이 꽤 좋지만, 다른 부스팅 기법 두 가지도 시도해 보면서 어느 쪽이 더 잘 나오는지 확인해 봅시다. 여기서는 "Light" 접근법과 "Extreme" 접근법을 비교합니다.
CatBoost는 범주형 특성이 있을 때 특히 권장됩니다. 이 경우에는 모든 특성이 수치형이므로, 다른 접근법이 더 나은 결과를 낼 수도 있습니다.
회귀기를 만들 것이므로, 학습에 사용할 함수를 지정하는 추가 매개변수 objective를 사용하겠습니다. 제곱 오차를 적용하려면 XGBoost에서는 objective를 'reg:squarederror'로, LightGBM에서는 'mean_squared_error'로 설정합니다.
또한 XGBoost의 계산 시간을 줄이기 위해 n_jobs 매개변수를 지정하겠습니다.
주의: 분류기를 사용하지 마세요. 세션이 만료될 수 있습니다!
이 연습은 강의의 일부입니다
Python에서의 앙상블 기법
연습 안내
- 다음 매개변수로
XGBRegressor를 구축하세요:max_depth = 3,learning_rate = 0.1,n_estimators = 100,n_jobs=2. - 다음 매개변수로
LGBMRegressor를 구축하세요:max_depth = 3,learning_rate = 0.1,n_estimators = 100.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Build and fit an XGBoost regressor
reg_xgb = ____.____(____, ____, ____, ____, objective='reg:squarederror', random_state=500)
reg_xgb.fit(X_train, y_train)
# Build and fit a LightGBM regressor
reg_lgb = ____.____(____, ____, ____, objective='mean_squared_error', seed=500)
reg_lgb.fit(X_train, y_train)
# Calculate the predictions and evaluate both regressors
pred_xgb = reg_xgb.predict(X_test)
rmse_xgb = np.sqrt(mean_squared_error(y_test, pred_xgb))
pred_lgb = reg_lgb.predict(X_test)
rmse_lgb = np.sqrt(mean_squared_error(y_test, pred_lgb))
print('Extreme: {:.3f}, Light: {:.3f}'.format(rmse_xgb, rmse_lgb))