IniziaInizia gratis

Apprenditori lineari di base

Ora che hai usato gli alberi come modelli di base in XGBoost, proviamo l’altro tipo di modello di base utilizzabile con XGBoost: un learner lineare. Questo modello, anche se meno usato in XGBoost, ti permette di creare una regressione lineare regolarizzata sfruttando la potente API di apprendimento di XGBoost. Tuttavia, proprio perché è meno comune, per costruirlo devi usare le funzioni native di XGBoost non compatibili con scikit-learn, come xgb.train().

Per farlo devi creare il dizionario dei parametri che descrive il tipo di booster che vuoi usare (in modo analogo a come hai creato il dizionario nel Capitolo 1 quando hai usato xgb.cv()). La coppia chiave-valore che definisce il tipo di booster (modello di base) di cui hai bisogno è "booster":"gblinear".

Dopo aver creato il modello, puoi usare i metodi .train() e .predict() del modello proprio come hai fatto in passato.

Qui i dati sono già stati suddivisi in insieme di addestramento e di test, quindi puoi passare subito a creare gli oggetti DMatrix richiesti dalla learning API di XGBoost.

Questo esercizio fa parte del corso

Extreme Gradient Boosting con XGBoost

Visualizza il corso

Istruzioni dell'esercizio

  • Crea due oggetti DMatrix: DM_train per il training set (X_train e y_train) e DM_test (X_test e y_test) per il test set.
  • Crea un dizionario di parametri che definisca il tipo di "booster" che userai ("gblinear") e l'"objective" che minimizzerai ("reg:squarederror").
  • Addestra il modello usando xgb.train(). Devi specificare gli argomenti per i seguenti parametri: params, dtrain e num_boost_round. Usa 5 round di boosting.
  • Predici le etichette sul test set usando xg_reg.predict(), passandogli DM_test. Assegna a preds.
  • Premi "Invia risposta" per visualizzare l'RMSE!

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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))
Modifica ed esegui il codice