IniziaInizia gratis

Tuning bayesiano degli iperparametri con Hyperopt

In questo esempio imposterai ed eseguirai un processo di ottimizzazione bayesiana degli iperparametri usando il pacchetto Hyperopt (già importato come hp). Imposterai il dominio (simile all'impostazione della griglia in una grid search), poi definirai la funzione obiettivo. Infine, eseguirai l'ottimizzatore per 20 iterazioni.

Dovrai definire il dominio usando i valori:

  • max_depth usando una distribuzione quniform (tra 2 e 10, con passo 2)
  • learning_rate usando una distribuzione uniform (da 0.001 a 0.9)

Nota che, per questo esercizio, il processo è stato ridotto nella dimensione del campione di dati e nelle iterazioni di hyperopt e del GBM. Se provi questo metodo in autonomia sulla tua macchina, usa uno spazio di ricerca più ampio, più prove, più CV e un insieme di dati più grande per vederlo davvero all'opera!

Questo esercizio fa parte del corso

Ottimizzazione degli iperparametri in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Definisci un dizionario space usando il dominio indicato sopra.
  • Definisci la funzione obiettivo usando un classificatore gradient boosting.
  • Esegui l'algoritmo per 20 valutazioni (usa semplicemente l'algoritmo predefinito consigliato nelle diapositive).

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Set up space dictionary with specified hyperparameters
space = {'max_depth': hp.____('max_depth', ____, ____, ____),'learning_rate': hp.____('learning_rate', ____,____)}

# Set up objective function
def objective(params):
    params = {'max_depth': int(params[____]),'learning_rate': params[____]}
    gbm_clf = ____(n_estimators=100, **params) 
    best_score = cross_val_score(gbm_clf, X_train, y_train, scoring='accuracy', cv=2, n_jobs=4).mean()
    loss = 1 - ____
    return ____

# Run the algorithm
best = fmin(fn=____,space=space, max_evals=____, rstate=np.random.default_rng(42), algo=tpe.suggest)
print(____)
Modifica ed esegui il codice