Kom igångKom igång gratis

Utforska överanpassning i XGBoost

Nu när du har tränat 3 XGBoost-modeller med olika maximalt djup är det dags att utvärdera deras kvalitet. Du mäter varje modells prestanda på både träningsdata och testdata. Träningsdata är den data som modellerna har tränats på, medan testdata innehåller nästa månads försäljningssiffror som modellerna aldrig har sett tidigare.

Målet med den här övningen är att avgöra om någon av de tränade modellerna är överanpassad. För att mäta modellernas kvalitet använder du Mean Squared Error (MSE). Det finns tillgängligt i sklearn.metrics som funktionen mean_squared_error(), som tar två argument: faktiska värden och predikterade värden.

DataFrame-objekten train och test samt de 3 tränade modellerna (xg_depth_2, xg_depth_8, xg_depth_15) finns tillgängliga i din arbetsyta.

Den här övningen är en del av kursen

Vinna en Kaggle-tävling i Python

Visa kurs

Övningsinstruktioner

  • Gör prediktioner med varje modell på både tränings- och testdata.
  • Beräkna MSE mellan de faktiska värdena och dina prediktioner för både tränings- och testdata.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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))
Redigera och kör kod