MulaiMulai sekarang secara gratis

Penyetelan Hyperparameter Bayesian dengan Hyperopt

Dalam contoh ini Anda akan menyiapkan dan menjalankan proses optimasi hyperparameter berbasis Bayesian menggunakan paket Hyperopt (sudah diimpor sebagai hp). Anda akan menyiapkan domain (mirip dengan menyiapkan grid untuk grid search), kemudian menyiapkan fungsi objektif. Terakhir, Anda akan menjalankan optimizer selama 20 iterasi.

Anda perlu menyiapkan domain dengan nilai:

  • max_depth menggunakan distribusi quniform (antara 2 dan 10, bertambah 2)
  • learning_rate menggunakan distribusi uniform (0,001 hingga 0,9)

Perhatikan bahwa untuk keperluan latihan ini, ukuran sampel data serta jumlah iterasi hyperopt dan GBM telah dikurangi. Jika Anda mencoba metode ini sendiri di mesin Anda, cobalah ruang pencarian yang lebih besar, lebih banyak percobaan, lebih banyak CV, dan ukuran himpunan data yang lebih besar agar benar-benar melihatnya beraksi!

Latihan ini adalah bagian dari kursus

Penyetelan Hyperparameter di Python

Lihat Kursus

Petunjuk latihan

  • Siapkan dictionary space menggunakan domain yang disebutkan di atas.
  • Siapkan fungsi objektif menggunakan gradient boosting classifier.
  • Jalankan algoritme untuk 20 evaluasi (gunakan saja algoritme default yang disarankan pada slide).

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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(____)
Edit dan Jalankan Kode