ÎncepețiÎncepe gratuit

Explorează supraantrenarea în XGBoost

După ce ai antrenat 3 modele XGBoost cu adâncimi maxime diferite, este momentul să le evaluezi calitatea. În acest scop, vei măsura performanța fiecărui model atât pe datele de antrenament, cât și pe datele de testare. Datele de antrenament sunt cele pe care modelele au fost antrenate, iar datele de testare reprezintă vânzările din luna următoare – date pe care modelele nu le-au mai văzut.

Scopul acestui exercițiu este să determini dacă vreunul dintre modelele antrenate este supraantrenat. Pentru a măsura calitatea modelelor, vei folosi Eroarea Pătratică Medie (MSE). Aceasta este disponibilă în sklearn.metrics sub forma funcției mean_squared_error(), care primește două argumente: valorile reale și valorile prezise.

DataFrame-urile train și test, împreună cu cele 3 modele antrenate (xg_depth_2, xg_depth_8, xg_depth_15), sunt disponibile în spațiul tău de lucru.

Acest exercițiu face parte din cursul

Câștigarea unei competiții Kaggle în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Generează predicții pentru fiecare model atât pe datele de antrenament, cât și pe cele de testare.
  • Calculează MSE dintre valorile reale și predicțiile tale, atât pentru datele de antrenament, cât și pentru cele de testare.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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))
Editează și rulează codul