如何使用 MOE 调整机器学习超参数?

Posted

技术标签:

【中文标题】如何使用 MOE 调整机器学习超参数?【英文标题】:How to tune machine learning hyperparameters using MOE? 【发布时间】:2016-01-17 06:11:11 【问题描述】:

我正在尝试使用在 Yelp 创建的“度量优化引擎”MOE 来调整机器学习算法的超参数。他们的文档有点有限,我很难找到可以遵循的示例。

假设我想根据以下分布为Support Vector Machine 找到CGammakernel type 的最佳值:

SVC_PARAMS = [
    
        "bounds": 
            "max": 10.0,
            "min": 0.01,
        ,
        "name": "C",
        "type": "double",
        "transformation": "log",
    ,
    
        "bounds": 
            "max": 1.0,
            "min": 0.0001,
        ,
        "name": "gamma",
        "type": "double",
        "transformation": "log",
    ,
    
        "type": "categorical",
        "name": "kernel",
        "categorical_values": [
            "name": "rbf",
            "name": "poly",
            "name": "sigmoid",
        ],
    ,
]

我试图最大化的目标函数是我的训练集的accuracy score。

我将如何使用MOE's api 完成此操作?

【问题讨论】:

【参考方案1】:

MOE 不支持分类变量,它只允许连续的超参数。要实现您正在寻找的内容,您可以将每个分类实例视为一个单独的问题进行优化,然后使用MOE examples 中概述的流程。最后,您可以从每种内核类型的调整模型中选择最佳模型。

或者,您可以使用由创建 MOE 的团队构建的 SigOpt。我们建立并扩展了 MOE 中开始的许多工作。它支持连续、整数和分类参数,以及 MOE 中没有的许多其他功能和增强功能。我们在this blog post 中概述了这个确切的示例,并在帖子中提供了示例代码。您可以在我们的免费试用层或我们的免费学术层中运行此示例。

【讨论】:

谢谢斯科特。参数示例取自您提到的那篇 SigOpt 博客文章。 感谢您的评论.. 但我仍然很好奇如何让 MOE 运行。我正在运行 docker,但我找不到如何定义目标函数、如何提供参数空间以及 Python 中的所有内容的方法。

以上是关于如何使用 MOE 调整机器学习超参数?的主要内容,如果未能解决你的问题,请参考以下文章

机器学习树模型预剪枝和后剪枝

Machine Learning 18 模型优化----算法调参

如何进行超参数调整?

机器学习数据集划分-训练集,验证集,测试集

Python 机器学习 | 超参数优化 黑盒(Black-Box)非凸优化技术实践

Python 机器学习 | 超参数优化 黑盒(Black-Box)非凸优化技术实践