ComeçarComece de graça

Aprendizes básicos lineares

Agora que você usou árvores como modelos base no XGBoost, vamos usar o outro tipo de modelo base que pode ser usado com XGBoost: um aprendiz linear. Esse modelo, embora não seja tão comum no XGBoost, permite criar uma regressão linear regularizada usando a poderosa API de aprendizado do XGBoost. Porém, por ser incomum, você precisa usar as funções próprias do XGBoost, que não são compatíveis com scikit-learn, para construir o modelo, como xgb.train().

Para isso, você deve criar o dicionário de parâmetros que descreve o tipo de booster que você quer usar (de forma semelhante a como você criou o dicionário no Capítulo 1 quando usou xgb.cv()). O par chave-valor que define o tipo de booster (modelo base) necessário é "booster":"gblinear".

Depois de criar o modelo, você pode usar os métodos .train() e .predict() do modelo como já fez antes.

Aqui, os dados já foram divididos em conjuntos de treino e teste, então você pode partir direto para criar os objetos DMatrix exigidos pela API de aprendizado do XGBoost.

Este exercício faz parte do curso

Extreme Gradient Boosting com XGBoost

Ver curso

Instruções do exercício

  • Crie dois objetos DMatrix: DM_train para o conjunto de treino (X_train e y_train) e DM_test (X_test e y_test) para o conjunto de teste.
  • Crie um dicionário de parâmetros que defina o tipo de "booster" que você vai usar ("gblinear") e também o "objective" que você vai minimizar ("reg:squarederror").
  • Treine o modelo usando xgb.train(). Você deve especificar argumentos para os parâmetros: params, dtrain e num_boost_round. Use 5 rounds de boosting.
  • Faça a predição dos rótulos no conjunto de teste usando xg_reg.predict(), passando DM_test. Atribua a preds.
  • Clique em "Enviar Resposta" para ver o RMSE!

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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 e executar o código