趙家曉 張宇宇 吳祥軍
(1.上海眾毅工業(yè)控制技術(shù)有限公司,上海 200023;2.上海城投原水有限公司,上海 200135)
文章針對(duì)上海市某地區(qū)的用水量進(jìn)行研究,采用BP 神經(jīng)網(wǎng)絡(luò)的方法進(jìn)行預(yù)測(cè)。因城市用水量具有較強(qiáng)周期性,故訓(xùn)練樣本要求周期比較長(zhǎng),但是近期常住人口的增減和耗水工廠的整治和改革都會(huì)對(duì)城市用水量產(chǎn)生較大的影響,僅用BP 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)短期用水量誤差較大,故增加了誤差校正算法,降低因近期常住人口變化和工業(yè)用水量變化引起誤差,提高預(yù)測(cè)精度。
BP(Back Propagation)是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò),是目前最廣泛的神經(jīng)網(wǎng)絡(luò)之一,它由大量的節(jié)點(diǎn)(或稱(chēng)“神經(jīng)元”,或“單元”)和之間相互聯(lián)接構(gòu)成。每個(gè)節(jié)點(diǎn)代表一種特定的輸出函數(shù),稱(chēng)為激勵(lì)函數(shù)(activation function)。算法的特征是利用輸出后的誤差來(lái)估計(jì)輸出層的直接前導(dǎo)層的誤差,再利用這個(gè)誤差估計(jì)更前一層誤差,如此一層一層的反向傳播下去,就獲得了所有其他各層的誤差估計(jì)。這樣就形成了將輸出層表現(xiàn)出的誤差沿著與輸入傳送相反的方向逐級(jí)向網(wǎng)絡(luò)的輸入層傳遞的過(guò)程。
BP 神經(jīng)網(wǎng)絡(luò)模型采用2018~2019 年的城市用水量數(shù)據(jù)進(jìn)行模型訓(xùn)練,近期人口數(shù)量及工業(yè)用水量波動(dòng)會(huì)造成預(yù)測(cè)誤差整體偏高或者偏低,為修正短期波動(dòng)偏離長(zhǎng)期均衡關(guān)系的程度,引進(jìn)誤差校正算法來(lái)修正長(zhǎng)期靜態(tài)模型的不足。
設(shè)實(shí)際用水量為yiji=1, 2,…,288,j=1,2,…,7,預(yù)測(cè)用水量為i=1,2,…,288,j=1,2,…,7,權(quán)值為wjj=1,2,…,7,BP 神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)值為24 小時(shí)每5 分鐘的瞬時(shí)流量,i代表0:00,0:05,…,23:55,j代表周一到周日,誤差校正值為:
增加誤差校正算法后的新的預(yù)測(cè)值為:
城市用水量的歷史值存在很多臟數(shù)據(jù),有異常值、缺失值、長(zhǎng)時(shí)間連續(xù)不變值。處理異常值采用整體和局部相結(jié)合的方式,針對(duì)整體異常值采用箱型圖分析方法剔除異常值,針對(duì)局部異常值采用分時(shí)間段正態(tài)分布圖方法循環(huán)剔除。處理連續(xù)不變值采用方差為0 的方式進(jìn)行剔除。由于樣本數(shù)據(jù)非常大,異常值、缺失值和長(zhǎng)時(shí)間連續(xù)不變值只占樣本的6.21%,故直接刪除處理。
城市用水量具有很強(qiáng)的周期性,并與節(jié)假日和氣溫高度相關(guān)。
2.2.1 周期性探索
日周期性:工作日每天7~8 時(shí)、19~21 時(shí)是用水高峰,在下午14~16 時(shí)出現(xiàn)一個(gè)小低谷,夜間0~4 時(shí)出廠水流量最低。周末早高峰比工作日推遲一個(gè)小時(shí)為8~10 時(shí),周末晚高峰時(shí)間段與工作日晚高峰時(shí)間段一致,周末午間小低谷時(shí)間與工作日午間小低谷時(shí)間一致,但是周末午間小低谷的出水量要比工作日偏高。
2.2.2 節(jié)假日相關(guān)性分析
城市用水量與節(jié)假日的Spearman 相關(guān)系數(shù)為0.53,相關(guān)關(guān)系顯著。
2.2.3 天氣相關(guān)性分析
每日最高氣溫和城市用水量存在很強(qiáng)的正相關(guān)關(guān)系,Pearson 相關(guān)系數(shù)為0.775,相關(guān)關(guān)系顯著。
因各指標(biāo)間量綱差異很大,為提高模型精度,降低數(shù)值較高的指標(biāo)對(duì)模型的影響,故對(duì)氣溫指標(biāo)、量化后的節(jié)假日指標(biāo)、量化后的時(shí)間指標(biāo)、城市用水量指標(biāo)做歸一化處理,歸一化處理方法為:
式中:min為樣本數(shù)據(jù)x的最小值,max為樣本數(shù)據(jù)的最大值。
模型訓(xùn)練數(shù)據(jù)為2018~2019 年的城市用水量數(shù)據(jù),以天氣、節(jié)假日、時(shí)間為輸入變量,城市用水量為輸出變量。隨機(jī)選取80%的數(shù)據(jù)作為模型訓(xùn)練集,20%的數(shù)據(jù)作為模型測(cè)試集。選擇f(x)=1/1+e-x作為模型的激活函數(shù)。采用公式確定隱藏層神經(jīng)元的數(shù)目,其中m為輸入層神經(jīng)元的數(shù)目,n為輸出層神經(jīng)元的數(shù)據(jù),α為1 到10 的常數(shù),開(kāi)始選擇最小的神經(jīng)元進(jìn)行測(cè)試,依次遞增,經(jīng)過(guò)反復(fù)測(cè)算,最終確定隱藏層神經(jīng)元個(gè)數(shù)為8。
BP 神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)值在0:00~5:00,14:00~16:00 比實(shí)際偏大,很有可能是近期工業(yè)用水量波動(dòng)導(dǎo)致,對(duì)2019 年11 月份的城市用水量預(yù)測(cè)誤差分析,BP 神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)結(jié)果經(jīng)過(guò)誤差校正算法修正后的平均預(yù)測(cè)誤差降低了1.02%。
對(duì)將近一個(gè)月的預(yù)測(cè)城市用水量誤差分析,得到誤差頻數(shù)分布如表1。
表1 預(yù)測(cè)誤差頻數(shù)分布表
由表1 可以看出,預(yù)測(cè)誤差越大數(shù)據(jù)占比越小,95.18%的數(shù)據(jù)預(yù)測(cè)誤差控制在8%以?xún)?nèi),說(shuō)明經(jīng)過(guò)誤差校正算法修正后的BP 神經(jīng)網(wǎng)絡(luò)模型具有較高的預(yù)測(cè)精度。