IniziaInizia gratis

Ottimizzare max_depth

In questo esercizio il tuo compito è ottimizzare max_depth, il parametro che definisce la profondità massima a cui può crescere ciascun albero in un round di boosting. Valori più piccoli producono alberi più superficiali, valori più grandi alberi più profondi.

Questo esercizio fa parte del corso

Extreme Gradient Boosting con XGBoost

Visualizza il corso

Istruzioni dell'esercizio

  • Crea una lista chiamata max_depths per memorizzare i seguenti valori di "max_depth": 2, 5, 10 e 20.
  • Itera sulla lista max_depths usando un ciclo for.
  • Varia in modo sistematico "max_depth" a ogni iterazione del ciclo for ed esegui una cross-validation a 2 fold con early stopping (5 round), 10 round di boosting, metrica "rmse" e seed pari a 123. Assicurati che l'output sia un DataFrame.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Create your housing DMatrix
housing_dmatrix = xgb.DMatrix(data=X,label=y)

# Create the parameter dictionary
params = {"objective":"reg:squarederror"}

# Create list of max_depth values
max_depths = ____
best_rmse = []

# Systematically vary the max_depth
for curr_val in ____:

    params["____"] = ____
    
    # Perform cross-validation
    cv_results = ____
    
    
    
    # Append the final round rmse to best_rmse
    best_rmse.append(cv_results["test-rmse-mean"].tail().values[-1])

# Print the resultant DataFrame
print(pd.DataFrame(list(zip(max_depths, best_rmse)),columns=["max_depth","best_rmse"]))
Modifica ed esegui il codice