XGBoost: Entrenar/Predecir
¡Hora de crear tu primer modelo de XGBoost! Como Sergey te mostró en el vídeo, puedes usar el paradigma de scikit-learn .fit() / .predict() que ya conoces para construir tus modelos de XGBoost, ya que la biblioteca xgboost tiene una API compatible con scikit-learn.
Aquí trabajarás con datos de churn. Este conjunto de datos contiene información ficticia de una app de viajes compartidos con comportamientos de usuarios durante su primer mes de uso en un conjunto de ciudades imaginarias, así como si usaron el servicio 5 meses después del registro. Ya se ha precargado en un DataFrame llamado churn_data. ¡Explóralo en la consola!
Tu objetivo es usar los datos del primer mes para predecir si los usuarios de la app seguirán usando el servicio a los 5 meses. Este es un planteamiento típico de un problema de predicción de churn. Para ello, dividirás los datos en conjuntos de entrenamiento y de prueba, ajustarás un pequeño modelo de xgboost en el conjunto de entrenamiento y evaluarás su rendimiento en el conjunto de prueba calculando su exactitud.
pandas y numpy se han importado como pd y np, y train_test_split se ha importado de sklearn.model_selection. Además, ya se han creado los arrays para las características y el objetivo como X y y.
Este ejercicio forma parte del curso
Extreme Gradient Boosting con XGBoost
Instrucciones del ejercicio
- Importa
xgboostcomoxgb. - Crea los conjuntos de entrenamiento y de prueba de modo que el 20% de los datos se use para prueba. Usa un
random_statede123. - Instancia un
XGBoostClassifiercomoxg_clusandoxgb.XGBClassifier(). Especifican_estimatorscon10estimadores y unobjectivede'binary:logistic'. No te preocupes aún por lo que significa; aprenderás sobre estos parámetros más adelante en el curso. - Ajusta
xg_clal conjunto de entrenamiento (X_train, y_train)usando el método.fit(). - Predice las etiquetas del conjunto de prueba (
X_test) usando el método.predict()y pulsa "Enviar respuesta" para imprimir la exactitud.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Import xgboost
____
# Create arrays for the features and the target: X, y
X, y = churn_data.iloc[:,:-1], churn_data.iloc[:,-1]
# Create the training and test sets
X_train, X_test, y_train, y_test= ____(____, ____, test_size=____, random_state=123)
# Instantiate the XGBClassifier: xg_cl
xg_cl = ____.____(____='____', ____=____, seed=123)
# Fit the classifier to the training set
____
# Predict the labels of the test set: preds
preds = ____
# Compute the accuracy: accuracy
accuracy = float(np.sum(preds==y_test))/y_test.shape[0]
print("accuracy: %f" % (accuracy))