Midiendo la exactitud
Ahora vas a practicar el uso de la API de aprendizaje de XGBoost mediante sus funcionalidades integradas de validación cruzada. Como explicó Sergey en el vídeo anterior, XGBoost consigue su reconocida rapidez y eficiencia gracias a que utiliza su propia estructura de datos optimizada para conjuntos de datos llamada DMatrix.
En el ejercicio anterior, los conjuntos de datos de entrada se convirtieron a DMatrix al vuelo, pero cuando utilizas el objeto cv de xgboost, primero tienes que convertir explícitamente tus datos a un DMatrix. Eso es lo que harás aquí antes de ejecutar la validación cruzada sobre churn_data.
Este ejercicio forma parte del curso
Extreme Gradient Boosting con XGBoost
Instrucciones del ejercicio
- Crea un
DMatrixllamadochurn_dmatrixa partir dechurn_datausandoxgb.DMatrix(). Las variables predictoras están enXy las etiquetas eny. - Realiza una validación cruzada de 3 particiones llamando a
xgb.cv().dtraines tuchurn_dmatrix,paramses tu diccionario de parámetros,nfoldes el número de particiones de la validación cruzada (3),num_boost_roundes el número de árboles que queremos construir (5),metricses la métrica que quieres calcular (será"error", que convertiremos en exactitud).
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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]))