基于布谷鸟搜索的XGBoost算法优化及应用研究

2023-04-08 16:15李欣玲李莉莉周楷贺
关键词:布谷鸟搜索算法分类

李欣玲 李莉莉 周楷贺

摘要:

为提高XGBoost算法预测精度,采用布谷鸟搜索算法全局优化XGBoost的超参数包括学习率、输出结点分裂的最小损失、树模型的最大深度和弱学习器的数量,构建CS-XGBoost模型训练数据集。实验结果表明,基于CS-XGBoost的收入分类模型的准确率、精确率、F1分数和AUC等指标分别为95.67%、97.17%、95.56%和97.96%,均优于Logistic回归、支持向量机、随机森林、XGBoost算法和基于网格搜索的XGBoost算法;基于CS-XGBoost的房价预测模型的决定系数、均方根误差及平均绝对误差分别为0.905 5、2.943 5及2.165 4,预测精度较XGBoost算法得到显著提升。

关键词:

XGBoost;布谷鸟搜索;分类预测;回归预测

中图分类号:

TP181

文献标志码:A

机器学习作为人工智能核心,正处于飞速发展的黄金时期。XGBoost算法是机器学习三大算法之一,源自开源Boosting库[1]包括树增强学习算法和线性求解器,是一种高效快速的集成学习工具,具有内置交叉验证、正则化防止过拟合、并行高效处理等优点,已广泛实践应用于金融[2]、电子商务[3]、医疗[4]、自动化[5]等领域数据挖掘,展现了良好学习性能和分类准确度。XGBoost和其他机器学习模型均存在超参数优化问题[6-7],即同样输入数据使用不同超参数构建模型的泛化能力不同。网格搜索[8]、贝叶斯优化[9]和随机搜索[10]均为寻找最优超参数可行方法,但超参数维度过高时,网格搜索计算成本较高,且难以保证寻找最优超参数组合。最优化问题经过长时间发展,产生如遗传算法[11]、粒子群算法[12]等不受限于梯度信息的群智能优化方法。群智能优化方法是一种受事物群体或者各种动物行为启发,通过形成一种粒子模拟各种群体中个体行为形成的优化算法,可以通过种群方式搜索目标函数参数空间大部分区域;具有生命体特征的人工系统能有效节省人工成本和时间,减少人为误差。目前已有较多研究耦合人工智能算法和群智能优化方法,如蚁群算法[13]、鲸鱼算法[14]、果蝇算法[15]等,用于参数调优,但算法自身参数的设置和阈值设定的适用性致使寻优结果难以保证达到全局最优。布谷鸟搜索[16](Cuckoo Search, CS)算法具有较强全局搜索能力,全局收敛性根据收敛算法准则通过构建服从莱维分布的马尔可夫模型证明,该算法精度、复杂度和稳定性均有显著优势[17],且自身参数较少,易与其他人工智能算法相结合,鲁棒性强,适用范围更广泛。综上,本文基于布谷鸟搜索最优化理论,针对收入数据集和房价数据集,构建一种基于布谷鸟搜索的XGBoost(XGBoost based on Cuckoo Search, CS-XGBoost)模型,以提高模型预测精度。

1 模型阐述

1.1 XGBoost模型

XGBoost是一种梯度提升决策树模型,基于迭代思想通过不断优化目标函数,生成最优弱学习器,目标函数表达式为

Obj=∑ni=1loss(yi,i)+∑Kk=1Ω(fk)(1)

其中,∑ni=1loss(yi,i)表示实际值与预测值的误差即损失函数;∑Kk=1Ω(fk)为防止模型过拟合的正则化项,控制模型复杂度;γ、λ表示惩罚系数;T表示叶子结点数目;ω表示叶子权重。为最优化目标函数,损失函数二阶泰勒式展开第t次迭代的目标函数为

Obj(t)=∑ni=1(gift(xi)+12hif2t(xi))+Ω(ft)(2)

其中,gi表示损失函数对i(t-1)的一阶导数,hi表示损失函数对i(t-1)的二阶导数。整理得目标函数的最终结果

Obj(t)=-12∑Tj=1(G2jHj+λ)+γT(3)

由式(3)可计算弱学习器叶子结点与分结点的信息增益,定义输出结点弱学习器最小损失为θ,作为需要优化的第1个超参数。若弱学习器信息增益大于θ,则划分特征,反之不划分。θ越大,算法就越保守。

前向分步模型中,定义

(t)i=(t-1)i+ηft(xi)(4)

其中,η表示学习率,作为需要优化的第2个超参数,每棵树被添加至学习器时,按0<η<1因子缩放每棵树贡献,以保证模型具有较强的稳定性与适应性,η较低时,模型对过拟合更保守,但计算速度较慢,η的最优取值可使算法收敛的同时有效提高模型精度。需要优化的第3个超参数m为树模型的最大深度,表示构建树结构模型复杂程度。定义n为弱学习器的数量,是需要优化的第4个超参数,n越大,模型学习能力越强,但易导致过拟合,n值直接影响模型的预测效果和精度。

通过布谷鸟搜索算法优化XGBoost模型的超參数时,为提高模型预测精度,考虑计算成本,本文主要调整决定XGBoost算法预测性能的4个重要超参数θ、η、m、n。此外,Subsample为训练集的子样本比率,Colsample为构造每棵树时选取变量与全部变量的比值。为避免由于抽取不同样本和变量生成不同XGBoost模型,参数Subsample和Colsample取默认值1,其他参数取默认设置。

1.2 布谷鸟搜索算法

求解最优超参数有效方法之一是网格搜索,随着超参数维度增加,网格搜索的计算成本呈指数级增长。为降低高额计算成本,一类求解黑箱函数最优化的仿真算法如布谷鸟算法应运而生。模拟布谷鸟搜寻鸟巢过程提出了布谷鸟算法,鸟巢和卵可视为解,其限制条件基于3项规则:每只布谷鸟1次只产1枚卵,随机选择1个鸟巢放入;随机选择的1组鸟巢,其最好寄生巢(即解)保留至下一代;鸟巢数量是固定的,宿主发现布谷鸟蛋的概率为Pa,若宿主发现鸟蛋,则会摧毁蛋或者寻找新巢。布谷鸟搜寻鸟巢的路径采用基于莱维飞行的全局随机游走。采用莱维飞行更新全局最优解

ψil+1=ψil+αs(5)

其中,α为步长缩放量,取α=1;s=u|v|1/ω~le′vy(ω),u~N(0,σ2l),v~N(0,1),ω=1.5。

1.3 CS-XGBoost模型

XGBoost模型的预测效果依赖于参数取值,通过布谷鸟算法优化XGBoost参数,构建CS-XGBoost模型的具体步骤如下:

Step 1 确定布谷鸟搜索算法的相应参数,最大迭代次数L,鸟巢发现概率Pa,初始解ψ0=(θ,η,m,n);

Step 2 初始化XGBoost参数ψ1,ψ2,…,ψd,定义目标函数φ(ψi),i=1,2,…,d为XGBoost模型测试集的损失函数值,d定义为解的个数;

Step 3 d个解随机选择一个解ψi,计算目标函数φ(ψi),利用式(5)更新获得鸟巢位置,计算目标函数φ(ψj)。若φ(ψi)>φ(ψj),则新解ψj替换ψi;

Step 4 通过目标函数φ(·)遍历ψi,i=1,2,…,d以寻找最优参数解ψoptl,保留ψoptl至下一次迭代,以概率Pa舍棄其他非最优参数解,通过莱维飞行寻找新解;

Step 5 迭代终止,得ψoptd,代入XGBoost模型计算。

2 收入分类预测实证分析

选取Kaggle数据库的收入分类数据集,被解释变量是受调查对象收入是否超过50K(Kilo)的二分类变量(“0”代表收入低于50K,“1”代表收入超过50K)。由于该数据集属于分布偏态的非平衡数据集,为防止过拟合影响模型分类效果,利用人工合成采样方法平衡处理。处理后的数据中,收入超过50K有14 957人,收入低于50K有15 205人。

2.1 特征处理

由于数据量纲和数量级不同,为保证模型可靠,采样后平衡数据需归一化处理,即x*=xi-xminxmax-xmin,其中,x*为归一化处理后的数据。数据集的数据特征较多,除年龄、性别、职业、每周工作小时数等,还涉及一些无用特征。通常,特征越多则模型分类结果越好,但过多特征会导致过拟合且降低运算效率。由图1(a)可知,性别分组中收入存在显著差异,女性分组中收入低于50K的人数显著多于收入超过50K的人数,男性分组则情况相反。由图1(b)发现,不同年龄阶段研究对象的收入不同,年龄影响居民收入。结合皮尔逊相关系数检验,最终选取数据集的变量及符号见表1。

2.2 结果分析

依照2∶8比例把处理好的数据集划分为测试集和训练集,采用虚拟变量处理划分后数据集,构建稀疏矩阵,建立XGBoost分类模型,预测测试集收入分类。为比较不同算法分类预测结果,采用的评价指标主要包括准确率、精确率、召回率、F1分数和接受者操作特性(Receiver Operating Characteristic, ROC)曲线等。准确率为正确分类的样本个数与总样本个数比例,表示分类正确性的指标;精确率为预测正确的正类样本个数占预测为正类样本个数比例,召回率为预测正确的正类样本个数占实际为正类样本个数比例,两者表示识别精度的指标;F1分数为精确率和召回率加权平均。

基于预处理数据构建默认参数的Logistic回归、随机森林、支持向量机分类模型,与XGBoost模型的准确率、精确率、召回率和F1分数对比。由表2可知,基于XGBoost算法训练分类模型测试集准确率为90.58%,精确率为91.19%,召回率为89.67%,F1分数为90.42%,要优于其他3种分类模型,表明XGBoost模型分类预测性能优于Logistic回归、随机森林和支持向量机。

采用布谷鸟算法优化XGBoost模型参数,设布谷鸟搜索超参数ψ=(θ,η,m,n)迭代次数为50次。优化后参数代入XGBoost模型,重新训练生成CS-XGBoost模型,预测数据集收入分类。为衡量二分类模型优劣,引入ROC特征曲线下面积(AUC)评价指标。由表3可知,收入分类的仿真分析中,CS-XGBoost算法的准确率、精确率、召回率、F1分数和AUC指标分别为95.67%、97.17%、94.02%、95.56%和97.96%,均明显优于基于初始参数的XGBoost算法和基于网格搜索的XGBoost算法,证明CS-XGBoost模型的泛化能力和学习能力要优于基于初始参数的XGBoost模型和基于网格搜索的XGBoost模型,验证了CS-XGBoost针对收入分类预测的准确性与有效性。

图2中假正率即预测错误的负类样本个数占实际为负类样本个数比例,真正率即预测正确的正类样本个数占实际为正类样本个数比例,ROC曲线越靠近左上角,误判率越低,灵敏度越高,模型的分类性能越好。CS-XGBoost模型ROC曲线最靠近左上角,与右下角围成的面积最大,即AUC值最大,模型分类预测性能最好。

3 房价回归预测实证分析

为证明经布谷鸟搜索算法优化后的XGBoost回归模型的有效性,选取Boston数据集时,数据集中包含14个特征,被解释变量为房价中位数,其他特征为仿真分析解释变量。经全样本建立XGBoost模型验证,特征重要性排名前三的变量分别为低收入人群占比、住宅房数及距离就业中心的加权距离(表4)。

Boston数据集按2∶8比例划分为测试集和训练集,虚拟变量处理后构建稀疏矩阵,建立基于初始参数的XGBoost回归预测模型,采用布谷鸟算法优化XGBoost模型4个超参数,优化后超参数代入XGBoost模型,重新训练生成CS-XGBoost模型,预测测试集房价。为比较基于初始参数的XGBoost及CS-XGBoost回归模型的预测效果,采用评价指标包括决定系数(Coefficient of Determination, R2)、均方根误差(Root Mean Squared Error, RMSE)及平均绝对误差(Mean Absolute Error, MAE),测试集房价预测结果见表5。可知,房价预测的仿真分析中,CS-XGBoost回归模型的均方根误差和平均绝对误差分别为2.943 5和2.165 4,较基于初始参数的XGBoost回归模型分别降低0.188 9和0.208 9;CS-XGBoost回归模型的决定系数为0.905 5,优于初始参数的XGBoost回归模型。这证明经过布谷鸟搜索算法优化后的XGBoost回归模型的预测精度得到提升,验证CS-XGBoost算法针对房价回归预测的准确性与有效性。

4 结论

为提高XGBoost算法预测精度,本文提出一种基于布谷鸟搜索算法的XGBoost超参数优化模型。基于收入分类预测数据集和房价回归预测数据集,验证CS-XGBoost算法的准确性和有效性。仿真结果表明,相较于初始参数的XGBoost模型,CS-XGBoost算法能有效克服参数选择的不确定性,泛化能力和学习能力在准确率、F1分数、AUC、决定系数、平均绝对误差等指标均有显著提升,进而证明了CS-XGBoost算法的有效性。今后的研究将考虑通过布谷鸟搜索算法优化其他机器学习模型的超参数,提高模型学习能力和泛化能力。

参考文献

[1]CHEN T Q, GUESTRIN C. XGBoost: A scalable tree boosting system[C]// 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. San Francisco, 2016: 785-794.

[2]陈继强, 张峰, 张丽娜, 等. 基于模糊信息分解的中小微企业信用评估组合模型[J]. 模糊系统与数学, 2022, 36(5): 142-150.

[3]廖开际, 邹珂欣, 庄雅云. 基于改进XGBoost的电商客户流失预测[J]. 计算机与数字工程, 2022, 50(5): 1115-1118+1125.

[4]SONG R Y, LI T Y, WANG Y. Mammographic classification based on XGBoost and DCNN with multi features[J]. IEEE Access, 2020,8: 75011-75021.

[5]张荣涛, 陈志高, 李彬彬, 等. 基于深度卷积神经网络模型和XGBoost算法的齿轮箱故障诊断研究[J]. 机械强度, 2020, 42(5): 1059-1066.

[6]赵一诺, 张铁峰. 一种基于改进PSO优化随机森林的非侵入式负荷识别算法[J]. 信息与电脑(理论版), 2022, 34(6): 102-104.

[7]LIU J, ZIO E. SVM hyperparameters tuning for recursive multi-step-ahead prediction[J]. Neural Computing and Applications, 2017, 28(12): 3749-3763.

[8]JAYARAMAN V, LAKSHMINARAYANAN A R, PARTHASARATHY S, et al. Forecasting the municipal solid waste using GSO-XGBoost model[J]. Intelligent Automation & Soft Computing, 2023, 37(1): 301-320.

[9]XIA Y F, LIU C Z, LI Y Y, et al. A boosted decision tree approach using Bayesian hyper-parameter optimization for credit scoring[J]. Expert Systems with Applications, 2017,78: 225-241.

[10] 馬恒, 任美学, 高科. 基于随机搜索优化XGBoost的瓦斯涌出量预测模型[J]. 中国安全生产科学技术, 2022, 18(5): 129-134.

[11] 张春富, 王松, 吴亚东, 等. 基于GA_Xgboost模型的糖尿病风险预测[J]. 计算机工程, 2020, 46(3): 315-320.

[12] 孙朝云, 吕红云, 杨荣新, 等. 改进粒子群优化XGBoost模型的高速公路服务区交通量预测[J]. 北京交通大学学报, 2021, 45(5): 74-83.

[13] 于洋, 魏长江. 优化蚁群算法在电缆敷设中的应用[J]. 青岛大学学报(自然科学版), 2020, 33(3): 65-70+75.

[14] 沈胤宏, 张畅, 杨林, 等. 改进鲸鱼算法寻优支持向量机的眼动数据分类研究[J]. 生物医学工程学杂志, 2023, 40(2): 335-342.

[15] 孟桂艳, 张伟. 迭代步进值递减的果蝇优化算法在PID整定中的应用[J]. 青岛大学学报(自然科学版), 2017, 30(3): 19-24.

[16] YANG X S, DEB S. Cuckoo search via lévy flights[C]// 2009 World Congress on Nature and Biologically Inspired Computing. Coimbatore, 2009: 210-214.

[17] 刘晓东, 孙丽君, 陈天飞. 布谷鸟算法的收敛性分析及性能比较[J]. 计算机科学与探索, 2020, 14(10): 1644-1655.

The Optimization and Application on XGBoost

Algorithm Based on Cuckoo Search

LI Xin-ling, LI Li-li, ZHOU Kai-he

(College of Economics, Qingdao University, Qingdao 266061, China)

Abstract:

In order to improve the prediction accuracy of XGBoost algorithm, the cuckoo search algorithm was used to globally optimize hyperparameters in XGBoost algorithm: learning rate, the minimum loss of output node splitting, the maximum depth of tree model and the number of base classifiers. The CS-XGBoost model was built to train the dataset. The results show that the accuracy, precision, F1-score and AUC of the CS-XGBoost income classification model obtain 95.67%,97.17%,95.56% and 97.96%, which are higher than Logistic regression model, support vector machine, random forest, XGBoost and XGBoost algorithm based on grid search. The coefficient of determination, root mean square error and mean absolute error of the CS-XGBoost housing price prediction model are 0.905 5, 2.943 5 and 2.165 4. Compared with XGBoost algorithm, CS-XGBoost algorithm can effectively improve the prediction accuracy.

Keywords:

XGBoost; cuckoo search; classification prediction; regression prediction

收稿日期:2023-02-24

基金項目:

国家社科基金(批准号:2019BTJ028)资助;山东省金融应用重点研究项目(批准号:2020-JRZZ-03)资助。

通信作者:

李莉莉,女,博士,教授,主要研究方向为金融统计、统计调查与预测。E-mail: lili_lee2003@126.com

猜你喜欢
布谷鸟搜索算法分类
布谷鸟读信
布谷鸟读信
分类算一算
改进的和声搜索算法求解凸二次规划及线性规划
分类讨论求坐标
数据分析中的分类讨论
教你一招:数的分类
布谷鸟叫醒的清晨
基于汽车接力的潮流转移快速搜索算法
基于逐维改进的自适应步长布谷鸟搜索算法