Hyperopt

1.简介

Hyperopt是一个python库,结合MongoDB可以进行分布式调参,快速找到相对较优的参数。安装的时候需要指定dev版本才能使用模拟退火调参,也支持暴力调参、随机调参等策略。

2.Win7安装

  • 软件
    • MongoDB 地址
    • Hyperopt 地址
  • 安装
    • MongoDB一路默认安装即可
    • Hyperopt先进行解压,然后通过命令 python setup.py install

3.Linux服务器安装

  • 软件

    • Hyperopt 同上
    • MongoDB 地址 如果读者用的是Ubuntu或者其他版本可以在官网上下载,然后下面的命令注意改下文件名。MongoDB官网

    • 注:在运行下面的示例时,我这边报错了(no moudle named networkx),不一定都会遇到,如果遇到了,可以通过pip install networkx解决即可

  • 安装

    • Hyperopt安装同上
    • MongoDB先解压,然后在目录下输入如下命令(PS:似乎直接用pip install pymongo也可以)
(cd bin && { for F in ../mongodb-linux-x86_64-3.2.7/bin/* ; do echo "linking $F" ; ln -s $F ; done } )

4.简单使用

# define an objective function
def objective(args):
    case, val = args
    if case == 'case 1':
        return val
    else:
        return val ** 2

# define a search space
from hyperopt import hp
space = hp.choice('a',
    [
        ('case 1', 1 + hp.lognormal('c1', 0, 1)),
        ('case 2', hp.uniform('c2', -10, 10))
    ])

# minimize the objective over the space
from hyperopt import fmin, tpe
best = fmin(objective, space, algo=tpe.suggest, max_evals=100)

print best
# -> {'a': 1, 'c2': 0.01420615366247227}
import hyperopt
print hyperopt.space_eval(space, best)
# -> ('case 2', 0.01420615366247227}

5.更多官方文档链接

  • https://github.com/hyperopt
  • http://fastml.com/optimizing-hyperparams-with-hyperopt/
  • https://github.com/hyperopt/hyperopt/wiki/FMin

你可能感兴趣的:(数据挖掘,机器学习,Hyperopt,调参)