ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Crea un DMatrix llamado churn_dmatrix a partir de churn_data usando xgb.DMatrix(). Las variables predictoras están en X y las etiquetas en y.
  • Realiza una validación cruzada de 3 particiones llamando a xgb.cv(). dtrain es tu churn_dmatrix, params es tu diccionario de parámetros, nfold es el número de particiones de la validación cruzada (3), num_boost_round es el número de árboles que queremos construir (5), metrics es 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]))
Editar y ejecutar código