Skip to main content

用于 ML 模型的超参数优化的库

项目描述

该软件包提供了几种黑盒优化方法的实现,以调整机器学习模型的超参数。其目的是使数据科学家能够使用优化技术进行快速原型设计。只需导入 OptML 并为其提供模型和要优化的参数。

OptML 为使用 Scikit-Learn、Keras、XGBoost(希望很快 Statsmodels)构建的模型提供统一的接口。

先决条件

此软件包需要 scikit-learn 0.19.0 或更高版本。如果尚未安装 Scikit-Learn,请运行pip install scikit-learn==0.19.0。如果您想使用 HyperoptOptimizer,那么您还需要安装 hyperopt(例如通过pip install hyperopt)。

当然,为了与 Keras 和 XGBoost 模型一起运行,这些必须安装。

安装

如果 Scikit-Learn 是 0.19 或更高版本,只需使用pip install optml 安装 optml即可。

用法

指定您的 ML 模型和要优化的参数。对于参数,您必须选择类型(例如整数、分类、布尔值等)及其可以采用的值范围。

model = SomeMLModel()
params = [Parameter(name='param1', param_type='continuous', lower=0.1, upper=5),
          Parameter(name='param2', param_type='integer', lower=1, upper=5),
          Parameter(name='param3', param_type='categorical', possible_values=['val1','val2','val3'])]

然后定义评估函数。这可以是任何东西,从 RMSE 到交叉熵再到自定义函数。评估函数的第一个参数是真实标签数组,第二个参数是模型预测数组。

def clf_score(y_true,y_pred):
    return np.sum(y_true==y_pred)/float(len(y_true))

导入并初始化优化器并针对一些训练数据优化模型。

from optml.bayesian_optimizer import BayesianOptimizer
bayesOpt = BayesianOptimizer(model=model,
                             hyperparams=params,
                             eval_func=clf_score)
bayes_best_params, bayes_best_model = bayesOpt.fit(X_train=X_train, y_train=y_train, n_iters=50)

特征

目前这个库包括: * 随机搜索 * 并行网格搜索 * 一个简单的遗传算法 * 贝叶斯优化(也支持分类参数) * Hyperopt(使用 hyperopt

如何选择优化器

OptML 实施了几种优化方法来解决数据科学问题中可能出现的一系列要求。其中一个主要问题是评估一组参数的模型所需的工作量:如果一个模型需要很长时间来训练,我们应该选择一个优化器,以最大限度地提高每组新参数的潜在改进。在这种情况下,贝叶斯优化和 Hyperopt 更适用。如果一个模型的训练成本很低,那么我们可以寻求并行化评估。

还要考虑参数的数量及其范围。显然,在大搜索空间上进行优化更加困难。如果期望改进最终模型,建议仅在优化中包含参数。

另请注意,OptML 的所有优化器都需要有界的参数。

评价次数

适用于大搜索空间

可以并行使用训练

处理分类参数

随机优化

网格搜索

高的

是的

是的

随机搜索

高的

是的

是的

是的

是的

遗传算法

高的

是的

未实现

是的

是的

贝叶斯优化器

低的

是的

未实现

是的

是的

超光速

低的

是的

是的

是的

是的

待办事项

  1. 算法:

  • 为遗传算法实现更多选项

  • 元启发式/群体优化

  1. 功能性

  • 如果在 x 次迭代后没有显着改善,则提前停止

  1. 可用性

  • 更好的文档

作者

执照

该项目在 MIT 许可下获得许可 - 请参阅LICENSE.md文件了解详细信息

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

optml-0.2.3.tar.gz (21.8 kB 查看哈希

已上传 source