Boosting प्रतियोगिता: Light बनाम Extreme
CatBoost मॉडल का परफॉर्मेंस काफ़ी अच्छा है, लेकिन आइए बूस्टिंग के दो और फ्लेवर आज़माते हैं और देखें कि कौन बेहतर करता है: "Light" या "Extreme" अप्रोच.
CatBoost तब बहुत उपयोगी होता है जब फीचर श्रेणीबद्ध (categorical) हों. इस केस में सभी फीचर संख्यात्मक हैं, इसलिए अन्य अप्रोच में से कोई बेहतर परिणाम दे सकता है.
क्योंकि हम रिग्रेसर बना रहे हैं, हम एक अतिरिक्त पैरामीटर objective का उपयोग करेंगे, जो बताता है कि कौन-सा लर्निंग फंक्शन इस्तेमाल होगा. squared error लगाने के लिए, हम XGBoost में objective को 'reg:squarederror' और LightGBM में 'mean_squared_error' सेट करेंगे.
इसके अलावा, computation runtime बेहतर करने के लिए हम XGBoost में n_jobs पैरामीटर भी निर्दिष्ट करेंगे.
ध्यान दें: क्लासिफ़ायर का उपयोग न करें, वरना आपका सेशन एक्सपायर हो सकता है!
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Ensemble Methods
अभ्यास निर्देश
- इन पैरामीटर के साथ एक
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))