EmpezarEmpieza 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 completando este código de ejemplo.

# 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