Optimisasi Bayesian dengan Optuna
optuna.create_study(), suggest_float/int/categorical, pemangkasan, dan visualisasi.
Optimisasi Bayesian dengan Optuna adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.
Lebih Cerdas daripada Pencarian Acak
Pencarian kisi dan acak mengabaikan hasil sebelumnya. Optimisasi Bayesian belajar dari percobaan sebelumnya untuk mengusulkan hiperparameter yang lebih menjanjikan berikutnya, sehingga menemukan nilai yang baik dengan lebih sedikit evaluasi.
Yang Dilakukan Optuna
Optuna adalah kerangka kerja populer untuk optimisasi hiperparameter. Anda mendefinisikan fungsi objektif; Optuna mengambil sampel hiperparameter secara cerdas dan mengingat hal-hal yang berhasil.
Membuat Studi
Sebuah studi mengelola proses optimisasi. Atur direction ke "maximize" untuk akurasi/AUC atau ke "minimize" untuk kerugian/kesalahan.
import optuna
study = optuna.create_study(direction="maximize")Fungsi Objektif
Objektif menerima objek trial, menyarankan hiperparameter, melatih model, lalu mengembalikan skor yang akan dioptimalkan.
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score
def objective(trial):
n = trial.suggest_int("n_estimators", 100, 500)
d = trial.suggest_int("max_depth", 3, 20)
clf = RandomForestClassifier(n_estimators=n, max_depth=d)
return cross_val_score(clf, X, y, cv=3).mean()Menyarankan Parameter Bilangan Bulat
trial.suggest_int(name, low, high) memilih bilangan bulat dalam suatu rentang. Tambahkan step atau log=True untuk mengendalikan pengambilan sampel.
def objective(trial):
n_estimators = trial.suggest_int("n_estimators", 100, 1000, step=50)
return train_and_score(n_estimators)Menyarankan Parameter Bilangan Riil
trial.suggest_float(name, low, high) memilih bilangan riil. Gunakan log=True untuk parameter seperti laju pembelajaran yang mencakup beberapa orde besaran.
def objective(trial):
lr = trial.suggest_float("learning_rate", 1e-4, 0.3, log=True)
subsample = trial.suggest_float("subsample", 0.5, 1.0)
return train_and_score(lr, subsample)Menyarankan Parameter Kategorikal
trial.suggest_categorical(name, choices) memilih dari daftar tetap, cocok untuk opsi seperti jenis kernel atau metode peningkatan.
def objective(trial):
kernel = trial.suggest_categorical("kernel", ["linear", "rbf", "poly"])
return train_svm(kernel)Menjalankan Optimisasi
study.optimize(objective, n_trials=N) menjalankan pencarian selama N percobaan. Lebih banyak percobaan menjelajahi lebih banyak bagian ruang; seiring waktu, Optuna berfokus pada wilayah yang menjanjikan.
study.optimize(objective, n_trials=100)Membaca Hasil Terbaik
Setelah optimisasi, study.best_params memberikan hiperparameter terbaik dan study.best_value memberikan skor objektif terbaik.
print("Best params:", study.best_params)
print("Best value:", study.best_value)
best = RandomForestClassifier(**study.best_params)
best.fit(X, y)Memangkas Percobaan yang Tidak Menjanjikan
Optuna dapat menghentikan percobaan yang buruk lebih awal menggunakan pemangkas, sehingga menghemat komputasi. Laporkan nilai perantara dan periksa trial.should_prune() di dalam perulangan pelatihan.
import optuna
study = optuna.create_study(
direction="maximize",
pruner=optuna.pruners.MedianPruner(),
)Mengapa Optuna Dapat Diskalakan
Optuna mendukung percobaan paralel, penyimpanan permanen, dan visualisasi pencarian. Untuk model yang mahal, pendekatan Bayesian yang hemat sampel ini menemukan konfigurasi yang kuat dengan jauh lebih sedikit percobaan dibandingkan pencarian kisi atau acak.
Pemeriksaan Singkat
Uji pengetahuan Anda tentang Optuna.
Ringkasan
Ringkasan: Optuna menggunakan optimisasi Bayesian untuk menyetel hiperparameter secara efisien. Buat studi dengan direction, tulis objektif yang menggunakan trial.suggest_int/float/categorical, jalankan study.optimize(objective, n_trials=N), lalu baca study.best_params dan study.best_value. Pemangkas menghentikan percobaan yang lemah untuk menghemat komputasi.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Optimisasi Bayesian dengan Optuna” gratis?
Ya — teks lengkap “Optimisasi Bayesian dengan Optuna” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Optimisasi Bayesian dengan Optuna”?
optuna.create_study(), suggest_float/int/categorical, pemangkasan, dan visualisasi. Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Learn AI with Python?
Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Optimisasi Bayesian dengan Optuna” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?
Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Strategi Validasi Silang
- Pendalaman Metrik Klasifikasi
- Pencarian Grid dan Pencarian Acak
- Optimisasi Bayesian dengan Optuna