शुरू करेंमुफ़्त में शुरू करें

XGBoost में ओवरफिटिंग जाँचें

आपने अधिकतम गहराई (maximum depth) अलग-अलग रखते हुए 3 XGBoost मॉडल प्रशिक्षित किए हैं. अब आप उनकी गुणवत्ता का मूल्यांकन करेंगे. इसके लिए, आप प्रत्येक मॉडल की गुणवत्ता को train डेटा और test डेटा — दोनों पर मापेंगे. जैसा कि अब तक आपने सीखा है, train डेटा वही होता है जिस पर मॉडल प्रशिक्षित किए गए हैं. test डेटा अगले महीने की सेल्स का डेटा है, जिसे मॉडल ने पहले कभी नहीं देखा.

इस अभ्यास का लक्ष्य यह तय करना है कि क्या प्रशिक्षित मॉडलों में से कोई ओवरफिटिंग कर रहा है. मॉडलों की गुणवत्ता नापने के लिए आप Mean Squared Error (MSE) का उपयोग करेंगे. यह sklearn.metrics में mean_squared_error() फंक्शन के रूप में उपलब्ध है, जो दो आर्ग्युमेंट लेता है: वास्तविक वैल्यू और प्रिडिक्टेड वैल्यू.

train और test DataFrames के साथ 3 प्रशिक्षित मॉडल (xg_depth_2, xg_depth_8, xg_depth_15) आपके वर्कस्पेस में उपलब्ध हैं.

यह अभ्यास पाठ्यक्रम का हिस्सा है

Python में Kaggle प्रतियोगिता जीतना

पाठ्यक्रम देखें

अभ्यास निर्देश

  • प्रत्येक मॉडल के लिए train और test डेटा — दोनों पर प्रिडिक्शन बनाइए.
  • train और test डेटा के लिए वास्तविक वैल्यू और आपके प्रिडिक्शन के बीच MSE की गणना कीजिए.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

from sklearn.metrics import mean_squared_error

dtrain = xgb.DMatrix(data=train[['store', 'item']])
dtest = xgb.DMatrix(data=test[['store', 'item']])

# For each of 3 trained models
for model in [xg_depth_2, xg_depth_8, xg_depth_15]:
    # Make predictions
    train_pred = model.____(dtrain)     
    test_pred = model.____(dtest)          
    
    # Calculate metrics
    mse_train = ____(train['sales'], train_pred)                  
    mse_test = ____(test['sales'], test_pred)
    print('MSE Train: {:.3f}. MSE Test: {:.3f}'.format(mse_train, mse_test))
कोड संपादित करें और चलाएँ