如何使用 MOE 调整机器学习超参数?
How to tune machine learning hyperparameters using MOE?
我正在尝试使用 MOE,在 Yelp 创建的 "Metric Optimization Engine",来调整机器学习算法的超参数。他们的文档有点有限,我很难找到可以遵循的示例。
假设我想根据以下分布为 Support Vector Machine 找到 C
、Gamma
和 kernel 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"},
],
},
]
我试图最大化的 objective 函数是我训练集的 accuracy score。
我如何使用 MOE's api 完成此操作?
MOE 不支持分类变量,它只允许连续的超参数。要实现您正在寻找的目标,您可以将每个分类实例视为一个单独的问题进行优化,然后使用 MOE examples 中概述的流程。最后,您可以从每种内核类型的调优模型中选择最佳模型。
或者,您可以使用由创建 MOE 的团队构建的 SigOpt。我们建立并扩展了 MOE 中开始的大量工作。它提供对连续、整数和分类参数的支持,以及 MOE 中没有的许多其他功能和增强功能。我们在 this blog post 中概述了这个确切的示例,在 post 中提供了示例代码。您可以在我们的免费试用层或我们的免费学术层中 运行 此示例。
我正在尝试使用 MOE,在 Yelp 创建的 "Metric Optimization Engine",来调整机器学习算法的超参数。他们的文档有点有限,我很难找到可以遵循的示例。
假设我想根据以下分布为 Support Vector Machine 找到 C
、Gamma
和 kernel 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"},
],
},
]
我试图最大化的 objective 函数是我训练集的 accuracy score。
我如何使用 MOE's api 完成此操作?
MOE 不支持分类变量,它只允许连续的超参数。要实现您正在寻找的目标,您可以将每个分类实例视为一个单独的问题进行优化,然后使用 MOE examples 中概述的流程。最后,您可以从每种内核类型的调优模型中选择最佳模型。
或者,您可以使用由创建 MOE 的团队构建的 SigOpt。我们建立并扩展了 MOE 中开始的大量工作。它提供对连续、整数和分类参数的支持,以及 MOE 中没有的许多其他功能和增强功能。我们在 this blog post 中概述了这个确切的示例,在 post 中提供了示例代码。您可以在我们的免费试用层或我们的免费学术层中 运行 此示例。