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 merupakan bagian dari kursus
Metode Ensemble di Python
Instruksi 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 langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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))