early_stopping के साथ boosting rounds का ऑटोमेटेड चयन
अब, सबसे अच्छे boosting rounds की संख्या को मैन्युअली चुनने की बजाय, आप xgb.cv() के भीतर XGBoost से यह संख्या अपने-आप चुनवा सकते हैं। यह early stopping नाम की तकनीक से होता है.
Early stopping में हर boosting round के बाद XGBoost मॉडल को एक hold-out डेटासेट पर टेस्ट किया जाता है। अगर hold-out मेट्रिक (हमारे केस में "rmse") कुछ निर्धारित rounds तक बेहतर नहीं होती, तो अतिरिक्त boosting rounds बनाना रोक दिया जाता है (अर्थात् मॉडल का प्रशिक्षण पहले ही समाप्त कर दिया जाता है)। यहाँ आप xgb.cv() में early_stopping_rounds पैरामीटर के साथ boosting rounds की एक बड़ी अधिकतम संख्या (50) उपयोग करेंगे। ध्यान रखें कि अगर holdout मेट्रिक लगातार बेहतर होती रहती है और num_boost_rounds की सीमा तक पहुँच जाती है, तो early stopping नहीं होगा.
यहाँ DMatrix और पैरामीटर डिक्शनरी आपके लिए बना दी गई है। आपका कार्य है early stopping के साथ cross-validation चलाना। शुरू कीजिए!
यह अभ्यास पाठ्यक्रम का हिस्सा है
XGBoost के साथ Extreme Gradient Boosting
अभ्यास निर्देश
"rmse"को metric रखते हुए early stopping के साथ 3-fold cross-validation चलाइए।10early stopping rounds और50boosting rounds उपयोग करें।seedको123सेट करें और सुनिश्चित करें कि आउटपुट एकpandasDataFrame हो। साथ हीdtrain,params, औरmetricsजैसे अन्य पैरामीटर भी निर्दिष्ट करें।cv_resultsप्रिंट करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Create your housing DMatrix: housing_dmatrix
housing_dmatrix = xgb.DMatrix(data=X, label=y)
# Create the parameter dictionary for each tree: params
params = {"objective":"reg:squarederror", "max_depth":4}
# Perform cross-validation with early stopping: cv_results
cv_results = ____
# Print cv_results
print(____)