Cuộc thi boosting: Light vs Extreme
Hiệu quả của mô hình CatBoost khá tốt, nhưng hãy thử hai biến thể boosting khác để xem cách nào vượt trội hơn: hướng tiếp cận "Light" hay "Extreme".
CatBoost rất phù hợp khi có đặc trưng phân loại (categorical). Ở đây, tất cả đặc trưng đều là số, vì vậy một trong các cách tiếp cận khác có thể cho kết quả tốt hơn.
Vì chúng ta đang xây dựng các bộ hồi quy, bạn sẽ dùng thêm tham số objective để chỉ định hàm học sử dụng. Để áp dụng squared error, hãy đặt objective là 'reg:squarederror' cho XGBoost và 'mean_squared_error' cho LightGBM.
Ngoài ra, chúng ta sẽ chỉ định tham số n_jobs cho XGBoost để cải thiện thời gian tính toán.
LƯU Ý: cẩn thận đừng dùng classifier, nếu không phiên của bạn có thể hết hạn!
Bài tập này là một phần của khóa học
Ensemble Methods in Python
Hướng dẫn bài tập
- Xây dựng
XGBRegressorvới các tham số:max_depth = 3,learning_rate = 0.1,n_estimators = 100, vàn_jobs=2. - Xây dựng
LGBMRegressorvới các tham số:max_depth = 3,learning_rate = 0.1, vàn_estimators = 100.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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))