段亞窮,向 勉,劉洪笑,周丙濤,曾曙蓮
(湖北民族大學(xué) 智能科學(xué)與工程學(xué)院,湖北 恩施 445000)
隨著我國經(jīng)濟和科技的不斷發(fā)展[1],中國不再缺少電能,轉(zhuǎn)而尋求電能質(zhì)量和清潔能源的發(fā)展.所以中國政府在第75屆聯(lián)合國大會上提出:“中國將提高國家自主貢獻(xiàn)力度,采取更加有力的政策和措施,二氧化碳排放力爭于2030年前達(dá)到峰值,努力爭取2060年前實現(xiàn)碳中和”.風(fēng)力發(fā)電作為新能源之一,因為其發(fā)電量的難以預(yù)測性,從而給發(fā)電計劃的制定產(chǎn)生了一定的影響.對風(fēng)力發(fā)電機的發(fā)電量進(jìn)行預(yù)測研究,可對制定發(fā)電計劃起到較為重要的參考作用.
由于近些年機器學(xué)習(xí)[2]和深度學(xué)習(xí)[3]不斷地發(fā)展,許多學(xué)者在利用其進(jìn)行預(yù)測電力發(fā)電量和電力負(fù)荷預(yù)測[4]上做出了許多研究和探索.陳思勤等[5]通過XGBoost算法對火力發(fā)電廠的短期發(fā)電量進(jìn)行預(yù)測,其對于原始數(shù)據(jù)只采用了數(shù)值化的處理,沒有進(jìn)行數(shù)值的標(biāo)準(zhǔn)化處理,使得數(shù)值大小的影響沒有消除.郭文強等[6]采用BP(back propagation)神經(jīng)網(wǎng)絡(luò)對風(fēng)力發(fā)電的發(fā)電量進(jìn)行預(yù)測,提高了準(zhǔn)確率,但其測試集的數(shù)量過少導(dǎo)致魯棒性較差.陳巖等[7]采用基于支持向量機(support vector machine,SVM)的風(fēng)電發(fā)電量預(yù)測方法,將風(fēng)電功率的歷史數(shù)據(jù)作為因變量,將風(fēng)力發(fā)電的影響因素作為自變量建立模型,最終得到94.7%的準(zhǔn)確率.廖耀華[8]利用隨機森林以地理和氣象作為數(shù)據(jù)輸入,取得了良好的效果,但其特征較少,且只使用單一的模型進(jìn)行對比分析.Wei Dong等[9]利用歷史數(shù)值和天氣預(yù)報數(shù)值作為數(shù)據(jù)參數(shù)輸入自適應(yīng)神經(jīng)模糊推理系統(tǒng)(adaptive network-based fuzzy inference system,ANFIS),通過粒子群優(yōu)化算法(particle swarm optimization,PSO)優(yōu)化ANFIS參數(shù),從而預(yù)測多時間尺度的發(fā)電量.上述研究都是通過序列數(shù)據(jù)進(jìn)行預(yù)測,忽略了采用離散風(fēng)機數(shù)據(jù)對功率預(yù)測,且精度不高,對多維度數(shù)據(jù)的處理還存在不足,模型的準(zhǔn)確率和誤差存在提高的空間.本文采用XGBoost對數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)(supervisory control and data acquisition,SCADA)收集的不同風(fēng)機數(shù)據(jù)進(jìn)行特征重要性分析,并降維輸入模型預(yù)測了風(fēng)電的發(fā)電量,最后與隨機森林[10]、決策樹[11]模型進(jìn)行對比,驗證本文方法的優(yōu)越性.
深度學(xué)習(xí)的出現(xiàn),使得數(shù)據(jù)量度、數(shù)據(jù)維度、數(shù)據(jù)復(fù)雜度都成倍地增長,這導(dǎo)致在建模之前對原始數(shù)據(jù)的處理變得尤為重要,不同的數(shù)據(jù)處理方式?jīng)Q定著模型表現(xiàn)的好壞.本文采用的數(shù)據(jù)集取自某風(fēng)電場SCADA所采集的數(shù)據(jù),共有21個特征和28 200條數(shù)據(jù),其中特征包括有:風(fēng)機標(biāo)識、日期時間、風(fēng)速、大氣溫度、軸溫、葉片U形角、齒輪箱溫度、發(fā)電機溫度、電機扭矩、大氣壓力、風(fēng)車體溫度、風(fēng)向、電阻、轉(zhuǎn)子扭矩、云層、葉片長度、葉片寬度、風(fēng)輪機狀態(tài)、風(fēng)車高度、風(fēng)車發(fā)電功率、區(qū)域溫度.
對數(shù)據(jù)中存在的空缺值、異常值進(jìn)行處理,一般采取眾數(shù)、中位數(shù)、平均值等方法進(jìn)行補全.本文數(shù)據(jù)中存在的空缺值與其他特征參數(shù)無關(guān),屬于完全隨機缺失,如大氣溫度、大氣氣壓等,采取均值插補的方法補全不會破壞特征數(shù)據(jù)的分布,中位數(shù)、眾數(shù)插補容易造成數(shù)據(jù)傾斜,從而導(dǎo)致實驗結(jié)果失真.因此,本文采用均值插補的方法補充數(shù)據(jù)中的缺失.數(shù)據(jù)中汽輪機的狀態(tài)以文本來表示,如BB、AAA、AB等,為使其能夠作為原始數(shù)據(jù)輸入,采用one-hot編碼思想,添加新的特征turbine_status_BB、turbine_status_AAA等,其相對應(yīng)的汽輪機狀態(tài)為1,否則為0.
最后將刪除處理過后的數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化.經(jīng)過標(biāo)準(zhǔn)化處理后,原始數(shù)據(jù)轉(zhuǎn)化為無量綱化指標(biāo)測評值,各指標(biāo)值處于同一數(shù)量級別.若直接用原始值進(jìn)行分析,則突出數(shù)值較高的指標(biāo)在綜合分析中的作用,相對削弱數(shù)值水平較低指標(biāo)的作用.標(biāo)準(zhǔn)化公式如式(1)所示.
(1)
式中:μ為所有樣本數(shù)據(jù)的均值,σ為所有樣本數(shù)據(jù)的標(biāo)準(zhǔn)差.經(jīng)過預(yù)處理后的數(shù)據(jù)如表1所示.
表1 預(yù)處理后的數(shù)據(jù)Tab.1 Data set after data processing
XGBoost是2014年由華盛頓大學(xué)的陳天奇[12]博士在GBDT(gradient boosting decision tree)的基礎(chǔ)上改進(jìn)而來的,其屬于Boosting迭代型,因為速度快、效果好、能處理大規(guī)模數(shù)據(jù)、支持多種語言、支持自定義損失函數(shù)等優(yōu)點而備受關(guān)注.本文利用XGBoost的特征重要性分析和回歸模型建立雙層XGBoost模型,第一層為數(shù)據(jù)處理層,依靠XGBoost對數(shù)據(jù)特征進(jìn)行分析降維,第二層為預(yù)測層,利用XGBoost的回歸算法建立發(fā)電量預(yù)測模型.
在使用XGBoost進(jìn)行特征重要性排序[13]時,有3種方式:第1種根據(jù)特征用到的次數(shù)進(jìn)行排序;第2種根據(jù)節(jié)點分裂時帶來的信息熵進(jìn)行排序;第3種根據(jù)分裂時葉子結(jié)點的樣本數(shù)除以特征分裂次數(shù)的得分進(jìn)行排序.當(dāng)數(shù)據(jù)存在二元特征的情況下,會頻繁地在樹的兩級上分裂,從而導(dǎo)致其使用次數(shù)和分裂次數(shù)失真,在高基數(shù)特征中樹的數(shù)量很多,不會頻繁地在一棵樹上分裂.本文數(shù)據(jù)中發(fā)電機狀態(tài)、大氣壓力為二元特征,第1種方法和第3種方法均存在局限性,從而導(dǎo)致特征重要性排序不準(zhǔn)確.因此,本文使用信息熵方法得到各個特征的得分排序并經(jīng)過式(2)得出其相對特征重要性.
(2)
其中F*為單個特征的相對特征重要性,F(xiàn)是單個特征的重要性分?jǐn)?shù),F(xiàn)S為所有特征重要性分?jǐn)?shù)總和.特征重要性排序如圖1所示.
圖1 特征重要性排序Fig.1 Ranking chart of feature importance
圖1顯示發(fā)電量特征重要程度排序為:葉片角度、風(fēng)速、轉(zhuǎn)矩、電阻、區(qū)域溫度、大氣溫度、發(fā)動機溫度、軸溫、大氣壓強、風(fēng)向、齒輪箱溫度、葉片寬度、天、風(fēng)車高度、轉(zhuǎn)子轉(zhuǎn)矩、月份、星期、云層高度以及發(fā)動機的14個狀態(tài).對于風(fēng)力發(fā)電影響最大的因素為葉片角度、風(fēng)速、轉(zhuǎn)矩、電阻等,而發(fā)電機的狀態(tài)對于預(yù)測風(fēng)力發(fā)電量的影響可以忽略不計.
圖2為輸入的特征個數(shù)與R2的關(guān)系圖(R2代表預(yù)測值與真實值的擬合程度,表示回歸問題的準(zhǔn)確率).如圖2所示,隨著輸入特征數(shù)量(輸入規(guī)則為重要性最高的向最低的依次輸入)的增多,準(zhǔn)確率不斷波動上升,當(dāng)特征輸入過多會使得模型學(xué)習(xí)更加局限,使得預(yù)測值與真實值的擬合性變差,準(zhǔn)確率開始下降.當(dāng)輸入特征數(shù)量為19時,其R2準(zhǔn)確率最高.結(jié)合圖1和圖2,本文選取重要程度最高的19個特征作為自變量.
圖2 輸入的特征個數(shù)與R2的關(guān)系Fig.2 Relationship between the number of input features and R2
對數(shù)據(jù)進(jìn)行預(yù)處理后,首先利用XGBoost的特征重要性分析對各個特征在模型中的權(quán)重進(jìn)行排序,并根據(jù)排序結(jié)果進(jìn)行特征篩選,以起到降維的作用,然后以XGBoost、決策樹和隨機森林分別建立風(fēng)力發(fā)電預(yù)測模型,最后利用平均絕對誤差(mean absolute error,MAE)、均方誤差(mean square error,MSE)、均方根誤差(root mean square error,RMSE)和R2準(zhǔn)確率評估模型預(yù)測結(jié)果.實驗流程如圖3所示.本文的實驗環(huán)境是Python 3.7,操作系統(tǒng)為Windows10,32 GB,Intel(R) Core(TM)i7 10 700 k CPU,NVIDIA GeForce 3070顯卡.
圖3 實驗流程Fig.3 Experimental flow chart
XGBoost模型可以作為分類和回歸算法,這取決于其參數(shù)的選擇,選擇不同的參數(shù)其模型的好壞也不同.XGBoost的參數(shù)主要有通用參數(shù)、提升參數(shù)和學(xué)習(xí)任務(wù)參數(shù).在模型參數(shù)設(shè)置時,需要綜合考慮模型訓(xùn)練速度、過擬合、模型魯棒性、模型準(zhǔn)確率等方面的影響.本文基于文獻(xiàn)[14]選擇參數(shù)為:樹的數(shù)目,當(dāng)樹的數(shù)目增加可增加模型的魯棒性;樹的最大深度,選擇合適的深度可有效避免過擬合;葉子節(jié)點中最小樣本權(quán)重和,用于避免過擬合;L1正則化項的懲罰系數(shù),高維時候加快計算速度.此外本文采用了網(wǎng)格搜索的方法對模型部分參數(shù)進(jìn)行優(yōu)化,以尋求最優(yōu)參數(shù).XGBoost參數(shù)如表2所示.
表2 XGBoost參數(shù)Tab.2 XGBoost parameter table
表3 實驗結(jié)果Tab.3 Table of experimental results
本文的問題屬于回歸性問題,MSE、RMSE、MAE能夠表現(xiàn)預(yù)測值和真實值之間的誤差水平,其表達(dá)式如式(3)(4)(5)所示:
(3)
(4)
(5)
取值范圍為[0,+∞),當(dāng)預(yù)測值與真實值完全吻合時等于0,即完美模型;誤差越大,該值越大.準(zhǔn)確率通過決定系數(shù)(R2)來測定,決定系數(shù)反映因變量的全部變異能通過回歸關(guān)系被自變量解釋的比例.表達(dá)式如式(6)所示.
(6)
其中SSE表示發(fā)電量預(yù)測值與真實值的誤差,代表模型擬合程度;SST表示預(yù)測平均值與真實值的誤差,代表數(shù)學(xué)期望的偏離程度.
將降維后數(shù)據(jù)分別輸入XGBoost、隨機森林和決策樹模型,通過評價指標(biāo)對模型進(jìn)行評估,實驗結(jié)果如表3所示.
從表3可以看出,XGBoost、決策樹和隨機森林的準(zhǔn)確率分別為96.1%、91.5%和94.2%,XGBoost與真實值有較高的擬合程度,隨機森林和決策樹相比于XGBoost的擬合度要小,且XGBoost模型的誤差更小,XGBoost、隨機森林、決策樹降維后的平均絕對誤差為0.26、0.32、0.42,XGBoost的平均絕對誤差比隨機森林減少了0.06,比決策樹減少了0.16. 3種模型降維后的均方誤差分別為0.29、0.37、0.62,對比未降維時分別減少了0.15、0.72、0.14. 3種模型降維后的均方根誤差分別為0.53、0.61、0.78,對比未降維分別減少了0.13、0.43、0.09.XGBoost的均方根誤差、平均絕對誤差、均方誤差都小于隨機森林和決策樹,這表明XGBoost真實值與預(yù)測值的誤差也小于隨機森林和決策樹.3種模型在降維情況下運行時間為9.74、4.62、13.69 s,未降維的情況下為36.60、15.36、48.75 s,3種模型降維速度對比未降維的速度平均提升了51.3%,且XGBoost在對比降維和未降維的情況下速度提升了73.4%,數(shù)據(jù)的降維減少了26.86 s的模型計算時間.當(dāng)模型特征過多時,模型訓(xùn)練容易陷入局部學(xué)習(xí),從而導(dǎo)致模型的準(zhǔn)確率降低,選擇合適的特征數(shù)會提升準(zhǔn)確率,減少誤差.降維后模型的準(zhǔn)確率提高了1.1%,平均絕對誤差減少了0.16,均方誤差減少了0.15,均方根誤差減少了0.13,證明實驗結(jié)果與理論相符.
圖4和圖5描述3種模型與真實值之間的擬合曲線和預(yù)測發(fā)電量與真實發(fā)電量之間的殘差.觀察圖4可知:XGBoost同隨機森林和決策樹相比,預(yù)測曲線始終與真實值相擬合,即使在發(fā)生突變的情況下(如圖4中標(biāo)記所示)也具有較高的準(zhǔn)確率.由圖5可得:XGBoost發(fā)電量殘差始終在0刻度線上下小范圍波動,隨機森林與決策樹的發(fā)電量殘差波動較大,誤差較大.說明XGBoost對比隨機森林和決策樹,具有更好的魯棒性.
圖4 預(yù)測值與真實值對比Fig.4 Line chart of comparison between the predicted value and the real value
圖5 發(fā)電量殘差Fig.5 Residual power generation
對于風(fēng)力發(fā)電場負(fù)荷難以預(yù)測的問題,提出了雙層XGBoost風(fēng)力發(fā)電預(yù)測模型.第一層依靠XGBoost的特征重要性分析能力,利用特征工程,對多特征數(shù)據(jù)進(jìn)行降維,建立與發(fā)電量高相關(guān)的多維度數(shù)據(jù);第二層使用XGBoost回歸算法建立風(fēng)力發(fā)電量預(yù)測模型對風(fēng)力發(fā)電量進(jìn)行預(yù)測.利用從SCADA中收集的數(shù)據(jù)對雙層XGBoost模型進(jìn)行實例檢測,相較于傳統(tǒng)的隨機森林、決策樹模型具有更高的預(yù)測精度,其準(zhǔn)確率達(dá)96.1%,泛化能力更強,對于多維數(shù)據(jù)具有更好的擬合程度,其均方根誤差、平均絕對誤差、均方誤差分別為0.53、0.26、0.29.雙層XGBoost可對制定發(fā)電計劃起到較為重要的參考作用.