我正在尝试使用Yelp开发的MOE(“指标优化引擎”)来调整机器学习算法的超参数。他们的文档有些有限,我很难找到可以参考的例子。
假设我想为支持向量机找到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"}, ], },]
我试图最大化的目标函数是我的训练集的准确率得分。
我该如何使用MOE的API来实现这一点?
回答:
MOE不支持分类变量,它只允许连续的超参数。要实现你想要的效果,你可以将每个分类实例视为一个独立的问题进行优化,然后使用MOE示例中概述的流程。最后,你可以从每个内核类型的调整模型中选择最佳模型。
或者,你可以使用由创建MOE的团队开发的SigOpt。我们在MOE的基础上进行了扩展和改进。它支持连续、整数和分类参数,以及MOE中没有的许多其他功能和增强。我们在这篇博客文章中详细介绍了这个例子,并在文章中提供了示例代码。你可以在我们的免费试用层或免费学术层中运行这个例子。