Kom igångKom igång gratis

Bayesiansk hyperparameterjustering med Hyperopt

I den här övningen ska du konfigurera och köra en bayesiansk hyperparameteroptimering med paketet Hyperopt (redan importerat som hp). Du definierar domänen (vilket liknar att sätta upp ett rutnät för grid search), sedan målfunktionen. Slutligen kör du optimeraren i 20 iterationer.

Du behöver konfigurera domänen med följande värden:

  • max_depth med quniform-fördelning (mellan 2 och 10, med steg om 2)
  • learning_rate med uniform-fördelning (0,001 till 0,9)

Observera att datamängden, antalet Hyperopt-iterationer och GBM-iterationer har reducerats i den här övningen. Om du provar metoden på egen hand, använd ett större sökutrymme, fler försök, fler korsvalideringar och en större datamängd för att verkligen se den i action!

Den här övningen är en del av kursen

Hyperparameterjustering i Python

Visa kurs

Övningsinstruktioner

  • Skapa ett space-lexikon med domänen som beskrivs ovan.
  • Konfigurera målfunktionen med en gradient boosting-klassificerare.
  • Kör algoritmen i 20 utvärderingar (använd standardalgoritmen som visas i slides).

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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(____)
Redigera och kör kod