超参数优化框架

optuna的Python项目详细描述


optuna:一个超参数优化框架

pypiGitHub licenseCircleCIRead the DocsCodecov

Website |Docs |Install Guide |Tutorial

optuna是一个自动超参数优化软件框架,特别是 用于机器学习。它具有一个命令式的define by run样式的用户api。感谢我们 define by runapi,使用optuna编写的代码具有很高的模块性,并且 optuna可以动态地构造超参数的搜索空间。

主要功能

Optuna具有以下现代功能:

  • 并行分布式优化
  • 删减没有希望的试验
  • 轻量级、多用途和平台无关的体系结构

基本概念

我们使用术语studytrial如下:

  • 研究:基于目标函数的优化
  • 试验:单次执行目标函数

请参考下面的示例代码。一项研究的目标是找出 通过多次试验得出的超参数值(例如classifiersvm_c)(例如, n_trials=100)。Optuna是为自动化和加速 优化研究

import...# Define an objective function to be minimized.defobjective(trial):# Invoke suggest methods of a Trial object to generate hyperparameters.regressor_name=trial.suggest_categorical('classifier',['SVR','RandomForest'])ifregressor_name=='SVR':svr_c=trial.suggest_loguniform('svr_c',1e-10,1e10)regressor_obj=sklearn.svm.SVR(C=svr_c)else:rf_max_depth=trial.suggest_int('rf_max_depth',2,32)regressor_obj=sklearn.ensemble.RandomForestRegressor(max_depth=rf_max_depth)X,y=sklearn.datasets.load_boston(return_X_y=True)X_train,X_val,y_train,y_val=sklearn.model_selection.train_test_split(X,y,random_state=0)regressor_obj.fit(X_train,y_train)y_pred=regressor_obj.predict(X_val)error=sklearn.metrics.mean_squared_error(y_val,y_pred)returnerror# 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.

安装

要安装Optuna,请按如下方式使用pip

$ pip install optuna

Optuna支持Python2.7和Python3.5或更新版本。

贡献

欢迎对Optuna的任何贡献!当您发送拉取请求时,请按照 contribution guide

许可证

麻省理工学院许可证(见LICENSE)。

参考

Takuya Akiba、Shotaro Sano、Toshihiko Yanase、Takeru Ohta和Masanori Koyama。2019年。 optuna:下一代超参数优化框架。在kdd中(出现)。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java类。getResource和ClassLoader。getSystemResource:有没有理由选择其中一个而不是另一个?   在Java中以编程方式粘贴后恢复剪贴板   Java字符串到日期没有时间   JavaSpring注释:@Component起作用,@Repository不起作用   java“addScript”在HSQL中是否有最大记录计数?   java如何将值从JDialog框返回到父JFrame?   java我的模块库的用户有没有办法访问尚未导出的类?   java javac:未找到命令   java如何解决jsoup错误:无法找到请求目标的有效证书路径   类中的java作用域变量   Java中集合实现中的arraylist add()方法不起作用   java如何使用while循环和从用户接收输入来近似Pi?   java Spring安全CSRF培训模式   在安卓系统中,如何通过在警报框外单击来限制用户?