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
Instruções do exercício
- Crie uma
DMatrixchamadachurn_dmatrixa partir dechurn_datausandoxgb.DMatrix(). As variáveis preditoras estão emXe os rótulos emy. - Execute uma validação cruzada com 3 dobras chamando
xgb.cv().dtrainé suachurn_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]))