ComenzarEmpieza gratis

Aprendizajes base lineales

Ahora que has usado árboles como modelos base en XGBoost, vamos a usar el otro tipo de modelo base que se puede emplear con XGBoost: un aprendiz lineal. Aunque este modelo no es tan habitual en XGBoost, te permite crear una regresión lineal regularizada usando la potente API de aprendizaje de XGBoost. Sin embargo, como no es lo más común, tendrás que usar funciones propias de XGBoost que no son compatibles con scikit-learn para construir el modelo, como xgb.train().

Para hacerlo, debes crear el diccionario de parámetros que describe el tipo de booster que quieres usar (de forma similar a como creaste el diccionario en el capítulo 1 cuando usaste xgb.cv()). El par clave-valor que define el tipo de booster (modelo base) que necesitas es "booster":"gblinear".

Una vez creado el modelo, puedes usar los métodos .train() y .predict() del modelo igual que has hecho antes.

Aquí, los datos ya están divididos en conjuntos de entrenamiento y prueba, así que puedes ponerte directamente a crear los objetos DMatrix que requiere la API de aprendizaje de XGBoost.

Este ejercicio forma parte del curso

Extreme Gradient Boosting con XGBoost

Ver curso

Instrucciones del ejercicio

  • Crea dos objetos DMatrix: DM_train para el conjunto de entrenamiento (X_train y y_train) y DM_test (X_test y y_test) para el conjunto de prueba.
  • Crea un diccionario de parámetros que defina el tipo de "booster" que vas a usar ("gblinear") y el "objective" que vas a minimizar ("reg:squarederror").
  • Entrena el modelo usando xgb.train(). Debes especificar argumentos para estos parámetros: params, dtrain y num_boost_round. Usa 5 rondas de boosting.
  • Predice las etiquetas del conjunto de prueba usando xg_reg.predict(), pasándole DM_test. Asigna el resultado a preds.
  • Pulsa "Submit Answer" para ver el RMSE.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Convert the training and testing sets into DMatrixes: DM_train, DM_test
DM_train = ____
DM_test =  ____

# Create the parameter dictionary: params
params = {"____":"____", "____":"____"}

# Train the model: xg_reg
xg_reg = ____.____(____ = ____, ____=____, ____=____)

# Predict the labels of the test set: preds
preds = ____

# Compute and print the RMSE
rmse = np.sqrt(mean_squared_error(y_test,preds))
print("RMSE: %f" % (rmse))
Editar y ejecutar código