肖 凱,魏 菲,彭昌水
(1.長江水利委員會a.網(wǎng)絡(luò)與信息中心水利發(fā)展研究所;b.機關(guān)服務(wù)中心計劃財務(wù)處,武漢 430010;2.長江科學(xué)院信息中心,武漢 430010)
基于R語言的數(shù)據(jù)挖掘在水環(huán)境管理中的應(yīng)用
肖 凱1a,魏 菲1b,彭昌水2
(1.長江水利委員會a.網(wǎng)絡(luò)與信息中心水利發(fā)展研究所;b.機關(guān)服務(wù)中心計劃財務(wù)處,武漢 430010;2.長江科學(xué)院信息中心,武漢 430010)
運用數(shù)據(jù)挖掘中的分類回歸樹方法,對河流中的有害藻類生成進行了建模,分析得出河流中藻類生成的重要影響因子是磷酸鹽含量、氯化物含量和最大pH值。另一方面,運用R語言實現(xiàn)并驗證了CART算法的優(yōu)越性和易用性。其結(jié)論和方法有助于水環(huán)境管理部門更有效地對水質(zhì)進行監(jiān)測和預(yù)測。
數(shù)據(jù)挖掘;分類回歸樹;R語言;水質(zhì)監(jiān)測
水是生命之源,也是人類社會發(fā)展賴以生存的基本物質(zhì)。隨著經(jīng)濟的發(fā)展,天然水源遭到了不同程度的污染,河流水質(zhì)變差,從而影響到人類健康和流域生態(tài)環(huán)境。在諸多水環(huán)境問題中,比較嚴重的是有害藻類在河流中大量繁殖形成的水華爆發(fā),這不僅對河流生命形式也對水質(zhì)造成極大的負面影響。因此,對河流中藻類生成的監(jiān)測和預(yù)測是改善河流水質(zhì)的重要方面。
對水質(zhì)樣本進行生物學(xué)分析需要訓(xùn)練有素的人員,成本較高并且相當(dāng)耗時。相比較而言,對其進行化學(xué)分析則成本較低且容易實現(xiàn)自動化。因此,建立水質(zhì)化學(xué)性質(zhì)和藻類發(fā)生頻率之間關(guān)系的數(shù)學(xué)模型能有效地降低監(jiān)測成本和時間。此外,通過建立數(shù)學(xué)模型也有助于更好地理解藻類發(fā)生頻率的影響因素。
利用數(shù)學(xué)模型對藻類發(fā)生進行預(yù)測的研究并不少見,早在1968年加拿大湖泊專家Vollenweider[1]就提出了利用多個營養(yǎng)指標(biāo)進行水體營養(yǎng)程度的預(yù)測。近年來國內(nèi)學(xué)者也采用了多元線性回歸[2]、神經(jīng)網(wǎng)絡(luò)[3]和系統(tǒng)動力學(xué)[4]的方法對藻類生成進行了預(yù)測研究。
從現(xiàn)有文獻來看,對藻類生成進行預(yù)測的方法主要有2大類[5]:一類是基于生態(tài)機理和系統(tǒng)動力學(xué)的建模,系統(tǒng)動力學(xué)模型通過對生態(tài)系統(tǒng)進行結(jié)構(gòu)分析,研究生態(tài)系統(tǒng)內(nèi)子系統(tǒng)間相互作用,綜合考慮系統(tǒng)內(nèi)外的影響變量,建立微分方程組,研究生態(tài)系統(tǒng)狀態(tài)變量變化;另一類是基于機器學(xué)習(xí)的建模,機器學(xué)習(xí)又稱為人工智能方法,它將不完全、不可靠和不確定的信息逐步轉(zhuǎn)變?yōu)橥耆?、可靠和確定的信息。機器學(xué)習(xí)能很好模擬非線性過程,這就為水華機理分析提供了一種有效途徑。
基于生態(tài)機理建模預(yù)測水華在某些特定河湖取得了較大成效,但是水華的發(fā)生仍是一個機理不太清楚的非線性問題,需要面對各種不確定性,研究者們還需進行深入的探索。多元統(tǒng)計回歸模型一般采用線性關(guān)系對模型進行簡化,因此在預(yù)測藻類生成時效果不佳;而神經(jīng)網(wǎng)絡(luò)方法由于具有較強的適應(yīng)能力、學(xué)習(xí)能力和真正的多輸入、輸出系統(tǒng)的特點得到人們的重視。但是神經(jīng)網(wǎng)絡(luò)模型對于如何確定輸入變量和網(wǎng)絡(luò)結(jié)構(gòu)沒有很好的方法,并且很難解釋神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的功能以及它們對輸出變量的影響。
目前,決策樹方法開始受到國內(nèi)外學(xué)者的關(guān)注,Chen應(yīng)用決策樹和分段非線性統(tǒng)計回歸方法預(yù)測了荷蘭海岸帶水華的葉綠素濃度變化趨勢。曾勇等[6]采用決策樹和非線性回歸相結(jié)合的方法對北京六海地區(qū)的水華進行了分類預(yù)警。決策樹方法具有良好的預(yù)測精度,并且模型的輸入輸出關(guān)系明顯,結(jié)果易于解釋。目前,在水環(huán)境方面采取決策樹進行預(yù)測的文獻還并不多見。因此,本文利用開源統(tǒng)計軟件來系統(tǒng)地總結(jié)整理決策樹算法的應(yīng)用和實現(xiàn)很有意義。
2.1 分類回歸樹模型
本文采用的建模方法是數(shù)據(jù)挖掘中的分類回歸樹方法[7]即CART(Classification and Regression Tree)模型,數(shù)據(jù)挖掘是從數(shù)據(jù)中提取出隱含的過去未知的有價值的潛在信息。數(shù)據(jù)挖掘包括的算法很多,而分類回歸樹是其中一種用于數(shù)據(jù)集分類決策樹技術(shù),也可稱為二元回歸分解技術(shù)。利用分類回歸樹可以自動探測出高度復(fù)雜數(shù)據(jù)的潛在結(jié)構(gòu)、重要模式和關(guān)系;探測出的知識又可用來構(gòu)造精確和可靠的預(yù)測模型。建立樹模型可分為分類樹(Classification Tree)和回歸樹(Regression Tree)2種。分類樹用于因變量為分類數(shù)據(jù)的情況,樹的末端為因變量的分類值;回歸樹則可以用于因變量為連續(xù)變量的情況。
分類回歸樹模型的思想與一般線性回歸不同,它并不需要建立一個回歸方程,而是用一系列的二元決策規(guī)則來反復(fù)分割數(shù)據(jù)。
該模型的優(yōu)點在于:①可以生成容易理解的規(guī)則。②計算量相對來說不是很大。③可以處理多種數(shù)據(jù)類型,對異常值和缺失值不敏感。④決策樹可以清晰地顯示哪些解釋變量較重要。
建立決策樹模型大致分為3個步驟:
第1步是利用樣本數(shù)據(jù)生成決策樹結(jié)構(gòu)。從自變量中選擇最能有效分割數(shù)據(jù)的變量和閾值,使分割后的子集內(nèi)部變異性最小。對數(shù)據(jù)子集重復(fù)劃分直到滿足終止條件。對于連續(xù)數(shù)據(jù)通常是采用均方誤(MSE)作為變異性的判斷指標(biāo),對于離散數(shù)據(jù)則采用基尼值(Gini);
第2步是對決策樹進行修剪或稱為剪枝。之所以要修剪是因為若不加任何限制,模型會產(chǎn)生“過度擬合”的問題,這樣的模型在實際應(yīng)用中毫無意義,而從另一個極端情況來看,若決策樹的枝節(jié)太少,那么必然也會帶來很大的預(yù)測誤差。綜合看來,要兼顧樹的規(guī)模和誤差的大小,因此通常采用一個稱為“成本復(fù)雜性”(cost/complexity)的標(biāo)準來對樹進行限制,使預(yù)測誤差和數(shù)的規(guī)模都盡可能小,通常會使用CP(complexity parameter)參數(shù)來加以限定。
第3步是輸出最終結(jié)果規(guī)則,進行預(yù)測和解釋。
2.2 建模工具
本文采用的實現(xiàn)工具是R語言[8],R語言是一種開源、免費的優(yōu)秀統(tǒng)計軟件。它起源于AT&T貝爾實驗室的S語言,相比其他統(tǒng)計學(xué)或數(shù)學(xué)專用的編程語言有著更強的面向?qū)ο蠊δ?。該軟件在國外被廣泛使用,包括Google和Facebook公司均使用它進行數(shù)據(jù)分析的各項工作。
在R語言中有許多擴展包(Packages)可以增強其功能。rpart包[9]的功能就是實現(xiàn)遞歸分割和樹模型構(gòu)建。其中主要的2個函數(shù)分別是用來生成樹模型的rpart函數(shù)和進行剪枝的prune函數(shù)。表1簡單羅列了rpart包中用到的主要函數(shù)。
表1 rpart包主要函數(shù)名稱與功能Table1 M ajor functions of rpart package
2.3 數(shù)據(jù)來源
本文的樣本數(shù)據(jù)包括了200個水質(zhì)樣本。樣本數(shù)據(jù)是在不同季節(jié)和不同河段采集8種水質(zhì)指標(biāo)和3種有關(guān)變量,上述11個變量將作為模型的解釋變量。藻類生成率作為模型的被解釋變量。樣本數(shù)據(jù)的各變量名與含義如表2所示。
表2 樣本數(shù)據(jù)的變量名與含義Table2 Names and meanings of variables
表3是對樣本數(shù)據(jù)中分類變量的描述性統(tǒng)計,樣本中包括了各個季節(jié)和各類河流樣本,有著較好的代表性。
表3 分類變量的描述統(tǒng)計表Table3 Description of categorical variables
3.1 分析步驟
第1步,載入所需軟件包和數(shù)據(jù):
Library(rpart)
Data(algae)
第2步,整理數(shù)據(jù),將缺失嚴重的2個數(shù)據(jù)刪除:
algae=algae[-c(62,199),]
第3步,建立回歸樹模型,結(jié)果存于變量fit:
fit=rpart(a1~.,method=‘nova’,data=algae[,1:12])
第4步,繪制回歸樹的結(jié)構(gòu)圖:draw.tree(fit)
第5步,對樹模型進行剪枝:
調(diào)用CP(complexity parameter)與xerror的相關(guān)圖,尋找最小xerror點所對應(yīng)的CP值,并由此CP值決定樹的大小
Plotcp(fit)
根據(jù)上面得到的CP值,用prune命令對樹模型進行修剪。
3.2 分析結(jié)果和討論
由于篇幅所限,僅列軟件計算得到的模型結(jié)果部分顯示如下:
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
模型輸出結(jié)果的第1行表示根節(jié)點,其它末尾加星號的表示葉節(jié)點。每1行均表示了1次數(shù)據(jù)劃分或者說決策樹的分叉。輸出結(jié)果的第1列為結(jié)點序號,第2列為數(shù)據(jù)劃分依據(jù),第3列為分組后的樣本數(shù),第4列為組內(nèi)誤差,第5列為組內(nèi)因變量均值。以輸出結(jié)果的第2行為例,“PO4≥43.81”即表示以磷酸鹽含量43.81作為劃分數(shù)據(jù)的閾值,將整個數(shù)據(jù)進行了第1次分割,磷酸鹽含量>43.81的為1組,構(gòu)成2號結(jié)點,小于43.81的為另1組,構(gòu)成3號結(jié)點。數(shù)值147即表示歸入2號結(jié)點的樣本數(shù)有147個,第3個數(shù)字表示這1組的殘差平方和為31 279.12,最后1個數(shù)據(jù)8.97表示本組樣本中藻類生成的平均值。
從第1次劃分數(shù)據(jù)的結(jié)果可以看出,3號結(jié)點藻類生成均值為40.10,明顯大于2號結(jié)點數(shù)字,因此初步判斷磷酸鹽含量較大的河流,其藻類生成率較低。由于決策樹的建立過程是一個不斷選擇最佳預(yù)測變量的過程,因此在劃分數(shù)據(jù)方面,高層結(jié)點上的分類規(guī)則比低層結(jié)點上的分類規(guī)則更有價值,所以可以根據(jù)分類規(guī)則在分類樹的位置確定預(yù)測變量對目標(biāo)變量影響的重要性??梢钥闯鲠槍υ孱惿蛇@一因變量,在自變量中最為重要的因素是磷酸鹽含量,其次是最大pH值與氯化物含量。
根據(jù)圖1所示的樹模型結(jié)構(gòu)圖中還可更為直觀地觀察到,整個模型有10個葉節(jié)點,深度為6層,根節(jié)點以及內(nèi)部節(jié)點處都標(biāo)明了此節(jié)點所對應(yīng)的依賴變量和閾值。
圖1 分類回歸樹模型的結(jié)構(gòu)圖Fig.1 Tree structure of CART model
由決策樹結(jié)構(gòu)圖還可以得到對藻類發(fā)生的解釋規(guī)則,若水環(huán)境管理部門監(jiān)測到河流中磷酸鹽含量在15.17以下,并且最大pH值超過7.87,那么預(yù)計藻類生成率將最高,其期望值為59.14,即圖1中10號葉節(jié)點的情況。此時說明河段中出現(xiàn)了水華問題,水環(huán)境生態(tài)系統(tǒng)不正常,水環(huán)境管理部門應(yīng)提高警惕,及時確認和處理水華問題。若檢測到磷酸鹽含量>51.118,且氯化物含量超過7.806 5,則預(yù)期藻類生成率為3.85,此時的水環(huán)境系統(tǒng)處于較為正常狀態(tài)。
由上述模型可以得到以下結(jié)論,河流中的磷酸鹽含量、氯化物含量和最大pH值是影響藻類生成的重要因素。要抑制河流中水華形成,可以采取的措施就是提高磷酸鹽含量,并同時加大氯化物含量。這就是樹圖中左側(cè)節(jié)點所處的情況。而河流的規(guī)模、流速以及季節(jié)變量均未出現(xiàn)在模型中,可見這3個解釋變量對藻類生成沒有很大影響。
從模型運行結(jié)果分析可以得出,CART模型對河流中藻類生成預(yù)測具有一定的參考意義。但是作為數(shù)據(jù)挖掘算法的一種,只有樣本足夠多時,結(jié)果準確率才會更高,而本文中的樣本數(shù)偏少,在實際的水質(zhì)監(jiān)測工作中,采樣范圍應(yīng)該遠遠不只200個。另外,樣本中所涉及的水質(zhì)化學(xué)指標(biāo)也可以更豐富一些。這些都是影響模型結(jié)果準確率的主要因素。
從研究方法上來看,CART模型有很多自身的優(yōu)點,一個比較顯而易見的優(yōu)勢就是它特別直觀明了,決策者根據(jù)樹形圖的分枝走向很容易預(yù)測因變量的取值,在這方面它與神經(jīng)網(wǎng)絡(luò)相比,其邏輯和操作都更易理解;另一方面,因為數(shù)據(jù)劃分的依據(jù)是觀測值的順序而非具體大小,因而對異常值并不敏感,而且對缺失值的處理機制能提高數(shù)據(jù)的利用充分程度。但其缺點在于對連續(xù)數(shù)據(jù)的分析精度不夠,因此建議因變量多采用分類變量,將藻類生成按標(biāo)準分為多個警戒級別,再進行建模預(yù)測。
當(dāng)然分類回歸樹模型也并非完美,目前該方法也得到了進一步的發(fā)展。例如以隨機森林(random forest)的方法來擴展CART模型,隨機森林是一個包含多個決策樹的分類器,其輸出值是由個別樹輸出值的眾數(shù)而定。在R語言中,randomForest擴展包可以實現(xiàn)分類回歸樹的隨機森林算法。
[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] 李 星,何宇飛,楊艷玲,等.采用預(yù)測模型預(yù)測水庫水的藻類生長潛力[J].哈爾濱商業(yè)大學(xué)學(xué)報(自然科學(xué)版),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īng)網(wǎng)絡(luò)識別[J].上海交通大學(xué)學(xué)報,2007,41(11):1801-1805.(YAO Zhi-hong,F(xiàn)EI 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] 賈海峰,張巖松,何 苗.北京水系多藻類生態(tài)動力學(xué)模型[J].清華大學(xué)學(xué)報(自然科學(xué)版),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] 劉載文,呂思穎,王小藝,等.河湖水華預(yù)測方法研究[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] 曾 勇,楊志峰,劉靜玲.城市湖泊水華預(yù)警模型研究[J].水科學(xué)進展,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,F(xiàn)RIEDMAN J,OLSHEN R A,et al.Classification and Regression Trees[M].Boca Raton,F(xiàn)lorida:Chapman&Hall/CRC,1984.
[8] TORGO L.Data Mining with R:Learning with Case Studies[M].Boca Raton,F(xiàn)lorida:Chapman and Hall/CRC,2010:11-15.
[9] 謝益輝.基于R軟件rpart包的分類與回歸樹應(yīng)用[J].統(tǒng)計與信息論壇,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-),男,湖北武漢人,工程師,碩士,主要從事水資源管理與數(shù)據(jù)挖掘方面的研究,(電話)13545284695(電子信箱)xccds1977@gmail.com。