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