Hyperopt官方中文文档导读

在2017年的圣诞节前,翻译了有关HyperOpt的中文文档,这也时填补了空白,以此作为献给所有中国程序员,以及所有其他机器学习相关行业人员的圣诞礼物。圣诞快乐,各位。

更新

Hyperopt官方文档确实比较晦涩难懂,于是我最近补齐了原来挖的坑,Hyperopt的中文教程,同时还包括如何同时使用XGB,lightgbm与Hyperopt.很高兴看到也有其他人写过类似的东西.不过似乎写的都有点问题,最起码都没有Hyperopt与XGB,LGB中的自带交叉验证进行结合的方法,其实这个很简单,有个小技巧.详细请参考以下文章

个人测试,使用xgb或者lgb自带的交叉验证与hyperopt结合,性能要比与sklearn中的交叉验证结合速度快四到五倍(测试较少,具体差异需视情况而定).

扩展阅读:

HyperOpt中文文档导读

翻译的文档已经发布于github(官方授权翻译),请在我的项目Hyperopt_CN中的wiki查看相应文档.CSDN,知乎同步更新中.

HyperOpt中文版wiki文档内容包括以下内容:

下面是hyperopt的官网首页,作为对其的简单介绍

Hyperopt

在Python中进行分布式异步超参数优化

Font Tian translated this article on 22 December 2017

hyperopt 是一个Python库,可以用来寻找实数,离散值,条件维度等搜索空间的最佳值。

	# 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}
	print hyperopt.space_eval(space, best)
	# -> {'case 2', 0.01420615366247227}

算法

目前两种算法的实现:

  • 随机搜索
  • Tree of Parzen Estimators (TPE)

Hyperopt 设计伊始,是包括基于高斯过程与回归树的贝叶斯优化算法的,但是现在这些都还没有被实现.

同时,Hyperopt所有的算法都可以通过MongoDB进行串行或者并行计算.

安装

用户安装

 		pip install hyperopt

开发版安装

	git clone https://github.com/hyperopt/hyperopt.git
	(cd hyperopt && python setup.py develop)
	(cd hyperopt && nosetests)

更多信息,请参见安装说明

文档

文档现在托管在wiki上,但这里有一些相关页面的链接:

实例

wiki中打开Hyperot

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Hyperopt-sklearn是基于scikit-learn项目的一个子集,其全称是:Hyper-parameter optimization for scikit-learn,即针对scikit-learn项目的超级参数优化工具。由于scikit-learn是基于Python的机器学习开源框架,因此Hyperopt-sklearn也基于Python语言。Hyperopt-sklearn文档称:对于开发者而言,针对不同的训练数据挑选一个合适的分类器(classifier)通常是困难的。而且即使选好了分类器,后面的参数调试过程也相当乏味和耗时。更严重的是,还有许多情况是开发者好不容易调试好了选定的分类器,却发现一开始的选择本身就是错误的,这本身就浪费了大量的精力和时间。针对该问题,Hyperopt-sklearn提供了一种解决方案。Hyperopt-sklearn支持各种不同的搜索算法(包括随机搜索、Tree of Parzen Estimators、Annealing等),可以搜索所有支持的分类器(KNeightborsClassifier、KNeightborsClassifier、SGDClassifier等)或者在给定的分类器下搜索所有可能的参数配置,并评估最优选择。并且Hyperopt-sklearn还支持多种预处理流程,包括TfidfVectorizer,Normalzier和OneHotEncoder等。那么Hyperopt-sklearn的实际效果究竟如何?下表分别展示了使用scikit-learn默认参数和Hyperopt-sklearn优化参数运行的分类器的F-score分数,数据源来自20个不同的新闻组稿件。可以看到,经过优化的分类器的平均得分都要高于默认参数的情况。另外,Hyperopt-sklearn的编码量也很小,并且维护团队还提供了丰富的参考样例。 标签:Hyperopt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Font Tian

写的很好,请给我钱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值