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
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))