我正在尝试使用MOE(在Yelp中创建的“度量优化引擎”)调整机器学习算法的超参数。他们的文档有点有限,我很难找到要遵循的示例。
假设我想根据以下分布找到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"},
],
},
]
我要最大化的目标函数是训练集的accuracy score。
如何使用MOE's api完成此操作?
最佳答案
MOE不支持分类变量,它仅允许连续的超参数。要实现您想要的目标,可以将每个分类实例作为一个单独的问题进行优化,然后使用MOE examples中概述的流程。最后,您可以从每种内核类型的优化模型中选择最佳模型。
或者,您可以使用由创建MOE的团队构建的SigOpt。我们基于并扩展了MOE中开始的许多工作。它提供对连续,整数和分类参数的支持,以及MOE中未提供的许多其他功能和增强功能。我们在this blog post中概述了这个确切的示例,并提供了示例代码。您可以在我们的免费试用层或我们的免费学术层中运行此示例。
关于machine-learning - 如何使用MOE调整机器学习超参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33205228/