Hyperopt 入门
Hyperopt 的作用是找到一个标量值、可能具有随机性的函数在其可能参数集合上的最优值。
虽然许多优化包假设这些输入来自向量空间,但 Hyperopt 的不同之处在于它鼓励您更详细地描述您的搜索空间。通过提供关于函数定义位置以及您认为最优值所在位置的更多信息,您可以让 hyperopt 中的算法更有效地搜索。
使用 hyperopt 的方法是描述
- 要最小化的目标函数
- 要搜索的空间
- 存储所有搜索点评估结果的数据库
- 要使用的搜索算法
这个(最基本)教程将介绍如何编写函数和搜索空间,使用默认的 Trials
数据库和虚拟的 rand
(随机)搜索算法。第一部分 (1) 介绍目标函数与 hyperopt 之间通信的不同调用约定。第二部分 (2) 介绍如何描述搜索空间。
当用 MongoTrials
替换 Trials
数据库时,可以进行并行搜索;有一个关于使用 mongodb 进行并行搜索主题的另一篇 wiki 页面。
选择搜索算法就像传入 algo=hyperopt.tpe.suggest
而不是 algo=hyperopt.rand.suggest
一样简单。搜索算法实际上是可调用对象,它们的构造函数接受配置参数,但关于选择搜索算法的机制,也就仅限于此了。