李欣玲 李莉莉 周楷賀
摘要:
為提高XGBoost算法預測精度,采用布谷鳥搜索算法全局優(yōu)化XGBoost的超參數(shù)包括學習率、輸出結點分裂的最小損失、樹模型的最大深度和弱學習器的數(shù)量,構建CS-XGBoost模型訓練數(shù)據(jù)集。實驗結果表明,基于CS-XGBoost的收入分類模型的準確率、精確率、F1分數(shù)和AUC等指標分別為95.67%、97.17%、95.56%和97.96%,均優(yōu)于Logistic回歸、支持向量機、隨機森林、XGBoost算法和基于網(wǎng)格搜索的XGBoost算法;基于CS-XGBoost的房價預測模型的決定系數(shù)、均方根誤差及平均絕對誤差分別為0.905 5、2.943 5及2.165 4,預測精度較XGBoost算法得到顯著提升。
關鍵詞:
XGBoost;布谷鳥搜索;分類預測;回歸預測
中圖分類號:
TP181
文獻標志碼:A
機器學習作為人工智能核心,正處于飛速發(fā)展的黃金時期。XGBoost算法是機器學習三大算法之一,源自開源Boosting庫[1]包括樹增強學習算法和線性求解器,是一種高效快速的集成學習工具,具有內(nèi)置交叉驗證、正則化防止過擬合、并行高效處理等優(yōu)點,已廣泛實踐應用于金融[2]、電子商務[3]、醫(yī)療[4]、自動化[5]等領域數(shù)據(jù)挖掘,展現(xiàn)了良好學習性能和分類準確度。XGBoost和其他機器學習模型均存在超參數(shù)優(yōu)化問題[6-7],即同樣輸入數(shù)據(jù)使用不同超參數(shù)構建模型的泛化能力不同。網(wǎng)格搜索[8]、貝葉斯優(yōu)化[9]和隨機搜索[10]均為尋找最優(yōu)超參數(shù)可行方法,但超參數(shù)維度過高時,網(wǎng)格搜索計算成本較高,且難以保證尋找最優(yōu)超參數(shù)組合。最優(yōu)化問題經(jīng)過長時間發(fā)展,產(chǎn)生如遺傳算法[11]、粒子群算法[12]等不受限于梯度信息的群智能優(yōu)化方法。群智能優(yōu)化方法是一種受事物群體或者各種動物行為啟發(fā),通過形成一種粒子模擬各種群體中個體行為形成的優(yōu)化算法,可以通過種群方式搜索目標函數(shù)參數(shù)空間大部分區(qū)域;具有生命體特征的人工系統(tǒng)能有效節(jié)省人工成本和時間,減少人為誤差。目前已有較多研究耦合人工智能算法和群智能優(yōu)化方法,如蟻群算法[13]、鯨魚算法[14]、果蠅算法[15]等,用于參數(shù)調優(yōu),但算法自身參數(shù)的設置和閾值設定的適用性致使尋優(yōu)結果難以保證達到全局最優(yōu)。布谷鳥搜索[16](Cuckoo Search, CS)算法具有較強全局搜索能力,全局收斂性根據(jù)收斂算法準則通過構建服從萊維分布的馬爾可夫模型證明,該算法精度、復雜度和穩(wěn)定性均有顯著優(yōu)勢[17],且自身參數(shù)較少,易與其他人工智能算法相結合,魯棒性強,適用范圍更廣泛。綜上,本文基于布谷鳥搜索最優(yōu)化理論,針對收入數(shù)據(jù)集和房價數(shù)據(jù)集,構建一種基于布谷鳥搜索的XGBoost(XGBoost based on Cuckoo Search, CS-XGBoost)模型,以提高模型預測精度。
1 模型闡述
1.1 XGBoost模型
XGBoost是一種梯度提升決策樹模型,基于迭代思想通過不斷優(yōu)化目標函數(shù),生成最優(yōu)弱學習器,目標函數(shù)表達式為
Obj=∑ni=1loss(yi,i)+∑Kk=1Ω(fk)(1)
其中,∑ni=1loss(yi,i)表示實際值與預測值的誤差即損失函數(shù);∑Kk=1Ω(fk)為防止模型過擬合的正則化項,控制模型復雜度;γ、λ表示懲罰系數(shù);T表示葉子結點數(shù)目;ω表示葉子權重。為最優(yōu)化目標函數(shù),損失函數(shù)二階泰勒式展開第t次迭代的目標函數(shù)為
Obj(t)=∑ni=1(gift(xi)+12hif2t(xi))+Ω(ft)(2)
其中,gi表示損失函數(shù)對i(t-1)的一階導數(shù),hi表示損失函數(shù)對i(t-1)的二階導數(shù)。整理得目標函數(shù)的最終結果
Obj(t)=-12∑Tj=1(G2jHj+λ)+γT(3)
由式(3)可計算弱學習器葉子結點與分結點的信息增益,定義輸出結點弱學習器最小損失為θ,作為需要優(yōu)化的第1個超參數(shù)。若弱學習器信息增益大于θ,則劃分特征,反之不劃分。θ越大,算法就越保守。
前向分步模型中,定義
(t)i=(t-1)i+ηft(xi)(4)
其中,η表示學習率,作為需要優(yōu)化的第2個超參數(shù),每棵樹被添加至學習器時,按0<η<1因子縮放每棵樹貢獻,以保證模型具有較強的穩(wěn)定性與適應性,η較低時,模型對過擬合更保守,但計算速度較慢,η的最優(yōu)取值可使算法收斂的同時有效提高模型精度。需要優(yōu)化的第3個超參數(shù)m為樹模型的最大深度,表示構建樹結構模型復雜程度。定義n為弱學習器的數(shù)量,是需要優(yōu)化的第4個超參數(shù),n越大,模型學習能力越強,但易導致過擬合,n值直接影響模型的預測效果和精度。
通過布谷鳥搜索算法優(yōu)化XGBoost模型的超參數(shù)時,為提高模型預測精度,考慮計算成本,本文主要調整決定XGBoost算法預測性能的4個重要超參數(shù)θ、η、m、n。此外,Subsample為訓練集的子樣本比率,Colsample為構造每棵樹時選取變量與全部變量的比值。為避免由于抽取不同樣本和變量生成不同XGBoost模型,參數(shù)Subsample和Colsample取默認值1,其他參數(shù)取默認設置。
1.2 布谷鳥搜索算法
求解最優(yōu)超參數(shù)有效方法之一是網(wǎng)格搜索,隨著超參數(shù)維度增加,網(wǎng)格搜索的計算成本呈指數(shù)級增長。為降低高額計算成本,一類求解黑箱函數(shù)最優(yōu)化的仿真算法如布谷鳥算法應運而生。模擬布谷鳥搜尋鳥巢過程提出了布谷鳥算法,鳥巢和卵可視為解,其限制條件基于3項規(guī)則:每只布谷鳥1次只產(chǎn)1枚卵,隨機選擇1個鳥巢放入;隨機選擇的1組鳥巢,其最好寄生巢(即解)保留至下一代;鳥巢數(shù)量是固定的,宿主發(fā)現(xiàn)布谷鳥蛋的概率為Pa,若宿主發(fā)現(xiàn)鳥蛋,則會摧毀蛋或者尋找新巢。布谷鳥搜尋鳥巢的路徑采用基于萊維飛行的全局隨機游走。采用萊維飛行更新全局最優(yōu)解
ψ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模型的預測效果依賴于參數(shù)取值,通過布谷鳥算法優(yōu)化XGBoost參數(shù),構建CS-XGBoost模型的具體步驟如下:
Step 1 確定布谷鳥搜索算法的相應參數(shù),最大迭代次數(shù)L,鳥巢發(fā)現(xiàn)概率Pa,初始解ψ0=(θ,η,m,n);
Step 2 初始化XGBoost參數(shù)ψ1,ψ2,…,ψd,定義目標函數(shù)φ(ψi),i=1,2,…,d為XGBoost模型測試集的損失函數(shù)值,d定義為解的個數(shù);
Step 3 d個解隨機選擇一個解ψi,計算目標函數(shù)φ(ψi),利用式(5)更新獲得鳥巢位置,計算目標函數(shù)φ(ψj)。若φ(ψi)>φ(ψj),則新解ψj替換ψi;
Step 4 通過目標函數(shù)φ(·)遍歷ψi,i=1,2,…,d以尋找最優(yōu)參數(shù)解ψoptl,保留ψoptl至下一次迭代,以概率Pa舍棄其他非最優(yōu)參數(shù)解,通過萊維飛行尋找新解;
Step 5 迭代終止,得ψoptd,代入XGBoost模型計算。
2 收入分類預測實證分析
選取Kaggle數(shù)據(jù)庫的收入分類數(shù)據(jù)集,被解釋變量是受調查對象收入是否超過50K(Kilo)的二分類變量(“0”代表收入低于50K,“1”代表收入超過50K)。由于該數(shù)據(jù)集屬于分布偏態(tài)的非平衡數(shù)據(jù)集,為防止過擬合影響模型分類效果,利用人工合成采樣方法平衡處理。處理后的數(shù)據(jù)中,收入超過50K有14 957人,收入低于50K有15 205人。
2.1 特征處理
由于數(shù)據(jù)量綱和數(shù)量級不同,為保證模型可靠,采樣后平衡數(shù)據(jù)需歸一化處理,即x*=xi-xminxmax-xmin,其中,x*為歸一化處理后的數(shù)據(jù)。數(shù)據(jù)集的數(shù)據(jù)特征較多,除年齡、性別、職業(yè)、每周工作小時數(shù)等,還涉及一些無用特征。通常,特征越多則模型分類結果越好,但過多特征會導致過擬合且降低運算效率。由圖1(a)可知,性別分組中收入存在顯著差異,女性分組中收入低于50K的人數(shù)顯著多于收入超過50K的人數(shù),男性分組則情況相反。由圖1(b)發(fā)現(xiàn),不同年齡階段研究對象的收入不同,年齡影響居民收入。結合皮爾遜相關系數(shù)檢驗,最終選取數(shù)據(jù)集的變量及符號見表1。
2.2 結果分析
依照2∶8比例把處理好的數(shù)據(jù)集劃分為測試集和訓練集,采用虛擬變量處理劃分后數(shù)據(jù)集,構建稀疏矩陣,建立XGBoost分類模型,預測測試集收入分類。為比較不同算法分類預測結果,采用的評價指標主要包括準確率、精確率、召回率、F1分數(shù)和接受者操作特性(Receiver Operating Characteristic, ROC)曲線等。準確率為正確分類的樣本個數(shù)與總樣本個數(shù)比例,表示分類正確性的指標;精確率為預測正確的正類樣本個數(shù)占預測為正類樣本個數(shù)比例,召回率為預測正確的正類樣本個數(shù)占實際為正類樣本個數(shù)比例,兩者表示識別精度的指標;F1分數(shù)為精確率和召回率加權平均。
基于預處理數(shù)據(jù)構建默認參數(shù)的Logistic回歸、隨機森林、支持向量機分類模型,與XGBoost模型的準確率、精確率、召回率和F1分數(shù)對比。由表2可知,基于XGBoost算法訓練分類模型測試集準確率為90.58%,精確率為91.19%,召回率為89.67%,F(xiàn)1分數(shù)為90.42%,要優(yōu)于其他3種分類模型,表明XGBoost模型分類預測性能優(yōu)于Logistic回歸、隨機森林和支持向量機。
采用布谷鳥算法優(yōu)化XGBoost模型參數(shù),設布谷鳥搜索超參數(shù)ψ=(θ,η,m,n)迭代次數(shù)為50次。優(yōu)化后參數(shù)代入XGBoost模型,重新訓練生成CS-XGBoost模型,預測數(shù)據(jù)集收入分類。為衡量二分類模型優(yōu)劣,引入ROC特征曲線下面積(AUC)評價指標。由表3可知,收入分類的仿真分析中,CS-XGBoost算法的準確率、精確率、召回率、F1分數(shù)和AUC指標分別為95.67%、97.17%、94.02%、95.56%和97.96%,均明顯優(yōu)于基于初始參數(shù)的XGBoost算法和基于網(wǎng)格搜索的XGBoost算法,證明CS-XGBoost模型的泛化能力和學習能力要優(yōu)于基于初始參數(shù)的XGBoost模型和基于網(wǎng)格搜索的XGBoost模型,驗證了CS-XGBoost針對收入分類預測的準確性與有效性。
圖2中假正率即預測錯誤的負類樣本個數(shù)占實際為負類樣本個數(shù)比例,真正率即預測正確的正類樣本個數(shù)占實際為正類樣本個數(shù)比例,ROC曲線越靠近左上角,誤判率越低,靈敏度越高,模型的分類性能越好。CS-XGBoost模型ROC曲線最靠近左上角,與右下角圍成的面積最大,即AUC值最大,模型分類預測性能最好。
3 房價回歸預測實證分析
為證明經(jīng)布谷鳥搜索算法優(yōu)化后的XGBoost回歸模型的有效性,選取Boston數(shù)據(jù)集時,數(shù)據(jù)集中包含14個特征,被解釋變量為房價中位數(shù),其他特征為仿真分析解釋變量。經(jīng)全樣本建立XGBoost模型驗證,特征重要性排名前三的變量分別為低收入人群占比、住宅房數(shù)及距離就業(yè)中心的加權距離(表4)。
Boston數(shù)據(jù)集按2∶8比例劃分為測試集和訓練集,虛擬變量處理后構建稀疏矩陣,建立基于初始參數(shù)的XGBoost回歸預測模型,采用布谷鳥算法優(yōu)化XGBoost模型4個超參數(shù),優(yōu)化后超參數(shù)代入XGBoost模型,重新訓練生成CS-XGBoost模型,預測測試集房價。為比較基于初始參數(shù)的XGBoost及CS-XGBoost回歸模型的預測效果,采用評價指標包括決定系數(shù)(Coefficient of Determination, R2)、均方根誤差(Root Mean Squared Error, RMSE)及平均絕對誤差(Mean Absolute Error, MAE),測試集房價預測結果見表5??芍績r預測的仿真分析中,CS-XGBoost回歸模型的均方根誤差和平均絕對誤差分別為2.943 5和2.165 4,較基于初始參數(shù)的XGBoost回歸模型分別降低0.188 9和0.208 9;CS-XGBoost回歸模型的決定系數(shù)為0.905 5,優(yōu)于初始參數(shù)的XGBoost回歸模型。這證明經(jīng)過布谷鳥搜索算法優(yōu)化后的XGBoost回歸模型的預測精度得到提升,驗證CS-XGBoost算法針對房價回歸預測的準確性與有效性。
4 結論
為提高XGBoost算法預測精度,本文提出一種基于布谷鳥搜索算法的XGBoost超參數(shù)優(yōu)化模型。基于收入分類預測數(shù)據(jù)集和房價回歸預測數(shù)據(jù)集,驗證CS-XGBoost算法的準確性和有效性。仿真結果表明,相較于初始參數(shù)的XGBoost模型,CS-XGBoost算法能有效克服參數(shù)選擇的不確定性,泛化能力和學習能力在準確率、F1分數(shù)、AUC、決定系數(shù)、平均絕對誤差等指標均有顯著提升,進而證明了CS-XGBoost算法的有效性。今后的研究將考慮通過布谷鳥搜索算法優(yōu)化其他機器學習模型的超參數(shù),提高模型學習能力和泛化能力。
參考文獻
[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]陳繼強, 張峰, 張麗娜, 等. 基于模糊信息分解的中小微企業(yè)信用評估組合模型[J]. 模糊系統(tǒng)與數(shù)學, 2022, 36(5): 142-150.
[3]廖開際, 鄒珂欣, 莊雅云. 基于改進XGBoost的電商客戶流失預測[J]. 計算機與數(shù)字工程, 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]張榮濤, 陳志高, 李彬彬, 等. 基于深度卷積神經(jīng)網(wǎng)絡模型和XGBoost算法的齒輪箱故障診斷研究[J]. 機械強度, 2020, 42(5): 1059-1066.
[6]趙一諾, 張鐵峰. 一種基于改進PSO優(yōu)化隨機森林的非侵入式負荷識別算法[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] 馬恒, 任美學, 高科. 基于隨機搜索優(yōu)化XGBoost的瓦斯涌出量預測模型[J]. 中國安全生產(chǎn)科學技術, 2022, 18(5): 129-134.
[11] 張春富, 王松, 吳亞東, 等. 基于GA_Xgboost模型的糖尿病風險預測[J]. 計算機工程, 2020, 46(3): 315-320.
[12] 孫朝云, 呂紅云, 楊榮新, 等. 改進粒子群優(yōu)化XGBoost模型的高速公路服務區(qū)交通量預測[J]. 北京交通大學學報, 2021, 45(5): 74-83.
[13] 于洋, 魏長江. 優(yōu)化蟻群算法在電纜敷設中的應用[J]. 青島大學學報(自然科學版), 2020, 33(3): 65-70+75.
[14] 沈胤宏, 張暢, 楊林, 等. 改進鯨魚算法尋優(yōu)支持向量機的眼動數(shù)據(jù)分類研究[J]. 生物醫(yī)學工程學雜志, 2023, 40(2): 335-342.
[15] 孟桂艷, 張偉. 迭代步進值遞減的果蠅優(yōu)化算法在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)資助。
通信作者:
李莉莉,女,博士,教授,主要研究方向為金融統(tǒng)計、統(tǒng)計調查與預測。E-mail: lili_lee2003@126.com