張 帥,魏正英,張育斌,蔚磊磊,簡 寧
(西安交通大學機械制造系統(tǒng)工程國家重點實驗室,西安 710054)
水資源是基礎性的自然資源和重要的戰(zhàn)略資源。我國是一個水資源嚴重短缺的國家,水資源供需矛盾突出仍然是可持續(xù)發(fā)展的主要瓶頸。農(nóng)業(yè)是用水大戶,但用水效率不高,節(jié)水潛力巨大。作物需水量是農(nóng)業(yè)生產(chǎn)中最重要的因素之一,而作物蒸散量是計算作物需水量的關鍵,因此尋找一種合理方法來預測作物蒸散量,用于指導作物的灌溉,對于促進水資源可持續(xù)利用、保障國家糧食安全、加快轉(zhuǎn)變經(jīng)濟發(fā)展方式有著重要的意義。傳統(tǒng)的作物蒸散量計算利用經(jīng)驗公式求得,但是由于公式所需參數(shù)較多,計算過程較復雜,ET0受氣象因素影響很大,對于ET0的計算可以看作是氣象因素非線性關系的回歸分析[1],氣象數(shù)據(jù)和農(nóng)業(yè)息息相關,人工往往很難得到隱藏在數(shù)據(jù)背后的知識,因此引入了數(shù)據(jù)挖掘技術,結合近年來取代神經(jīng)網(wǎng)絡等傳統(tǒng)機器學習方法的新的算法—隨機森林,它的運算速度很快,具有很高的預測準確率,在處理氣象這樣的大數(shù)據(jù)時表現(xiàn)十分優(yōu)異。BP神經(jīng)網(wǎng)絡和SVM容易出現(xiàn)過擬合,很難全局最優(yōu)解,尤其是它們對缺失的數(shù)據(jù)很敏感,從而降低了精度,而隨機森林通過對許多弱學習器組合產(chǎn)生出強學習器,對于缺失的氣象參數(shù)仍然可以維持很高的準確度。
本文利用西安市1992-2014年逐日氣象數(shù)據(jù)資料[2],以氣象參數(shù)作為模型的輸入?yún)?shù)進行模擬訓練,以FAO56 Penman - Montieth公式計算的ET0結果作為模型預期輸出值,通過不同氣象參數(shù)組合輸入方式,采用數(shù)據(jù)挖掘技術和隨機森林算法結合知識流建模方法構建了模型,并將模擬結果同其他常用模型進行對比研究,探索數(shù)據(jù)挖掘技術在作物蒸散量ET0模擬計算中的應用。
數(shù)據(jù)挖掘,也稱為數(shù)據(jù)庫中的知識發(fā)現(xiàn),是數(shù)據(jù)庫知識發(fā)現(xiàn)中的一個步驟,一般是指從大量的數(shù)據(jù)中通過算法搜索隱藏于其中知識的過程,這些知識是隱含的、事先未知的潛在有用信息,提取的知識一般可表示為概念、規(guī)則、模式等形式。數(shù)據(jù)挖掘通常與計算機科學有關,并通過統(tǒng)計、在線分析處理、情報檢索、機器學習、專家系統(tǒng)(依靠過去的經(jīng)驗法則)和模式識別等諸多方法來實現(xiàn)上述目標[3]。數(shù)據(jù)挖掘解決實際問題過程如圖1所示,數(shù)據(jù)挖掘任務分為兩大類,其中一類就是預測任務,它則是通過對樣本數(shù)據(jù)的輸入值和輸出值關聯(lián)性的學習,得到預測模型,再利用該模型對未來的輸入值進行輸出值預測。數(shù)據(jù)挖掘的技術基礎是人工智能(機器學習),一般地,可以通過人工智能中一些已經(jīng)成熟的算法和技術建立預測模型。典型的數(shù)據(jù)挖掘方法包括:決策樹方法、人工神經(jīng)網(wǎng)絡、支持向量機,其他常見的預測方法還有近鄰法、樸素貝葉斯等。
圖1 數(shù)據(jù)挖掘的基本流程Fig.1 Basic process of data mining
隨機森林模型[4]是由Breiman和Cutler 在2001年提出的一種基于分類樹的算法,是集成學習算法的一種,它通過對大量決策樹的匯總提高模型的預測精度。其中的裝袋算法是利用自助法的思路,對訓練樣本進行有放回抽樣,以建立多個樹模型,然后集成其預測結果來提高預測精度。
隨機森林在運算量沒有顯著提高的前提下提高了預測精度。隨機森林對多元共線性不敏感,結果對缺失數(shù)據(jù)和非平衡的數(shù)據(jù)比較穩(wěn)健,可以很好地預測多達幾千個解釋變量的作用[5]。
在隨機森林中,形成隨機森林的訓練集各自獨立,生成很多的決策樹,并不像在CART模型里一樣只生成唯一的樹。在回歸問題中,預測結果為數(shù)值型變量,生成的隨機森林為多元非線性回歸分析模型,預測輸出結果是所有決策樹輸出的平均值。模型構建過程如圖2所示,
圖2 隨機森林的基本流程Fig.2 Basic process of random forests
對于隨機森林回歸中的變量貢獻度分析,使用基于permutation隨機置換的殘差均方減小量進行衡量,根據(jù)均方誤差度量值衡量變量貢獻程度,大致過程為隨機改變某輸入變量取值,然后利用生成的隨機森林模型進行OOB擬合誤差計算[4]。
在生成每個子訓練集過程中,Bootstrap方法抽樣只抽取原數(shù)據(jù)集的2/3,其余組成袋外數(shù)據(jù),OOB誤差增加越多,則該輸入變量貢獻度越大。OOB誤差可估計單棵決策樹強度和決策樹間的相關性,進而估計模型泛化誤差,是模型預報誤差的無偏估計[6]。
(1)利用Bootstrap方法從原始數(shù)據(jù)集中隨機抽出M個樣本數(shù)據(jù)集S1,S2,…,SM,每次未被抽中的數(shù)據(jù)組成袋外數(shù)據(jù)。
(2)利用每個樣本數(shù)據(jù)集,生成對應的決策樹T1,T2,…,TM;在每棵樹的節(jié)點處,從原始數(shù)據(jù)n個變量中隨機選擇m個變量(m< (3)每棵回歸樹開始自頂向下的遞歸分枝,每棵決策樹都最大可能地進行生長而不進行剪枝,直至滿足終止條件,所有決策樹組成隨機森林。 (4)將測試數(shù)據(jù)輸入隨機森林模型中,得到各決策樹的預測結果,取各決策樹預測結果的平均值為回歸值,即為預測值[7]。 在已有的對于知識流的定義中,Hai Zhuge定義知識流是指知識在人們之間流動的過程或是知識處理的機制[8]。MaxH.Boisot認為知識流是一個解決問題、知識擴散、知識吸收和知識掃描的過程[9]。李鳳云認為知識流是一個動態(tài)的概念,強調(diào)在知識的識別、獲取、開發(fā)、分解、儲存、傳遞、共享以及運用其產(chǎn)生價值的運動過程中應該是無阻礙的[10]。 知識流的結構包括知識流的知識節(jié)點、知識流的拓撲特征和知識流的內(nèi)容。其中: 知識節(jié)點是知識流的起始點和停止點,節(jié)點在不同層次上有不同的表現(xiàn),代表了知識員工或知識庫;知識流的拓撲特征反映了知識流的連接,即知識流網(wǎng)的拓撲結構;知識流的內(nèi)容是一個四元組(KL、KT、KFx、KV),其中的 KL是知識的層次,反映了不同組織結構水平上的知識流動,KT是知識的類型,KFx是知識的流量(flux),KV是知識的流速(velocity)。 知識流是一種流動,與傳統(tǒng)的物流、勞務流、資金流、信息流等一樣,都是在各個節(jié)點間的流動,不同的是知識流具有不減性、多變性、難以規(guī)劃性、潛力巨大等特殊的地方[11]。 由于隨機森林對輸入樣本的單位和量綱不敏感,算法會處理噪聲和缺失值,一般不需要對數(shù)據(jù)進行預處理,但在進行回歸時對數(shù)據(jù)的清理可以減少學習時的混亂,提高模型的準確率。在數(shù)據(jù)準備階段我們需要對數(shù)據(jù)作出選擇、清洗、重建、合并等工作。選出要進行分析的數(shù)據(jù),并對不符合模型輸入要求的數(shù)據(jù)進行規(guī)范化操作。 本文以西安市1992-2014年氣象數(shù)據(jù)資料為研究對象,選取6個變量運用經(jīng)典彭曼公式計算出理論作物蒸散量,這6個變量分別為:平均氣溫(T)、實際日照時長(n)、最低溫度(Tmin)、最高溫度(Tmax)、平均相對濕度(RH)、風速(Uh),將1992-2012年作為訓練數(shù)據(jù),2013-2014年作為測試數(shù)據(jù),通過組合不同參數(shù)建立作物蒸散量預測模型,利用氣象數(shù)據(jù)預測作物蒸散量。 數(shù)據(jù)通常存儲于電子數(shù)據(jù)表和數(shù)據(jù)庫中,本文將數(shù)據(jù)導入逗號分隔數(shù)值(CSV)格式文件中,該格式文件是由一組記錄組成,每項記錄中的每個條目由逗號分隔,便于Weka直接讀取CSV電子數(shù)據(jù)表,部分樣本數(shù)據(jù)列在表1中。 表1 部分輸入樣本數(shù)據(jù)Tab.1 Part of the sample data 本研究采用的軟件工具是開源軟件Weka,其中的RadomForest工具包可以很快速地建立隨機森林模型。由于Weka具有很強的面向?qū)ο蠊δ埽兄S富的擴展庫,可以輕易完成各種高級任務,所以該軟件在國內(nèi)外被廣泛使用。 在如圖3所示的知識流建模界面中,用戶可以定制處理知識流的方式和順序,通過對知識流模型的監(jiān)控、測量知識的流通環(huán)節(jié),抓住建模關鍵環(huán)節(jié),更加準確、高效地建立氣象數(shù)據(jù)挖掘模型。在知識流界面上任意拖曳代表學習算法和數(shù)據(jù)源的圖形構件,按照一定順序?qū)⒋頂?shù)據(jù)源、預處理工具、學習算法、評估手段和可視化模塊的各構件組合在一起,形成知識流。 圖3 知識流建模Fig.3 Knowledge flow modeling 在模型建立過程中主要調(diào)整numTrees和numFeatures2個參數(shù),以改善模型的預測能力。numTrees表示模型中的單棵決策樹總數(shù)量,樹太少會影響模型精度,樹太多并不會對模型造成影響,但會影響計算機處理速度,所以因合理選擇樹的數(shù)量。numFeatures的主要有兩個方法,分別是簡單選取所有特征或總特征數(shù)的平方根,“l(fā)og2”是另外一種相似類型的選項,這里選擇默認設置“0”,“0”代表選擇特征數(shù)為log2(K),假設輸入變量有6個,特征數(shù)則為log26,取整數(shù)3,執(zhí)行后得到隨機森林模型,然后運用模型對作物蒸散量進行預測。 并不是每一次建模都能與我們的目的吻合,評價階段旨在對建模結果進行評估,對效果較差的結果我們需要分析原因,有時還需要返回前面的步驟對挖掘過程重新定義。 為了評價模型預測能力,模型精度評價指標選擇平均相對誤差絕對(MRE)、均方根誤差(RMSE)、自相關性系數(shù)(R2)。MRE、RMSE越小,R2越大,則說明模型的預測效果越好。采用Nash-Suttclife系數(shù)Ens系數(shù)來衡量模型預測值和計算值之間的擬合度,模型效率主要取決于Nash系數(shù)Ens值,Ens越接近1,表明模型效率越高[12]。公式如下: (4) 產(chǎn)生過擬合的一個原因是在模型中只使用相關特征,然而只使用相關特征并不總是事先準備好的,使用特征選擇可以使其更簡單。隨機森林輸出特征的重要性體現(xiàn)在作為模型訓練的副產(chǎn)品,這對于特征選擇是非常有用的[13]。 利用隨機森林模型可以對輸入變量的重要性進行排序,從圖中可以看出輸入變量的重要程度,從而可以得知哪些變量對作物需水量預測有重要的影響[14]。 圖4 特征權重Fig.4 Feature importances 根據(jù)圖4所示,可以看出氣象數(shù)據(jù)中6個變量中日最高溫度對作物蒸散量影響最高,其他依次是日照時常、風速、平均相對濕度、平均溫度、最低溫度,其中2個變量重要度累加超過90%,這表明這些變量已對作物蒸散量計算起決定性作用。 3.2.1 決策樹數(shù)量對模型的影響 首先繪制模型的誤差曲線圖,如圖5所示。 圖5 隨機森林中決策樹數(shù)量對性能的影響Fig.5 The impact on the performance of the number of random forest tree 從圖5中總體趨勢可以看出,隨著樹的數(shù)量增加,模型誤差在逐漸減低,當達到一定數(shù)量時,模型誤差平方和基本保持不變,說明樹數(shù)量過多不會影響模型的精度,所以由此得出樹的總數(shù)量越大模型誤差越小,精度越高,但不宜過高,樹數(shù)量超出一定范圍后對精度基本無影響,應合理選擇樹數(shù)量。 3.2.2 不同氣象參數(shù)組合模型分析 選取2013-2014年的氣象數(shù)據(jù),運用FAO56 Penman-Monteith公式計算理論作物蒸散量,同隨機森林模型預測值進行對比分析。 從圖6可以看出,利用5個或者6個氣象參數(shù)建模后所得的結果同彭曼公式計算結果的相關性較好,R2較高,隨機森林模型表現(xiàn)出很好的泛化性能,平均相對誤差、均方根誤差指標均較小,與用經(jīng)驗公式得出的結果基本吻合。由表2可以得知,在所有的氣象輸入組合參數(shù)中,溫度對于預測的精度有很大的影響,缺少了溫度的組合參數(shù)學習得到的模型精度和誤差指標都較低,特別是缺少日最高溫度;溫度、風速,日照時數(shù)和相對濕度4個參數(shù)進行組合模擬計算時,MSE、RMSE平均值分別為0.180 0、0.527 8,R2平均值為0.929 2,預測精度都比較高;選取2個和3個參數(shù)作為輸入構建的模型精度明顯下降,尤其是RH和Uh這2個參數(shù)組合作為輸入構建的模型Ens為負值,模型效率較差。 圖6 隨機森林模型相關性分析Fig.6 Correlation analysis of random forest model 變量MRERMSER2EnsTmax,n,Uh,RH,T,Tmin0.16030.46080.94140.9390Tmax,n,Uh,RH,T0.16010.46650.94110.9356n,Uh,RH,T,Tmin0.16570.48160.94040.9315Tmax,n,Uh,RH0.18420.48230.93530.9150n,Uh,RH,T0.17100.46240.94150.9366Uh,RH,T,Tmin0.18490.63860.91080.8818Tmax,n,Uh0.22850.57990.90470.9002n,Uh,RH0.99561.78510.43800.2919n,T,Tmin0.23610.90200.85240.7780Tmax,n0.25870.91600.80870.7640n,T0.24340.90950.83170.7711Uh,RH1.16032.14220.0700-0.1509 為綜合評價模型性能,采用相同的數(shù)據(jù)樣本分別建立了基于BP神經(jīng)網(wǎng)絡(BP)[15]和基于支持向量機(SVM)的作物蒸散量預測模型,并且比較了3個模型預測的效果,其結果如表3所示。 表3 3種模型結果對比分析Tab.3 Comparative analysis results of three models 圖7 BP神經(jīng)網(wǎng)絡模型相關性分析Fig.7 Correlation analysis of BP neural network model 圖8 支持向量機模型相關性分析Fig.8 Correlation analysis of SVM model 通過對比發(fā)現(xiàn),3種模型均能較準預測作物蒸散量,相關性都比較好,但BP神經(jīng)網(wǎng)絡學習效率低、收斂速度慢、易得到局部極小值,易造成過擬合;SVM模型也存在過擬合問題,且對缺失數(shù)據(jù)敏感,相比而言,RF模型在3種指標上都為最小值,相對其他兩種建模方法預測誤差較小,而且RF模型結構簡單,學習效率高,很好地解決了其他兩種模型易出現(xiàn)的過擬合問題,在對缺失數(shù)據(jù)進行估計時,也能較好地保持精確性,保證了預測精度。隨機森林與其他算法相比具有更好的過擬合容錯性,并且處理大量的變量也不會有太多的過擬合,因為過擬合可以通過更多的決策樹來削弱。 本文以數(shù)據(jù)挖掘的基本處理流程為主線,以作物蒸散量預測為具體實例,構建了基于隨機森林的作物蒸散量預測模型,以西安市氣象數(shù)據(jù)對作物蒸散量進行預測分析,結果表明模型預測精度高,泛化能力好,對缺失數(shù)據(jù)不敏感,能夠有效地預測作物蒸散量,對確定作物的需水量具有一定的參考意義。 (1)與BP神經(jīng)網(wǎng)絡預測模型、SVM預測模型相比,隨機森林模型具有預測精度高,穩(wěn)定性好,不用進行數(shù)據(jù)預處理,對復雜數(shù)據(jù)具有良好的適應性,能夠有效地解決非線性數(shù)據(jù)。此外,該模型能夠輸出變量的重要性程度,這是一個非常便利的功能。在對缺失數(shù)據(jù)進行估計時,隨機森林也是一個十分有效的方法,也能較好地保持精確性。 但當進行回歸時,隨機森林不能夠作出超越訓練集數(shù)據(jù)范圍的預測,這可能導致在對某些還有特定噪聲的數(shù)據(jù)進行建模時出現(xiàn)過度擬合。 (2)本文提出了基于知識流的數(shù)據(jù)挖掘模型,通過知識流模型的分層,可以從不同角度、不同層次觀察模型知識流的分布和流動情況,可以通過對知識流模型的監(jiān)控測量知識的流通環(huán)節(jié),從而抓住建模關鍵環(huán)節(jié),更加準確、高效地建立數(shù)據(jù)挖掘模型提供參考和依據(jù)。 (3)針對一個特定的氣象數(shù)據(jù)挖掘問題,首先要明確問題,目的是模擬作物蒸散量計算,然后就是數(shù)據(jù)預處理和特征工程階段,對冗余、缺失的氣象數(shù)據(jù)進行處理,這實際往往是實際工程中最耗時、最麻煩的階段,經(jīng)過特征工程后,通過氣象參數(shù)組合方式作為輸入特征,選擇合適的模型進行訓練,并且根據(jù)評價標準選擇最優(yōu)模型和最優(yōu)參數(shù),最后根據(jù)最優(yōu)模型對未知氣象數(shù)據(jù)進行預測,得出結果。 □ [1] 侯志強,楊培嶺,蘇艷平,等.基于最小二乘支持向量機的ET0模擬計算[J].水利學報,2011,42(6):743-749. [2] 張育斌,魏正英,馬勝利,等.極端天氣下作物參照蒸散量計算方法研究[J],中國農(nóng)村水利水電,2014,(12):64-71. [3] Jiawei Han,Micheline Kamber,Jian Pei 著.數(shù)據(jù)挖掘概念與技術[M].范 明,孟小峰 譯. 2012:1-22. [4] Breiman L.Random Forests[J].Machine Learning.2001, 45(1):5- 32. [5] 李新海.隨機森林模型在分類與回歸分析中的應用[J].應用昆蟲學報,2013,50(4):1 190-1 197. [6] 甄億位,郝 敏,陸寶宏,等.基于隨機森林的中長期降水量預測模型研究[J].水電能源科學,2015,33(6):6-10. [7] 王小川,史 峰,郁 磊,等.MATLAB神經(jīng)網(wǎng)絡43個案例分析[M].2013:255-264. [8] Hai Zhuge. A knowledge flow model for peer- to-peer team knowledge sharing and management[J]. Expert Systems with Applications, 2002,23:23-30. [9] Max H.Boisot.Is your firm a creative destroyer? Competitive learning and know ledge flows in the technological strategies of firms[J]. Research Policy, 1995,24:489-506. [10] 李鳳云. 基于新型企業(yè)觀的知識流管理[J]. 中國質(zhì)量, 2004,(2):6-8. [11] 周 密,承 文,韓立巖,等.知識流模型及其在航天企業(yè)中的應用[J].中國管理科學, 2015,13(5):79-86. [12] Andy L,Matthew Wiener.Classification and Regression by random forest[J].R News,2002,2(3):18-22. [13] Robin Genuer, Jean-Michel Poggi, Christine Tuleau-Malot. Variable selection using random forests[J]. Pattern Recognition Letters, Elsevier, 2010, 31 (14):2 225-2 236. [14] 明均仁,肖 凱. 基于R語言的面向需水預測的隨機森林方法[J].統(tǒng)計與決策,2012,357(9):81-83. [15] 李建軍,許 燕.基于 BP 神經(jīng)網(wǎng)絡預測和模糊控制的灌溉控制器設計[J].機械設計與研究,2015,(5):150-153.1.5 知識流
2 模型建立
2.1 數(shù)據(jù)集和測試集
2.2 Weka建模
2.3 模型評價指標
3 結果分析
3.1 變量貢獻度分析
3.2 結果和誤差分析
3.3 6參數(shù)模型與其他模型對比分析
4 結 論