陳功貴, 陳 靖, 郭艷艷, 王 偉
(1.重慶郵電大學(xué)重慶市復(fù)雜系統(tǒng)與仿生控制重點(diǎn)實(shí)驗(yàn)室,重慶400065;2.武漢鐵路職業(yè)技術(shù)學(xué)院機(jī)械與電子學(xué)院,武漢430205;3.國(guó)家電網(wǎng)重慶市綦南供電局,重慶401420)
風(fēng)速的隨機(jī)性和波動(dòng)性給風(fēng)速預(yù)測(cè)增加了難度[1-2]。風(fēng)速預(yù)測(cè)精度的提高需要對(duì)風(fēng)速數(shù)據(jù)進(jìn)行預(yù)處理,還要選擇一個(gè)合適的預(yù)測(cè)模型。物理和統(tǒng)計(jì)方法是目前風(fēng)速預(yù)測(cè)的主要方法[3-4]。統(tǒng)計(jì)方法包括時(shí)間序列模型、支持向量機(jī)模型(SVM)和人工神經(jīng)網(wǎng)絡(luò)模型(ANN)等[5-6]。數(shù)據(jù)分析和處理方法有小波變換、經(jīng)驗(yàn)?zāi)B(tài)分解等[7-8],同時(shí)也有很多研究者引入智能優(yōu)化算法對(duì)神經(jīng)網(wǎng)絡(luò)提出了改進(jìn)[9-11]。本文考慮了風(fēng)速異常值對(duì)預(yù)測(cè)結(jié)果的影響,融合了基于統(tǒng)計(jì)學(xué)和距離的離群點(diǎn)檢測(cè)方法,同時(shí)結(jié)合小波閾值去噪降低風(fēng)速的隨機(jī)性,選擇BP作為預(yù)測(cè)模型可以讓學(xué)生了解BP的結(jié)構(gòu)和誤差反向傳播過程,增強(qiáng)學(xué)生的求知欲,有利于進(jìn)行后續(xù)風(fēng)速預(yù)測(cè)的研究。
3 000個(gè)風(fēng)速數(shù)據(jù)均取自某風(fēng)電場(chǎng)實(shí)測(cè)風(fēng)速,采樣的時(shí)間間隔為15 min。將3 000個(gè)風(fēng)速數(shù)據(jù)分為3組,分別記為X1,X2,X3,每一組900個(gè)數(shù)據(jù)用于訓(xùn)練,100個(gè)數(shù)據(jù)用于預(yù)測(cè)(見圖1)。

圖1 原始風(fēng)速序列X1、X2、X3
離群點(diǎn)檢測(cè)是指找出數(shù)據(jù)集中極大或極小值。采樣錯(cuò)誤、記錄時(shí)出現(xiàn)筆誤等諸多因素都可能導(dǎo)致離群點(diǎn)的產(chǎn)生。由于風(fēng)速的間歇性,風(fēng)速序列本身也可能出現(xiàn)異常的數(shù)據(jù)。基于統(tǒng)計(jì)學(xué)的離群點(diǎn)檢測(cè)可以描述為:符合正態(tài)分布的值出現(xiàn)在分布末端的概率很小。

表1 落在標(biāo)準(zhǔn)差中心區(qū)域外的概率
表1為落在標(biāo)準(zhǔn)差中心區(qū)域外的概率。表中μ和σ分別為序列的均值和標(biāo)準(zhǔn)差,數(shù)值出現(xiàn)的概率隨著與均值距離的增加而降低。若數(shù)值和均值的距離過大,可以判斷該數(shù)值為離群點(diǎn),即當(dāng)風(fēng)速數(shù)據(jù)xi>μ+aσ或xi<μ-aσ時(shí),xi為離群點(diǎn),a是離群點(diǎn)的容忍度,離群點(diǎn)檢測(cè)結(jié)果取決于a的大小。基于距離的離群點(diǎn)檢測(cè):數(shù)據(jù)集S中至少有p部分對(duì)象和對(duì)象o的距離大于d,則o是一個(gè)帶參數(shù)p和d的基于距離的離群點(diǎn)[12]。統(tǒng)計(jì)學(xué)和距離相結(jié)合的離群點(diǎn)檢測(cè)方法步驟如下:
(1)風(fēng)速數(shù)據(jù)X = [x1,x2,…,xn],計(jì)算序列X 鄰域半徑內(nèi)的距離之和DistanceX(k),k為鄰域半徑,


式中,N(i,k)是不包含xi的k最近鄰集合。
(2)利用基于統(tǒng)計(jì)學(xué)方法判斷Distancexi(k)是否為離群點(diǎn)。若Distancexi(k)為離群點(diǎn),則Distancexi(k)對(duì)應(yīng)的xi為離群點(diǎn),并將xi從風(fēng)速序列X中剔除。
利用統(tǒng)計(jì)學(xué)方法判斷離群點(diǎn)時(shí),往往只能判斷全局離群點(diǎn)。為了能找到風(fēng)速序列中的局部離群點(diǎn),可以將DistanceX(k)分為若干組,分別計(jì)算每一組的均值和標(biāo)準(zhǔn)差,然后再利用統(tǒng)計(jì)學(xué)方法來判斷離群點(diǎn),基于分組的統(tǒng)計(jì)學(xué)離群點(diǎn)檢測(cè)流程圖如圖2所示。

圖2 基于分組的統(tǒng)計(jì)學(xué)離群點(diǎn)檢測(cè)流程圖
本文將48個(gè)風(fēng)速數(shù)據(jù)分為一組,即12 h的風(fēng)速采樣數(shù)據(jù)為一組。將DistanceX(k)分組后可以在每個(gè)組內(nèi)進(jìn)行離群點(diǎn)檢測(cè),由于每一組的均值和方差不同,故能合理地找出風(fēng)速序列中的局部離群點(diǎn)。離群點(diǎn)檢 測(cè)結(jié)果如圖3所示。

圖3 風(fēng)速序列X1、X2、X3離群點(diǎn)檢測(cè)結(jié)果
小波閾值去噪分為硬閾值和軟閾值法[13-14]。小波閾值去噪一般步驟:①選擇小波函數(shù)對(duì)信號(hào)進(jìn)行m層分解,分解后得到小波分解系數(shù);② 選擇硬閾值或軟閾值法對(duì)高頻系數(shù)進(jìn)行閾值量化處理;③根據(jù)第m層的低頻系數(shù)和量化后的高頻系數(shù)進(jìn)行重構(gòu)。
選擇db小波系進(jìn)行一層分解并用軟閾值法對(duì)高頻系數(shù)閾值量化處理,去噪結(jié)果如圖4所示。

圖4 風(fēng)速序列X1、X2、X3閾值去噪結(jié)果
粒子群優(yōu)化算法[15-16]假設(shè)在D維目標(biāo)搜索空間中有S個(gè)隨機(jī)解,隨機(jī)解的范圍取決于不同問題,對(duì)于PSO-BP,隨機(jī)解的范圍是BP神經(jīng)網(wǎng)絡(luò)初始權(quán)值和閾值的范圍。第i個(gè)粒子的速度:

第i個(gè)粒子的個(gè)體極值:

式中:c1、c2為學(xué)習(xí)因子;r1、r2為0~1之間的均勻隨機(jī)數(shù);ω為慣性權(quán)重。此次仿真實(shí)驗(yàn)群體為40,最大迭代次數(shù)為100,c1=2.0,c2=1.0。
BP的初始權(quán)值和閾值一般為0~1之間的隨機(jī)數(shù)值。但是對(duì)于具體問題,權(quán)值和閾值的選擇需要經(jīng)過多次重復(fù)試驗(yàn)才能確定一個(gè)大致范圍,沒有一組初始權(quán)值和閾值可以有效地解決所有問題。BP參數(shù)的隨機(jī)性導(dǎo)致預(yù)測(cè)精度不穩(wěn)定,為了使BP能得到更高的預(yù)測(cè)精度,以及保證預(yù)測(cè)結(jié)果的穩(wěn)定性,通過PSO來尋找BP的最優(yōu)初始權(quán)值和閾值。
PSO-BP的流程圖如圖5所示,首先確定BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu):本文采用一步預(yù)測(cè)方法,利用過去i個(gè)時(shí)刻的風(fēng)速數(shù)據(jù)作為輸入來預(yù)測(cè)下一時(shí)刻風(fēng)速,輸入層節(jié)點(diǎn)數(shù)為過去i個(gè)時(shí)刻的風(fēng)速個(gè)數(shù),隱含層節(jié)點(diǎn)數(shù)為2i+1,輸出節(jié)點(diǎn)數(shù)為1;然后將BP的預(yù)測(cè)誤差作為粒子的適應(yīng)度值,然后根據(jù)式(5)迭代更新尋找最佳初始權(quán)值和閾值,當(dāng)PSO尋優(yōu)結(jié)束后,BP獲取優(yōu)化后的初始權(quán)值和閾值;最后訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)并進(jìn)行仿真預(yù)測(cè)。

圖5 PSO-BP結(jié)構(gòu)圖
風(fēng)速預(yù)測(cè)結(jié)果的優(yōu)劣取決于預(yù)測(cè)值和真實(shí)值之間的差距,以及分散程度。采用單一誤差評(píng)價(jià)指標(biāo)無(wú)法準(zhǔn)確反映預(yù)測(cè)模型的整體性能,所以需要多個(gè)不同的誤差評(píng)價(jià)指標(biāo)來全方位衡量模型的優(yōu)劣。以下3種評(píng)價(jià)指標(biāo)可判斷預(yù)測(cè)結(jié)果的優(yōu)劣。
平均絕對(duì)誤差:

式中:yi為風(fēng)速的真實(shí)值;為模型的預(yù)測(cè)值;p為預(yù)測(cè)風(fēng)速的個(gè)數(shù)。
混合預(yù)測(cè)模型如圖6所示。原始風(fēng)速序列經(jīng)過離群點(diǎn)檢測(cè)后,利用小波閾值去噪方法減少風(fēng)速序列的噪聲信息,然后利用PSO對(duì)BP的初始權(quán)值和閾值進(jìn)行優(yōu)化,最后利用優(yōu)化后的BP網(wǎng)絡(luò)進(jìn)行訓(xùn)練和預(yù)測(cè)。此外,為了驗(yàn)證本文提出的混合預(yù)測(cè)模型的預(yù)測(cè)效果,采用以下幾種模型進(jìn)行對(duì)比分析(見圖7)。

圖6 混合預(yù)測(cè)模型

圖7 對(duì)比模型
基于距離的離群點(diǎn)檢測(cè)結(jié)果依賴于鄰域半徑k的選擇,對(duì)于每個(gè)風(fēng)速序列X1、X2、X3選擇離群點(diǎn)的容忍度a為3。設(shè)置鄰域半徑k分別為[1,2,…,6]。利用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行50次獨(dú)立重復(fù)試驗(yàn)得到表3的平均誤差指標(biāo)。

表3 不同鄰域半徑預(yù)測(cè)結(jié)果的誤差指標(biāo)均值
由表3可知,對(duì)于風(fēng)速序列X1,當(dāng)鄰域半徑k=3時(shí),MAPE、MAE、RMSE 的值均為最小,故當(dāng)k=3時(shí)預(yù)測(cè)效果最好。對(duì)于風(fēng)速序列X2、X3,當(dāng)k分別為3和6時(shí),能得到最好的預(yù)測(cè)效果。
在利用統(tǒng)計(jì)學(xué)方法檢測(cè)離群點(diǎn)時(shí),數(shù)值是否為離群點(diǎn)取決于容忍度大小a的選擇。容忍度過大,不能準(zhǔn)確地檢測(cè)出風(fēng)速數(shù)據(jù)中的異常值;容忍度過小,容易將正常的風(fēng)速數(shù)據(jù)錯(cuò)誤地判斷為離群點(diǎn)。根據(jù)表3數(shù)據(jù)的分析,對(duì)于風(fēng)速序列X1、X2、X3分別選擇鄰域半徑為3、3、6。利用BP神經(jīng)網(wǎng)絡(luò)對(duì)不同的容忍度分別進(jìn)行50次獨(dú)立重復(fù)試驗(yàn)來分析a對(duì)預(yù)測(cè)結(jié)果的影響,50次試驗(yàn)的平均誤差指標(biāo)如表4所示。
a=∞表示不對(duì)風(fēng)速數(shù)據(jù)進(jìn)行離群點(diǎn)檢測(cè)。由表4 可知,對(duì)于序列X1,X2,X3,當(dāng)容忍度a 分別為2.0,2.5,3.0 時(shí),其MAPE、RMSE、MAE 均小于其他容忍度對(duì)應(yīng)的值,說明預(yù)測(cè)精度更高。由于風(fēng)速數(shù)據(jù)的特性,對(duì)于不同的風(fēng)速數(shù)據(jù),必須采用不同的容忍度。

表4 不同容忍度預(yù)測(cè)結(jié)果的誤差指標(biāo)均值
對(duì)于X1,離群點(diǎn)檢測(cè)參數(shù)組合為:a =2.0,k=3;對(duì)于X2,離群點(diǎn)檢測(cè)參數(shù)組合為:a=2.5,k=3;對(duì)于X3,離群點(diǎn)檢測(cè)參數(shù)組合為:a=2.0,k=6。確定了離群點(diǎn)檢測(cè)合適的參數(shù)組合后,利用本文所提出的模型以及其他對(duì)比模型對(duì)風(fēng)速進(jìn)行一步預(yù)測(cè)。預(yù)測(cè)結(jié)果如圖8~10所示。

圖8 不同模型對(duì)于X1(a =2.0,k=3)的預(yù)測(cè)結(jié)果

圖9 不同模型對(duì)于X2(a=2.5,k=3)的預(yù)測(cè)結(jié)果

圖10 不同模型對(duì)于X3(a=2.0,k=6)時(shí)預(yù)測(cè)結(jié)果
本文所提出的預(yù)測(cè)模型和OD-PSO-BP比較,加入了小波閾值去噪減少了風(fēng)速序列的噪聲信號(hào),3個(gè)誤差指標(biāo)都優(yōu)于OD-PSO-BP;而對(duì)比WTD-PSO-BP模型,改進(jìn)的離群點(diǎn)檢測(cè)剔除了數(shù)據(jù)中的異常值,提高了預(yù)測(cè)的精度;此外,BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值的選擇沒有理論指導(dǎo),但因?yàn)槌跏紮?quán)值和閾值由PSO尋優(yōu)得到,故本文所提出的預(yù)測(cè)模型的預(yù)測(cè)精度高于未優(yōu)化的BP預(yù)測(cè)模型;和ARIMA相比,BP神經(jīng)網(wǎng)絡(luò)在處理非線性問題上呈現(xiàn)出更好的效果。表5是不同模型預(yù)測(cè)結(jié)果的誤差指標(biāo)。

表5 不同模型預(yù)測(cè)結(jié)果的誤差指標(biāo)
將風(fēng)速序列X1、X2、X3的預(yù)測(cè)結(jié)果進(jìn)行橫向?qū)Ρ龋琗1序列預(yù)測(cè)結(jié)果的平均絕對(duì)百分比誤差最大,反映了X1序列的預(yù)測(cè)結(jié)果相較于X2、X3的總體平均性能較差。而X1序列預(yù)測(cè)結(jié)果的平均絕對(duì)誤差優(yōu)于X2、X3,說明X1預(yù)測(cè)誤差值較小;X1序列預(yù)測(cè)結(jié)果的均方根誤差也小于X2、X3,反映了X2、X3的預(yù)測(cè)值的分散程度大于X1。通過三個(gè)序列預(yù)測(cè)結(jié)果對(duì)比,說明了一個(gè)風(fēng)速預(yù)測(cè)模型難以適應(yīng)所有的風(fēng)速序列。
本文結(jié)合了統(tǒng)計(jì)學(xué)和距離的離群點(diǎn)檢測(cè)方法來檢測(cè)原始風(fēng)速數(shù)據(jù)中的異常值,針對(duì)不同的風(fēng)速序列,通過多次重復(fù)實(shí)驗(yàn)后找到合適的參數(shù)組合,合理地剔除異常值,有利于提高模型的預(yù)測(cè)精度;小波閾值去噪可以減少原始風(fēng)速數(shù)據(jù)的噪聲信號(hào),提取有用的信號(hào);智能優(yōu)化算法可以為BP神經(jīng)網(wǎng)絡(luò)選擇合適的初始權(quán)值和閾值,有效地改善了BP神經(jīng)網(wǎng)絡(luò)的容易陷入局部最優(yōu)的局限性,從而提高預(yù)測(cè)模型的穩(wěn)定性;無(wú)論哪一種預(yù)測(cè)模型,對(duì)于波動(dòng)性較小的風(fēng)速序列,其預(yù)測(cè)效果均好于波動(dòng)性較大的風(fēng)速序列;仿真研究提升了學(xué)生解決復(fù)雜工程問題的程序創(chuàng)新能力,對(duì)于怎樣圍繞“大融合、大創(chuàng)新、大思考、大實(shí)踐”內(nèi)涵的新工科教學(xué)質(zhì)量提升做出了有益探索。也讓學(xué)生對(duì)數(shù)據(jù)挖掘、人工神經(jīng)網(wǎng)絡(luò)等前沿知識(shí)有了進(jìn)一步的理解,同時(shí)也激發(fā)了學(xué)生的學(xué)習(xí)樂趣。