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
Instrucțiuni pentru exercițiu
- Creează două obiecte
DMatrix–DM_trainpentru setul de antrenament (X_trainșiy_train) șiDM_test(X_testșiy_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șinum_boost_round. Folosește5runde de boosting. - Prezice etichetele pe setul de testare folosind
xg_reg.predict(), pasândDM_test. Atribuie rezultatul variabileipreds. - 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))