肖 凱,魏 菲,彭昌水
(1.長江水利委員會a.網絡與信息中心水利發展研究所;b.機關服務中心計劃財務處,武漢 430010;2.長江科學院信息中心,武漢 430010)
基于R語言的數據挖掘在水環境管理中的應用
肖 凱1a,魏 菲1b,彭昌水2
(1.長江水利委員會a.網絡與信息中心水利發展研究所;b.機關服務中心計劃財務處,武漢 430010;2.長江科學院信息中心,武漢 430010)
運用數據挖掘中的分類回歸樹方法,對河流中的有害藻類生成進行了建模,分析得出河流中藻類生成的重要影響因子是磷酸鹽含量、氯化物含量和最大pH值。另一方面,運用R語言實現并驗證了CART算法的優越性和易用性。其結論和方法有助于水環境管理部門更有效地對水質進行監測和預測。
數據挖掘;分類回歸樹;R語言;水質監測
水是生命之源,也是人類社會發展賴以生存的基本物質。隨著經濟的發展,天然水源遭到了不同程度的污染,河流水質變差,從而影響到人類健康和流域生態環境。在諸多水環境問題中,比較嚴重的是有害藻類在河流中大量繁殖形成的水華爆發,這不僅對河流生命形式也對水質造成極大的負面影響。因此,對河流中藻類生成的監測和預測是改善河流水質的重要方面。
對水質樣本進行生物學分析需要訓練有素的人員,成本較高并且相當耗時。相比較而言,對其進行化學分析則成本較低且容易實現自動化。因此,建立水質化學性質和藻類發生頻率之間關系的數學模型能有效地降低監測成本和時間。此外,通過建立數學模型也有助于更好地理解藻類發生頻率的影響因素。
利用數學模型對藻類發生進行預測的研究并不少見,早在1968年加拿大湖泊專家Vollenweider[1]就提出了利用多個營養指標進行水體營養程度的預測。近年來國內學者也采用了多元線性回歸[2]、神經網絡[3]和系統動力學[4]的方法對藻類生成進行了預測研究。
從現有文獻來看,對藻類生成進行預測的方法主要有2大類[5]:一類是基于生態機理和系統動力學的建模,系統動力學模型通過對生態系統進行結構分析,研究生態系統內子系統間相互作用,綜合考慮系統內外的影響變量,建立微分方程組,研究生態系統狀態變量變化;另一類是基于機器學習的建模,機器學習又稱為人工智能方法,它將不完全、不可靠和不確定的信息逐步轉變為完全、可靠和確定的信息。機器學習能很好模擬非線性過程,這就為水華機理分析提供了一種有效途徑。
基于生態機理建模預測水華在某些特定河湖取得了較大成效,但是水華的發生仍是一個機理不太清楚的非線性問題,需要面對各種不確定性,研究者們還需進行深入的探索。多元統計回歸模型一般采用線性關系對模型進行簡化,因此在預測藻類生成時效果不佳;而神經網絡方法由于具有較強的適應能力、學習能力和真正的多輸入、輸出系統的特點得到人們的重視。但是神經網絡模型對于如何確定輸入變量和網絡結構沒有很好的方法,并且很難解釋神經網絡結構的功能以及它們對輸出變量的影響。
目前,決策樹方法開始受到國內外學者的關注,Chen應用決策樹和分段非線性統計回歸方法預測了荷蘭海岸帶水華的葉綠素濃度變化趨勢。曾勇等[6]采用決策樹和非線性回歸相結合的方法對北京六海地區的水華進行了分類預警。決策樹方法具有良好的預測精度,并且模型的輸入輸出關系明顯,結果易于解釋。目前,在水環境方面采取決策樹進行預測的文獻還并不多見。因此,本文利用開源統計軟件來系統地總結整理決策樹算法的應用和實現很有意義。
2.1 分類回歸樹模型
本文采用的建模方法是數據挖掘中的分類回歸樹方法[7]即CART(Classification and Regression Tree)模型,數據挖掘是從數據中提取出隱含的過去未知的有價值的潛在信息。數據挖掘包括的算法很多,而分類回歸樹是其中一種用于數據集分類決策樹技術,也可稱為二元回歸分解技術。利用分類回歸樹可以自動探測出高度復雜數據的潛在結構、重要模式和關系;探測出的知識又可用來構造精確和可靠的預測模型。建立樹模型可分為分類樹(Classification Tree)和回歸樹(Regression Tree)2種。分類樹用于因變量為分類數據的情況,樹的末端為因變量的分類值;回歸樹則可以用于因變量為連續變量的情況。
分類回歸樹模型的思想與一般線性回歸不同,它并不需要建立一個回歸方程,而是用一系列的二元決策規則來反復分割數據。
該模型的優點在于:①可以生成容易理解的規則。②計算量相對來說不是很大。③可以處理多種數據類型,對異常值和缺失值不敏感。④決策樹可以清晰地顯示哪些解釋變量較重要。
建立決策樹模型大致分為3個步驟:
第1步是利用樣本數據生成決策樹結構。從自變量中選擇最能有效分割數據的變量和閾值,使分割后的子集內部變異性最小。對數據子集重復劃分直到滿足終止條件。對于連續數據通常是采用均方誤(MSE)作為變異性的判斷指標,對于離散數據則采用基尼值(Gini);
第2步是對決策樹進行修剪或稱為剪枝。之所以要修剪是因為若不加任何限制,模型會產生“過度擬合”的問題,這樣的模型在實際應用中毫無意義,而從另一個極端情況來看,若決策樹的枝節太少,那么必然也會帶來很大的預測誤差。綜合看來,要兼顧樹的規模和誤差的大小,因此通常采用一個稱為“成本復雜性”(cost/complexity)的標準來對樹進行限制,使預測誤差和數的規模都盡可能小,通常會使用CP(complexity parameter)參數來加以限定。
第3步是輸出最終結果規則,進行預測和解釋。
2.2 建模工具
本文采用的實現工具是R語言[8],R語言是一種開源、免費的優秀統計軟件。它起源于AT&T貝爾實驗室的S語言,相比其他統計學或數學專用的編程語言有著更強的面向對象功能。該軟件在國外被廣泛使用,包括Google和Facebook公司均使用它進行數據分析的各項工作。
在R語言中有許多擴展包(Packages)可以增強其功能。rpart包[9]的功能就是實現遞歸分割和樹模型構建。其中主要的2個函數分別是用來生成樹模型的rpart函數和進行剪枝的prune函數。表1簡單羅列了rpart包中用到的主要函數。

表1 rpart包主要函數名稱與功能Table1 M ajor functions of rpart package
2.3 數據來源
本文的樣本數據包括了200個水質樣本。樣本數據是在不同季節和不同河段采集8種水質指標和3種有關變量,上述11個變量將作為模型的解釋變量。藻類生成率作為模型的被解釋變量。樣本數據的各變量名與含義如表2所示。

表2 樣本數據的變量名與含義Table2 Names and meanings of variables
表3是對樣本數據中分類變量的描述性統計,樣本中包括了各個季節和各類河流樣本,有著較好的代表性。

表3 分類變量的描述統計表Table3 Description of categorical variables
3.1 分析步驟
第1步,載入所需軟件包和數據:
Library(rpart)
Data(algae)
第2步,整理數據,將缺失嚴重的2個數據刪除:
algae=algae[-c(62,199),]
第3步,建立回歸樹模型,結果存于變量fit:
fit=rpart(a1~.,method=‘nova’,data=algae[,1:12])
第4步,繪制回歸樹的結構圖:draw.tree(fit)
第5步,對樹模型進行剪枝:
調用CP(complexity parameter)與xerror的相關圖,尋找最小xerror點所對應的CP值,并由此CP值決定樹的大小
Plotcp(fit)
根據上面得到的CP值,用prune命令對樹模型進行修剪。
3.2 分析結果和討論
由于篇幅所限,僅列軟件計算得到的模型結果部分顯示如下:
1)root 198 90 401.29 16.99
2)PO4>=43.81 147 31 279.12 8.97
4)Cl>=7.81 140 21 622.83 7.49
8)oPO4>=51.18 84 3 441.14 3.84*
9)oPO4<51.11 56 15 389.43 12.96
5)Cl<7.806 5 7 3 157.76 38.71*
3)PO4<43.82 51 22 442.76 40.10
6)mxpH<7.87 28 11 452.77 33.45
12)mxpH>=7.045 18 5 146.16 26.39*
13)mxpH<7.045 10 3 797.64 46.15*
7)mxpH>=7.87 23 8 241.11 48.20
模型輸出結果的第1行表示根節點,其它末尾加星號的表示葉節點。每1行均表示了1次數據劃分或者說決策樹的分叉。輸出結果的第1列為結點序號,第2列為數據劃分依據,第3列為分組后的樣本數,第4列為組內誤差,第5列為組內因變量均值。以輸出結果的第2行為例,“PO4≥43.81”即表示以磷酸鹽含量43.81作為劃分數據的閾值,將整個數據進行了第1次分割,磷酸鹽含量>43.81的為1組,構成2號結點,小于43.81的為另1組,構成3號結點。數值147即表示歸入2號結點的樣本數有147個,第3個數字表示這1組的殘差平方和為31 279.12,最后1個數據8.97表示本組樣本中藻類生成的平均值。
從第1次劃分數據的結果可以看出,3號結點藻類生成均值為40.10,明顯大于2號結點數字,因此初步判斷磷酸鹽含量較大的河流,其藻類生成率較低。由于決策樹的建立過程是一個不斷選擇最佳預測變量的過程,因此在劃分數據方面,高層結點上的分類規則比低層結點上的分類規則更有價值,所以可以根據分類規則在分類樹的位置確定預測變量對目標變量影響的重要性。可以看出針對藻類生成這一因變量,在自變量中最為重要的因素是磷酸鹽含量,其次是最大pH值與氯化物含量。
根據圖1所示的樹模型結構圖中還可更為直觀地觀察到,整個模型有10個葉節點,深度為6層,根節點以及內部節點處都標明了此節點所對應的依賴變量和閾值。

圖1 分類回歸樹模型的結構圖Fig.1 Tree structure of CART model
由決策樹結構圖還可以得到對藻類發生的解釋規則,若水環境管理部門監測到河流中磷酸鹽含量在15.17以下,并且最大pH值超過7.87,那么預計藻類生成率將最高,其期望值為59.14,即圖1中10號葉節點的情況。此時說明河段中出現了水華問題,水環境生態系統不正常,水環境管理部門應提高警惕,及時確認和處理水華問題。若檢測到磷酸鹽含量>51.118,且氯化物含量超過7.806 5,則預期藻類生成率為3.85,此時的水環境系統處于較為正常狀態。
由上述模型可以得到以下結論,河流中的磷酸鹽含量、氯化物含量和最大pH值是影響藻類生成的重要因素。要抑制河流中水華形成,可以采取的措施就是提高磷酸鹽含量,并同時加大氯化物含量。這就是樹圖中左側節點所處的情況。而河流的規模、流速以及季節變量均未出現在模型中,可見這3個解釋變量對藻類生成沒有很大影響。
從模型運行結果分析可以得出,CART模型對河流中藻類生成預測具有一定的參考意義。但是作為數據挖掘算法的一種,只有樣本足夠多時,結果準確率才會更高,而本文中的樣本數偏少,在實際的水質監測工作中,采樣范圍應該遠遠不只200個。另外,樣本中所涉及的水質化學指標也可以更豐富一些。這些都是影響模型結果準確率的主要因素。
從研究方法上來看,CART模型有很多自身的優點,一個比較顯而易見的優勢就是它特別直觀明了,決策者根據樹形圖的分枝走向很容易預測因變量的取值,在這方面它與神經網絡相比,其邏輯和操作都更易理解;另一方面,因為數據劃分的依據是觀測值的順序而非具體大小,因而對異常值并不敏感,而且對缺失值的處理機制能提高數據的利用充分程度。但其缺點在于對連續數據的分析精度不夠,因此建議因變量多采用分類變量,將藻類生成按標準分為多個警戒級別,再進行建模預測。
當然分類回歸樹模型也并非完美,目前該方法也得到了進一步的發展。例如以隨機森林(random forest)的方法來擴展CART模型,隨機森林是一個包含多個決策樹的分類器,其輸出值是由個別樹輸出值的眾數而定。在R語言中,randomForest擴展包可以實現分類回歸樹的隨機森林算法。
[1] VOLLENWEIDER R A.The Scientific Basis of Lake Eutrophication,with Particular Reference to Phosphorus and Nitrogen as Eutrophication Factors[R].Paris:Organisation for Economic Co-operation and Development,Technical Report DAS/DSI/68.127.OECD,1968:159.
[2] 李 星,何宇飛,楊艷玲,等.采用預測模型預測水庫水的藻類生長潛力[J].哈爾濱商業大學學報(自然科學版),2008,24(1):36-39.(LIXing,HE Yu-fei,YANG Yan-ling,et al.Application of Forecasting Model for Algae Growth Potential Forecast of Reservoir Water[J].Journal of Harbin University of Commerce(Natural Sciences Edition),2008,24(1):36-39.(in Chinese))
[3] 姚志紅,費敏銳,孔海南,等.基于改進遺傳算法的藻類神經網絡識別[J].上海交通大學學報,2007,41(11):1801-1805.(YAO Zhi-hong,FEI Min-rui,KONG Hai-nan,et al.Neural Network Recognization for Algae Based on Improved Genetic Algorithms[J].Journal of Shanghai Jiaotong University,2007,41(11):1801-1805.(in Chinese))
[4] 賈海峰,張巖松,何 苗.北京水系多藻類生態動力學模型[J].清華大學學報(自然科學版),2009,49(12):1992-1996.(JIA Hai-feng,ZHANG Yan-song,HE Miao.Multi-species Algae Ecodynamic Model for the Beijing Water System[J].Journal of Tsinghua University(Sci&Tech),2009,49(12):1992-1996.(in Chinese))
[5] 劉載文,呂思穎,王小藝,等.河湖水華預測方法研究[J].水資源保護,2008,24(5):42-47.(LIU Zai-wen,LV Si-ying,WANG Xiao-yi,et al.Forecast Methods for Algal Bloom in Rivers and Lakes[J].Water Resources Protection,2008,24(5):42-47.(in Chinese))
[6] 曾 勇,楊志峰,劉靜玲.城市湖泊水華預警模型研究[J].水科學進展,2007,18(7):79-85.(ZENG Yong,YANG Zhi-feng,LIU Jing-ling.Algalbloom Prediction Models for Liuhai-lake in Beijing City[J].Advances in Water Science,2007,18(7):79-85.(in Chinese))
[7] BREIMAN L,FRIEDMAN J,OLSHEN R A,et al.Classification and Regression Trees[M].Boca Raton,Florida:Chapman&Hall/CRC,1984.
[8] TORGO L.Data Mining with R:Learning with Case Studies[M].Boca Raton,Florida:Chapman and Hall/CRC,2010:11-15.
[9] 謝益輝.基于R軟件rpart包的分類與回歸樹應用[J].統計與信息論壇,2007,22(5):67-70.(XIE Yihui.The Application of the Classification and Regression Tree Based on the Package rpart in R-Language[J].Statistics&Information Forum,2007,22(5):67-70.(in Chinese) )
(編輯:王 慰)
App lication of R Language-Based Data M ining in Water Environment M anagement
XIAO Kai1,WEIFei2,PENG Chang-shui3
(1.Network Information Center of Changjiang Water Resources Commission,Wuhan 430010,China;2.Agencies Service Center of Changjiang Water Resources Commission,Wuhan 430010,China;3.Information Center,Yangtze River Scientific Research Institute,Wuhan 430010,China)
The authors analyzed themodel of harmful algal blooms in the river on the basis of classification regression tree(CART)algorithm of datamining.Results indicated that phosphate,chloride and themaximum pH values are key factors of algae generation.Furthermore,we employed the R language to validate the superiority and convenience of using CART algorithm.The conclusions and methods could contribute to a more effective water qualitymonitoring and forecasting.
datamining;classification and regression tree(CART);R language;water qualitymonitoring
X52
A
1001-5485(2012)09-0091-04
10.3969/j.issn.1001-5485.2012.09.021
2011-06-28;
2012-05-25
肖 凱(1977-),男,湖北武漢人,工程師,碩士,主要從事水資源管理與數據挖掘方面的研究,(電話)13545284695(電子信箱)xccds1977@gmail.com。