牛巖郭超
(1.陜西地建土地工程技術研究院有限責任公司,陜西 西安 710075;2.陜西省土地工程建設集團有限責任公司,陜西 西安 710075;3.自然資源部退化及未利用土地整治工程重點實驗室,陜西 西安 710075)
大氣蒸發量是指在一定時段內,水分經蒸發而散布到空中的量,通常用蒸發掉水層厚度的毫米數表示,水面水分蒸發量和土壤水分蒸發量分別用不同的蒸發器進行測定[1,2]。一般,溫度、風速與蒸發量呈正相關,濕度、氣壓與蒸發量呈負相關。土壤蒸發量和水面蒸發量的測定,在農業生產和水文工作上非常重要。雨量稀少、地下水源及流入徑流水量不多的地區,如果蒸發量很大,極易發生干旱[3]。蒸發量在估算陸地蒸發、作物需水和作物水分平衡等方面具有重要的應用價值。進行蒸發量變化的研究,對深入了解氣候變化、探討水分循環變化規律具有十分重要的意義[4,5]。
我國國土面積963×104km2,共有2474個國家級地面氣象站,覆蓋率較低,且現有氣象站數據存在蒸發量缺測現象。以山西省太原市為例,太原市內有7個國家級氣象站,僅太原站具有連續的日蒸發量數據,因此正確認識水面蒸發量與氣象因子之間的關系,建立適用于我國地區的區域性的水面蒸發計算模型,對水資源利用等都具有十分重要的現實意義[6-9]。
本文將機器學習及人工智能應用于大氣蒸發量數據預測問題上,以富平縣2016年氣象數據和大氣蒸發量數據作為研究對象,應用支持向量機(SVM)建立二者的關系模型,并對模型進行驗證。通過本文研究,可為大氣蒸發量數據預測問題提供可行方法。
機器學習研究的是計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能。20世紀90年代,俄羅斯數學家Vapnik等提出了支持向量機(Support Vector Machines,SVM)[10,11]的概念,SVM是一種根據統計學習理論發展出的基于數據的機器學習方法,具有結構簡單、適應性好、全局最優、訓練速度快和泛化能力強等優點。可以說,20世紀90年代以來統計學習理論越來越受到重視,很大程度上是因為SVM的發展[10-12]。SVM的成功包括解決數據分類問題和解決回歸問題2方面的關鍵技術[13-15],本文所采用的SVM的關鍵技術就是回歸問題的應用,應用粒子群算法[16]提供的交互檢驗功能對SVM重要參數進行算法尋優。
LIBSVM是臺灣大學林智仁教授等開發設計的一個簡單、易于使用和快速有效的SVM模式識別與回歸的軟件包,目前,LIBSVM擁有數十種語言版本,C、Matlab、Java版本較為常用。本文采用Matlab進行SVM的計算機實現。
本文所用氣象數據和大氣蒸發量數據來自于富平中試基地氣象監測站和小型蒸發器2016年監測數據,監測日期從2016年1月13日—12月7日,氣象數據每間隔2h采集1次,指標包括氣壓(inHg)、太陽輻射(W·m-2)、溫度(℉)和濕度(%),蒸發量(mm)數據每日采集1次。本文以每日氣壓平均值、太陽輻射最大值、最高溫度、最低溫度、平均濕度和蒸發量數據作為研究對象,詳細監測數據見表1。

表1 2016年富平縣氣象數據及蒸發量數據
富平中試基地位于陜西省中部富平縣,富平縣地處E108°57′~109°26′,N34°42′~35°06′,是關中平原和陜北高原的過渡地帶,屬于渭北黃土高原溝壑區,總土地面積為1233km2。富平縣屬暖溫帶半干旱型大陸性季風氣候,總體氣候特征為光照充足、氣候溫和、降水適中、雨熱同期、四季分明。年均氣溫13.1℃,日照時數2472h,無霜期為225d,光熱資源豐富。年均降水量533.2mm,季節空間分布不均,7—9月3個月達282mm,占總量的53%,且多以暴雨形式出現,冬季僅15.8mm,空間上由北向南遞減,南北相差122.7mm,氣象災害有干旱、大風、冰雹、連陰雨、霜凍、干熱風、暴雨,是限制富平縣氣候資源充分利用的主要氣象因素,以多年出現的氣象天數統計,干旱78%,連陰雨13%,大風6%,干熱風2%,冰雹0.6%,暴雨0.3%,霜凍0.2%。
采用SVM進行數據訓練及預測首先需要確定訓練學習樣本及預測檢驗樣本。訓練學習樣本用于SVM進行學習訓練以確定自變量和因變量之間的模型,預測檢驗樣本用于模型的驗證及誤差分析。本文采用Matlab隨機函數隨機確定15個序號,對應的數據作為預測檢驗樣本,其余315組數據作為訓練學習樣本。預測檢驗樣本見表2。

表2 預測檢驗樣本
利用SVM進行數據學習訓練時,在參數的選取上具有高度依賴性,對核函數的選取和懲罰因子的設定都有著極高的要求,同時,針對不同的數據集,需要設定不同的參數來契合數據集[17,18]。
為了解決SVM參數設定的問題,將粒子群算法與SVM相結合,利用粒子群算法的粒子游走來優化SVM的參數[19,20]。此過程在Matlab中實現,優化結果見圖1。優化得到的最佳c值為3.64,最佳g值為0.01,參數c為懲罰系數,即對誤差的寬容度,值越高說明越能容忍出現誤差,g為核函數參數。

圖1 粒子群算法優化SVM參數結果圖
確定了訓練學習樣本、預測檢驗樣本及SVM參數后,應用SVMsvmtrain函數對訓練學習樣本進行訓練得到模型,其中訓練學習樣本的氣壓平均值、太陽輻射最大值、最高溫度、最低溫度、平均濕度作為自變量,大氣蒸發量作為因變量。應用SVM的svmpredict函數對預測檢驗樣本進行預測,得到大氣蒸發量的預測值,并對15組檢驗學習樣本的蒸發量理論值和預測值進行誤差分析,預測結果及相對誤差見表3。

表3 檢驗樣本的預測值和相對誤差表
圖2為15組預測檢驗樣本理論值與預測值對比圖,圖3為15組預測檢驗樣本預測值與理論值相對誤差分布圖。

圖2 15組預測檢驗樣本理論值、預測值對比圖

圖3 15組預測檢驗樣本相對誤差分布圖
綜合圖2、圖3可以看出,應用SVM對大氣蒸發量進行預測,得到的預測值與理論值趨勢線基本吻合。15組數據的相對誤差都在30%以內,其中60%的預測檢驗樣本(9組)相對誤差小于10%,87%的預測檢驗樣本(13組)相對誤差小于20%,僅有2組預測檢驗樣本相對誤差達到20.22%和25.25%。目前預測值精度分級[21]的一般原則見表4,表中MAPE為平均絕對百分比誤差,計算公式:

表4 一般預測精度劃分表
式中,n為樣本數據個數;pi為相對百分比誤差,%。
由表3數據計算得出,15組預測檢驗樣本平均絕對百分比誤差(MAPE)為9.95%<10%,說明預測模型屬于高精度預測。
大氣蒸發量數據對于水資源利用問題有很重要的參考意義。在日常監測工作中,由于極端天氣或設備問題會導致數據缺測現象。本文針對此問題,提出應用支持向量機預測大氣蒸發量的方法。通過本文的研究,得出以下結論。
應用支持向量機建立包括氣壓、太陽輻射、溫度和濕度在內的氣象因子和大氣蒸發量之間的關系模型,對15組數據進行預測,并與實際觀測值進行對比,結果顯示,15組數據的相對誤差都在30%以內,其中60%的預測檢驗樣本(9組)相對誤差小于10%,87%的預測檢驗樣本(13組)相對誤差小于20%,僅有2組預測檢驗樣本相對誤差達到20.22%和25.25%。
應用粒子群算法對支持向量機內置參數c和g進行優化,得到最佳c值為3.64,最佳g值為0.01。
用平均絕對百分比誤差(MAPE)對預測結果進行評價,結果顯示15組檢驗樣本的平均絕對百分比誤差為9.95%,根據一般預測精度劃分表得出預測模型屬于高精度預測水平。
結論顯示,提出的應用支持向量機預測大氣蒸發量的方法可行且有效,這對水利工程設計、農林牧業土壤改良、土壤水分調節、灌溉定額制定以及研究水分資源、制定氣候區劃等方面都具有重要的意義。在今后的工作中,還將針對樣本的選擇范圍以及支持向量機參數優化的方法進行進一步深入研究。