第35卷第1期 2018年1月
随笔素材广东工业大学学报
Journal of Guangdong University of Technology
Vol. 35 No. 1
January 2018
doi: 10.12052/gdutxb.170124
基于贝叶斯最优化的Xgboost算法的改进及应用
李叶紫,王振友,周怡路,韩晓卓
(广东工业大学应用数学学院,广东广州510520)
摘要:在使用Xgboost框架时,经常涉及各种参数的调整,并且参数组合的选取对模型的分类性能影响较大.传统的参 数寻优方法,通常先导出一个惩罚函数,然后运用经验或者穷举法调整参数值来最大化或最小化这个惩罚函数,但是 经常会遇到某个模型没有一个显式的表达式情况.这类模型的参数寻优就非常
麻烦,同时又会给算法带来一定的不确 定性和随机性.本文基于高斯法(G P)的贝叶斯最优化算法对X gboost框架进行参数寻优,提出了一种新的算法 GP_Xgboost,并通过多组数值进行实验.结果表明本文改进的算法分类效果要优于人工调优和穷举法,从而证明了该 算法的可行性和有效性.
关键词:Xgboost算法;模型参数;贝叶斯最优化;参数寻优
中图分类号:TP18 文献标志码:A 文章编号:1007-7162(2018)01-0023-06
The Improvement and Application of Xgboost Method Bad on the
Bayesian Optimization
Li Ye-zi,Wang Zhen-you,Zhou Yi-lu,Han Xiao-zhuo
(School of A pplied Mathematics,Guangdong University of Technology,Guangzhou 510520, China) Abstract: When the Xgboost framework is in u,it is often involved in the adjustment of v arious parameters,and the lection o f parameters has a great influence on the classification performance o f the model.The traditional parameter optimization method usually first derives a penalty function,and then the empirical or exhaustive method is ud to adjust the parameter value to maximize or minimize the penalty function,but often encounters a model without an explicit expr
ession.The optimization of the parameters of this model is very troublesome,also bringing some uncertainty and randomness to the algorithm.The Bayesian optimization algorithm bad on Gaussian method(GP)is ud to optimize the parameters o f the Xgboost framework.A new algorithm,GP_Xgboost,is propod and experimented by multiple ts of numerical values.The results show that the propod algorithm is superior to the manual tuning and exhaustive method,which proves the feasibility and effectiveness of t he propod algorithm.
Key words: Xgboost algorithm;model parameters;Bayesian optimization;parameter optimization
近年来,Xgboost[1-3机器学习算法作为一种新兴 的高效算法,能够自动利用C P U的多线程进行并行,同时在算法上加以改进,提高了精度,己经引起了越 来越多人的关注.机器学习过程中会涉及到参数的 调整[4-7],比如控制学习率或者子模型的学习能力等,但是这些参数往往会让机器学习变得难以入门.针 对这个问题学术界认为对参数进行自动化选择势在 必行,有学者开始着手设计一个“黑盒子”函数来对模型参数进行自动选择.贝叶斯最优化算法[8-10]是近 年来进化算法领域兴起的一种新兴算法,用贝叶斯 网格概率模型来显式反映变量之间的依赖关系及可 行解的分布,更符合实际问题的本质,在众多领域获 得应用.针对连续性函数,贝叶斯优化利用先验知识 逼近未知函数的后验分布从而调节超参数.贝叶斯 优化充分利用前一个采样点的信息,其优化方式为 通过对目标函数的学习,并找到使结果向全局最大
收稿日期:2017-08-09
基金项目:国家自然科学基金资助项目(11401115);广州市科技计划项目(201707010435)
作者简介:李叶紫(1993-),女,硕士研宄生,主要研宄方向为算法设计与分析、图像处理.
通信作者:韩晓卓(1978-),女,副教授,主要研宄方向为生物数学,算法设计与分析.E-mail:
24广东工业大学学报第35卷
提升的参数,在每一次使用新的采样来测试目标函 数时,使用该信息来更新目标函数的先验分布.最 后,算法测试由后验分布给出的最值可能点.
针对以上存在的问题,很多人提出了新的改进 办法,例如Hutter 等[11提出了Grid Search ,该算法米用 网格搜索的方式对机器学习算法的参数进行寻优, 但是已〇$8&&等[12]最新研究表明,网格搜索的效果要 弱于随机搜索,同时他们提出了 Tree Parzen 算法[13-15].
本文为了简单处理和分析方便,研究的数据集 都是二分类数据集.针对以上问题,本文提出了一种 基于贝叶斯最优化改进的Xgboost 算法,该改进算法 主要是针对组合参数寻优的过程,引用贝叶斯最优 化算法寻找X g b o o s t 的全局最优解,下文中用
GP_Xgboost 表示基于贝叶斯最优化改进的Xgboost .
1预备知识
择候选解,选择可以采用进化算法的各种选择方法, 然后对选择后的种群建立贝叶斯网络概率模型,新 的候选解就从模型的采样中获取,最后,将采样得到 的解重新加入到原来的种群中,甚至可以用新的解 代替原来的所有的解,重复这个过程,直到满足终止 条件.算法的主要流程如下:
第一步:设?=0,随机产生初始种群^(0);第二步:从<〇中选择候选解5(?);
第三步:在一定的选择规则和限制条件下构建 符合要求的贝叶斯网格S ;
第四步:根据贝叶斯网络S 的联合分布函数产生 新的解〇(?);
第五步:用〇(〇取代K 0中的部分解,形成新的种
群冲+1);
第六步:如果不满足终止条件,转向第二步.
1.1 Xgboost 算法
其主要思想为:X gb oo st 是在Gradient Boosting
D e cisio n T re e 基础上发展起来的,全名是eX rem e Gradient Bosoting ,由 Tianqi Chen [16-17]于 2015 年提出
的.它比传统的G B D T 算法,更进步的地方在于[18-19]: 传统的G B D T 只利用一阶的导数信息,而X gboost 对 损失函数进行二阶的泰勒展开,求得到的最优解的 效率更高.以目标函数为logloss 为例进行理论介绍.
(1)将目标函数进行泰勒二阶展开:〇bj (i )
w (yi ,yi (t ~l ) + ft (xi )) + Q {ft ) + C ;
i =i
w ^yi , yi ((-l ) + dy .o-D w ^yi , yi ((-l ))ft (xi )+
-dyi (t -i ) w(y i , y i ^-1)) f t 2(x i )
+ Q (ft ) + C ,
其中,dyi (t -i )w (yi ,yi (t -1);(是每一个样本的一阶导数,
id y ^i ^w ^’y '-1))是每个样本的二阶导数.
(2)由于目标函数为logloss ,所以有
dyi "
w (yi ,yi (t -1))=
,七-1 +
丄
-1))+
(1+ y i)1 + e -yi(t -1), ^y i {(-l )2w (yi ,y/t -1))=
-y i (t -1)
e
(1 + e -yi(t-1))2
1.2贝叶斯最优化算法
其主要思想为:在贝叶斯优化算法中,初始种群 是根据均匀分布随机产生的,然后从当前种群中选
2
基于贝叶斯最优化改进的Xgboost 算法
2.1算法原理
针对Xgboost 算法存在的问题,本文提出一种改 进的X gb oost 算法,该算法的基本描述是:根据贝叶 斯最优化算法的思想,先设定将要选择的参数组合 区间,基于Xgboost 算法,在参数寻优的过程中,结合 贝叶斯最优化算法的思想,不断地训练模型,通过评 价函数对每个参数组合得到的分类结果进行评价, 最终得到最优参数组合,最后将最优参数组合代入
Xgboost 算法,从而分类性能得到提升.
2.2算法步骤
第一步:设?=0,设置参数组合的初始种群?(0). 第二步:从冰)中选择候选解冰).第三步:根据公式
x ( = argmaxwt -1(x )+At 1/2^t -1(x )
构建符合要求的贝叶斯网格其中,下一次采样的 位置Xt ,这里考虑最大化函数值的情况,首先使用己
有的观测值构建一个高斯过程的回归模型,并预测 出未知输入位置上的均值/«t -1(X )和标准差^t -1(X ).选 择均值和标准差的加和最大的输入位置来作为下一 个取样的点.这个加和公式被称为A c q u is it io n
Function .其中权重的参数是灼1/2.
第四步:根据贝叶斯网络S 的联合分布函数产生
新的解〇(?).
第五步:用〇(〇取代K 0中的部分解,形成新的种
群^(什1).
第1期李叶紫,等:基于贝叶斯最优化的Xgboost算法的改进及应用25第六步:如果不满足终止条件,
转向第二步.
3实验结果与讨论
3.1机器学习算法的评价标、准
传统的分类学习方法中,一般采用分类精度(正
确分类的样本个数占总样本个数的比例)作为评价兵马俑是活人做的吗
指标,但是如果用分类精度来评价不平衡数据集,是
不合理的.对于不平衡问题,新的评价标准,如尸-
value,G-mean,Recall等方法,都是建立在混淆矩阵
(见表1)的基础上[1。].
表1二分类问题的混淆矩阵
Tab.1 Confusion m atrix of classification problem s
分类实际正类实际负类
正类TP FP
负类FN TN
表1中TP和TN表示正确分类的正类和负类的样
本数量;FN和FP分别表示错误分类的正类和负类的
样本数量.
定义1分类精度Accuracy
a TP+ TN
ACCUraCy= TP+ TN+ FP+ F N'⑴
A ccu racy用来衡量分类的总体精度,精度越高,
分类效果越好.
定义2查全率
Recall=
TP
TP+ FN
(2)
表2实验数据集样本分布信息
Tab.2 Sample distribution inform ation of experim ental data
数据集名称样本数变量数类别数
Heart270122
German1000202科目一考试全部题目
Wilt 4 88962
Pima76882
Titanic891112
train modified87 021492
3.3实验环境
使用Python语言和Pycharm软件来实现,分别用
至丨J了Python中的 sklearn、pandas、numpy等包.
算法参数设置:
(1) RandomForest、G B D T、Adaboost和B agging算
法用的都是sklearn里面模型,其中RandomForest算法
中n_esitmators取值为 10, min_samples_split取值为 2,
max_depth取值为8; G B D T算法中n_esitmators取值取
100, min_samples_split取值为 2, max_depth取值为 8;
法国队Adaboost算法中n_esitmators取值取 50; Bagging算法
取值取50;X g b o o s t算法中算法中
n_esitmators取值取 50, max_depth取值为 8.
(2) GP_Xgboost算法参数设置:learning_rate取值
为0.1;subsample取值为0.8, ed取值为27; eta取值为
0.1,;eval_metric设置为mae.将要寻优的组合参数设
置:m in_ch ild_w e ig h t:(1, 20)、m ax_d ep th:(5, 15)、
n_estim ators:(10, 100)、co l_sam ple_b ytree:(0.1,1)、
R ecall用来反映被正确判定的正例占总的正例 g^m#0,ih d p h#0,i).的比重.
定义 3F-value
F-value=1+ p2)x Precision x Recall
2x100%.
p2x Precision+ Recall
(3)
3.4五大集成机器学习算法结果比较
(1)数据预处理,同时设置好集成机器学习算法
的参数,这里为了比较算法的公平性,统一设置成一
样的参数组合.
F-value指标是一种综合考虑查全率和查准率的 分类评价指标,其中precision为查准率,Recall为查全 率,P取值为[0,⑴],在试验中一般取1.定义Precision 为
Precision= TP/(TP+ FP).
3.2数据集来源
本实验用的数据集:Heart,German,Pima和W ilt,均来自 U C I(archive.ics.u ci.edu/ml/)机器学习数 据库;T ita n ic,train_m o d ifie d来自 K a g g le(h ttp s:// w w /competitions).表 2描述了实验所使用的初始不平衡数据集的特征.
(2) 获取分类结果.用python语言编写代码,设好模型参数,将经过预处理的数据分别代入到RandomForest、G B D T、Adaboost和B agging算法中得
到分类结果.
(3) 计算 F-value、Accuracy和R ecall.将各种算法
的分类结果代入式(1)〜(3)中得到相应结果.
3.5 GP_Xgboost和五大集成机器学习算法结果比较
(1)组合参数设置.对Xgboost算法设置不同组合
的学习参数和子模型参数,通常这里设置的是某个
参数的范围.例如:n_e s it m a to r s的参数范围为[10,100].
26广东工业大学学报第35卷
(2) 训练G P _X g b o o s t .将组合参数代入G P -Xgboost 算法中训练,通过评价函数来评判每个组合
晓迎秋露一枝新
参数的结果,用贝叶斯最优化来找到组合参数的全 局最优解.
(3)
获取分类结果.用Python 语言编写代码,设置
好模型参数,将经过预处理的数据分别代入到
GP _Xgboost 算法中得到分类结果.
(4) 计算 F -value、A ccuracy 和 R ecall .将各种算法 的分类结果代入式(1)~(3)中得到相应结果.3.6实验结果
根据实验数据和实验方法,对6种算法在实验数 据下进行了Accuracy 和F 1的测试,结果见表3〜
5.通过表3发现,针对在数据集Pim a 上,当组合参 数是[8.820 1|0.624 0|2.403 6|
6.282 9|1.193 2|45.362 8] 时,GP _Xgboost 算法的分类精度是最高的82.58°%.另 外7种数据集的实验,同Pima 数据实验一样.
从表4中发现,同样的默认参数情况下,Accuracy 衡量总体分类性能,一般情况下Xgboost 在总体分类 性能要优于其他4种集成机器学习算法,同时从表 4中发现,A ccu ra cy 是一个综合评价标准,一般情况 下X gb oost 在总体分类性能也要优于其他四种集成 机器学习算法.
通过表4〜5,不难发现同样模型参数的情况下, 同一数据集和同一算法,随着样本的増加,算法的分
类性能也随之増加,同时在分类性能上X g b o o s t 都要优于其他4类算法,因此下文中着重研究基于
Xgboost 算法的改进GP _Xgboost 算法.
通过表4〜5实验结果不难发现,在多组实验数据
的情况下,A c c u r a c y 和F 1两个评价指标
秦统一六国
G P _X gb oo st 都明显高于通过穷举法得到的分类精
度,证明了本文算法的有效性和稳定性.
表3 GP_Xgboost 算法在数据集Pim a 上的A ccuracy 对比 Tab.3 T he accuracy com parison o f G P_X gboost algorithm in d ata
t Pim a
迭代次数
参数组合
分类精度/%
18.874 5|0.988 4|5.785 5|11.028 0|4.093 9|94.958 9|78.962 1.818 5|0.969 4|5.187 6|10.318 7|13.879 7|43.884 7|78.1439.775 7|0.352 5|1.748 3|12.959 5|16.703 3|37.191 6|78.744 1.691 7|0.967 5|5.094 5|9.719 7|4.997 9|39.181 1|77.056 4.818 8|0.938 2|3.712 7|11.291 5|5.074 1|56.815 0|75.277 4.256 1|0.635 7|9.169 4|6.535 3|6.188 9|49.583 4|76.708 1.662 2|0.338 3|3.315 3|12.735 0|5.935 1|64.840 8|78.5799.182 9|0.259 8|7.556 6|10.858 4|14.642 1|88.216 3|79.3110 3.304 4|0.726 3|2.416 2|7.281 3|1.124 4|19.428 3|80.0511 5.495 6|0.610 8|7.381 1|6.893 3|6.834 1|39.450 2|79.4012 4.464 3|0.345 6|5.434 3|14.277 1|18.158 8|51.411 9|81.9213 1.548 0|0.902 6|3.042 4|14.984 3|10.400 5|71.830 3|80.18148.820 1|0.624 0|2.403 6|6.282 9|1.193 2|45.362 8|82.5815 6.509 7|0.810 6|9.694 6|8.101 9|1.333 2|42.409 4|79.8316
5.644 1|0.749 2|8.953 6|
6.388 1|12.797 8|50.831 1|
78.83
表4 6种算法在8个数据集上的Accuracy 对比
Tab. 4 A ccuracy com parison of six algorithm s in 8 data ts
%
算法train_modified [10000]
train_modified [50000]
train_modified [87021]
分类精度
Pima Heart Wilt Titanic German Random Forest
98.1498.3598.4270.6776.3699.1680.0078.06GBDT 97.4297.9598.2769.6672.9399.0977.6382.69Adaboost 98.2198.4598.5262.5078.85
99.23
80.3482.73Bagging 98.1598.3598.4868.0677.8799.1677.2879.77Xgboost 98.2498.4598.5275.3284.0099.3781.6483.40GP Xgboost
98.34
98.53
98.85
82.58
89.45
99.56
87.12
88.63
Tab. 5
表5 6种算法在8个数据集上的F1对比
Form ula 1 com parison of s ix algorithm s in 8 data ts
%
算法train_modified [10000]
train_modified [50000]
train_modified [87021]
F1
Pima Heart Wilt Titanic German Random Forest
88.8188.4488.2577.5676.6757.1473.0677.88GBDT 89.7987.3588.2777.95
68.8960.61
70.0074.24Adaboost 88.2188.3588.3572.4477.7868.5774.3477.58Bagging 87.7988.5688.4876.3877.7860.0069.6878.48Xgboost 88.8388.8788.9177.9578.8972.7381.4180.61GP Xgboost
90.14
90.33
90.58
80.36
83.25
75.53
84.32
83.21
第1期李叶紫,等:基于贝叶斯最优化的Xgboost算法的改进及应用27
3.7算法的有效性、鲁棒性和完整性分析
GP_Xgboost算法是基于集成机器学习算法和贝
叶斯最优化算法,本质上是机器学习算法进行参数 寻优,由于贝叶斯最优化算法是一种求解全局最优 解的算法,在理论上等价于求函数的最大值.而当有 多组参数的时候,就等价于多目标优化问题,即在函
数的限制内对多组数据进行多目标求解.由此可知,GP_Xgboost是满足完整性的.为了验证贝叶斯最优 化对Xgboost参数寻优的鲁棒性,本文设置了多组不 同的参数,实验结果表明,在数据集变化或者存在噪 声的情况下,该算法的性能是稳定的.另外,由各组 实验的对比结果可知,GP_Xgboost取得的优化效果 均好于原有的凭经验或随机的参数寻优方法,从而 论证了本文提出的参数寻优算法是有效的.
4结论
针对X gb oo st算法在组合参数寻优中存在的问 题,本文引入了贝叶斯最优化算法,通过寻找组合参 数的全局最优解的方法得到一个强分类器,提出了 GP_Xgboost算法.通过多组实验发现,针对某一个数 据集可以准确地找到组合参数的最优解,同时 GP_Xgboost在多组数据上的分类性能,都要优于原
有凭经验或随机的参数寻优的Xgboost算法,因此该 算法是可行的、满足现实需要的、行之有效的.虽然 分类性能得到了提高,但是在实验过程中发现,改进 的算法运行时间要更长,如何顺应大数据环境,降低 算法运行时间是接下来的工作.微信公众号怎么创建
参考文献:
[1]张昊,纪宏超,张红宇.XGBoost算法在电子商务商品推
荐中的应用[J].物联网技术,2017, 2: 102-104.
ZHANG H,JI H C,ZHANG H Y.Application of XGBoost
algorithm in E-commerce commodity recommendation[J].
Internet of Things Technology,2017, 2: 102-104.
[2]江明諺.大数据下的糖尿病医疗管理-以D診所為例[D].
高雄:国立中山大學企業管理學系研宄所,2016: 1-70.
[3 ] G^MEZ-R土OS A,LUENGO J,HERRERA F. A study on
the noi label influence in boosting algorithms: AdaBoost,
GBM and XGBoost[C]//International Conference on Hybrid
Artificial Intelligence Systems.[S.l.]: Springer,2017: 268
280.
[4]方匡南,吴见彬,朱建平,等.随机森林方法研宄综述[J].
统计与信息论坛,2011,26(3):32-38.
FANG K N,WU J B,ZHU J P,et al.Study on the rearch
on random forest method[J]. Journal of Statistics and In
formation, 2011,26(3): 32-38.
[5]孙克雷,邓仙荣.一种改进的基于梯度提升回归算法的
O2O电子商务推荐模型[J].安黴建筑大学学报,2016,
24(2): 87-91.
SUN K L,DENG X R. An improved O2O E-commerce re
commendation model bad on gradient lifting regression al-
gorithm[J]. Journal of Anhui University of Architecture,
2016, 24(2): 87-91.
[6 ]袁浩杰.Adaboost算法的并行化及其在目标分类中的应
用[D].广州:华南理工大学软件学院,2015.
[7]何清,李宁,罗文娟,等.大数据下的机器学习算法综述
[J].模式识别与人工智能,2014,27(4):327-336.
HE Q,LI N,LUO W J,et al. Overview of machine learning
algorithms under large data[J]. Pattern Recognition and Arti
ficial Intelligence,2014, 27(4): 327-336.
[8]王中锋,王志海.基于条件对数似然函数导数的贝叶斯
网络分类器优化算法[J].计算机学报,2012, 35(2): 364
374.
WANG Z F,WANG Z H. Optimization algorithm of
Bayesian network classifier bad on derivative of condi
tional log likelihood function[J]. Journal of Computers,
2012, 35(2): 364-374.
[9]胡玉胜,涂序彦,崔晓瑜,等.基于贝叶斯网络的不确定
性知识的推理方法[J].计算机集成制造系统,2001,7(12):
65-68.
HU Y S, TU X Y, CUI X Y,et al. Reasoning method of u n
certainty knowledge bad on Bayesian network[J]. Com
puter Integrated Manufacturing System,2001,7(12): 65-68. [10]王双成,杜瑞杰,刘颖.连续属性完全贝叶斯分类器的学
习与优化[J].计算机学报,2012, 35(10): 2129-2138.
WANG S C, DU R J, LIU Y.Study and optimization of c on
tinuous Bayesian classifier with continuous attributes[J].
Journal of Computers,2012, 35(10): 2129-2138.
[11] HUTTER F,HOOS H H,LEYTONBROWN K. Sequential
model-bad optimization for general algorithm configura-
tion[C]//International Conference on Learning and Intelli
gent Optimization.[S.l.]: Springer,2011.
[12] BERGSTRA J,BARDENET R,BENGIO Y,et al.Al
nba球星名字
gorithms for hyperparameter optimization[C]//NIPS'11 Pro
ceedings of t he 24th International Conference on Neural In
formation Processing Systems. Granada, Spain: ACM,2011. [13] ILIEVSKI I,AKHTAR T,FENG J,et al. Efficient hyper
parameter optimization for deep learning algorithms using
deterministic RBF surrogates[J]. AAAI,2017: 822-829. [14] FRANCESCHI L,DONINI M,FRASCONI P,et al.For
ward and Rever Gradient-Bad Hyperparameter Optimiz-
ation[J]. arXiv preprint arXiv: 1703.01785, 2017.
[15] XIA Y,LIU C, LI Y Y,et al. A boosted decision tree ap
proach using Bayesian hyper-parameter optimization for
credit scoring[J]. Expert Systems with Applications,2017,
78: 225-241.
[16] CHEN T, GUESTRIN C. Xgboost: A scalable tree boosting
system[C]//Proceedings of t he 22nd acm sigkdd internation