Kompetisi boosting: Light vs Extreme
Walaupun performa model CatBoost cukup baik, mari coba dua varian boosting lainnya dan lihat mana yang lebih unggul: pendekatan "Light" atau "Extreme".
CatBoost sangat direkomendasikan ketika ada fitur kategorikal. Dalam kasus ini, semua fitur bersifat numerik, sehingga salah satu pendekatan lain mungkin menghasilkan kinerja yang lebih baik.
Karena kita membangun regressor, kita akan menggunakan parameter tambahan, objective, yang menentukan fungsi pembelajaran yang digunakan. Untuk menerapkan squared error, kita akan menetapkan objective ke 'reg:squarederror' untuk XGBoost dan 'mean_squared_error' untuk LightGBM.
Selain itu, kita akan menentukan parameter n_jobs untuk XGBoost guna meningkatkan waktu komputasinya.
CATATAN: hati-hati jangan menggunakan classifier, atau sesi Anda bisa kedaluwarsa!
Latihan ini adalah bagian dari kursus
Metode Ensemble di Python
Petunjuk latihan
- Bangun
XGBRegressordengan parameter:max_depth = 3,learning_rate = 0.1,n_estimators = 100, dann_jobs=2. - Bangun
LGBMRegressordengan parameter:max_depth = 3,learning_rate = 0.1, dann_estimators = 100.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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))