网页 | 文档 | 安装向导 | 教程
Optuna是一种自动超参数优化软件框架,专为机器学习而设计。 它具有一个命令式的、按运行方式定义的用户API。由于我们的运行API定义,使用Optuna编写的代码具有很高的模块性,Optuna的用户可以动态构建超参数的搜索空间。
Optuna具有如下现代化的功能:
并行分布式优化
修剪没有希望的试验
Web仪表板
我们使用的术语研究 和试验 如下:
研究:基于目标函数的优化
试验:单个执行目标函数
请参阅下面的示例代码。 研究 的目的是通过多次试验(例如,n_trials = 100)找出最佳的超参数值集(例如,分类器和svm_c)。 Optuna是一个专为自动化和加速优化研究 而设计的框架。
import ...
# Define an objective function to be minimized.def
objective(trial):
# Invoke suggest methods of a Trial object to generate hyperparameters.
classifier_name = trial.suggest_categorical('classifier', ['SVC', 'RandomForest'])
if classifier_name == 'SVC':
svc_c = trial.suggest_loguniform('svc_c', 1e-10, 1e10)
classifier_obj = sklearn.svm.SVC(C=svc_c)
else:
rf_max_depth = trial.suggest_int('rf_max_depth', 2, 32)
classifier_obj = sklearn.ensemble.RandomForestClassifier(max_depth=rf_max_depth)
iris = sklearn.datasets.load_iris()
x, y = iris.data , iris.target
score = sklearn.model_selection.cross_val_score(classifier_obj , x, y)
accuracy = score.mean()
return 1.0 - accuracy # A objective value linked with the Trial object.
study = optuna.create_study() # Create a new study.
study.optimize(objective , n_trials=100) # Invoke optimization of the objective function.
用以下的pip命令安装Optuna
$ pip install optuna
Optuna支持Python 2.7、Python 3.5或更新版本
欢迎任何对Optuna的贡献! 当您在发送拉取请求时,请按照贡献指南进行操作。
MIT License (查看 LICENSE).
【AI求职百题斩 - 每日一题】
赶紧来看看今天的题目吧!
想知道正确答案?
点击公众号菜单栏【每日一题】→【每日一题】或在公众号回复“0122”即可答题获取!
点击阅读原文,查看更多内容