Zacznij terazZacznij za darmo

Analiza przeuczenia modelu XGBoost

Po wytrenowaniu 3 modeli XGBoost z różnymi maksymalnymi głębokościami drzewa czas ocenić ich jakość. W tym celu zmierzysz jakość każdego modelu na danych treningowych i testowych. Dane treningowe to te, na których modele były trenowane. Dane testowe to dane sprzedażowe z kolejnego miesiąca – modele nigdy wcześniej ich nie widziały.

Celem tego ćwiczenia jest sprawdzenie, czy któryś z wytrenowanych modeli jest przeuczony. Do oceny jakości modeli użyjesz błędu średniokwadratowego (MSE). Jest on dostępny w bibliotece sklearn.metrics jako funkcja mean_squared_error(), która przyjmuje dwa argumenty: wartości rzeczywiste i wartości przewidywane.

W środowisku roboczym masz dostęp do ramek danych train i test oraz 3 wytrenowanych modeli: xg_depth_2, xg_depth_8 i xg_depth_15.

To ćwiczenie jest częścią kursu

Zwycięstwo w konkursie Kaggle w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Wykonaj predykcje dla każdego modelu na danych treningowych i testowych.
  • Oblicz MSE między wartościami rzeczywistymi a przewidywanymi dla danych treningowych i testowych.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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))
Edytuj i uruchom kod