孟朝霞,蔣 芃,賈宏恩
(1. 山西能源學院 能源與動力工程系;2.太原理工大學 數(shù)學學院,太原 036500)
相關部門對我國重點城市的飲用水水源型水庫進行監(jiān)察和檢測的結果表明,水源型水庫水質達標率不到80%,其中近24%的水庫水質無法滿足Ⅲ類水標準[1]。鑒于此,作為居民飲用水主要來源的水庫水質問題,亟待解決。
現(xiàn)有的水質預測方法均通過相關預測手段,利用水質監(jiān)測歷史數(shù)據(jù),推導求取水庫各指標與待測指標之間的非線性關系,或是通過研究某個水質指標的時間序列,從中找到水質變化的規(guī)律,來預測未來水質的變化情況。根據(jù)水質預測理論基礎不同,目前常用的水質預測方法主要有5類,分別為:數(shù)理統(tǒng)計法、灰色模型預測法、神經(jīng)網(wǎng)絡模型預測法、水質模擬模型法、混沌理論預測法等[2]。
在數(shù)理統(tǒng)計的方法中,應用于水質預測的回歸分析方法效果較好。但也存在一些問題,如:計算量大、適應性差以及只重擬合不重外推等[3]。而灰色模型預測可以彌補回歸分析不中外推缺陷,根據(jù)單因素趨勢外推進行水質預測[4]。隨著近年來神經(jīng)網(wǎng)絡的不斷發(fā)展,已經(jīng)有相關學者對河流中影響水質的指標建立模型,并取得了不錯的預測效果[5-7]。混沌理論預測法著力于“由繁化簡”,將復雜的多重耦合多變量關系轉變?yōu)閱我粏巫兞筷P系,從系統(tǒng)總體出發(fā),研究復雜體系的內(nèi)在發(fā)展規(guī)律,并以混沌空間模線性回歸模型預測河流水質系統(tǒng)的短期發(fā)展變化趨勢[8]。在建立水質預測模型時應多方面考慮水質歷史數(shù)據(jù),選取恰當?shù)念A測手段。
本次研究的水庫主體,位于中國中部地區(qū),屬黃河水系。其總面積為32.0平方公里,水庫平均深度為6.5米,其中最大深度為19.0米,屬于淤泥底質。其控制的流域面積為5268.0平方公里,水庫容量7.0億立方米,預計灌溉面積為149.2萬畝。該水庫的水質安全與當?shù)厝嗣竦纳钯|量息息相關,本文選取BP神經(jīng)網(wǎng)絡建立模型,對目標水庫數(shù)據(jù)進行建模分析,預測未來水庫水質質量。
通過BP神經(jīng)網(wǎng)絡算法,構建基于BP神經(jīng)網(wǎng)絡的水庫健康預測模型,實現(xiàn)對評價水庫健康指標的預測,并根據(jù)預測值判斷水庫水質健康狀態(tài)。
本模型神經(jīng)網(wǎng)絡拓撲結構如圖1所示,分為輸入層、隱含層以及輸出層[9]。本文采用具有多個輸入神經(jīng)元、一個輸出神經(jīng)元且具有雙隱含層的反向傳播拓撲結構建立神經(jīng)網(wǎng)絡。
圖1 神經(jīng)網(wǎng)絡拓撲結構
選取水庫2018—2020年內(nèi)共35個月的水庫健康指標,根據(jù)特征指標的相關性分析,決定每種預測指標的輸入神經(jīng)元個數(shù)。根據(jù)預測誤差最小化原則分別測試50-150個隱含層神經(jīng)元個數(shù),選擇每種預測指標模型的最優(yōu)隱含層個數(shù)[10]。輸出層神經(jīng)元個數(shù)為1。
為達到模型最佳的泛化程度,本文利用已有水庫指標數(shù)據(jù)集對模型中BP神經(jīng)網(wǎng)絡部分進行初始權重參數(shù)的調整以及神經(jīng)網(wǎng)絡拓撲結構的訓練。建立模型之后,需要將數(shù)據(jù)集進行劃分,驗證模型的泛化能力以及模型對水庫水質預測能力。因此,本模型將數(shù)據(jù)的20%作為測試集、80%作為訓練集,不斷完善本模型BPNN部分的神經(jīng)網(wǎng)絡拓撲結構[11]。
針對本模型需要預測的水質指標,本文使用Spearman等級相關系數(shù)對數(shù)據(jù)所給特征進行相關性分析,以此找出各個特征之間的相關性關系。
為防止小量綱數(shù)據(jù)被大量綱數(shù)據(jù)被淹沒,神經(jīng)網(wǎng)絡在訓練模型之前,都會對數(shù)據(jù)進行歸一化處理,以解決所分析數(shù)據(jù)之間的可比性問題[13]。模型將原始數(shù)據(jù)的量綱進行歸一化處理后,更有利于訓練出適用于運勢數(shù)據(jù)的合適的神經(jīng)網(wǎng)絡模型,從而解決問題。
由于水庫所提供的相關水庫健康指標數(shù)據(jù)量綱不同,故在進行訓練之前需要數(shù)據(jù)歸一化處理。本模型采用min-max標準化數(shù)據(jù)歸一化的方法,處理指令如下:
x_scaler=MinMaxScaler(feature_range=(-1,1))
y_scaler=MinMaxScaler(feature_range=(-1,1))
面對已經(jīng)獲得的沒有線性關系的數(shù)據(jù),我們選擇具有較好自適應能力和記憶功能的BP神經(jīng)網(wǎng)絡模型來解決實際問題[14]。BP神經(jīng)網(wǎng)絡采用的學習方法為最速下降法,數(shù)據(jù)經(jīng)過正向傳播后再經(jīng)過反向傳播不斷調整神經(jīng)節(jié)點之間的權重(權值)和偏置(閾值),從而得到網(wǎng)絡的最小誤差平方和。BPNN模型拓撲結構訓練其本質上為優(yōu)化問題,通過優(yōu)化找到滿足條件的最小誤差。
為保證BPNN模型的預測精度,本文利用PYCHARM軟件編程建立雙隱含層BP神經(jīng)網(wǎng)絡,采用sklearn中MLPRegressor函數(shù)建立回歸模型,以觀測值與預測值之間的均方誤差(mean squared error,MSE)作為神經(jīng)網(wǎng)絡模型的預測性能函數(shù),以此作為訓練的一部分對BPNN模型糾正,以實現(xiàn)對水庫水質指數(shù)變化規(guī)律的預測。
根據(jù)數(shù)據(jù)所給特征,將所有特征均作為預測水質指標的因變量是不恰當?shù)?,相關性不高的特征組合會對模型預測結果造成過擬合影響。在訓練模型之前進行相關性分析,計算每兩個特征之間相關系數(shù)并找出與各水質預測指標相關性較大的特征組合。本文將Spearman等級相關系數(shù)引入BPNN模型中,優(yōu)化特征組合,防止模型過擬合現(xiàn)象,進而提高CORR-BPNN模型的擬合程度,提高模型預測精度。
為尋找預測目標與其余特征之間的相互關系,模型更好擬合,我們引用Spearman等級相關系數(shù)。兩個變量的相關系數(shù)絕對值越接近1,兩變量之間相關性越強,相關系數(shù)與相關程度如表1所示。
表1 |r|的取值與相關程度
計算相關系數(shù)公式如下:
(1)
其中d為X和Y之間的等級差。通過PYCHARM程序編寫,計算特征之間的Spearman等級相關系數(shù),找到預測目標相關性較好的特征組合。
本文構造CORR-BPMM水庫水質模型,其預測準確性采取均方根誤差(RMSE)、平均絕對誤差(MAE)和平均相對誤差(MRE)進行評價。公式如下:
(2)
(3)
(4)
本文構建BPNN水庫水質預測模型,實現(xiàn)對水庫水質的預測預警。對于未知分布規(guī)律的數(shù)據(jù),在構建BPNN模型之前,本文通過PYCHARM編寫程序計算Spearman上等級相關系數(shù),可視化相關系數(shù)熱力分析圖。
各BPNN模型中輸入神經(jīng)元個數(shù)由等級相關系數(shù)決定,輸出層神經(jīng)元個數(shù)均為1,輸出數(shù)據(jù)即為水質指標預測值。未來可根據(jù)規(guī)劃指標值預測水庫監(jiān)管指標的指標值。BPNN模型具體計算流程如圖2所示。
圖2 BPNN模型計算流程
(1)根據(jù)所給數(shù)據(jù),采用Spearman計算各特征之間的等級相關系數(shù),計算過程如下:
首先對兩個變量(X,Y)的數(shù)據(jù)進行排序,記排序以后的數(shù)據(jù)位置為(X′,Y′),(X′,Y′)的值就成為秩次,秩次的差值為公式(1)中的di,n為變量中數(shù)據(jù)的個數(shù),根據(jù)公式計算最終得到Spearman等級相關系數(shù)。具體操作由PYCHARM編程實現(xiàn),并生成相關系數(shù)熱力圖。
(2)建立BPNN模型的參數(shù)設定如下,模型采用SKlearn中的MLPRegressor模型,BPNN模型一程序表達式為:
隱含層每層節(jié)點數(shù)為100,110:hidden_layer_sizes=(100,110)
激活函數(shù):activation='relu'
權重優(yōu)化算法:solver='lbfgs'
正則化項系數(shù):alpha=0.0001
學習率:learning_rate='constant',learning_rate_init=0.001
迭代次數(shù):max_iter=25000
優(yōu)化算法停止條件:tol=1e-4;
(3)BPNN模型二程序表達式為:
隱含層每層節(jié)點數(shù)為100,110:hidden_layer_sizes=(100,110)
激活函數(shù):activation='relu'
權重優(yōu)化算法:solver='lbfgs'
正則化項系數(shù):alpha=0.0001
學習率:learning_rate='constant',learning_rate_init=0.001
迭代次數(shù):max_iter=200
優(yōu)化算法停止條件:tol=1e-4;
(4)BPNN模型三程序表達式為:
隱含層每層節(jié)點數(shù)為100,100:hidden_layer_sizes=(100,100)
激活函數(shù):activation='relu'
權重優(yōu)化算法:solver='lbfgs'
正則化項系數(shù):alpha=0.0001
學習率:learning_rate='constant',learning_rate_init=0.001
迭代次數(shù):max_iter=200
優(yōu)化算法停止條件:tol=1e-4
(5)利用BPNN神經(jīng)網(wǎng)絡算法擬合每一個預測指標模型的神經(jīng)網(wǎng)絡拓撲結構中的權值參數(shù),到達預測值與觀測值之間的最小誤差。
(6)輸出各模型預測結果
BPNN水庫水質預測模型包括兩個階段:計算各特征之間的相關性系數(shù),決定各預測指標特征變量;建立各預測指標的BP神經(jīng)網(wǎng)絡,訓練并擬合BP神經(jīng)網(wǎng)絡拓撲結構,輸出預測指標值,從而完成水質指標預測任務。
本文將山西某水庫所給數(shù)據(jù)帶入Spearman等級相關系數(shù)模型,計算相關系數(shù),計算結果如圖3所示。
圖3 各特征指標相關系數(shù)熱力圖
根據(jù)相關系數(shù)確定溶解氧、五日生化需氧量、氣溫相關性系數(shù)均>0.5,具有中高度相關性;總磷、水位、氯化物、電導率相關性系數(shù)>0.5,具有中高度相關性;總硬度、硝酸鹽、電導率、葉綠素相關性系數(shù)均>0.5,具有中高度相關性。故我們以溶解氧、總磷、總硬度作為水質預測的三個指標,分別建立BPNN模型一、二、三。
將數(shù)據(jù)標準化后,按照80%、20%的比例劃分數(shù)據(jù),建立訓練集以及測試集用于測試、訓練擬合BPNN網(wǎng)絡拓撲結構。
當神經(jīng)網(wǎng)絡各隱含層神經(jīng)元個數(shù)為100、110時,模型的擬合效果較好,精確度較高,模型預測性能良好,BPNN模型對水質指標溶解氧的預測值與觀測值走勢如圖4所示。
圖4 溶解氧預測值與觀測值走勢圖
當神經(jīng)網(wǎng)絡各隱含層神經(jīng)元個數(shù)為100、110時,模型的擬合效果較好,精確度較高,模型預測性能良好,BPNN模型對水質指標總磷的預測值與觀測值走勢如圖5所示。
圖5 總磷預測值與觀測值走勢圖
當神經(jīng)網(wǎng)絡各隱含層神經(jīng)元個數(shù)為100、100時,模型的擬合效果較好,精確度較高,模型預測性能良好,BPNN模型對水質指標總硬度的預測值與觀測值走勢如圖6所示。
圖6 總硬度預測值與觀測值走勢圖
由圖3-圖5可知,本文構建的BPNN模型對與水質指標(溶解氧、總磷、總硬度)的預測值與觀測值的重合度是較高的,各指標的發(fā)展趨勢與走向也基本一致,但偶有偏差,BPNN模型對水庫各水質指標的預測較為理想。
本文采用3種評價指標來評定BPNN模型效能,分別為:RMSE、MAE和MRE。BPNN水質預測模型預測結果的誤差分析見表2。
表2 BPNN模型預測結果誤差分析
由表2可知,溶解氧、總磷預測值的RMSE值均小于0.17,總硬度預測值的RMSE值小于0.08;溶解氧、總磷預測值的MAE值均小于0.15,總硬度預測值的MAE值小于0.07;溶解氧、總磷預測值的MSE值均小于0.03,總硬度預測值的MSE值小于0.006。3項評價指標參數(shù)RMSE、MAE、MSE的計算結果均表明本文構建的BPNN模型對于水庫各預測指標的預測結果均是理想的,是符合水質預測的要求,可以對山西某水庫水質進行有效預測。
本文通過山西某水庫2018—2020年的水質指標建立水質評價模型,選取3個指標建立BPNN模型。三個BPNN模型輸入層神經(jīng)元個數(shù)均為三個,輸出層神經(jīng)元個數(shù)均為一個,建立隱含層為兩層的BP神經(jīng)網(wǎng)絡模型,對水質指標進行預測。經(jīng)過數(shù)據(jù)驗證,模型結果良好、預測結果與真實值的相對誤差也在允許的范圍內(nèi)且可以作為較為精確的預測結果進行未來的水質預警工作。出于讓模型精度更高的目的考慮,建議在后期使用該模型時,增加訓練數(shù)據(jù),以提高模型精度。相比于BP神經(jīng)網(wǎng)絡無法預測水質變化原因的缺點來看,其預測精度高、模型建立簡單、適應性強的優(yōu)點已經(jīng)足夠專業(yè)人員為未來干預水庫水質做出策略。受數(shù)據(jù)可獲取性限制,本文預測指標只考慮了溶解氧、總磷、總硬度指標,關于水庫健康預警模型還需日后數(shù)據(jù)更加完善時加以研究。