(華北電力大學(xué)控制與計(jì)算機(jī)工程學(xué)院 北京 102206)
用電量預(yù)測可以為制定科學(xué)合理的電力發(fā)展規(guī)劃提供有力依據(jù)。在選擇影響用電量因素方面,氣溫是影響用電量最重要的因子[1],同時(shí),節(jié)假日和工作日的負(fù)荷情況會有較大區(qū)別[2]。由于經(jīng)濟(jì)、氣候、政策等相關(guān)因素影響,用電量具有明顯的時(shí)間變化趨勢[3]。
基于以上用電量特征,綜合考慮氣象、節(jié)假日類型等因素的影響,并針對用電量數(shù)據(jù)具有時(shí)序特性這一性質(zhì),將時(shí)間序列和神經(jīng)網(wǎng)絡(luò)算法相結(jié)合進(jìn)行用電量預(yù)測。隨著用電量數(shù)據(jù)的增加,在spark平臺上使用時(shí)間序列-神經(jīng)網(wǎng)絡(luò)模型對用電量數(shù)據(jù)進(jìn)行預(yù)測。
時(shí)間序列分析是一種根據(jù)動態(tài)數(shù)據(jù)揭示系統(tǒng)動態(tài)結(jié)構(gòu)和規(guī)律的統(tǒng)計(jì)方法,具體描述如下:
xn=f(x1,x2,…,xm)
(1)
其中,通過前m項(xiàng)建立函數(shù),預(yù)測第n項(xiàng)的值。
根據(jù)用電量具有時(shí)序性這一特點(diǎn)[4],將歷史用電量數(shù)據(jù)也作為神經(jīng)網(wǎng)絡(luò)的輸入,對用電量進(jìn)行預(yù)測。
BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),包括輸入層、隱含層和輸出層。其基本原理是采用梯度下降法調(diào)整權(quán)值和閾值使得網(wǎng)絡(luò)的實(shí)際輸出值和期望輸出值的均方誤差最小[5]。
1.BP神經(jīng)網(wǎng)絡(luò)輸出函數(shù)為:
(2)
其中βij(i=0,1,2,…,p;j=0,1,2,…,q)和αj(j=0,1,2,…,q)是神經(jīng)網(wǎng)絡(luò)的連接權(quán)重,p、q分別是網(wǎng)絡(luò)的輸入層及隱藏層節(jié)點(diǎn)數(shù),g為網(wǎng)絡(luò)的激活函數(shù),一般使用logistic函數(shù)。
2.BP神經(jīng)網(wǎng)絡(luò)的誤差函數(shù)為:
(3)
基于Spark的神經(jīng)網(wǎng)絡(luò)并行化方法,采用spark并行編程對神經(jīng)網(wǎng)絡(luò)的權(quán)值進(jìn)行全局化迅游,經(jīng)過一定次數(shù)的迭代后,得到優(yōu)化的神經(jīng)網(wǎng)絡(luò)初始權(quán)值,再使用并行的神經(jīng)網(wǎng)絡(luò)算法進(jìn)行迭代,最終輸出網(wǎng)絡(luò)結(jié)構(gòu)[5]。
并行化實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)具體步驟如下:
步驟1:數(shù)據(jù)預(yù)處理,將全局訓(xùn)練集切分成多個子集和,并且存儲到分布式文件系統(tǒng)中;
步驟2:對BP神經(jīng)網(wǎng)絡(luò)的權(quán)值進(jìn)行全局尋優(yōu),得到優(yōu)化的網(wǎng)絡(luò)初始權(quán)值;
步驟3:在各計(jì)算節(jié)點(diǎn)上均采用優(yōu)化后的網(wǎng)絡(luò)初始權(quán)值建立自身的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu);
步驟4:采用BP神經(jīng)網(wǎng)絡(luò)算法,對原始訓(xùn)練數(shù)據(jù)集進(jìn)行迭代訓(xùn)練。
步驟5:輸出訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),使用并行BP神經(jīng)網(wǎng)絡(luò)算法進(jìn)行迭代訓(xùn)練,使用訓(xùn)練好的模型并行預(yù)測用電量。
本文的實(shí)驗(yàn)樣本包括電量數(shù)據(jù)、氣候數(shù)據(jù)、節(jié)假日類型三種數(shù)據(jù),其中電量數(shù)據(jù)來自某省A市,數(shù)據(jù)時(shí)間跨度為2015年8月至2016年8月,采集頻率為1日/次;氣候數(shù)據(jù),即日最高氣溫與日最低氣溫,來自A市天氣網(wǎng);節(jié)假日類型是說明某一天是否為節(jié)假日,數(shù)據(jù)根據(jù)實(shí)際情況自行記錄。
預(yù)測樣本數(shù)據(jù)集如表1所示,為達(dá)到時(shí)間序列預(yù)測的目的,將x1-1、以及x1-2的用電量數(shù)據(jù)作為x1的影響因素,歸一化后將其一并作為時(shí)間序列神經(jīng)網(wǎng)絡(luò)的輸入,訓(xùn)練模型。

表1 預(yù)測樣本數(shù)據(jù)集
為驗(yàn)證時(shí)間序列-神經(jīng)網(wǎng)絡(luò)算法在預(yù)測用電量方面的高精確性,使用matlab中的神經(jīng)網(wǎng)絡(luò)工具箱,分別采用時(shí)間序列-BP神經(jīng)網(wǎng)絡(luò)和BP神經(jīng)網(wǎng)絡(luò)算法進(jìn)行預(yù)測用電量對比實(shí)驗(yàn)。圖1(a)(b)直觀地展示了兩個模型預(yù)測的精度,從圖中可以看到兩者預(yù)測誤差基本在0.0%~10%之間,滿足精度要求。同時(shí)可大致看出前者預(yù)測誤差超過10%的數(shù)據(jù)占比要小于后者。經(jīng)過數(shù)據(jù)統(tǒng)計(jì)得到,如表2所示。
使用時(shí)間序列-神經(jīng)網(wǎng)絡(luò)模型預(yù)測的誤差超過10%的數(shù)據(jù)占比為15.3%,而神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)占比為19.2%。

圖1 (a)時(shí)間序列-神經(jīng)網(wǎng)絡(luò)預(yù)測結(jié)果
從預(yù)測精度來看,考慮了用電量時(shí)序特性的時(shí)間序列-神經(jīng)網(wǎng)絡(luò)算法更適于用電量預(yù)測,而僅從影響用電量因素考慮的神經(jīng)網(wǎng)絡(luò)模型表現(xiàn)稍差。

圖1 (b)神經(jīng)網(wǎng)絡(luò)預(yù)測結(jié)果

算法模型誤差小于5%的數(shù)據(jù)占比誤差大于10%的數(shù)據(jù)占比時(shí)間序列-神經(jīng)網(wǎng)絡(luò)68.4%15.3%神經(jīng)網(wǎng)絡(luò)65.1%19.2%
進(jìn)行用電量分析預(yù)測時(shí),由于數(shù)據(jù)量較大,為提高其效率,本次實(shí)驗(yàn)在spark上實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)算法,使用eclipse軟件及Scala語言對神經(jīng)網(wǎng)絡(luò)算法進(jìn)行編寫,并對用電量進(jìn)行預(yù)測。經(jīng)過多次測試后,最終選定1個中間層、中間層節(jié)點(diǎn)為7、輸出信號為用電量所構(gòu)成的結(jié)構(gòu)為5-7-1的時(shí)間序列-神經(jīng)網(wǎng)絡(luò)為所用模型。為進(jìn)一步驗(yàn)證本文建立的時(shí)間序列-BP神經(jīng)網(wǎng)絡(luò)模型在spark的高效性和準(zhǔn)確性,對模型的預(yù)測誤差和平均絕對誤差進(jìn)行了計(jì)算。
選取A市2016年9月1~7日的天氣數(shù)據(jù)、節(jié)假日類型作為該模型的輸入數(shù)據(jù),使用該模型預(yù)測2016年9月的用電量,并計(jì)算預(yù)測值和實(shí)際值的誤差,預(yù)測結(jié)果及預(yù)測誤差如表3所示:
平均絕對誤差能夠定量考察模型的預(yù)測精度,值越小說明預(yù)測效果越好,其計(jì)算公式如下:
(4)


表3 A市2016年9月用電量預(yù)測結(jié)果及誤差
本文考慮用電量具有時(shí)序性這一規(guī)律,綜合考慮天氣、時(shí)間、節(jié)假日類型的影響,提出了時(shí)間序列-神經(jīng)網(wǎng)絡(luò)預(yù)測模型,并在spark平臺上對用電量進(jìn)行了預(yù)測。從預(yù)測結(jié)果可知,該模型對用電量的預(yù)測精度較高。
隨著用電量數(shù)據(jù)的增加,將模型應(yīng)用在大數(shù)據(jù)集群上運(yùn)行可保證數(shù)據(jù)的存儲空間,并行預(yù)測可大大減少模型訓(xùn)練、預(yù)測時(shí)間。
下一步研究的重點(diǎn)則是,在用電量數(shù)據(jù)驟增的將來,進(jìn)一步在大數(shù)據(jù)集群中完善預(yù)測模型,對時(shí)間序列-神經(jīng)網(wǎng)絡(luò)模型的參數(shù)進(jìn)行訓(xùn)練和優(yōu)化,提高預(yù)測精度。