Dans le domaine du machine learning et du deep learning, l'optimisation des hyperparamètres est très importante. En ajustant soigneusement les hyperparamètres du modèle, les performances et la capacité de généralisation du modèle peuvent être améliorées.
Cependant, le réglage manuel des hyperparamètres est une tâche longue et fastidieuse, c'est pourquoi l'optimisation automatisée des hyperparamètres est devenue une approche courante pour résoudre ce problème.
En Python, Optuna est un framework d'optimisation d'hyperparamètres populaire qui fournit un moyen simple et puissant d'optimiser les hyperparamètres d'un modèle.
Optuna est un framework d'optimisation d'hyperparamètres basé sur Python qui utilise une méthode appelée « Optimisation basée sur un modèle séquentiel (SMBO) » pour rechercher dans l'espace des hyperparamètres.
L'idée principale d'Optuna est de transformer l'optimisation des hyperparamètres en un problème d'optimisation en boîte noire. Évaluez les performances de différentes combinaisons d’hyperparamètres pour trouver la meilleure combinaison d’hyperparamètres.
Les principales fonctionnalités d'Optuna incluent :
Optuna peut être appliqué à diverses tâches d'apprentissage automatique et d'apprentissage profond, y compris, mais sans s'y limiter :
Dans la section suivante, nous montrerons comment utiliser Optuna pour l'optimisation des hyperparamètres à travers un simple cas de code Python.
Dans cet exemple, nous utiliserons Optuna pour optimiser les hyperparamètres d'un modèle simple de machine à vecteurs de support (SVM).
Nous utiliserons Optuna pour rechercher les meilleurs paramètres C et gamma afin de maximiser la précision du modèle SVM sur l'ensemble de données de fleurs d'iris.
Tout d'abord, nous devons installer la bibliothèque Optuna :
pip install optuna
Ensuite, nous pouvons écrire le code Python suivant :
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)
Dans ce code, nous chargeons d'abord l'ensemble de données de fleurs d'iris et le divisons en ensemble d'entraînement et ensemble d'essai. Ensuite, nous définissons une fonction objective objective, où nous utilisons la méthode trial.suggest_loguniform pour définir l'espace de recherche de C et gamma.
Dans la fonction objectif, nous avons formé un modèle SVM et calculé la précision sur l'ensemble de test comme objectif d'optimisation.
Enfin, nous utilisons la méthode create_study d'Optuna pour créer un objet Study et appelons la méthode d'optimisation pour exécuter l'optimisation des hyperparamètres.
Dans cet article, nous avons présenté les concepts de base et les scénarios d'application du cadre d'optimisation des hyperparamètres Optuna, et avons démontré comment utiliser Optuna pour l'optimisation des hyperparamètres à travers un simple cas de code Python.
Optuna fournit une méthode simple et puissante pour optimiser les hyperparamètres du modèle, aidant les utilisateurs à améliorer les performances et la capacité de généralisation du modèle. Si vous recherchez un outil d'optimisation d'hyperparamètres efficace, essayez Optuna.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!