李晉源,保富,胡凱,張麗娟
(1.云南電網(wǎng)有限責(zé)任公司信息中心,昆明 650217; 2. 云南電網(wǎng)有限責(zé)任公司,昆明 650200)
在電力系統(tǒng)中,線損管理是電網(wǎng)運(yùn)維和供電企業(yè)電能營(yíng)銷服務(wù)系統(tǒng)的重要基礎(chǔ)業(yè)務(wù)[1]。在我國(guó),臺(tái)區(qū)線損約占整個(gè)電網(wǎng)線損的20%,嚴(yán)重的電力損耗不僅損害了電網(wǎng)公司的利益,也與我國(guó)雙碳這一目標(biāo)的實(shí)現(xiàn)背道而馳,對(duì)臺(tái)區(qū)線損進(jìn)行管理迫在眉睫[2]。而線損率的準(zhǔn)確預(yù)測(cè)有助于提高線損管理水平,因此,對(duì)線損率預(yù)測(cè)方法進(jìn)行研究具有重要的實(shí)際意義。
目前,國(guó)內(nèi)外有許多研究人員對(duì)線損率計(jì)算方法進(jìn)行了深度研究,主要集中在深度學(xué)習(xí)、集成學(xué)習(xí)等智能算法上。文獻(xiàn)[3]中,提出了一種將級(jí)聯(lián)BP神經(jīng)網(wǎng)絡(luò)和小生境遺傳算法相結(jié)合的臺(tái)區(qū)線損率預(yù)測(cè)模型。結(jié)果表明,該預(yù)測(cè)方法的訓(xùn)練效率和泛化能力均優(yōu)于傳統(tǒng)預(yù)測(cè)方法。文獻(xiàn)[4]中,提出了一種改進(jìn)的自編碼器方法來(lái)預(yù)測(cè)臺(tái)區(qū)的線損率。結(jié)果表明,該預(yù)測(cè)方法的相對(duì)誤差和計(jì)算效率均優(yōu)于傳統(tǒng)的預(yù)測(cè)方法。文獻(xiàn)[5]中,提出了一種將變分模態(tài)分解和改進(jìn)最小二乘支持向量機(jī)相結(jié)合來(lái)預(yù)測(cè)臺(tái)區(qū)線損率。結(jié)果表明,該預(yù)測(cè)方法的精度和效率均優(yōu)于傳統(tǒng)預(yù)測(cè)方法。文獻(xiàn)[6]中,提出了一種降噪自編碼器和長(zhǎng)短期記憶網(wǎng)絡(luò)相結(jié)合的線損率預(yù)測(cè)方法。結(jié)果表明,該模型預(yù)測(cè)線損率精度高,運(yùn)行速度適中,具有一定的應(yīng)用價(jià)值。雖然上述預(yù)測(cè)方法在一定程度上比傳統(tǒng)方法更準(zhǔn)確、更高效,但在線損率預(yù)測(cè)精度方面并不理想,需要進(jìn)一步提高。
在此基礎(chǔ)上,提出了一種結(jié)合Stacking集成學(xué)習(xí)模型和改進(jìn)的k-均值聚類方法來(lái)預(yù)測(cè)臺(tái)區(qū)的線損率。通過(guò)聚類方法進(jìn)行數(shù)據(jù)聚類,在通過(guò)Stacking集成學(xué)習(xí)模型對(duì)臺(tái)區(qū)線損率進(jìn)行預(yù)測(cè)。通過(guò)試驗(yàn)進(jìn)行了對(duì)比分析。
原始輸入數(shù)據(jù)為某省電力公司臺(tái)區(qū)數(shù)據(jù),采樣為1天/次,將連續(xù)30天的數(shù)據(jù)作為輸入,對(duì)第31日的線損率進(jìn)行預(yù)測(cè)。由于采集設(shè)備故障和人為操作等因素的干擾,存在缺失和異常等情況,在預(yù)測(cè)低壓臺(tái)區(qū)線損率之前,應(yīng)對(duì)這些線損數(shù)據(jù)進(jìn)行處理[7]。
(1)缺失值處理技術(shù)。
部分線損率數(shù)據(jù)為零或?yàn)榭?,影響線損率預(yù)測(cè)效果。文中用拉格朗日插值法對(duì)這些數(shù)據(jù)進(jìn)行了補(bǔ)充。
提取缺失點(diǎn)前后的五個(gè)數(shù)據(jù),并用式(1)和式(2)進(jìn)行補(bǔ)充[8]。
(1)
(2)
式中r為缺數(shù)據(jù)對(duì)應(yīng)的下標(biāo)序號(hào);ri為非缺失數(shù)據(jù)yi的下標(biāo)序號(hào);Ln(r)為補(bǔ)充數(shù)據(jù);li(r)為拉格朗日多項(xiàng)式。
(2)異常值處理。
對(duì)數(shù)據(jù)進(jìn)一步分析,找出異常值進(jìn)行剔除。線損率:剔除線損率≤0%或>40%的異常高損耗臺(tái)區(qū)。功率因數(shù):剔除功率因數(shù)<0.6的臺(tái)區(qū)[9]。
(3)數(shù)據(jù)歸一化。
為了更全面地預(yù)測(cè)線損率,需要對(duì)數(shù)據(jù)進(jìn)行歸一化處理,數(shù)據(jù)歸一化過(guò)程如式(3)所示[10]:
(3)
式中x和x′分別為原始數(shù)據(jù)的實(shí)際值和歸一化數(shù)據(jù);xmax和xmin分別為原始數(shù)據(jù)的最大值和最小值。
麥奎因提出了k-均值聚類算法,不再考慮相似性問(wèn)題,而是考慮距離問(wèn)題[11]。作為一種優(yōu)化,它是通過(guò)找到目標(biāo)函數(shù)的極值來(lái)調(diào)整的。步驟如下:
步驟1:將類別數(shù)k定義為初始化過(guò)程中初始集群中心的數(shù)量。
步驟2:根據(jù)式(4)計(jì)算樣品與每個(gè)中心點(diǎn)之間的距離。樣本和最近的中心點(diǎn)被分組為一類,形成k個(gè)簇[12]。
(4)
式中Iij為樣本點(diǎn)i到j(luò)的距離;m為樣本點(diǎn)坐標(biāo)的維數(shù);Zik和Zjk分別第k個(gè)簇中樣本點(diǎn)i和j的坐標(biāo)。
步驟3:將坐標(biāo)平均值作為新聚類中心。
步驟4:通過(guò)式(5)判斷是否收斂[13]。
(5)
式中Zq為Ci類中的樣本q的坐標(biāo);mi為Ci類的聚類中心坐標(biāo);E為平方誤差。
k-均值聚類方法需要在聚類之前確定聚類的數(shù)目[14]。其次,聚類中心的確定原則不明確,如果初始值選擇不正確,后續(xù)工作就無(wú)法得到理想的聚類擬合結(jié)果[15]。
為了優(yōu)化k-means聚類方法,使用聚類結(jié)果的總輪廓系數(shù)St(值越高,效果越好)來(lái)選擇最優(yōu)k值。對(duì)于任何采樣點(diǎn)i,輪廓系數(shù)S(i)的計(jì)算如式(6)所示[16]:
(6)
式中q(i)為點(diǎn)i與聚類中其他點(diǎn)的距離值;p(i)為點(diǎn)i與聚類中其他點(diǎn)的最小平均距離。
聚類結(jié)果總輪廓系數(shù)計(jì)算如式(7)所示[17]:
(7)
采用評(píng)價(jià)指標(biāo)PE評(píng)估聚類的質(zhì)量,聚類如式(8)所示[18]:
(8)
式中ωj為第j個(gè)特征參數(shù)的權(quán)重;Zij為第j個(gè)簇中樣本點(diǎn)i的坐標(biāo);Zjmin為距離最近的第j個(gè)聚類中心坐標(biāo)。根據(jù)PE值的升序原則,將樣本平均劃分為k個(gè)類別,并將每個(gè)類別的中心樣本設(shè)置為該類別的聚類中心。使用上述公式通過(guò)迭代計(jì)算確定理想分類。
Stacking集成學(xué)習(xí)模型融合了多個(gè)預(yù)測(cè)模型,將原始數(shù)據(jù)劃分多個(gè)子集,輸入第1層的各基學(xué)習(xí)器,輸出結(jié)果作為第2層的元學(xué)習(xí)器的輸入[19]。學(xué)習(xí)方法如圖1所示。
圖1 Stacking集成學(xué)習(xí)模型學(xué)習(xí)方法
模型的訓(xùn)練方法如下:
對(duì)于數(shù)據(jù)集S={(xn,yn),n=1,…,N},xn為第n個(gè)樣本的特征向量;yn為第n個(gè)樣本對(duì)應(yīng)的預(yù)測(cè)值;p為包含的特征個(gè)數(shù)。即每個(gè)特征向量為(x1,x2,…,xp)。將數(shù)據(jù)隨機(jī)分成k個(gè)大小相同的子集S1,S2,…,Sk。
以第1個(gè)基學(xué)習(xí)器為例,每個(gè)子數(shù)據(jù)Si(i=1,2,…,K)作為測(cè)試集,剩下的作為訓(xùn)練集,得到預(yù)測(cè)結(jié)果,組合成集合L1[20]。L1長(zhǎng)度與S相同。 所有L={L1,L1,…,Ln}基學(xué)習(xí)器得到集合L1,L1,…,Ln作為新的數(shù)據(jù)集L,作為第2層的輸入,第2層對(duì)第1層的誤差進(jìn)行修正,從而提高診斷模型的準(zhǔn)確性[21]。
Stacking集成模型第1層選擇不同類型的基學(xué)習(xí)器對(duì)數(shù)據(jù)進(jìn)行多角度分析。第2層元學(xué)習(xí)器要泛化能力強(qiáng)的模型,這有助于糾正第1層診斷錯(cuò)誤并獲得最佳診斷結(jié)果[22]。
基于基學(xué)習(xí)器的預(yù)測(cè)能力,在Stacking模型的第1層選擇XGBoost模型、長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(Long Short Term Memory, LSTM)和梯度提升決策樹(Gradient Boosted Decision Tree,GBDT)。這是因?yàn)長(zhǎng)STM能夠充分挖掘包含在大量數(shù)據(jù)中的有效信息,具有長(zhǎng)期記憶以及深度學(xué)習(xí)的能力[23]。采用bagging 集成的GBDT適用于高維數(shù)據(jù),學(xué)習(xí)能力較強(qiáng),擁有并行處理能力[24]。采用boosting方法集成的XGBoost增加了正則化項(xiàng),有效地防止了過(guò)度擬合,效率較高[25]。
第2層選擇泛化能力強(qiáng)的模型。根據(jù)該模型,總結(jié)和糾正了各種學(xué)習(xí)算法對(duì)訓(xùn)練集的偏差,并通過(guò)集合方法防止了過(guò)度擬合效應(yīng)。在第2層中, XGBoost 被選為元學(xué)習(xí)器,模型架構(gòu)如圖2所示。
圖2 Stacking集成模型結(jié)構(gòu)
預(yù)測(cè)方法的具體步驟如下:
步驟1:輸入原始數(shù)據(jù);
步驟2:數(shù)據(jù)預(yù)處理。補(bǔ)充缺失數(shù)據(jù),刪除異常數(shù)據(jù),對(duì)所有數(shù)據(jù)進(jìn)行歸一化;
步驟3:通過(guò)灰色關(guān)聯(lián)度分析對(duì)指標(biāo)體系進(jìn)行構(gòu)建;
步驟4:降低樣本數(shù)據(jù)指標(biāo)的維度,消除指標(biāo)之間相關(guān)性的影響,從而更好地對(duì)樣本進(jìn)行分類;
步驟5:利用改進(jìn)的k-均值聚類技術(shù)對(duì)臺(tái)區(qū)進(jìn)行聚類;
步驟6:選擇XGBoost模型、GNDT模型和LSTM模型作為元學(xué)習(xí)器,建立Stacking集成學(xué)習(xí)模型預(yù)測(cè)線損率;
步驟7:與傳統(tǒng)模型進(jìn)行對(duì)比比較。圖3所示預(yù)測(cè)方法的流程。
圖3 預(yù)測(cè)方法流程
此次試驗(yàn)的CPU為Intel i52450m,操作系統(tǒng)為Windows 10 64位旗艦,內(nèi)存為64 G,硬盤為1 T,頻率為2.5 GHz,仿真軟件為MATLAB。為了驗(yàn)證所提方法的優(yōu)越性,選取了9 000個(gè)有源臺(tái)區(qū)對(duì)線損率進(jìn)行了計(jì)算和分析。訓(xùn)練集與測(cè)試集的比值為2:1。算法參數(shù)如表1所示,算法參數(shù)通過(guò)參考文獻(xiàn)[26-27]和多次試驗(yàn)取值。
表1 算法參數(shù)
為了更好地評(píng)估文中模型的性能,選擇兩個(gè)指標(biāo)對(duì)模型進(jìn)行評(píng)估,均方誤差(Mean Square Error,MAE)和R2,如式(9)和式(10)所示:
(9)
(10)
式中xs和x′s分別為s時(shí)刻臺(tái)區(qū)線損率的實(shí)際值和預(yù)測(cè)值;N為計(jì)算的總時(shí)間;x′為臺(tái)區(qū)線損率平均值。
使用所提的聚類算法對(duì)數(shù)據(jù)進(jìn)行聚類,將初始聚類數(shù)k從2增加到9,并計(jì)算不同k值的輪廓系數(shù),如表2所示。
表2 不同 k時(shí)的輪廓系數(shù)
從表2可以看出,當(dāng)k=5時(shí),輪廓系數(shù)的值為最大值0.341,聚類效果最優(yōu)。文中選取k=5。
將樣本根據(jù)PE從小到大分為五類,樣本中心是初始聚類中心。五個(gè)中心的樣本數(shù)如表3所示。
表3 各類樣本數(shù)
基于上述分類結(jié)果,使用Stacking集成學(xué)習(xí)對(duì)5類樣本的訓(xùn)練集進(jìn)行訓(xùn)練,測(cè)試樣本用于預(yù)測(cè)訓(xùn)練模型的線損率,并與傳統(tǒng)模型(XGBoost、GBDT、LSTM)進(jìn)行比較。預(yù)測(cè)結(jié)果如表4所示,部分評(píng)估結(jié)果如表5所示,運(yùn)行時(shí)間如表6所示。
表4 不同模型的預(yù)測(cè)誤差對(duì)比
從表4和表5可以看出,文中模型預(yù)測(cè)結(jié)果中相對(duì)誤差小于5%或10%的臺(tái)區(qū)占比高于傳統(tǒng)方法,相對(duì)誤差大于20%占比與其相反。說(shuō)明所提方法預(yù)測(cè)精度最高,與實(shí)際值最為接近。這是因?yàn)樗岱椒ㄈ诤隙喾N模型進(jìn)行互補(bǔ),預(yù)測(cè)結(jié)果較為精準(zhǔn)。由表6可以看出,文中模型相比于單一模型運(yùn)行時(shí)間最長(zhǎng)。這是因?yàn)榧赡P椭忻總€(gè)基分類器都需要交叉訓(xùn)練,導(dǎo)致運(yùn)行時(shí)間過(guò)長(zhǎng)。
表5 部分評(píng)估結(jié)果
表6 不同模型運(yùn)行時(shí)間對(duì)比
為了進(jìn)一步驗(yàn)證所提方法的優(yōu)越性。MSE和R2被用作衡量不同模型擬合程度的指標(biāo),如圖4和圖5所示。
圖4 不同方法MSE結(jié)果對(duì)比
圖5 不同方法R2結(jié)果對(duì)比
從圖4和圖5可以看出,文中模型的MSE值一直處于最低水平,R2值一直處于最大值,說(shuō)明文中預(yù)測(cè)方法相比于傳統(tǒng)XGBoost、GNDT、LSTM模型具有更好的預(yù)測(cè)效果,結(jié)果更加準(zhǔn)確,泛化能力更強(qiáng)。
提出了一種改進(jìn)的k-均值聚類方法和Stacking集成學(xué)習(xí)模型相結(jié)合用于預(yù)測(cè)臺(tái)區(qū)線損率。通過(guò)聚類算法進(jìn)行聚類,在通過(guò)Stacking集成學(xué)習(xí)模型對(duì)臺(tái)區(qū)線損率進(jìn)行預(yù)測(cè)。Stacking集成學(xué)習(xí)模型由XGBoost模型、GBDT模型、LSTM模型構(gòu)成。結(jié)果表明,與傳統(tǒng)預(yù)測(cè)模型相比,該方法具有更好的性能,預(yù)測(cè)結(jié)果更加準(zhǔn)確、泛化能力更強(qiáng)和實(shí)用價(jià)值更高。鑒于目前的測(cè)試設(shè)備和數(shù)據(jù)規(guī)模,文章對(duì)線損率預(yù)測(cè)方法的研究還處于起步階段。由于采用Stacking集成學(xué)習(xí)模型,計(jì)算時(shí)間較長(zhǎng)。因此,未來(lái)的研究需要結(jié)合分布式計(jì)算,逐步提高模型的性能,有效減少模型的執(zhí)行時(shí)間。