Začněte nyníZačněte zdarma

Prozkoumej přeučení XGBoost modelů

Natrénoval/a sis 3 modely XGBoost s různou maximální hloubkou – teď je čas vyhodnotit jejich kvalitu. Změříš výkon každého modelu na trénovacích i testovacích datech. Trénovací data jsou ta, na kterých se modely učily. Testovací data představují prodeje z následujícího měsíce, která modely dosud nikdy neviděly.

Cílem tohoto cvičení je zjistit, zda některý z natrénovaných modelů trpí přeučením. Ke změření kvality modelů použiješ střední kvadratickou chybu (MSE). Ta je dostupná v sklearn.metrics jako funkce mean_squared_error(), která přijímá dva argumenty: skutečné hodnoty a predikované hodnoty.

V pracovním prostředí máš k dispozici DataFramy train a test spolu se 3 natrénovanými modely (xg_depth_2, xg_depth_8, xg_depth_15).

Toto cvičení je součástí kurzu

Jak vyhrát soutěž na Kaggle v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř predikce každého modelu pro trénovací i testovací data.
  • Vypočítej MSE mezi skutečnými hodnotami a predikcemi pro trénovací i testovací data.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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))
Upravit a spustit kód