Kom igångKom igång gratis

Linjära basmodeller

Nu när du har använt beslutsträd som basmodeller i XGBoost är det dags att prova den andra typen av basmodell – en linjär inlärare. Den här modellen är visserligen mindre vanlig i XGBoost, men den låter dig skapa en regulariserad linjär regression med XGBoosts kraftfulla inlärnings-API. Eftersom den är ovanlig måste du dock använda XGBoosts egna funktioner, som inte är kompatibla med scikit-learn, till exempel xgb.train().

För att göra det behöver du skapa en parameterdictionary som beskriver vilken typ av booster du vill använda (på liknande sätt som du skapade dictionaryn i kapitel 1 när du använde xgb.cv()). Det nyckel-värde-par som definierar boostern (basmodellen) du behöver är "booster":"gblinear".

När du har skapat modellen kan du använda metoderna .train() och .predict() precis som tidigare.

Data har redan delats upp i tränings- och testset, så du kan gå direkt till att skapa de DMatrix-objekt som XGBoosts inlärnings-API kräver.

Den här övningen är en del av kursen

Extreme Gradient Boosting med XGBoost

Visa kurs

Övningsinstruktioner

  • Skapa två DMatrix-objekt – DM_train för träningsdata (X_train och y_train) och DM_test för testdata (X_test och y_test).
  • Skapa en parameterdictionary som definierar vilken "booster"-typ du ska använda ("gblinear") samt vilket "objective" du vill minimera ("reg:squarederror").
  • Träna modellen med xgb.train(). Ange argument för följande parametrar: params, dtrain och num_boost_round. Använd 5 boosting-rundor.
  • Förutsäg etiketterna för testdatat med xg_reg.predict() och skicka in DM_test. Tilldela resultatet till preds.
  • Klicka på Skicka in svar för att se RMSE-värdet!

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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))
Redigera och kör kod