ÎncepețiÎncepe gratuit

Modele de bază liniare

Acum că ai folosit arbori ca modele de bază în XGBoost, hai să explorăm celălalt tip de model de bază disponibil – un model liniar. Deși este mai rar utilizat în XGBoost, acesta îți permite să construiești o regresie liniară regularizată folosind API-ul puternic de antrenare al XGBoost. Tocmai pentru că este mai puțin comun, trebuie să folosești funcțiile native ale XGBoost, incompatibile cu scikit-learn, precum xgb.train().

Pentru a face acest lucru, trebuie să creezi un dicționar de parametri care descrie tipul de booster pe care vrei să îl folosești (similar cu dicționarul creat în Capitolul 1 când ai folosit xgb.cv()). Perechea cheie-valoare care definește tipul de booster (modelul de bază) de care ai nevoie este "booster":"gblinear".

Odată ce ai creat modelul, poți folosi metodele .train() și .predict() exact ca până acum.

Datele au fost deja împărțite în seturi de antrenament și de testare, așa că poți trece direct la crearea obiectelor DMatrix necesare API-ului de antrenare al XGBoost.

Acest exercițiu face parte din cursul

Gradient Boosting Extrem cu XGBoost

Vezi cursul

Instrucțiuni pentru exercițiu

  • Creează două obiecte DMatrixDM_train pentru setul de antrenament (X_train și y_train) și DM_test (X_test și y_test) pentru setul de testare.
  • Creează un dicționar de parametri care definește tipul de "booster" pe care îl vei folosi ("gblinear"), precum și "objective"-ul pe care îl vei minimiza ("reg:squarederror").
  • Antrenează modelul folosind xgb.train(). Trebuie să specifici argumente pentru următorii parametri: params, dtrain și num_boost_round. Folosește 5 runde de boosting.
  • Prezice etichetele pe setul de testare folosind xg_reg.predict(), pasând DM_test. Atribuie rezultatul variabilei preds.
  • Apasă Trimite răspunsul pentru a vedea RMSE-ul!

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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))
Editează și rulează codul