譚江紅 陳偉亮 王珊珊
(1 荊州市氣象局,荊州 434020;2 江漢平原生態氣象遙感監測技術協同創新中心,荊州 434025;3 武漢中心氣象臺,武漢 430074)
機器學習是人工智能的重要解決方案,包括監督學習和非監督學習[1]。天氣預報中的很多問題都可以轉化為標簽已知的監督學習問題:標簽即待預報量,機器學習中的特征即預報因子。機器學習模型具有一定黑盒性,但其使用效果經常出乎意料。
經驗表明,代表全球數值模式最高水平的歐洲中期天氣預報中心(以下簡稱“歐洲中心”)在形勢預報方面日益進步,達到了非常高的可用水平,預報員在訂正形勢預報方面操作空間很小,但數值預報的要素誤差仍有較大訂正空間。隨著人工智能浪潮的來臨,客觀化智能化預報是未來天氣預報的發展方向。2017年湖北省氣象局開始開展智能網格預報業務。在湖北地區,黃治勇等[2]使用了帶海拔高度的距離權重溫度插值方法和灰色預測模型來預報湖北溫度。另外一些見諸文獻的方法還包括卡爾曼濾波訂正模式溫度預報[3]、神經網絡方法中的BP網絡[4]、Barnes插值[5]、時效偏差消除[6]、統計降尺度[7]等。
在溫度預報中使用的線性方法主要包括多元線性回歸、逐步線性回歸、最優子集回歸,但由于天氣演變的非線性特征、預報量與預報因子關系的非線性特征,線性方法的局限性較大。除了神經網絡外,非線性方法還包括支持向量機、相似預報理論等[8]。預報員的思維一般是基于歷史經驗,本質上也是一種相似預報的主觀方法,只不過是基于抽象經驗,難以通過生物神經系統準確記住海量歷史個例,故難以客觀量化,而通過機器學習方法進行數據挖掘正是從歷史數據中挖掘規律,本質是一種基于歷史相似樣本的客觀定量方法。數據挖掘技術也早已在精細化溫度預報中的得到探索[9],前人研究多為BP神經網絡、時間序列數據挖掘方法,近年來改進并興起的樹類機器學習方法暫未得到廣泛使用。本文探索和引入了數據挖掘中比較年輕的樹類集成數據挖掘方法在歷史數據集上進行預報應用,并在預報實踐中檢驗其效果。
本文使用的資料為2015—2017年湖北89個氣象站地面觀測溫度,時間為每天逐3 h正點觀測時間(北京時間20,23,02,05,08,11,14,17,20時),數據來源為自動站數據庫,歐洲中心(EC)再分析資料、0~12 h預報場(每天08、20時2次)。最優訓練期方案[10-11]證明,樣本時間尺度的選擇對于溫度預報的影響較大。選取的時間尺度足夠長,才能優于傳統的季節固定期分類,才能更好地衡量不同天氣條件下的各類不同情形。通俗地說,機器學習需要“大數據”支持,足夠多的樣本才能使模型“見多識廣”,例如,建模數據不包括臺風過程,在預報時段出現臺風,模型很可能無法識別罕見低氣壓的意義,無從知道臺風低壓會造成何種結果。
LightGBM是微軟于2016年開源的一種以決策樹作為基學習器的的梯度提升(boosting)機器學習框架,較以往的樹類集成學習方法(如隨機森林、XGBoost[12])有明顯優勢,LightGBM算法相關文獻[13]有詳細介紹。與之前的梯度提升類決策樹相比,LightGBM具有更快的訓練效率、低內存使用、更高的準確率、支持并行化學習等很多優點,其基學習器決策樹[14]的思想本質是一系列if-then條件判斷的嵌套集合,與預報員的思路不謀而合:預報員正是基于各種因子(比如災害性天氣的形成的水汽、動力、熱力條件)對結果進行分析,從而判斷各條件的組合是否會產生特定的天氣現象。
由于決策樹具有高度非線性的特點,所以可以解決非線性很強的天氣預報問題。單一的決策樹往往效果一般,但包括隨機森林、XGBoost在內的樹類集成機器學習方法在結構化數據挖掘方面有非常廣泛的應用,特別是近年來,XGBoost、LightGBM在數據挖掘競賽中應用非常廣泛,被譽為冠軍選手的“殺器”,同時這些方法在工業預測領域也有了大量相關應用[15-25],應該借鑒到氣象預報中。而在預報領域,集合預報與集成預報的思路同樣廣為應用,已經有大量溫度預報客觀方法采用了集成MOS方法[3,26-28],隨機森林、XGBoost、LightGBM等集成方法正是構建“多棵樹”作為基預測器實現集成效果,相當于擁有多個預報成員。
大多數機器學習工具都無法直接支持類別特征作為輸入,一般需要進行one-hot碼,轉換成多維特征。LightGBM增加的針對類別特征的決策規則在處理溫度預報時很有用,因為預報實踐證明地形氣候、觀測環境在氣象要素預報中是不可忽略的,正是地形因素使模式溫度預報在山區經常與站點觀測存在較大差異(模式很好地處理了物理過程,而對地形的處理仍有缺陷),因而需要分站點建模以區分局地因子的差異,這里以站號來區分不同站點,作為預報因子輸入,使模型自動學習不同站點,相當于考慮了不同站點的預報要素與因子之間的統計關系差異。由于該方法是最新開源的樹類機器學習框架,暫未見集成決策樹類相關模型在溫度預報中應用的中文文獻(黎光智[29]在“透過網頁內容預測新聞熱門程度”研究中使用了LightGBM方法),因此在天氣預報領域的應用具有一定示范性。
之所以選取模式0~12 h預報進行建模是由于以下兩個原因:1)模式時效越近,模式的預報效果越好,更容易反映大氣的真實情況。這本質上是一種更接近PP法的MOS預報方法,回歸出的預報關系比較可靠,這樣可以盡量避免模式重大的性能調整帶來的回歸關系誤差。2)使用模式要素進行MOS建模,相比PP法,其預報因子更加豐富:模式同化了包括衛星資料在內的大量氣象觀測資料,彌補了建模的時空分辨率,也有大量二次計算加工的物理量,同時可以更方便地直接利用模式輸出資料進行任意時效的預報應用,由于相同的數據格式,無需額外的數據處理,對于一線業務預報非常實用。
特征工程相當于描述了機器學習模型的內在構成因子,所以特征工程與數據質量決定了機器學習模型效果的上限,此步驟尤為重要,需要確保不丟失重要特征的基礎上避免冗余特征、無關特征和維數災害[1],即選取與待預測量相關性最強的影響因子是必要的,否則無法學習到數據之間的內在客觀規律,而選取的因子過多也可能會引起機器的無效學習或陷入過擬合,增加計算開銷和學習難度,需要一定理論知識和業務經驗。根據天氣學原理[30],局地溫度的變化主要取決于溫度平流(大氣內部的熱量交換)和非絕熱因子(大氣與外部的熱量交換)。本項目選取的特征如下:風場包括10 m、925 hPa、850 hPa、700 hPa,一定程度上體現了影響某地的天氣系統和冷暖空氣活動狀態(例如吹南風和吹北風的熱力性質是不一樣的)。實踐經驗表明,相對濕度越大,水汽凝結傾向越高,相對濕度是否超過80%與該層的云量狀況直接相關,例如工作經驗表明,模式預報地面相對濕度超過95%時,大概率有霧出現,故選取1000~100hPa(1000,925,850,700,600,500,400,300,200,100 hPa)各層相對濕度,用于體現當地上空的天空狀況以衡量輻射因子。溫度方面,選取了1000~850 hPa溫度,以體現大氣的基本冷暖狀態,不僅考慮了天氣尺度的時空差異,也相當于考慮了季節因素,而已經有研究表明,聚類分析方法進行季節劃分可改善極端溫度預報效果[11]。這些層次接近地面,與地面溫度相關性高。此外還選取了海平面氣壓以及變壓,用于衡量冷空氣的強度及其活動。選取模式本身輸出的2 m溫度作為基準量,選取站號和時間作為分類變量。矢量場分解為u,v分量,共計26個因子。數值預報格點的經緯距分辨率為0.125°~0.25°,取值方式采用站點最鄰近格點方式。
該特征工程選取溫、壓、濕、風等基本氣象要素來衡量大氣的基本狀態(其他派生量實際上也均可通過基本量計算得到),從物理上體現出了影響溫度的主要因子,其基本思想是,建立統計機器學習回歸模型,用于學習大氣不同狀態下模式本身的2 m溫度預報誤差,其本質是基于歷史相似數據分布或排列組合進行相似訂正從而做出最終預報。通過數據處理,形成了預報因子和實況數據對應的建模樣本矩陣數據庫。
本文利用Python進行機器學習建模,為避免過擬合采用5折CV交叉驗證,給定參數列表字典通過遺傳進化算法進行參數搜索完成機器學習超參數尋優,最終形成了LightGBMRgressor模型,并保存模型用于預測。相關使用方法和原理可參考LightGBM[12]、scikitlearn[31]、tpot[32]等項目文檔,最終使用的模型參數見表1。使用scikit-learn隨機選取模型1%的樣本數進行擬合效果評估,模型的誤差見表2,可以看出模式的均方根誤差RMSE和平均絕對誤差MAE較小,而衡量回歸效果的決定系數很高,正負誤差樣本數基本相同,表明了模型預報能力的平衡性。

表1 模型主要參數Table 1 Main parameters of LightGBM

表2 模型擬合效果評價Table 2 Goodness of fitting using regression

圖1 特征重要性排名Fig. 1 The feature importances
圖1是模型給出的特征重要性排名,從大到小(圖1從右至左)依次為:站點、模式2 m溫度、100hPa相對濕度、海平面氣壓、925 hPa溫度、700hPa相對濕度、200 hPa相對濕度、850 hPa溫度、時間、700 hPa經向風速v、700 hPa緯向風速u、600hPa相對濕度、850 hPa相對濕度、1000 hPa相對濕度、300 hPa相對濕度、500 hPa相對濕度、1000 hPa溫度、400 hPa相對濕度、850 hPav風速、850 hPau風速、925 hPa相對濕度、3 h變壓、925 hPav風速、925hPau風速、10 mv風速、10 mu風速。
可見在溫度預報方面,站點的因素排位第一,即需首要考慮觀測環境不同導致的模式預報誤差的不同,充分證明了特征工程設計的合理性。模式2 m溫度排名第二,意味著溫度預報最重要的參考資料仍然是模式輸出的2 m溫度,排名第三位的是100 hPa相對濕度,當100 hPa濕度較大的時候,往往意味著云層的伸展高度較高(較厚),這是影響溫度的輻射因子的重要體現。排名第四位的是海平面氣壓,與冷空氣的活動相關性很大。可以看出,機器學習的結果與天氣學原理和實際預報經驗是一致的。排名三位以下的因子的特征重要性在數量級上相差不大,但并不一定意味著這些特征并不重要,因為這是以單一因子進行度量,而實際情況是這些因子排列組合起來的結果,如上所述,各層相對濕度就與云高云厚有對應關系,進而影響光照或長波輻射。
利用2018年獨立樣本進行預報檢驗,并與現行智能網格預報結果進行對比,其檢驗效果如圖2。可以看出模型的預報和實況變化趨勢一致,經計算其決定系數高達0.97。平均絕對誤差1.1 ℃,而相同樣本歐洲模式2 m溫度預報誤差為1.8 ℃。2 ℃以內的預報準確率由歐洲數值預報本身的65.9%提高到86.6%,而同期省臺智能網格客觀產品12 h以內的定時氣溫預報準確率約為70.1%。例如,對57453站2018年1月9日08時的預報,歐洲中心數值預報為-12.3 ℃,而模型預報為1.6℃,實況為0.4 ℃,預報絕對誤差由歐洲中心的12.7 ℃下降到模型的1.2 ℃。又如表3,相比歐洲中心模式,2018年3月10日05時,LightGBM模型大部分站點預報誤差都在2 ℃以內(現行業務準確率評價標準),相比數值預報本身模型降低預報誤差的趨勢明顯,僅僅57256站出現了預報錯誤。

圖2 預報與實況對比檢驗(a:誤差頻數分布直方圖;b:散點及其密度和趨勢圖)Fig. 2 Inspection of forecast in contrast to the observed data(a: frequency distribution; b: scatterplot and its density and tend line)

表3 2018年3月10日05時模型預報示例(單位:℃)Table 3 Examples of model forecast at 5:00AM on March 10, 2018 (℃)
本模型現已接入了武漢中心氣象臺智能網格預報平臺進行業務化應用,日常業務一般檢驗的是最高、最低氣溫,由于本模型預報的是定時氣溫,所以初步產品只是簡單地從24 h內8個定時氣溫中挑選出最高、最低溫度作為高、低溫預報。對2018年2—6月預報產品進行評分(表4),該模型的高、低溫預報位居所有客觀預報產品前列(其中省臺產品是預報員最后主觀訂正后的產品),特別是24 h低溫預報準確率高達91.4%,位居所有預報產品第一位,但分析其平均誤差,發現高溫預報有系統性偏低,低溫預報有系統性偏高,這是不難理解的:由于建模和預報使用的是定時氣溫,從定時氣溫中挑選出的最大、最小值實際上仍不能完全代表日極端值,例如,在晴朗天氣下,高溫常常比14時氣溫要高,經常出現在15時左右,可以推測,針對日最高、最低氣溫直接建模應該可以獲得更大提升空間,后期可以繼續探索,優化模型。

表4 2018年2—6月高、低溫預報評分Table 4 Maximum and minimum temperature forecast score from February to June, 2018
1)機器學習模型的決策過程有一定的黑盒性,但使用效果好(0~24 h氣溫預報模型相比數值模式準確率可提高10%以上),可以將預報員的主觀預報經驗進行高效地客觀定量化,具備廣闊的應用前景。
2)由于不同時間輻射狀況不同,模式誤差不同;不同站點小氣候特點(例如海拔)不同,模式誤差也不同,需要將相對標準化的模式輸出進行系統訂正,而LightGBM可以直接處理數值本身沒有意義的分類變量,無需離散編碼,從而相當于針對不同時次和站點進行建模,效率有很大的進步。
3)由于LightGBMRgressor葉子數、學習率等超參數尋優需要一定的經驗,更好的模型效果需要更多的試驗,由于超參數尋優的專業性和計算密集型,具備一定的硬軟件要求和難度,需要進一步探索和專業硬軟件支持。
4)由于不同時效的數據格式相同,業務化簡便易行,在模式分析場質量不劇烈變化、模式性能、模式不同時效基本形勢的預報沒有明顯改變,即預報穩定時,該模型不同時效的溫度預報能力是相同的。
Advances in Meteorological Science and Technology2018年5期