王彥琦, 張 強, 朱劉濤, 袁和平
(1. 東北石油大學(xué) 計算機與信息技術(shù)學(xué)院, 黑龍江 大慶 163318;2. 大慶油田有限責(zé)任公司 第五采油廠, 黑龍江 大慶 163513)
回歸問題本質(zhì)上是函數(shù)空間的優(yōu)化問題[1], 目的是找到從輸入變量到輸出變量的映射關(guān)系, 求出輸出變量關(guān)于輸入變量的函數(shù), 使損失函數(shù)的期望最優(yōu). 解決回歸問題的常用機器學(xué)習(xí)算法有支持向量機[2]、 神經(jīng)網(wǎng)絡(luò)[3-4]、 決策樹[5]等, 目前已應(yīng)用到疾病預(yù)測、 股票預(yù)測、 電力負載[6]等領(lǐng)域. 這些單一的方法在針對某些特定的場景性能都較好, 但仍存在一定的局限性, 如泛化性較弱等, 集成學(xué)習(xí)方法在一定程度上改善了這類問題, 它通過訓(xùn)練多個弱學(xué)習(xí)器, 將弱學(xué)習(xí)器結(jié)合成強學(xué)習(xí)器, 從而降低誤差, 提高模型泛化性[7], 目前已成為機器學(xué)習(xí)領(lǐng)域的研究熱點之一.
梯度提升決策樹(gradient boosting decision tree, GBDT)相比于支持向量機、 決策樹等算法, 能充分考慮到每個弱學(xué)習(xí)器的權(quán)重, 同時具有更高的準確率和穩(wěn)定性, 目前已廣泛應(yīng)用于各領(lǐng)域的預(yù)測研究中. 盡管GBDT的應(yīng)用性在許多案例中都得到了肯定, 但其參數(shù)的選擇對模型的精度影響較大, 會導(dǎo)致模型在回歸預(yù)測中無法達到最優(yōu)擬合效果. 廖璐等[8]利用交叉驗證法確定模型的重要參數(shù), 以列車的車站晚點偏差值為自變量建立列車晚點時長預(yù)測模型, 對比默認參數(shù)的模型預(yù)測結(jié)果, 調(diào)參后預(yù)測精度更高, 性能更優(yōu); Cui等[9]提出了一種新的網(wǎng)格搜索算法提高模型訓(xùn)練過程中參數(shù)優(yōu)化的效率; 谷宇峰等[10]選用粒子群算法解決較多超參數(shù)導(dǎo)致訓(xùn)練模型難以最優(yōu)化的問題, 構(gòu)建了PSO-GBDT巖性識別模型, 解決了致密砂巖儲集層巖性識別的問題.
為更好地解決GBDT算法參數(shù)難以選擇的問題, 本文提出一種利用改進鯨魚優(yōu)化算法對其關(guān)鍵參數(shù)進行尋優(yōu)的回歸預(yù)測算法. 首先在鯨魚優(yōu)化算法的基礎(chǔ)上利用混沌映射產(chǎn)生初始解, 引入慣性權(quán)重與差分進化算法中的變異交叉策略, 避免算法陷入局部最優(yōu). 然后利用改進的鯨魚優(yōu)化算法對GBDT關(guān)鍵參數(shù)進行尋優(yōu), 從而提高其對樣本的擬合精度.
梯度提升決策樹模型[11]是一種基于集成學(xué)習(xí)“Boosting”思想的采用加法模型和前向分布算法相結(jié)合的迭代決策樹模型, 它以CART(classification and regression tree)決策樹作為弱學(xué)習(xí)器, 利用前一輪弱學(xué)習(xí)器的殘差(損失函數(shù)的負梯度值)訓(xùn)練本輪弱學(xué)習(xí)器, 并對訓(xùn)練集的權(quán)值進行更新, 最后通過對每輪訓(xùn)練得到的弱學(xué)習(xí)器加權(quán)求和得到強學(xué)習(xí)器[12]. 算法基本步驟如下.
輸入: 數(shù)據(jù)集D={(x1,y1),(x2,y2),…,(xn,yn)}, 最大迭代次數(shù)(基學(xué)習(xí)器個數(shù))M, 損失函數(shù)L(x,f(x));
輸出: 強學(xué)習(xí)器F(x);
1) 初始化, 估計一個使損失函數(shù)極小化的常數(shù)值c, 此時構(gòu)建了只有一個根節(jié)點的樹, 表示為
(1)
2) 開始迭代, 構(gòu)建M棵樹, 迭代次數(shù)m=1,2,…,M;
① 對樣本i=1,2,…,n, 計算損失函數(shù)的負梯度并作為殘差的估計值:
(2)
② 利用(xi,rmi)擬合第m棵回歸樹, 得到第m棵樹的葉子節(jié)點區(qū)域為Rmj(j=1,2,…,Jm),J為第m棵回歸樹的葉子節(jié)點個數(shù);
③ 對于葉子節(jié)點區(qū)域j=1,2,…,Jm, 計算每個葉子節(jié)點的最佳擬合值, 使得損失函數(shù)極小化為
(3)
其中yi為第j個葉子節(jié)點的樣本xi觀測值,fm-1(xi)為第j個葉子節(jié)點的樣本xi在上一棵樹上的預(yù)測值,cmj為第j個葉子節(jié)點的yi與fm-1(xi)之間的最小誤差;
④ 更新本輪模型為
(4)
其中I為一個函數(shù), 若樣本xi在Rmj上, 則I=1; 否則I=0;
3) 進行迭代, 直到達到所預(yù)期的基學(xué)習(xí)器個數(shù), 得到最終的強學(xué)習(xí)器為
(5)
模型性能的優(yōu)劣與參數(shù)的選取密切相關(guān), 合理的參數(shù)設(shè)定通??蓭硪欢ǔ潭鹊木忍嵘? 因此訓(xùn)練模型時還需兼顧參數(shù)選擇. GBDT算法建模時涉及的參數(shù)主要有學(xué)習(xí)速率(learning_rate), 用于控制學(xué)習(xí)時參數(shù)更新的步長, 若步長過大, 則學(xué)習(xí)過程可能會發(fā)散, 反之, 又會導(dǎo)致模型進行太多次迭代, 學(xué)習(xí)時間大幅度增加; 最大迭代次數(shù)(n_estimators), 表示基學(xué)習(xí)器的個數(shù), 與learning_rate相互作用, learning_rate較小時, 需增加迭代次數(shù), 以便使訓(xùn)練誤差收斂; 子采樣(subsample), 用于控制參與擬合的數(shù)據(jù)集樣本比例, 設(shè)置為小于1時可有效減小整體模型的方差, 防止過擬合; 決策樹最大深度(max_depth), 內(nèi)部節(jié)點再劃分所需最小樣本數(shù)(min_samples_split)和葉子節(jié)點所包含的最少樣本數(shù)(min_samples_leaf), 均是用于控制每棵樹的復(fù)雜度, 具體的取值取決于數(shù)據(jù)分布, 若取值過大, 則會使模型結(jié)構(gòu)復(fù)雜, 易導(dǎo)致過擬合, 反之, 易導(dǎo)致欠擬合.
鯨魚優(yōu)化算法(whale optimization algorithm, WOA)是通過模擬座頭鯨的狩獵行為而提出的一種新型啟發(fā)式優(yōu)化算法[13], 通過包圍捕食、 螺旋泡泡網(wǎng)攻擊和搜索獵物對種群進行多次迭代優(yōu)化, 最終確定當(dāng)前問題的最優(yōu)解. WOA算法原理簡單易懂, 所需手動調(diào)節(jié)的參數(shù)較少, 計算模型簡潔, 但仍存在局限性, 如早熟收斂、 種群多樣性缺失等, 會導(dǎo)致算法在后期陷入局部最優(yōu)[14]. 針對上述問題, 本文引入3種改進策略, 提出一種改進的鯨魚優(yōu)化算法(improved whale optimization algorithm, IWOA).
WOA算法采用隨機初始化種群的方式確定鯨魚的初始位置, 雖然保證了初始位置的隨機性, 但鯨魚個體無法在整個搜索空間中均勻分布, 從而降低了解的質(zhì)量. 混沌序列具有隨機性和遍歷性, 能彌補隨機初始化導(dǎo)致的缺陷, 提高算法性能. 文獻[15]研究表明, 相比于Logistic混沌映射模型, Tent混沌映射產(chǎn)生的序列均勻性更好, 產(chǎn)生的初始解質(zhì)量更高, 所以本文采用Tent混沌映射初始化種群, 以保證種群初始位置質(zhì)量, 其計算公式為
(6)
其中:t為映射次數(shù);X(t)為第t次映射函數(shù)值, 取值為[0,1].
通過分析泡泡網(wǎng)捕食和隨機捕食時鯨魚的位置更新公式表明, 鯨魚的位置更新受全局最優(yōu)解和隨機解的影響.為增強全局搜索能力和局部搜索能力, 本文將慣性權(quán)重引入位置更新公式中, 這樣不僅能受全局最優(yōu)的引導(dǎo), 還能在局部鄰域與其他鯨魚進行交流.新位置更新公式為
(7)
X(t+1)=Xrand(t)-wAD,
(8)
其中X(t+1)為當(dāng)前解的位置向量,X*(t)為最優(yōu)解的位置向量,t為當(dāng)前迭代次數(shù),A為系數(shù)向量,D為最優(yōu)個體位置與當(dāng)前個體位置之間的距離,p為[0,1]內(nèi)的隨機數(shù),b為對數(shù)螺旋形狀常數(shù),l為[-1,1]內(nèi)的隨機數(shù),Xrand(t)為當(dāng)前群體中被隨機選中的個體位置向量.
通過對各種優(yōu)化算法[16-18]的改進研究分析可知: 較大的慣性權(quán)重有利于跳出局部最優(yōu), 進行全局尋優(yōu); 較小的慣性權(quán)重有利于局部尋優(yōu), 提高尋優(yōu)精度.因此, 本文引入正弦變化的權(quán)重因子控制獵物目標(biāo)對鯨魚位置更新的影響, 使鯨魚個體在前期具有較強的全局搜索能力, 在后期具有較強的局部開發(fā)能力, 其計算公式為
(9)
其中tmax為最大迭代次數(shù).
經(jīng)過上述位置更新后, 重新計算當(dāng)前位置的適應(yīng)度, 并與之前位置的適應(yīng)度進行比較后擇優(yōu)進入下一次迭代, 未對鯨魚位置進行干擾更新, 即存在當(dāng)前最優(yōu)個體位置并非全局最優(yōu)個體位置的可能, 隨著迭代次數(shù)的增加, 種群中所有個體都被錯誤引導(dǎo), 進而使算法陷入局部最優(yōu).因此, 利用差分進化算法中的變異策略實現(xiàn)個體變異, 再將變異個體與目標(biāo)個體進行交叉, 可增加種群多樣性, 擴大搜索范圍, 避免算法陷入局部最優(yōu).雖然變異交叉產(chǎn)生的新解在一定程度上增強了算法跳出局部最優(yōu)的能力, 但仍不能保證產(chǎn)生的新解一定優(yōu)于原解, 因此需要比較新舊位置的適應(yīng)度大小, 判斷是否采用新個體, 其計算公式如下:
其中V(t+1)為變異后的鯨魚個體位置向量,Xr1(t),Xr2(t),Xr3(t)為種群隨機個體,F為縮放因子,U(t+1)為交叉后的鯨魚個體位置向量,r為[0,1]內(nèi)的隨機數(shù); CR為交叉概率.
綜上可知, IWOA的尋優(yōu)流程如圖1所示.
圖1 IWOA尋優(yōu)流程Fig.1 Flow chart of IWOA optimization
不同參數(shù)組合會使回歸預(yù)測模型對于同一樣本的擬合效果有差異, 因此僅根據(jù)經(jīng)驗很難設(shè)定最佳參數(shù)組合. 本文采用改進的鯨魚優(yōu)化算法對梯度提升決策樹的關(guān)鍵參數(shù)進行尋優(yōu), 找到對當(dāng)前樣本擬合度最高的參數(shù)組合, 從而提高預(yù)測精度. 首先, 通過對比不同參數(shù)組合的尋優(yōu)結(jié)果, 確定需要尋優(yōu)的參數(shù)為n_estimators,learning_rate,subsample,max_depth,min_samples_split,min_samples_leaf; 其次, 利用IWOA對GBDT關(guān)鍵參數(shù)進行尋優(yōu), 確定最優(yōu)參數(shù)組合; 最后, 構(gòu)建IWOA-GBDT回歸預(yù)測模型. 構(gòu)建模型步驟如下:
1) 輸入數(shù)據(jù)集, 劃分訓(xùn)練樣本數(shù)據(jù)和測試樣本數(shù)據(jù), 進行歸一化處理;
2) 初始化算法參數(shù), 設(shè)定種群規(guī)模N, 群體空間維度D, 最大迭代次數(shù)tmax, 對數(shù)螺旋形狀常數(shù)b, 縮放因子F, 交叉因子C, 關(guān)鍵參數(shù)的取值范圍等;
3) 根據(jù)式(6)產(chǎn)生初始種群, 根據(jù)適應(yīng)度值函數(shù)均方誤差(MSE)計算適應(yīng)度大小, 記錄種群中適應(yīng)度值最優(yōu)的個體及位置;
4) 當(dāng)p<0.5時, 若|A|≥1, 則根據(jù)式(8)更新個體位置信息; 若|A|<1, 則根據(jù)式(7)更新個體位置信息, 計算個體適應(yīng)度值;
5) 當(dāng)p≥0.5時, 根據(jù)式(7)更新個體位置信息, 計算個體適應(yīng)度值;
6) 根據(jù)式(10)~(12)對種群位置進行變異、 交叉、 選擇操作;
7) 比較當(dāng)前個體最優(yōu)適應(yīng)度值與群體最優(yōu)適應(yīng)度值, 更新群體最優(yōu)個體和位置信息;
8) 判斷算法是否滿足結(jié)束條件, 若不滿足, 則返回步驟4)進行下一次迭代; 否則, 輸出最優(yōu)解和最優(yōu)個體位置;
9) 將得到的最優(yōu)參數(shù)組合賦值給GBDT模型, 利用訓(xùn)練樣本數(shù)據(jù)構(gòu)建IWOA-GBDT回歸預(yù)測模型, 并利用測試樣本數(shù)據(jù)驗證模型的精確性.
本文采用UCI數(shù)據(jù)集作為標(biāo)準測試數(shù)據(jù)集, 包括美國波士頓房價數(shù)據(jù)集、 魚類毒性數(shù)據(jù)集、 翼型自噪聲數(shù)據(jù)集、 聯(lián)合循環(huán)電廠數(shù)據(jù)集、 混凝土抗壓強度數(shù)據(jù)集和游艇水動力學(xué)數(shù)據(jù)集, 數(shù)據(jù)集統(tǒng)計信息列于表1.
表1 數(shù)據(jù)集統(tǒng)計信息
采用均方誤差(MSE)、 平均絕對誤差(MAE)和R方值(R2)3個評價指標(biāo)評價算法性能.MSE值越小, 表明模型效果越好, 其計算公式為
(13)
MAE值越小, 表明模型效果越好, 其計算公式為
(14)
R2值越接近1, 表明模型效果越好, 其計算公式為
(15)
為驗證IWOA-GBDT預(yù)測模型的有效性, 本文在相同實驗環(huán)境條件下, 使用Python進行編程實驗. 首先, 將本文選擇的參數(shù)組合尋優(yōu)所得結(jié)果與文獻[19-21]選擇的參數(shù)組合尋優(yōu)所得結(jié)果進行對比; 其次, 將IWOA-GBDT預(yù)測模型與采用遺傳算法(GA)、 飛蛾撲火優(yōu)化算法(MFO)、 粒子群優(yōu)化算法(PSO)、 量子粒子群優(yōu)化算法(QPSO)、 標(biāo)準鯨魚優(yōu)化算法(WOA)進行參數(shù)尋優(yōu)的GBDT預(yù)測模型進行對比; 最后, 將IWOA-GBDT預(yù)測模型與決策樹、 支持向量機、 Adaboost和GBDT回歸預(yù)測模型進行對比分析, 進一步驗證本文算法擬合效果的客觀性. 算法的初始參數(shù)設(shè)置為: 最大迭代次數(shù)200次, 種群規(guī)模20, 對數(shù)螺旋形狀常數(shù)b=1, 縮放因子F=0.6, 交叉因子CR=0.7. 采用MSE,MAE,R2值3個評價指標(biāo)評價算法的性能. 不同參數(shù)組合尋優(yōu)的對比實驗結(jié)果列于表2. 由表2可見, 本文所選參數(shù)組合的預(yù)測結(jié)果大多數(shù)均優(yōu)于文獻[19-21]選擇的參數(shù)組合所得結(jié)果. 這是因為本文考慮到單個決策樹的不同分裂條件也會影響模型的預(yù)測準確度, 所以在參數(shù)選擇時又選擇了min_samples_split和min_samples_leaf進行優(yōu)化, 控制了樹結(jié)構(gòu)的復(fù)雜度, 進一步驗證了本文選擇參數(shù)的可靠性.
表2 不同參數(shù)組合尋優(yōu)的對比實驗結(jié)果
不同優(yōu)化算法尋優(yōu)效果對比實驗結(jié)果列于表3. 由表3可見, 不同優(yōu)化算法對GBDT算法的預(yù)測性能影響顯著, 采用GA,MFO,PSO,QPSO和WOA算法進行參數(shù)尋優(yōu)的預(yù)測模型對于上述數(shù)據(jù)集的回歸預(yù)測很難達到較好的擬合效果, 結(jié)果不理想. 相比于其他優(yōu)化算法, 在多數(shù)情況下本文IWOA-GBDT回歸預(yù)測模型的均方誤差和平均絕對誤差均為最小,R2系數(shù)均為最高, 這是因為本文首先在WOA的基礎(chǔ)上利用Tent混沌映射初始化鯨魚種群, 提高了種群初始位置的質(zhì)量; 然后引入權(quán)重因子平衡算法在GBDT關(guān)鍵參數(shù)尋優(yōu)過程中的全局和局部搜索能力; 最后利用變異交叉策略, 增加種群個體的多樣性, 跳出局部最優(yōu), 確定使預(yù)測模型擬合效果達到最優(yōu)的參數(shù)組合.
表3 不同優(yōu)化算法尋優(yōu)效果對比實驗結(jié)果
不同回歸預(yù)測模型對比實驗結(jié)果列于表4. 由表4可見, 相比于傳統(tǒng)的DTR算法、 SVR算法、 Adaboost算法以及GBDT算法, 本文的IWOA-GBDT算法使預(yù)測結(jié)果得到明顯改善, 在不同數(shù)據(jù)集上各項評價指標(biāo)均為最優(yōu). 與傳統(tǒng)GBDT算法進行對比可見, 參數(shù)優(yōu)化后的算法進行回歸預(yù)測時誤差波動更小, 準確率更高, 擬合效果更好. 因此, 本文的預(yù)測模型達到了預(yù)期效果, 并具有一定的可靠性和實用性.
表4 不同回歸預(yù)測模型對比實驗結(jié)果
綜上所述, 本文針對梯度提升決策樹參數(shù)難以選擇的問題, 提出了一種基于改進鯨魚優(yōu)化算法的梯度提升決策樹回歸預(yù)測算法, 將改進的鯨魚優(yōu)化算法應(yīng)用于關(guān)鍵參數(shù)尋優(yōu), 從而彌補了在訓(xùn)練過程中參數(shù)選擇具有盲目性的缺陷, 提高了回歸預(yù)測模型的預(yù)測精度, 通過與決策樹、 支持向量機、 Adaboost和GBDT算法的對比仿真實驗結(jié)果表明, 本文算法具有更高的預(yù)測精度和實用性.