开始使用 Hyperopt
Hyperopt 的工作是找到一个标量值的、可能是随机的函数在其可能的参数集上的最佳值。
虽然许多优化包会假设这些输入是从向量空间中抽取的,但 Hyperopt 的不同之处在于它鼓励你更详细地描述搜索空间。通过提供有关函数定义的位置以及你认为最佳值所在位置的更多信息,你可以让 hyperopt 中的算法更高效地进行搜索。
使用 Hyperopt 的方式是描述:
- 要最小化的目标函数
- 搜索的空间
- 存储搜索中所有点评估的数据库
- 要使用的搜索算法
本(最基础的)教程将介绍如何编写函数和搜索空间,使用默认的 Trials
数据库和虚拟的 rand
(随机)搜索算法。第 (1) 部分是关于目标函数与 hyperopt 之间通信的不同调用约定。第 (2) 部分是关于描述搜索空间。
当使用 MongoTrials
替换 Trials
数据库时,可以进行并行搜索;关于使用 MongoDB 进行并行搜索的详细信息,请参阅使用 MongoDB 进行并行搜索。
选择搜索算法就像传递 algo=hyperopt.tpe.suggest
而不是 algo=hyperopt.rand.suggest
一样简单。搜索算法实际上是可调用对象,其构造函数接受配置参数,但关于选择搜索算法的机制,这就是全部内容。