主要观点总结
本文介绍了向AI转型的程序员们关注的公众号大数据挖掘DT数据分析。重点介绍了Hyperopt库的使用,包括安装、说明、四个重要因素、参数空间的设置以及简单例子和xgboost参数优化的例子。文中详细解释了Hyperopt如何进行优化,并提供了相关的示例代码和链接。
关键观点总结
关键观点1: Hyperopt库的使用
介绍了如何安装Hyperopt库,以及它如何提供一个优化接口来接受评估函数和参数空间。强调了四个重要因素:目标函数、搜索空间、数据集(可选)和搜索算法(可选)。
关键观点2: 参数空间的设置
详细解释了如何设置参数空间,包括不同的参数分布方式,如hp.uniform、hp.choice、hp.pchoice等。还提供了关于如何构建搜索空间的示例。
关键观点3: Hyperopt的简单例子
通过一个简单的例子演示了如何使用Hyperopt进行优化,包括定义一个目标函数、设置参数空间、使用fmin函数进行优化的过程。
关键观点4: xgboost的参数优化
介绍了如何使用Hyperopt对xgboost的参数进行优化,包括将xgboost的代码写成一个函数,然后传入fmin中进行参数优化,并以交叉验证的auc作为优化目标。
正文
pip install hyperopt
二、说明
Hyperopt提供了一个优化接口,这个接口接受一个评估函数和参数空间,能计算出参数空间内的一个点的损失函数值。用户还要指定空间内参数的分布情况。
Hyheropt四个重要的因素:指定需要最小化的函数,搜索的空间,采样的数据集(trails database)(可选),搜索的算法(可选)。
首先,定义一个目标函数,接受一个变量,计算后返回一个函数的损失值,比如要最小化函数q(x,y) = x**2 + y**2
指定搜索的算法,算法也就是hyperopt的fmin函数的algo参数的取值。当前支持的算法由随机搜索(对应是hyperopt.rand.suggest),模拟退火(对应是hyperopt.anneal.suggest),TPE算法。
关于参数空间的设置,比如优化函数q,输入fmin(q,space=hp.uniform(‘a’,0,1)).hp.uniform函数的第一个参数是标签,每个超参数在参数空间内必须具有独一无二的标签。hp.uniform指定了参数的分布。其他的参数分布比如
hp.choice返回一个选项,选项可以是list或者tuple.options可以是嵌套的表达式,用于组成条件参数。
hp.pchoice(label,p_options)以一定的概率返回一个p_options的一个选项。这个选项使得函数在搜索过程中对每个选项的可能性不均匀。