?

基于布谷鳥搜索的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超參數優化模型?;谑杖敕诸愵A測數據集和房價回歸預測數據集,驗證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

猜你喜歡
布谷鳥搜索算法分類
布谷鳥讀信
布谷鳥讀信
分類算一算
改進的和聲搜索算法求解凸二次規劃及線性規劃
分類討論求坐標
數據分析中的分類討論
教你一招:數的分類
布谷鳥叫醒的清晨
基于汽車接力的潮流轉移快速搜索算法
基于逐維改進的自適應步長布谷鳥搜索算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合