ComeçarComece de graça

Medindo a acurácia

Agora você vai praticar o uso da API de aprendizado do XGBoost por meio de seus recursos integrados de validação cruzada. Como Sergey comentou no vídeo anterior, o XGBoost alcança seu desempenho e eficiência elogiados utilizando sua própria estrutura de dados otimizada para conjuntos de dados, chamada DMatrix.

No exercício anterior, os conjuntos de dados de entrada foram convertidos em DMatrix dinamicamente, mas quando você usa o objeto cv do xgboost, é preciso primeiro converter explicitamente seus dados em uma DMatrix. É isso que você fará aqui antes de executar a validação cruzada em churn_data.

Este exercício faz parte do curso

Extreme Gradient Boosting com XGBoost

Ver curso

Instruções do exercício

  • Crie uma DMatrix chamada churn_dmatrix a partir de churn_data usando xgb.DMatrix(). As variáveis preditoras estão em X e os rótulos em y.
  • Execute uma validação cruzada com 3 dobras chamando xgb.cv(). dtrain é sua churn_dmatrix, params é seu dicionário de parâmetros, nfold é o número de dobras da validação cruzada (3), num_boost_round é o número de árvores que queremos construir (5), metrics é a métrica que você quer calcular (será "error", que vamos converter em acurácia).

Exercício interativo prático

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

# Create arrays for the features and the target: X, y
X, y = churn_data.iloc[:,:-1], churn_data.iloc[:,-1]

# Create the DMatrix from X and y: churn_dmatrix
churn_dmatrix = ____(data=____, label=____)

# Create the parameter dictionary: params
params = {"objective":"reg:logistic", "max_depth":3}

# Perform cross-validation: cv_results
cv_results = ____(dtrain=____, params=____, 
                  nfold=____, num_boost_round=____, 
                  metrics="____", as_pandas=____, seed=123)

# Print cv_results
print(cv_results)

# Print the accuracy
print(((1-cv_results["test-error-mean"]).iloc[-1]))
Editar e executar o código