馮增喜,陳海越,王 濤,趙錦彤,李詩妍
(1.西安建筑科技大學建筑設(shè)備科學與工程學院,陜西 西安 710054;2.火箭軍工程大學作戰(zhàn)保障學院,陜西 西安 710025)
地下工程封閉運行時的保障資源有限,為最大化延長其運行時間,需最大程度節(jié)能。在地下工程中,通風空調(diào)系統(tǒng)的運行能耗占工程總能耗的比例高達50%~60%[1]。因此通風空調(diào)系統(tǒng)的節(jié)能效果對延長地下工程封閉運行時間具有重要作用。而準確的負荷預測對于實現(xiàn)地下工程空調(diào)系統(tǒng)的高效運行和能源優(yōu)化分配、調(diào)度具有重要作用。
為提高負荷預測精度,基于機器學習的預測模型已成為專家學者們的研究熱點,已有機器學習算法應(yīng)用于各類預測問題。目前常用的機器學習算法有神經(jīng)網(wǎng)絡(luò)、支持向量機(Support Vector Machine,SVM)以及近年來新興的XGBoost 等。神經(jīng)網(wǎng)絡(luò)具有非線性映射、自適應(yīng)、容錯性強等特點,已有專家學者將神經(jīng)網(wǎng)絡(luò)應(yīng)用于交通運輸調(diào)度與優(yōu)化[2]、降雨量預測[3]、空調(diào)能耗預測[4]與優(yōu)化控制[5]等領(lǐng)域,并取得了較好的預測結(jié)果。然而,影響地下工程空調(diào)系統(tǒng)負荷的因素多,且具有多擾量混合、多周期疊加的特點[6],若使用神經(jīng)網(wǎng)絡(luò)進行預測則會使網(wǎng)絡(luò)結(jié)構(gòu)復雜,從而導致訓練速度慢[7-8],且神經(jīng)網(wǎng)絡(luò)要求輸入數(shù)據(jù)具有典型性。支持向量機泛化能力強、實用性好且具有優(yōu)異的分類性能,已有專家學者將其用于故障診斷[9-10]。但是SVM 算法的預測結(jié)果受核函數(shù)的選擇影響較大[11],且核參數(shù)與懲罰參數(shù)的選取也較為復雜[12-13],除 此 之 外,SVM 存 在 參 數(shù) 尋 優(yōu) 過 程 復雜[14-15]、收斂速度慢等問題[16]。
XGBoost 作為一種新興的集成學習算法,可以避免上述問題。XGBoost 算法是對集成學習算法中較為常用的梯度提升算法的改進[17],調(diào)節(jié)參數(shù)少、運行速度快[18]、預測準確度高、結(jié)果穩(wěn)定且具有很好的泛化性能[19]。Zhang 等[17]針對火箭儲罐鋁合金激光焊縫強度的回歸預測問題,提出了一種基于RFPCAXGBoost 的預測模型。朱波等[20]將改進的XGBoost算法用于空調(diào)系統(tǒng)的故障診斷。以上針對XGBoost算法的應(yīng)用均獲得了良好的預測結(jié)果。本文提出一種基于天牛須搜索算法(Beetle Antennae Search,BAS)優(yōu)化極限梯度提升算法(eXtreme Gradient Boosting,XGBoost)的負荷預測模型。
XGBoost 算法屬于可擴展機器學習系統(tǒng)[21],基于梯度下降理論,對損失函數(shù)進行了二階泰勒級數(shù)展開,通過串行迭代的方法學習每個基評估器,迭代時通過對前一級基評估器的錯分樣本設(shè)置較大的權(quán)重來提升預測性能,以指導弱學習器的訓練。同時,在目標函數(shù)中引入了正則項,解決容易過擬合的問題[22]。
XGBoost 中基評估器的迭代過程可表示為式(1)的形式:
其中,y^i(k+1)為第i個數(shù)據(jù)在經(jīng)過k+1 個基評估器迭代之后的預測值,k表示基評估器的棵數(shù),fk+1表示第k+1個基評估器的權(quán)重,xi表示第i個輸入樣本,η為基評估器迭代時的步長,又稱學習率,其值越大,迭代速度越快,但設(shè)置過大則有可能無法收斂,設(shè)置過小則有可能運行緩慢,通常默認為0.3。
XGBoost 可選用多種基評估器,最常用的有線性回歸模型、Additive Regression Trees(ART)以及決策樹模型3 種。為確定具體選用何種基評估器,本節(jié)分別采用以上3 種模型建立XGBoost 預測模型,利用工程原始數(shù)據(jù)初步驗證此3 種模型的性能。本文采用決定系數(shù)R2衡量訓練后的模型在測試集上的預測效果,R2越接近1,則表明模型訓練結(jié)果越好。
如圖1 所示,采用決策樹模型作為基評估器的XGBoost,其100次訓練的效果最佳,決定系數(shù)R2約為0.8;采用ART 模型的XGBoost 訓練結(jié)果則稍差,R2約為0.7 左右;而采用線性回歸的XGBoost 訓練效果最差,其R2僅在0.2 上下波動。根據(jù)以上結(jié)果,本文采用決策樹作為基評估器建立XGBoost預測模型。
圖1 3種基評估器訓練效果對比
當XGBoost 算法采用決策樹作為基評估器時,其目標函數(shù)可表示為以下?lián)p失函數(shù)和正則項的組合:
其中,l表示第i片葉子的損失函數(shù),y^i(t-1)代表前t-1次迭代的預測值,Ω(fk)是第t次迭代的模型的正則項,γ和λ是正則項的系數(shù),T為葉子節(jié)點個數(shù),ω表示葉子節(jié)點上的樣本權(quán)重。對式(2)進行泰勒展開可得:
其中,gi與hi分別為樣本xi的一階和二階導數(shù),ωj為第j個葉子的輸出值,I為葉子值的樣本子集。XGBoost的目標函數(shù)值越小,則生成的決策樹分支結(jié)果越好[23]。
XGBoost 算法調(diào)節(jié)參數(shù)少,其中決策樹的棵數(shù)與樹的最大深度2 個參數(shù)對其預測精度影響最大。本文利用工程的原始數(shù)據(jù)進行以下實驗,以初步驗證這2 個參數(shù)對模型的具體影響:設(shè)定樹的最大深度為定值,改變決策樹的棵數(shù),觀察決策樹棵數(shù)變化對模型訓練結(jié)果的影響;設(shè)定樹的棵數(shù)為定值,改變樹的最大深度,觀察樹的深度變化對模型訓練結(jié)果的影響,結(jié)果如圖2與圖3所示。
圖2 決策樹數(shù)對模型的影響
由圖2 和圖3 可知,單獨調(diào)節(jié)樹的棵數(shù)或深度都會對模型的訓練結(jié)果產(chǎn)生較大影響。當2 個參數(shù)設(shè)定值較小時,模型的訓練結(jié)果均比較一般,隨著設(shè)定值的增大,模型的R2迅速增加。但是,模型的R2在參數(shù)設(shè)定值到達一定程度后便不再有明顯的增加,而是在一定范圍內(nèi)進行較大幅度的波動且無明顯規(guī)律性。根據(jù)以上分析可知,由于模型的訓練結(jié)果與參數(shù)的設(shè)定值并非嚴格的正相關(guān),因此單純地將參數(shù)設(shè)定值選得過大并不一定能夠得到最佳的訓練結(jié)果,而且實際建模時,需同時考慮2 個參數(shù)的影響。此外,若用于影響因素多、數(shù)據(jù)量大的預測問題時,參數(shù)設(shè)置過大會使得生成的模型結(jié)構(gòu)復雜,則運行時間會大大增加,效率低下。
圖3 樹的深度對模型的影響
針對上述的調(diào)參局限性,本文擬采用尋優(yōu)算法實現(xiàn)參數(shù)的自動尋優(yōu)。
目前常用的參數(shù)尋優(yōu)方法有網(wǎng)格搜索、隨機搜索、粒子群算法等。網(wǎng)格搜索法將參數(shù)的所有可能取值組合進行遍歷,再利用交叉驗證評估效果。隨機搜索選擇每一個超參數(shù)的一個隨機值的特定數(shù)量的隨機組合,再分別對選出的每一種組合進行驗證,最終選出最優(yōu)超參數(shù)組合。文獻[17,20]即采用網(wǎng)格搜索法確定XGBoost的最優(yōu)超參數(shù)。而隨著XGBoost算法參數(shù)取值范圍的增加,此類需要對參數(shù)組合進行列舉的尋優(yōu)法的搜索時間會呈幾何增長,效率不高。而粒子群算法適用于高維參數(shù)空間的尋優(yōu)問題,本文擬尋優(yōu)的參數(shù)只有2 個,若采用粒子群算法則容易浪費資源[24],無法最大程度發(fā)揮其優(yōu)勢。
為了對XGBoost 的超參數(shù)進行高效尋優(yōu),以獲得最優(yōu)超參數(shù)組合,提高模型預測精度,本文提出一種改進的天牛須搜索算法對XGBoost 的參數(shù)進行尋優(yōu)。以某地下工程空調(diào)系統(tǒng)為研究對象,利用灰色關(guān)聯(lián)度分析法剔除和空調(diào)負荷相關(guān)性低的輸入變量,提高模型預測精度。
1.4.1 基本BAS算法
BAS是一種單體搜索算法,模擬了天牛利用觸須覓食的行為[25],通過2根觸須感知食物氣味的濃度,并向著濃度強的一側(cè)前進,通過迭代可找到食物的位置。
設(shè)n維搜索空間中的天牛位置表示為:
其中,l為天牛質(zhì)心與觸須的距離,d為單位隨機向量。天牛根據(jù)2 只觸須所感知到的觸須濃度差判斷食物的位置,并進行移動,則天牛在t+1 時刻的位置更新公式為:
其中,t表示迭代次數(shù),δt為第t次迭代時的探索步長,sign為符號函數(shù),f()為適應(yīng)度函數(shù)。
1.4.2 BAS算法的改進
為了使天牛更快達到全局最優(yōu)點,提高收斂速度,本文對基本BAS算法的位置更新機制和搜索步長進行改進,提出一種改進的BAS算法。
1)位置更新公式的改進。
為了使天牛能夠更快接近全局最優(yōu)點,利用多目標粒子群優(yōu)化算法中的典型最優(yōu)解引導機制對天牛的位置更新策略進行改進,改進后的位置更新公式如式(8)所示:
其中,Xbest為天牛的當前最優(yōu)位置,k1為0 到1 之間的隨機數(shù)。
2)搜索步長的改進。
由于天牛的迭代步長通常為一個固定常數(shù),因此無法實現(xiàn)在搜索的前期擴大搜索范圍并擁有較快的搜索速度,而在后期則能夠?qū)崿F(xiàn)精細化搜索。針對此問題,采用基于當前迭代次數(shù)的線性遞減策略,對第t次迭代的步長根據(jù)公式(9)進行修正,從而實現(xiàn)動態(tài)調(diào)整探索步長,有助于提高BAS算法的收斂速度。
其中,δmax與δmin分別為最大與最小迭代步長,It與I分別為t時刻迭代次數(shù)與最大迭代次數(shù)。
相比于粒子群搜索算法、果蠅搜索算法等群智能搜索算法,BAS 算法僅由一只天牛對解空間進行搜索,原理簡單、參數(shù)少、計算量少且不需要知道函數(shù)的具體信息[26],尤其適用于處理低維優(yōu)化問題。因此,在構(gòu)建預測模型時,利用本文所提出的改進BAS算法對XGBoost的2個超參數(shù)進行尋優(yōu),流程如圖4所示。
圖4 算法優(yōu)化流程圖
綜上所述,本文建模的主要步驟為:
1)BAS 算法參數(shù)設(shè)定。確定BAS 算法的最大迭代次數(shù)、搜索步長、步長衰減系數(shù),確定適應(yīng)度函數(shù)。選取預測值與真實值的R2為適應(yīng)度函數(shù)。
2)XGBoost 超參數(shù)范圍設(shè)定,其中模型中決策樹的棵數(shù)范圍設(shè)置為1~200,樹的最大深度范圍設(shè)置為1~100。
3)根據(jù)公式(8)更新天牛位置。
4)計算當前位置的適應(yīng)度函數(shù)值,更新并保存當前天牛的位置。
5)判斷迭代是否終止,若達到迭代次數(shù),則終止迭代,輸出最優(yōu)天牛的位置,否則轉(zhuǎn)至步驟3,三維搜索空間中最優(yōu)天牛位置的坐標即為2 個參數(shù)的最優(yōu)值。
6)基于尋優(yōu)得到的最優(yōu)決策樹個數(shù)與決策樹深度建立XGBoost負荷預測模型。
7)輸入測試集樣本,輸出負荷預測值。
本文以某地下保障工程空調(diào)系統(tǒng)為研究對象,使用Python語言建立空調(diào)負荷預測模型,并基于該工程空調(diào)系統(tǒng)的運行數(shù)據(jù)進行分析。該地下工程空調(diào)系統(tǒng)設(shè)備包括通風機、空調(diào)、調(diào)溫除濕機、轉(zhuǎn)輪除濕機、移動除濕機、風管、風閥以及閉式冷卻塔等,共有5 個集中空調(diào)系統(tǒng)保障分區(qū),占地面積約為2800 m2。各個分區(qū)所需冷負荷由集中空調(diào)系統(tǒng)提供,再由風機送到各個分區(qū)。
本文采集了730 組6 月14 日到9 月14 日之間空調(diào)機組的逐時負荷數(shù)據(jù)。數(shù)據(jù)的變量分別為工程內(nèi)部溫度、上一時刻溫度、上二時刻溫度、濕球溫度、上一時刻濕球溫度、上二時刻濕球溫度、冷凍水流量、冷凍水溫差、冷卻水溫差、上一時刻空調(diào)冷負荷。在建立預測模型時選擇其中的75%作為訓練集用于訓練預測模型,其余25%作為測試集用于驗證所建立的預測模型的準確度。
對于機器學習模型來說,輸入數(shù)據(jù)特征維數(shù)過高,則數(shù)據(jù)中的噪音會造成信息冗余和干擾,過低則無法反映數(shù)據(jù)的完整信息。因此本文在建立預測模型之前對數(shù)據(jù)進行灰色關(guān)聯(lián)度分析,以剔除和空調(diào)負荷相關(guān)性低的變量,結(jié)果如表1所示。
表1 輸入變量相關(guān)性
根據(jù)關(guān)聯(lián)度分析結(jié)果,剔除上一時刻負荷、當前濕球溫度、上一時刻濕球溫度3個變量,保留其余7個變量用于建立負荷預測模型。
為了分析改進后的BAS的尋優(yōu)速度,將其與網(wǎng)格搜索、隨機搜索以及常規(guī)BAS 算法進行比較,結(jié)果如表2所示。
表2 尋優(yōu)速度對比
表2 中,網(wǎng)格搜索法由于需要對所有超參數(shù)的可能組合進行窮舉計算,因此所花費的尋優(yōu)時間最長,達到434.97 s;隨機搜索僅需對特定數(shù)量的超參數(shù)隨機組合進行尋優(yōu)計算,無需遍歷所有組合,因此尋優(yōu)時間相比于網(wǎng)格搜索大大縮短,但仍遠大于BAS算法的77.46 s與改進后的BAS的57.99 s。
算法的整個尋優(yōu)過程共迭代100 次,迭代曲線如圖5 所示,迭代時采用預測值與真實值之間的均方誤差作為適應(yīng)度函數(shù),經(jīng)過13 次迭代后達到最優(yōu)點。2個參數(shù)的迭代曲線分別如圖6和圖7所示。由圖中可看出,經(jīng)過13次迭代,算法均尋優(yōu)到了2個參數(shù)的全局最優(yōu)值,其中最優(yōu)決策樹棵數(shù)為78,最優(yōu)樹深度為7。
圖7 樹的最大深度尋優(yōu)曲線
利用尋優(yōu)得到的XGBoost 算法最優(yōu)超參數(shù)組合建立預測模型進行訓練,并與未尋優(yōu)的XGBoost 預測模型進行對比。圖8 給出了2 種模型分別進行100組測試的結(jié)果,從圖中可以看出XGBoost 模型的R2在0.896~0.919 之間波動,而基于改進BAS 算法的XGBoost 模型的R2在0.917~0.934 之間進行波動。經(jīng)過計算,XGBoost 模型100 組測試的R2平均值為0.913,改進的BAS-XGBoost 的R2平均值為0.929,經(jīng)過改進后提高了約1.8%。
圖8 改進前后R2對比
本文選擇測試集中的40 組數(shù)據(jù)進行分析。圖9為2 種模型在這40 組數(shù)據(jù)上的預測值與真實值對比曲線圖。圖10、圖11 分別給出了2 種模型預測值和真實值的散點擬合圖,圖中的每個點以真實值為縱坐標值,以對應(yīng)的預測值為橫坐標值。從圖中可直觀看出,在測試集上改進的BAS-XGBoost 的預測點位相比于XGBoost 的更加逼近真實值。
圖9 預測值與真實值曲線圖
圖10 XGBoost預測值與真實值擬合曲線
圖11 改進的BAS-XGBoost預測值與真實值擬合曲線
表3給出了2種模型測試集預測值與對應(yīng)的實際值。以均方誤差與平均絕對誤差為評價指標,通過對預測結(jié)果計算可知,改進BAS-XGBoost 模型預測結(jié)果與實際值的均方誤差與平均絕對誤差相比于XGBoost 模型均有顯著的降低,具體結(jié)果如表4。很明顯,無論是MSE,還是MAE,改進的BAS-XGBoost預測模型均大大優(yōu)于XGBoost。
表3 實際值與預測值對比
表4 模型誤差
本文以某地下工程空調(diào)系統(tǒng)為研究對象,提出了一種基于改進的BAS 優(yōu)化XGBoost 算法的地下空間空調(diào)系統(tǒng)負荷預測模型。首先利用相關(guān)性分析篩選出對負荷影響較大的變量,再利用典型最優(yōu)解引導機制與基于當前迭代次數(shù)的線性遞減策略對BAS 進行改進,然后利用改進后的BAS 算法對XGBoost 算法的超參數(shù)進行尋優(yōu)以獲得其最佳參數(shù)組合,提升模型的預測精度。通過與未優(yōu)化的預測模型對比,表明改進后的BAS 算法可成功搜索到XGBoost 算法的最優(yōu)超參數(shù)組合,且尋優(yōu)之后的模型預測精度相比于尋優(yōu)前有了明顯提升。后續(xù)研究應(yīng)著眼于如何利用本文所提出的空調(diào)系統(tǒng)負荷預測模型指導空調(diào)節(jié)能化運行,讓其按需供冷,以最大程度節(jié)約能源,延長地下工程封閉運行時間。