Dalam bidang pembelajaran mesin dan pembelajaran mendalam, pengoptimuman hiperparameter adalah sangat penting. Dengan menala hiperparameter model dengan teliti, prestasi model dan keupayaan generalisasi boleh dipertingkatkan.
Walau bagaimanapun, penalaan hiperparameter secara manual adalah tugas yang memakan masa dan membosankan, jadi pengoptimuman hiperparameter automatik telah menjadi pendekatan biasa untuk menyelesaikan masalah ini.
Dalam Python, Optuna ialah rangka kerja pengoptimuman hiperparameter popular yang menyediakan cara mudah dan berkuasa untuk mengoptimumkan hiperparameter model.
Optuna ialah rangka kerja pengoptimuman hiperparameter berasaskan Python yang menggunakan kaedah yang dipanggil "Pengoptimuman Berasaskan Model Berjujukan (SMBO)" untuk mencari ruang hiperparameter.
Idea utama Optuna adalah untuk mengubah pengoptimuman hiperparameter kepada masalah pengoptimuman kotak hitam. Nilaikan prestasi gabungan hiperparameter yang berbeza untuk mencari gabungan hiperparameter yang terbaik.
Ciri utama Optuna termasuk:
Optuna boleh digunakan pada pelbagai pembelajaran mesin dan tugas pembelajaran mendalam, termasuk tetapi tidak terhad kepada:
Dalam bahagian seterusnya, kami akan menunjukkan cara menggunakan Optuna untuk pengoptimuman hiperparameter melalui kes kod Python yang mudah.
Dalam contoh ini, kami akan menggunakan Optuna untuk mengoptimumkan hiperparameter model Mesin Vektor Sokongan (SVM) ringkas.
Kami akan menggunakan Optuna untuk mencari parameter C dan gamma terbaik untuk memaksimumkan ketepatan model SVM pada set data bunga iris.
Mula-mula, kita perlu memasang perpustakaan Optuna:
pip install optuna
Seterusnya, kita boleh menulis kod Python berikut:
import optunafrom sklearn import datasetsfrom sklearn.model_selection import train_test_splitfrom sklearn.svm import SVCfrom sklearn.metrics import accuracy_score# 加载鸢尾花数据集iris = datasets.load_iris()X = iris.datay = iris.target# 划分训练集和测试集X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)def objective(trial):# 定义超参数搜索空间C = trial.suggest_loguniform('C', 1e-5, 1e5)gamma = trial.suggest_loguniform('gamma', 1e-5, 1e5)# 训练SVM模型model = SVC(C=C, gamma=gamma)model.fit(X_train, y_train)# 预测并计算准确率y_pred = model.predict(X_test)accuracy = accuracy_score(y_test, y_pred)return accuracystudy = optuna.create_study(direction='maximize')study.optimize(objective, n_trials=100)best_params = study.best_paramsbest_accuracy = study.best_valueprint("Best params:", best_params)print("Best accuracy:", best_accuracy)
Dalam kod ini, kita mula-mula memuatkan set data bunga iris dan membahagikannya kepada set latihan dan set ujian. Kemudian, kami mentakrifkan objektif fungsi objektif, di mana kami menggunakan kaedah trial.suggest_loguniform untuk mentakrifkan ruang carian C dan gamma.
Dalam fungsi objektif, kami melatih model SVM dan mengira ketepatan pada set ujian sebagai matlamat pengoptimuman.
Akhir sekali, kami menggunakan kaedah create_study Optuna untuk mencipta objek Kajian dan memanggil kaedah pengoptimuman untuk menjalankan pengoptimuman hiperparameter.
Dalam artikel ini, kami memperkenalkan konsep asas dan senario aplikasi rangka kerja pengoptimuman hiperparameter Optuna, dan menunjukkan cara menggunakan Optuna untuk pengoptimuman hiperparameter melalui kes kod Python yang ringkas.
Optuna menyediakan kaedah mudah dan berkuasa untuk mengoptimumkan hiperparameter model, membantu pengguna meningkatkan prestasi dan keupayaan generalisasi model. Jika anda sedang mencari alat pengoptimuman hiperparameter yang cekap, cuba Optuna.
Atas ialah kandungan terperinci Ucapkan selamat tinggal kepada penalaan parameter manual yang membosankan, Optuna membantu anda mencapai pengoptimuman hiperparameter dengan mudah!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!