?

基于機器學習方法的貴陽霧預報模型研究

2024-01-16 12:39何東坡王玥彤杜小玲周文鈺齊大鵬
高原山地氣象研究 2023年4期
關鍵詞:濃霧能見度貴陽

何東坡 , 王玥彤 , 杜小玲* , 周文鈺 , 齊大鵬

(1.貴州省氣象臺,貴陽 550002;2.貴州省氣候中心,貴陽 550002)

引 言

霧是一種能見度較低的天氣現象,其中,濃霧天氣不僅嚴重影響航空、公路、電力等安全運行,還會與污染物顆粒和有毒雜質結合對人體健康造成危害[1-4]。長期以來,對霧的預報,國內主要采用天氣圖分析、多元回歸模型、模糊識別、數值模式等方法,但其業務應用效果均不夠理想,迄今尚無較好的預報霧的客觀產品[5-8]。為此,氣象工作者針對霧的客觀預報方法作了大量的探索和研究。王麗娟等[9]利用微波輻射計資料開展研究,指出強濃霧的發展過程分為濃霧形成、發展增強、消亡三個階段,近地面逆溫是濃霧產生的重要條件。王明等[10]基于FY-4A 衛星AGRI 高時空分辨率多通道數據開展夜間濃霧的識別研究,并對該識別方法在高速公路服務應用中的潛力進行了評估。劉紅武等[11]采用概率密度匹配結合要素的方法對低能見度進行預報訂正,其效果要優于僅使用概率匹配的訂正方法。王楠[12]基于EC細網格產品,分析了影響能見度的主要因子,并提取與低能見度相關性高的物理量作為預報因子,構建了烏魯木齊機場未來21 h 能見度預報模型。另外,周斌斌等[13]、滕華超[14]還基于集合預報技術提出了濃霧預報思路。

近年來,人工智能技術在氣象領域得到了廣泛應用,尤其是機器學習被更多地應用在氣象預報方面。例如,Zhang 等[15-16]運用C5.0、CART 算法建立了熱帶氣旋路徑、強度的預報模型。李文娟等[17]基于數值預報和隨機森林算法研發了浙江省強對流天氣分類預報技術。陳曉平等[18]以雷達回波強度數據為基礎,應用隨機森林模型、BP 神經網絡模型、卷積神經網絡建立降雨量的預報模型。苗春生等[19]基于長江中下游夏季降水的前期春季影響因子,利用C5.0 算法構建了預報模型。陳貝等[20]利用指標判斷法和非線性統計支持向量機法,分別對成樂路沿線各站大霧和能見度量級進行預報模型構建,最后通過人為經驗訂正對沿線各站大霧做出精細化客觀預報。此外,苗開超等[21]、王月琴等[22]還將機器學習方法應用于濃霧、團霧的預報。

貴州省位于青藏高原向我國東部丘陵地區過渡的斜坡地帶,其境內喀斯特地貌使得各地氣候差異較大、天氣變化復雜,是氣象災害多發省份之一。其中,大霧天氣在貴州出現頻率較高,是當地社會公眾較為關注的災害性天氣之一,霧的監測和預報也是氣象部門業務工作的重點之一。為此,本文以貴陽站“是否出霧”、“是否濃霧”的建模過程為例,首先歸納整理出包括氣溫、濕度、風速、氣壓、地溫等11 個影響霧形成的主要氣象因子,然后利用機器學習中的C5.0、CART、神經網絡算法構建貴陽站的霧、濃霧預報模型,并檢驗評估各種算法模型的有效性,旨在為提高貴陽地區霧、濃霧預報水平提供科技支撐。

1 資料與方法

1.1 研究資料

霧是近地面大氣中懸浮水滴或冰晶微粒導致的水平能見度低至1000 m 以下的天氣現象[23]。根據霧對能見度的影響,將其分為3 個等級:(1) 霧,能見度0.5~1 km;(2) 濃霧,能見度0.05~0.5 km;(3)強濃霧,能見度小于0.05 km。本研究使用的資料為2015—2018年秋冬季貴陽國家氣象站逐時觀測數據,并整合為3 h數據集對霧、濃霧進行研究,觀測要素包括海平面氣壓、2 m 氣溫、2 m 相對濕度、過去3 h 降水量、5 cm地溫、15 cm 地溫、3 h 變壓、2 m 露點溫度、水汽壓、10 min 平均風速、10 cm 地溫。根據上述霧的劃分等級,分析3 h 數據集可知,霧出現次數為108 次,濃霧出現次數為236 次。觀測要素均取3 h 平均值與能見度對應形成一條建模樣本,本文共收集3862 條樣本進行建模研究(當3 h 內同時出現霧和濃霧時,選取濃霧的能見度數值為樣本值)。此外,因探空數據每天只有08 和20 時次,與樣本時效不匹配,本文暫未將探空要素加入研究。

1.2 研究方法

本文主要選取了機器學習中決策樹(C5.0、CART)和神經網絡(多層感知器)算法,分別構建了貴陽站霧、濃霧的預報模型,并對預報效果進行檢驗評估,對比3 種算法的優缺點,挑選出貴陽站霧、濃霧的最優預報模型。具體介紹如下:

(1) C5.0 算法和CART 算法。這兩種算法是決策樹算法中使用較多的分類模型預報方法,決策樹的建立是通過因子變量(霧的影響因子)將訓練集樣本進行不斷拆分,每次拆分對應著一個因子和一個節點,將得到“差異”最大的兩組分類(出霧或不出霧)。C5.0算法是根據信息熵遞歸構建決策樹。設S為包含s個樣本的數據集,Ci(i=1,2,3···,m) 為樣本的m個分類,si是屬于類Ci的樣本數量。通過屬性A將數據集S進行 劃 分{S1,S2,···,Sω}(設 屬 性A有 ω個 不 同 的值),信息熵計算公式為:

CART 算法是對離散或連續依賴變量進行分類的非參數統計學方法。霧、濃霧預報模型的目標變量是離散型,適合建立分類決策樹模型。CART 算法的分類準則為基尼不純度標準和目標二分準則。將是否出霧、是否出濃霧作為兩個二元分類。給定一個節點t,類概率p(j|t)表示該節點屬于類j(j= 1,2,3,···,n)的幾率。不純度函數為:

由于本文只對是否出霧、是否出濃霧進行研究,為二元分類問題,公式(2)可簡化為:

(2)多層感知器(Multilayer Perceptron,MLP)是神經網絡中適合應用在分類預報問題的算法之一。MLP算法的結構分為3 部分:最底層為輸入層,中間可以有多個隱藏層,最簡單的MLP 只含一個隱藏層,最后為輸出層。輸入層即輸入一個n維向量,有n個神經元(本文將把影響因子作為輸入層)。隱藏層中假設輸入層用向量X表示,則隱藏層的輸出為f(W1X+b1);其中W1是權重,b1是偏置,函數f可以是常用的sigmoid函數或者tanh 函數,隱藏層到輸出層可以看成是一個分類的邏輯回歸。本文輸出層為是否出霧、是否出濃霧,即softmax 回歸,所以輸出層的輸出為softmax(W2X1+b2),X1表示隱藏層(的輸出f((W(1X+b1)。ML))P) 計算公式為:

式中:G為softmax 函數。

(3)研究選用梯度下降法(Stochastic Gradient Descent,SGD)挑選最優化方案。具體步驟為:首先隨機初始化所有參數,然后進行迭代訓練,不斷地計算梯度和更新參數,直到滿足誤差足夠小且迭代次數足夠多為止。

貴州省是我國唯一沒有平原的省份,地形差異較大,呈“西高東低”的分布特點(圖1)。因此,貴州省各地霧、濃霧的出現條件不盡相同,通常中西部及其他高海拔地區多鋒面霧,東部和北部多輻射霧[8],為更好地對霧和濃霧進行預報,需要對84 個國家氣象站分別建模。因篇幅所限,本文僅以貴陽站為例進行影響因子分析和預報模型建立研究。

圖1 貴州省地形與國家氣象站分布

2 氣象因子與能見度相關性分析

表1 給出了本文收集整理的11 個主要氣象因子,圖2 給出了貴陽站3 h 能見度數據與同期各氣象因子的相關關系。如圖所示,海平面氣壓、3 h 變壓、2 m相對濕度、過去3 h 降水量、10 min 平均風速與能見度呈負相關,其中海平面氣壓、2 m 相對濕度與能見度的相關性通過了95% 水平的顯著性檢驗,即當海平面氣壓、3 h 變壓、2 m 相對濕度、過去3 h 降水量、10 min 平均風速偏大(?。r,能見度偏低(高);其余6 個因子與能見度均呈顯著正相關,即當這6 個因子偏大(?。r,能見度偏高(低)。

表1 影響能見度的11 個氣象因子

圖2 貴陽站能見度與11 個氣象因子的相關關系

可見,上述這11 個氣象因子均對能見度有著一定的影響,其中海平面氣壓、2 m 氣溫、2 m 露點溫度、2 m相對濕度、水汽壓、5 cm 地溫、10 cm 地溫、15 cm 地溫與能見度呈顯著性相關,而僅根據某個因子對能見度進行預報,其準確率不能達到業務需求。機器學習的特點就是在多個因子的影響下,通過大量快速的計算尋找最優的預報方法。因此,在算法建模時,綜合考慮所有相關因子,根據多個因子組成的判別規則來進行霧、濃霧預報。下節將基于這11 個氣象因子,利用機器學習中的C5.0、CART、神經網絡算法,分別建立貴陽站霧、濃霧預報模型。

3 基于機器學習方法的霧、濃霧預報模型建立與檢驗

3.1 基于決策樹算法(C5.0、CART)預報模型

從整理的貴陽站3 h 數據(共3862 條樣本,46344數據量)中,隨機選取80%左右的樣本數據作為預報模型的訓練集來用于預報模型的建立,再利用剩余20%左右的樣本數據作為預報模型的檢驗集,對模型預報準確率進行檢驗。利用表1 中11 個氣象因子作為能見度預報模型的輸入變量,“是否出霧”作為預報模型的目標變量,以能見度小于1 km 作為出霧指標。通過多次隨機選取訓練集和檢驗集,對11 個氣象因子進行篩選與分析,并建立多層次分支框架預報模型,再對模型進行預報檢驗,最終選取最簡捷且檢驗準確率最高的模型作為貴陽站“是否出霧”預報模型。

首先利用C5.0 算法,經過多次訓練建模、合理剪枝和檢驗,得到了貴陽站“是否出霧”的最優預報模型(圖3)。如圖所示,最終參與模型建立的氣象因子有2 m 相對濕度、2 m 氣溫、海平面氣壓、15 cm 地溫,而為了防止過度擬合,其它氣象因子被剪枝處理。圖3 中節點0 為根節點,即顯示訓練集樣本總數,節點1、3、6、7、8 為葉節點,即通過氣象因子無法再往下分類。每條從根節點到葉節點的路徑為一條預報規則,模型共得到了5 條判別是否出霧的規則。葉節點中如果“T”為深色,則表示該葉節點判別結果為出霧(能見度<1 km);如果“F”為深色,則表示該葉節點判別結果為不出霧(能見度≥1 km)。例如,節點6 中“T”為深色,即從節點0 到節點6 這條路徑規則的判別結果為出霧,該節點正確分類樣本數為192,錯誤分類樣本數為69。從圖3 中可以看到,參與建模的4 個氣象因子中,以2 m 相對濕度的權重最大。從節點1 中分類情況可知,節點1“F”為深色,即為不出霧,大量的能見度≥1 km 數據集被正確分到了節點1 中,節點2 中出霧與不出霧的數據均有。因此,只考慮2 m相對濕度小于97% 來判別,即可預報出大量不出霧的情況,但是用2 m 相對濕度大于97%來預報出霧的準確率偏低,只有從根節點到葉節點的完整判別路徑才能更好地對出霧、不出霧進行預報。

圖3 基于C5.0 算法的貴陽站“是否出霧”預報模型

表2 給出了基于C5.0 算法的貴陽站“是否出霧”預報模型規則集。如表所示,第一列為“If-then”形式的判別規則,第二列為參與建立每條規則的屬性變量,第三列為每條規則的判別準確率,即每個葉節點中正確分類的樣本數占該節點總樣本數的比值。其中,判別出霧的規則有1 條,準確率為73.6%;判別不出霧的規則有4 條,準確率按表格順序從上到下依次為98.7%、84.4%、75%、60.8%。由訓練集獲得的“是否出霧”預報模型準確率達95.37%,再運用剩余未參加建模的20%能見度和氣象因子樣本數據對模型進行預報效果驗證,檢驗準確率達92.98%??梢?,C5.0 算法在貴陽站“是否出霧”預報中得到了較好的應用,訓練集和檢驗集準確率均高達90% 以上,為霧的預報提供了新思路和新方法。

表2 基于C5.0 算法的貴陽站“是否出霧”預報模型規則集

CART 算法在父節點利用基尼系數遞歸隨機測試變量和分割閾值,直到產生最優的測試變量和分割閾值,進入到子節點后繼續父節點的行為直到滿足結束條件。建模過程中,父分支最小記錄數為訓練樣本的2%,子分支最小記錄數為訓練樣本的1%,使用Gini雜質測量對記錄進行分類,過度擬合防止集合取30%。通過多次訓練建模與模型檢驗,得到了準確率最高的貴陽站能見度預報模型(圖略),模型結構與C5.0 算法模型相似,從根節點到葉節點模型一共有4 條判別規則(表3)。其中,判別貴陽站出霧的規則有1 條,判別規則準確率為72.2%;判別不出霧的規則有3 條,準確率按表格順序從上到下依次為98.2%、73.9%、58.6%。由訓練集獲得的“是否出霧”預報模型準確率達94.42%,再運用剩余未參加建模的樣本數據對模型進行預報效果檢驗,檢驗集準確率高達到95.87%。

表3 同表2,但為CART 算法

綜上可知,C5.0 和CART 兩種算法構建的模型在貴陽站“是否出霧”預報中均有較為優良的表現,其檢驗準確率均在90% 以上,可以較好地為判別貴陽站“是否出霧”提供科學參考。但從兩個算法的規則集中可以看出,C5.0 算法對出霧的預報準確率略高于CART 算法,而在模型整體預報能力中CART 算法要優于C5.0 算法。

3.2 基于神經網絡算法(MLP)預報模型

利用神經網絡中的MLP 算法對貴陽站“是否出霧”進行建模,停止規則以“無法進一步降低誤差”為標準,激活隱藏層運用tanh 函數(sigmoid 函數應用效果不佳),激活輸出層運用Softmax 函數。同樣從整理的貴陽站3 h 數據中隨機選取80%左右的樣本數據作為預報模型的訓練集,剩余20% 左右的樣本數據作為預報模型的檢驗集來檢驗有效性。利用表1中11 個氣象因子作為預報模型的輸入變量,“是否出霧”作為預報模型的目標變量,以能見度<1 km 作為出霧指標。通過大量的反復訓練,最終獲得的神經網絡“是否出霧”預報模型準確率達94.2%,再運用剩余未參加建模的20% 樣本數據對模型進行檢驗,準確率高達93.94%。參與建模氣象因子中,2 m 相對濕度對能見度的影響占比最大(28%),其次是15 cm 地溫(占14%),最小的是10 cm 地溫(3%)。

通過上述研究發現,機器學習中的C5.0、CART和神經網絡算法在貴陽站“是否出霧”預報中均表現出較好的應用效果,模型檢驗準確率均在90%以上。以相同的思路對貴陽站“是否出濃霧”建立了3 種算法的預報模型(判別指標為能見度<0.5 km),分析可知:C5.0 算法模型的訓練集準確率為97.71%,模型檢驗準確率為97.77%;CART 算法模型的訓練集準確率為95.94%,模型檢驗準確率為94.49%;神經網絡算法模型的訓練集準確率為95.16%,模型檢驗準確率為95.67%。圖4 給出了3 種算法構建的貴陽站“是否出濃霧”預測模型的評估結果。如圖4a 所示,在C5.0算法檢驗集中,數據樣本增加到16% 以后的收益高于90%;如圖4b 所示,在CART 算法檢驗集中,數據樣本增加到18%以后的收益高于90%;如圖4c 所示,在神經網絡算法檢驗集中,數據樣本增加到18%以后的收益高于90%,而增加到20%以后的收益達到100%。由此可見,C5.0 算法和神經網絡算法在貴陽站“是否出濃霧”預報中效果更好,且神經網絡算法收益效率更高。但需要注意的是,各模型的出霧、出濃霧TS評分、空報率、漏報率分別介于0.41~0.56、0.25~0.27、0.23~0.25,尤其是空報率和漏報率還有待改進。

圖4 3 種算法的貴陽站“是否出濃霧”預報模型評估(a.C5.0,b.CART,c.神經網絡,粗紅線為基線,細紅線為累計散點,藍線為最佳線)

本文建立的霧、濃霧預報模型在業務應用中需要將模式數據(CMA、EC)帶入模型中,最終給出是否出霧、是否出濃霧的預報結果,理論上預報時效可以和模式數據的預報時效匹配,但是模式本身就有誤差,且時效越長,誤差越大。因此,上述霧、濃霧預報模型在業務應用中隨著預報時效增加,準確率也將逐漸降低。

3 結論與討論

本文利用機器學習中的C5.0、CART、神經網絡算法分別對貴陽站“是否出霧”、“是否出濃霧”建立了預報模型并進行檢驗評估,得到如下主要結論:

(1)C5.0、CART、神經網絡算法在貴陽站霧的預報中均具有較高的應用價值,“是否出霧”模型訓練準確率依次為95.37%、94.42%、94.2%,“是否出濃霧”模型訓練準確率依次為97.71%、95.94%、95.16%。

(2)C5.0、CART、神經網絡算法構建的預測模型檢驗準確率均在90%以上,“是否出霧”模型檢驗準確率依次為92.98%、95.87%、93.94%,“是否出濃霧”模型檢驗準確率依次為97.77%、94.49%、95.67%。各模型的出霧、出濃霧TS 評分、空報率、漏報率分別介于0.41~0.56、0.25~0.27、0.23~0.25,尤其是空報率和漏報率還有待改進。

(3)基于CART 算法建立的預報模型對于霧的預報效果更好,基于C5.0 算法和MLP 算法建立的預報模型對于濃霧的預報效果更佳,且MLP 算法模型的收益效率最高。

可見,機器學習方法在霧的預報中有較好的應用前景,能夠建立準確率較高的預報模型,為業務工作中提供一種霧、濃霧預報的參考方案。此外,本文通過初步試報發現,預報模型的準確率比EC 能見度產品有所提升,但是空報率和漏報率較高。究其原因,可能是選取的影響因子還不夠全面,而且在業務應用中還對模式產品的穩定性有所依賴。后續將選取更多的氣象影響因子,并運用多種機器學習、深度學習方法研究貴州省能見度預報方法與應用。

猜你喜歡
濃霧能見度貴陽
獨立江畔
2005—2017年白云機場能見度變化特征及其與影響因子關系研究
找朋友
貴陽分店
濃霧
尋味貴州——貴陽
榮寶齋貴陽
我迷失在茫茫濃霧中
低能見度下高速公路主動誘導技術的應用
前向散射能見度儀的常見異?,F象處理及日常維護
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合