?

基于三種機器學習模型的太湖總氮濃度預測

2022-06-25 09:51桂峰蘭柳后起
中國農村水利水電 2022年6期
關鍵詞:決策樹氨氮處理廠

趙 朔,桂峰蘭,柳后起

(1.遼寧省生態環境保護科技中心,沈陽 110161;2.中共遼寧省委黨校,沈陽 110004;3.中國科學技術大學蘇州高等研究院,江蘇 蘇州 215123)

0 引 言

市政污水處理廠出水是河流湖泊重要的外來污染排放源之一,對受納水體的水質存在重要影響。當前,人類活動徹底改變了正常的氮循環,眾多流域氮負荷顯著增加,很多地區氮含量超過了地表水限值標準(1.0 mg/L)。非N2固定劑的大量使用,改變了湖泊營養收支和循環特征[1]。此外,在我國大規模和迅速改善廢水處理是普遍采用措施(如市政污水出水標準的不斷提高),但這種對受納水體營養狀況的影響很少在廣泛的空間與時間尺度上得到驗證。研究表明,我國東部的主要湖泊由于總氮和總磷濃度的不同變化顯示出氮磷質量比增加,實際上湖泊氮磷質量比率的增加與城市污水處理的快速改善有關[2]。作為水體富營養化主要營養鹽,氮已成為影響太湖東部大多數站點水質的主要因素[3],研究太湖氮濃度對于太湖水質監測與評價水體富營養化尤為重要。水質預測主要有機理性和非機理性兩種,由于水環境的多因子、多介質的特性,常規的機理性水質模型如Streeter-Phelps(S-P)一維穩態氧平衡模型[4],WASP 富營養化模型[5],SWAT 水質預測模型等[6],這些方法多需要復雜的邊界條件和大量完善的監測資料而難以推廣應用,而非機理模型則是利用數學的方法進行模擬,將影響因子作為輸入變量,被預測的指標作為輸出變量進行分析同時又可以進行特征分析以評估影響因子的相關重要程度。如胡志洋[7]等利用BP 神經網絡模型對太湖梅梁灣區域的葉綠素a 濃度進行預測,成浩科[8]等利用隨機森立的方法對淮河流域河流總磷濃度進行預測,付泰然等[9]利用自編碼式BP神經網絡對養殖水體的亞硝態氮進行預測,李修竹等[10]人利用支持向量機的方法對長江口岸的葉綠素a濃度進行預測。這種水質預測模型具有自適應性強、容錯率高等優點,此外也有著較高的預測精度[7],在水質預測應用的同時還能有效確定各項影響指標的重要性關系。因此,本文基于2007-2015年期間太湖水體八個監測站點的月度水質監測數據,首先借助皮爾遜相關系數分析市政污水處理廠各項運行指標與太湖水體總氮濃度的相關性以確定5項主要的影響因素,再結合16種太湖水質監測指標輸入到三種機器學習模型(決策樹,KNN 和AdaBoost)中對太湖流域總氮濃度進行預測。此外,從預測效果較好的模型中輸出了5 項重要性特征以揭示太湖總氮濃度的重要影響因素。

1 數據與方法

1.1 數據來源

公開的數據集來自太湖水域的8 個常規監測站(圖1),數據集的時間跨度為2007年至2015年[9],記錄頻率為每月一次。數據集主要包括透明度、pH,水深,水溫,水位,電導率等指標,以及總磷(TP)、總氮(TN)、硝態氮(NO3-N)、亞硝酸鹽氮(NO2-N)、氨氮(NH3-N)、溶解氧(DO)等10個濃度指標。

圖1 太湖水質監測站點分布[11]Fig.1 Distribution of water quality monitoring stations in Taihu Lake

此外,收集了江蘇和浙江等212 個太湖流域市政污水處理廠運行數據,時間跨度為2007年至2015年,頻率為每月一次,主要指標包括污水處理量、進水量、出水量、污泥產量等10個質量信息指標以及進出水COD、氨氮、總氮、總磷、懸浮物等12 個濃度信息指標,共計22項指標。

1.2 基于皮爾遜相關系數法的指標篩選

皮爾遜相關系數本質為一種線性相關系數,相關系數的絕對值越大表明相關性越強。相關性系數越接近1 或者-1,相關度越強。越趨向于0,相關度越弱,我們首先評估了市政污水處理廠22項運行指標與太湖流域總氮的相關性。

步驟1 數據初始無量綱化。由于不同的監測數據量綱不同,在皮爾遜系數分析前對水質監測數據進行無量綱化處理,具體計算公式為:

式中:i為不同的監測指標類別;k為不同類別對應的數據點。

步驟2計算離均差平方與離均差積和。

變量X的離均差平方和為:

變量Y的離均差平方和為:

X與Y的離均差積和為:

步驟3計算兩個變量之間的皮爾遜相關系數,計算公式為:

按照上述步計算兩個變量之間的皮爾遜相關系數并對相關系數進行排序。

1.3 決策樹原理

決策樹(decision tree)是一類常見的、較為簡單的機器學習方法,其目的是根據損失函數最小化的原則產生一棵泛化能力強,處理未見示例能力強的決策樹[12]。決策樹方法具有易于理解和實現、分類規則簡單符合人類思維方式等特點,研究人員已將其廣泛應用于地震預警[13]、震后損失評估、地質災害評價[14]等諸多防震減災領域。決策樹在處理大樣本數據時存在易過擬合、對連續性字段較難預測等問題?,F有的決策樹學習主要包含ID3算法,C4.5算法以及CART算法。

1.4 KNN模型原理

k 近鄰法(k-nearest neighbor,k-NN)是1967年由Cover T和Hart P 提出的一種基本分類與回歸方法[15]?;靖拍顬椋捍嬖谝粋€樣本數據集合,所有特征屬性已知,并且樣本集中每個對象都已知所屬分類。對未知分類的待測對象,將待測對象的每個特征屬性與樣本集中數據對應的特征屬性進行比較,然后計算提取樣本最相似對象(最近鄰)的分類標簽。一般只選擇樣本數據集中前k個最相似的對象數據,最后根據k個數據的特征和屬性判斷待測數據的分類。

1.5 AdaBoost模型原理

AdaBoost 是一種迭代算法,核心思想是針對同一個訓練集訓練不同的分類器,即弱分類器,然后把這些弱分類器進行集合,構造一個更強的最終分類器[16]。算法本身是通過改變數據分布來實現,它根據每次訓練集中的每個樣本的分類是否正確,以及上次的總體分類的準確率來確定每個樣本的權值。將修改權值后的新數據傳至下層分類器進行訓練,然后將每次訓練得到的分類器融合起來作為最后的決策分類器。AdaBoost是一種具有高精度、操作簡便的分類器,不用考慮特征篩選和過擬合等問題。

步驟1輸入訓練集D={(x1,y1),(x2,y2),(x3,y3),…,(xm,ym)},其中xi∈X X:訓練樣本集合,yi∈Y={-1,1};采用弱學習算法WeakLearn;迭代訓練輪數N。初始化過程中令每個樣本的初始權值為:

步驟2迭代開始,并給予當前分布Dn調用WeakLearn,得到弱分離器hn:

計算弱分離器hn在當前分布下的錯誤率:

在迭代計算過程中,如果εn>0.5,則令N=n-1,同時終止迭代。

步驟3結合結果計算分類器hn在最終分類器集合中的加權系數:

同時更新樣本分布:

步驟4計算結果合并到模型輸出函數結果:

1.6 模型評價指標

本次評價指標主要包括擬合優度(R2)和均方誤差(RMSE)以及平均百分比誤差(MAPE)。本次模型主要基于Python 中的sklearn庫來實現。

擬合優度R2是指回歸方程對觀測值的擬合程度。度量擬合優度的統計量是判定系數R2。R2的取值范圍是[0,1]。R2的值越接近1,說明回歸方程對觀測值的擬合程度越好;反之則表明回歸方程對觀測值的擬合程度越差,即:

RMSE是均方根誤差,指預測值與真實值偏差的平方和與觀察次數比值的平方根,用來衡量預測值同觀察值之間的偏差程度,即:

MAPE是平均百分比誤差,是誤差與原始數據值相比較的過程,結果越趨向于0 則為完美模型,大于100%則為劣質模型。即:

式中:yi為真實值;fi為預測值。

2 結果與分析

2.1 皮爾遜系數相關性結果分析

利用市政污水處理廠的22 項運行指標與太湖流域總氮濃度進行皮爾遜相關性分析,選取其中相關性較大的5 項指標。皮爾遜系數的相關性絕對值直接體現了影響因素與結果之間的關聯程度,其絕對值越接近于1 表明指標間相關性越強。根據皮爾遜系數計算步驟分析了太湖水體總氮濃度與市政污水處理廠各出水排放指標的相關性,結果見表1。

由表1可知,經相關性分析后,市政污水處理廠出水氨氮濃度,污水排放總量,以及進出水總氮濃度與太湖總氮濃度有顯著的影響,同時進水的BOD,COD,SS,以及總磷濃度有著較弱的相關性。因此,選取了污水處理廠的進出水的總氮濃度,氨氮濃度以及污水處理量等五項(表1)作為輸入變量的一部分。

表1 皮爾遜系數相關性結果Tab.1 The result of Pearson coefficient analysis

市政污水處理廠運行指標與太湖水體總氮相關性較高的主要原因是市政污水處理廠的尾水排放是太湖N 輸入的重要來源之一,實際上,環太湖流域的市政污水處理廠最早開始嚴格執行《城鎮污水處理廠污染物排放標準》中的一級A 標準[17]。盡管如此,一級A 標準所規定的主要污染物的排放標準仍遠遠高于地表水V 類水要求的各項指標,例如一級A 標準中規定的總氮濃度是地表水V 類水體規定中的7.5 倍,氨氮濃度是其2.5倍。因此,盡管市政污水處理廠的出水排放嚴格達到了1 級A標準,卻仍然是湖,庫水體的富營養物質的重要污染源[18]。此外,污水排放的總氮和氨氮是影響太湖水體總氮濃度的直接因素,這也是市政污水中氨氮和總氮的相關指標高于其他指標(例如COD、BOD)的主要原因。

2.2 三種機器學習模型構建

2.2.1 模型訓練

依據上述皮爾遜結果,模型輸入變量為從污水處理廠選取的五項指標以及太湖的水質監測數據集,輸出為太湖水體的8個站點的月度均值總氮濃度。采用將隨機選取80%的數據量為訓練數據集,20%作為測試數據集,同時利用臨近算法(KNN)和決策樹以及AdaBoost 三種模型進行訓練。實驗采用Python編程語言實現算法。

2.2.2 模型訓練與測試結果

利用已經訓練好的模型對測試集數據值進行測試,三種機器模型的實測值與預測值對比如圖2,模型的性能指標結果見表2。

表2 模型輸出結果Tab.2 performances of all Methods

由圖2可知,相較于KNN 和決策樹,AdaBoost 模型更好的反映了太湖總氮濃度的變化趨勢,其平均百分比誤差為14.081%,而KNN整體預測結果較為平緩,與實際濃度變化情況相差較大,有著最大的平均百分比誤差29.680%,模型準確度遠遠低于其他兩種模型。此外,AdaBoost 模型擬合優度(R2)達到0.836,表明模型更好地擬合了太湖總氮濃度變化情況。整體來看,相較于傳統的機器學習模型KNN 和決策樹,AdaBoost 模型可以更準確地預測市政污水處理廠出水排放對太湖流域氮濃度的影響。在特征種類和特征數目一定的情況下,由多種算法組成的集成學習有著更加明顯的優勢,不論是大尺度的地表水質預測[19],或者是河流水質預測[20],長江斷面水質預測等[21],集成學習模型均具有更好的預測準確度和較低的擬合誤差,模型預測效果得到了極大的提升。

圖2 模型決策樹(Decision Tree Regressor),KNN和AdaBoost的訓練輸出與監測值的對比Fig.2 Comparison between and measured values of TN and predicted values of DTR,KNN and AdaBoost Model.

從同類型的總氮濃度預測模型橫向對比來看(表2),BP 神經網絡有著最高的擬合優度(R2),這主要是由于神經網絡具有高度的非線性,可以更好擬合非線性關系,以及反向傳播機制可以不斷將誤差反傳回來以調整網絡來修改各層神經元的權值直至達到期望目標[22]。而AdaBoost 有著最低的平均絕對誤差和均方根誤差,在回歸預測類問題上具有更小的誤差,體現出更高的預測準確度,明顯優于其他模型。相比于最好的BP神經網絡,RMSE數值也由0.838下降至0.832。

2.2.3 模型重要性特征提取

對于輸入的綜合指標(5 個相關性較高的市政污水處理廠相關指標以及16 項太湖水質監測指標),分別從結果較好的決策樹和AdaBoost 模型中提取了前5 個相關性特征指標(圖3),相關性特征對模型預測結果有重要影響的特征,因此輸出并分析了前5個重要特征。

圖3 模型的前5個重要特征Fig.3 The importance of the top 5 important features

結果表明太湖自身氮負荷(太湖水體硝態氮濃度和氨氮濃度)是影響太湖總氮濃度的重要特征,這在決策樹和AdaBoost模型中均得到了體現。尤其在決策樹模型中,硝態氮濃度這一指標的重要性遠遠大于其他特征,在AdaBoost 模型中兩者也明顯高于其他特征。說明太湖水體自身氮負荷對總氮濃度變化有著更顯著的影響。在一些空間回歸預測模型中也有類似的研究結論,水體自身的氮負荷是影響總氮濃度的顯著因素[23],然而鑒于我們模型的輸入數據的局限性,模型無法注意到土地類型,人口密度和土壤徑流等影響因素[23]。值得關注的是,太湖中磷負荷對總氮也有一定的影響。這可能是由于水體的生物對氮磷富營養物質的同時利用所致[24]。

此外,太湖同時接受來自市政污水處理廠的點源污染,而這些重要的點源污染也是重要的N 負荷來源之一[23]。機器學習模型也考慮到了來自于市政污水的處理體積(AdaBoost,第三位)和出水氨氮的濃度(AdaBoost,第四位)是重要的影響特征指標。這說明市政污水處理廠出水氨氮是太湖流域重要的氮負荷來源[18],同時市政污水處理廠的排放水量也是重要的影響因素。由于在當前出水水質不斷提高達到1 級A 后,市政污水處理廠尾水濃度也依然遠高于地表水V 類標準。同時日益增加的尾水排放量,使得排入太湖水體的N 質量并沒有明顯減少,其絕對質量有增加趨勢[25]。整體來看,對于太湖流域總氮濃度影響最大的是太湖自身水體的氮負荷,此外是外N 源的輸入,如市政污水處理廠尾水中的氨氮等。

3 結 論

(1)本研究利用KNN、決策樹和AdaBoost 三種機器學習模型分析了太湖水質的相關因素。三種模型中決策樹模型的均方根誤差和平均百分比誤差分別比KNN降低2.68%和39.05%。而AdaBoost 可以將RMSE和MAPE更進一步降低且呈現更好的擬合優度(約0.80),為高精度的水質預測提供借鑒。

(2)模型特征重要性分析表明,對太湖流域總氮濃度影響最大的是太湖自身水體的硝態氮以及氨氮濃度,其次是污水排放的相關指標,如處理水量,出水氨氮濃度等。因此,為有效控制太湖氮濃度,既要控制污水處理廠出水氮濃度相關指標(氨氮,總氮等),也要對市政污水排放量加以控制。

(3)為了控制或降低太湖流域總氮濃度,首先需要控制太湖水體自身的總氮濃度(硝態氮以及氨氮濃度),并需要減少氨氮的外源排入。

猜你喜歡
決策樹氨氮處理廠
堿改性凹凸棒石去除水源水中氨氮的試驗研究
污水處理廠應急響應與措施
污水處理廠反硝化深床濾池工藝應用分析
試論城鎮污水處理廠提標改造相關要點
折點加氯法去除氨氮應用于河道突發性污染中的試驗研究及其應用
生活飲用水氨氮的檢測
簡述一種基于C4.5的隨機決策樹集成分類算法設計
決策樹學習的剪枝方法
世相
決策樹在施工項目管理中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合