ComenzarEmpieza gratis

Explora el overfitting en XGBoost

Después de entrenar 3 modelos de XGBoost con distintas profundidades máximas, ahora vas a evaluar su calidad. Para ello, medirás la calidad de cada modelo tanto en los datos de entrenamiento como en los de prueba. Como ya sabes, los datos de entrenamiento son aquellos con los que se han ajustado los modelos. Los datos de prueba corresponden a las ventas del mes siguiente, que los modelos no han visto antes.

El objetivo de este ejercicio es determinar si alguno de los modelos entrenados está sobreajustando (overfitting). Para medir la calidad usarás el Mean Squared Error (MSE). Está disponible en sklearn.metrics como la función mean_squared_error(), que recibe dos argumentos: valores reales y valores predichos.

Los DataFrames train y test, junto con los 3 modelos ya entrenados (xg_depth_2, xg_depth_8, xg_depth_15), están disponibles en tu espacio de trabajo.

Este ejercicio forma parte del curso

Cómo ganar una competición de Kaggle con Python

Ver curso

Instrucciones del ejercicio

  • Genera predicciones para cada modelo tanto en los datos de entrenamiento como en los de prueba.
  • Calcula el MSE entre los valores reales y tus predicciones para los datos de entrenamiento y de prueba.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

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))
Editar y ejecutar código