ComeçarComece de graça

Explorando overfitting com XGBoost

Depois de treinar 3 modelos XGBoost com diferentes profundidades máximas, você vai avaliar a qualidade deles. Para isso, você vai medir o desempenho de cada modelo tanto nos dados de treino quanto nos dados de teste. Como você já sabe, os dados de treino são aqueles nos quais os modelos foram treinados. Os dados de teste correspondem às vendas do mês seguinte, que os modelos nunca viram.

O objetivo deste exercício é verificar se algum dos modelos treinados está com overfitting. Para medir a qualidade dos modelos, você vai usar o Mean Squared Error (MSE). Ele está disponível em sklearn.metrics como a função mean_squared_error(), que recebe dois argumentos: valores verdadeiros e valores preditos.

Os DataFrames train e test, junto com os 3 modelos treinados (xg_depth_2, xg_depth_8, xg_depth_15), estão disponíveis no seu workspace.

Este exercício faz parte do curso

Vencendo uma competição do Kaggle em Python

Ver curso

Instruções do exercício

  • Faça previsões para cada modelo tanto nos dados de treino quanto nos dados de teste.
  • Calcule o MSE entre os valores verdadeiros e suas previsões para os dados de treino e de teste.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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 e executar o código