何 恒 宋 蝶 王一旭
(浙江省發展規劃研究院,浙江 杭州 310012)
水資源是人類賴以生存的自然資源,水環境質量直接影響著人類的生存和發展[1]。隨著城市化進程的加速,工業廢水、生活污水、農業面源污染使河流水體污染物含量增加,水體污染問題日益嚴重。區域水質時空變化特征分析是區域水資源管理與污染研究治理的重要內容之一,也是進行區域水環境治理與保護的科學依據[2],因此在時間和空間尺度上對水質進行分析具有重要的科學意義和現實意義。
近年來,隨著數據可獲得性的提升和建模技術的不斷發展,機器學習算法越來越受到學界的重視,也被廣泛應用于環境保護領域[3-6]。相較于傳統統計學方法,機器學習算法能夠從規模較大的數據集里進行相關模式的學習,構建基于數據的經驗關系,并將其應用于預測和機理分析中。然而,這些模型比傳統統計學模型復雜,其內部邏輯難以理解。即使能夠作出準確的預測[7],但由于機器學習模型的“黑盒子”屬性,其應用場景在很多領域都受到了限制。因此,需要使用外部的模型解釋方法才能更深入地理解建模過程,而特征重要性就是一種常用的模型解釋方法[8]。
湖州市是“綠水青山就是金山銀山”理念的誕生地,2005年以來,湖州市以太湖流域水環境綜合治理、“五水共治”“污水零直排區”創建等重大行動為抓手,推動水環境不斷提質升級。但由城市化水平提升、人類活動加劇而產生的環境污染風險仍不可忽視。通過對湖州市近15年水質狀況進行時空分析,可以了解湖州市水質指標隨時間的變化規律,并確定不同水質的分布狀況。因此,本文以2005—2019年湖州市省控監測斷面水質監測資料為基礎,分析研究湖州市水質時空變化規律,并通過機器學習方法進行水質數據的相關模式識別,采用基于模型性能的特征重要性對主要水環境污染物進行識別,探究利用上述方法在湖州市進行水質研究的可行性,為新時代美麗湖州、美麗鄉村建設提供技術支撐。
湖州市位于浙江省北部、太湖南岸,市域面積5820km2,東部為水鄉平原,西部以山地、丘陵為主,轄吳興、南潯2個區,德清、長興、安吉3個縣,常住人口近300萬,其中市區人口133萬。湖州市地處北亞熱帶季風氣候區,雨熱同期、降水充沛,年平均氣溫12.2~17.3℃,無霜期224~246天,年平均降水量761~1780mm。境內水面面積536km2,主要河流包括東、西苕溪,長興水系河流等。湖州市自然資源豐富,生態環境良好,是“綠水青山就是金山銀山”理念的誕生地、中國美麗鄉村發源地、全國首個地市級生態文明先行示范區。

1.3.1 時空分析方法
本研究首先對水質各指標的月均值數據進行了處理,同時將17個監測站點根據水系匯水情況劃分為西苕溪流域(區域1)、長興水系(區域2)、東苕溪流域(區域3)、東部平原河網(區域4)4個區域。其中區域1監測站點包括荊灣、塘浦、鐵路橋、南潘,區域2監測站點包括合溪、楊家浦,區域3監測站點包括城南翻水站、城西大橋、東升、小梅口、新港口、大錢,區域4監測站點包括幻溇、古婁港、南潯、湯溇、沈家墩,具體分布見圖1。

圖1 監測斷面分布
1.3.2 水質評價模型構建
為了識別關鍵水環境污染物,首先需要利用機器學習算法構建水質參數與水質類別的相關模式,即構建水質評價模型。為了確定適合用于水質評價的機器學習算法,本研究選取6種常用算法,進行了1000次水質數據集的隨機劃分以避免數據劃分造成的性能影響,在默認的參數設置下分別進行了1000輪模型訓練,并計算每個模型交叉驗證準確率的均值和標準差(見表1)。經過模型性能比選,本研究選擇梯度增強迭代決策樹(Gradient Boosting Decision Tree, GBDT)算法進行水質評價模型的構建。

表1 模型比選結果
GBDT算法是一種有監督分類的算法,這類算法能從已知水質類別的水質數據集合中學習水質參數和水質類別的經驗關系,以水質參數為自變量,水質類別為因變量,構建自變量和因變量之間的關聯規則。
GBDT模型以分類與回歸樹(classification and regression tree, CART)模型為基分類器,針對每一個任務都會構建若干數量的CARTs,并采用梯度增強為學習策略進行訓練。在構建新的CART時,采用現存CART的擬合殘差梯度值作為學習目標,而模型的最終輸出是所有CARTs輸出預測值的累加結果,也就是說模型會以CART的原始結果為基礎,并構建結果調整機制提升準確率,以實現更加優秀的模型性能。對于本研究中涉及的多分類任務,GBDT算法采用一對多的處理策略,如將Ⅰ~Ⅴ類水質級別標簽劃分為Ⅰ類水和非Ⅰ類水、Ⅱ類水和非Ⅱ類水等5個二分類,并分別同步構建模型,最后通過5個模型的輸出結果綜合判斷水質級別。
本研究中,水質數據集合被劃分為訓練集(70%)和驗證集(30%),其中訓練集被用于模型構建,驗證集被用于模型的泛化性能驗證。在模型構建過程中,采用Hyperopt[9]在十折交叉驗證下進行超參數調優,即將訓練集隨機分為10份,進行10次模型構建,每次構建都取1份作為該次模型構建的驗證數據計算準確率,并將交叉驗證準確率的均值作為超參數調優算法的評價依據。在完成模型訓練后,將測試集數據作為模型輸入,預測每一條水質監測記錄的水質類別,并與真實值進行比較,計算模型的測試準確率。
1.3.3 關鍵特征識別
在完成水質評價模型構建后,計算特征重要性,以此作為關鍵水質參數的識別依據。本研究采用基于模型交叉驗證性能的遞歸特征消除算法進行關鍵水質參數的識別。遞歸特征消除算法是一種向后選擇的特征篩選方法,會進行多次模型構建。在每輪的模型構建中,依次遍歷所有特征,將該特征剔除后,再將剩余的特征輸入模型,計算該特征子集交叉驗證的準確率,選擇模型性能最好的特征子集進行下一輪消除,直到僅剩一個特征后停止消除。特征被消除的先后順序便是特征的重要性排序。采用該方法進行關鍵水環境污染物的識別,可以從水質評價效果的角度出發,判斷哪項水質指標對水質級別的影響更大,對于區域水質管理工作更具參考價值。
本研究中,水質數據分析采用SPSS 22.0進行;水質類別判斷、GBDT模型構建和基于模型交叉驗證性能的遞歸特征消除算法均采用Python編程實現。其中水質類別的劃分依據為《地表水環境質量標準》(GB 3838—2002)。
2.1.1 時間分析

圖2 湖州市2005—2019年高錳酸鹽指數、化學需氧量、五日生化需氧量、氨氮、總磷年平均濃度變化情況


圖3 豐水期、平水期、枯水期不同區域間水質參數比較
圖3中,各水質參數同一時期的不同字母代表區域間差異顯著,P<0.05。
2.1.2 空間分析

整體而言,湖州市水質按優劣情況排序依次為區域1、區域3、區域4、區域2。區域1近些年生態環境保護較好,西苕溪流域中上游的安吉縣作為國家級生態示范區,其在水土保持、植被恢復等方面做了大量工作,使西苕溪生態環境得到良好恢復與保護[13];區域2的水體整體質量最差,可能是受太湖水質污染影響,此外位于區域2的長興縣是工業強縣,工業發展也會產生較多的工業污染源;區域3的水體整體水質劣于區域1,這是由于東苕溪兩岸的礦山企業較多,導致東苕溪受礦山開采和航運的影響使水質變渾,加之東苕溪兩側農業養殖多,畜禽糞便等生產廢水治理尚不到位;區域4的水體整體質量較差,相關研究表明流域水質污染與居民區之間存在一定的相關性[14],而區域4位于湖州東部平原,人口眾多,工業密集,可在居民點距河岸較近的區域設置植被緩沖帶,降低水質污染風險[15]。
2.2.1 水質評價模型構建
以水質級別作為標簽,進行GBDT模型訓練,經過Hyperopt超參數調優后(采用的超參數:bagging_fraction=0.26,learning_rate=0.34,max_depth=19,num_leaves=2,num_trees=231),訓練集數據的十折交叉驗證平均準確率可達98%。采用學習曲線對模型擬合度進行可視化表征(見圖4),可以發現模型對訓練數據的準確率一直穩定在100%,而隨著訓練數據的不斷輸入,其對于交叉驗證的預測準確率不斷上升,最終達到了接近訓練擬合度的收斂狀態。由此可知,GBDT模型對于水質數據的擬合程度較好,不存在欠擬合或過擬合的問題。

圖4 GBDT模型學習曲線
將驗證集數據輸入訓練好的模型,結果顯示模型的預測準確率可達97%。具體的驗證集數據分類效果見表2。

表2 驗證集模型分類報告
對于Ⅰ類和Ⅴ類數據,模型的準確率高于召回率,對這兩類水質數據作出正類判斷的正確率較高,但存在部分的Ⅰ類和Ⅴ類數據會被誤判為Ⅱ類和Ⅳ類的問題。Ⅳ類數據的準確率低于召回率,準確率低主要是受到Ⅴ類數據被錯判為Ⅳ類的影響,而Ⅳ類數據樣本數并不多,導致其準確率大幅降低。
湖州市的水質檢測記錄中Ⅰ類和Ⅴ類水都非常少,模型的召回率低,說明部分監測數據雖然屬于Ⅰ類或Ⅴ類水,但其與Ⅱ類或Ⅳ類水標準的標準界限非常接近。特別是Ⅴ類水,其綜合評價F1(包括召回率和準確率)得分只有67%,說明湖州地區雖然會偶而發出現Ⅴ類水,但其超過Ⅳ類水標準范圍的幅度非常小,導致模型的精度不高。
由于湖州市的水質級別主要為Ⅱ類與Ⅲ類水,導致Ⅰ類、Ⅳ類、Ⅴ類水數據記錄的樣本數相對較少,模型的學習能力和判斷能力受到了一定的影響。但是總體上,GBDT模型仍然能夠有效識別水質指標與水質級別之間的相關關系,并且具有較強的預測能力,適合用于進一步的分析。
2.2.2 模型關鍵特征
采用基于模型性能的遞歸特征消除算法對所有水質指標進行分析,以進行關鍵水環境污染物識別,結果見表3和圖5。

表3 基于模型性能的關鍵特征識別

圖5 關鍵參數識別
由圖5可知,模型中納入的特征數量與模型性能成正相關關系,這可能是因為本研究采用的5項水質指標都屬于對水質評價非常重要的參數,因此區分度并不十分明顯。然而,CODMn和BOD5的加入對于模型性能的提升幅度存在一定程度上的衰減,并且由于遞歸特征消除算法的基本思想是每輪消除都會去除對模型性能影響最小的特征,可知這兩項水質指標對于水質級別判定的影響相對較弱。


