?

基于改進AdaBoost?C4.5算法的降雨預測

2021-07-16 09:23胡玉杰杜景林
現代電子技術 2021年14期
關鍵詞:決策樹分類器降水

胡玉杰,杜景林,董 亞,滕 達

(南京信息工程大學,江蘇 南京 210044)

降水預報是當今世界最重要和最復雜的任務之一[1]。短期高強度降水可能會引發洪水、山體滑坡、泥石流等嚴重性自然災害[2]。在這種情況下,降水預報的高精度性會對社會經濟生活具有重要意義。近年來,數據挖掘和人工智能被廣泛應用于天氣預測領域,常見的用于降水預報的方法包括KNN、決策樹、神經網絡等[3]。A.Haidar等提出一種新的預測方法,首次利用深度卷積神經網絡(CNN)對澳大利亞東部選定位置進行月平均降水進行預報[4]。文獻[5]將傳統的分類回歸樹(CART)算法與自適應綜合采樣(ADASYN)算法相結合,對與降水密切相關的溫度、濕度、太陽輻射、風速和蒸發等氣象要素組成的氣象數據進行預報建模,對萬隆攝政區進行降雨預報。然而,傳統的分類方法在構建降雨預測模型時都存在著泛化能力低、精度不足的問題。針對以上問題,本文提出一種改進Adaboost?C4.5算法。該算法集成C4.5決策樹算法,得到最終的強分類器,使預測模型的泛化能力增強。在整個迭代過程中,使用PSO算法來優化Adaboost?C4.5弱分類器的權重以減少權重大的冗余或無用的弱分類器。使用該模型對南京市某地面觀測站進行降雨預報。實驗結果表明,本文建立的降水預報模型提高和完善了預報性能,具有泛化能力強、預測精度高等優點。

1 相關算法分析

1.1 C4.5決策樹算法

C4.5算法最初是由Ross Quinlan開發的基于信息增益的算法[6]。與ID3算法不同的是,C4.5決策樹算法能夠處理連續型屬性和屬性值缺失的數據,使用信息增益率而不是信息增益作為屬性選擇的度量標準[7]。選擇信息增益率最高的屬性作為給定數據集的測試屬性,創建一個節點并用該屬性進行標記,它的每個值都會創建一個分支,并相應地對樣本進行劃分,最后形成初步的決策樹。通過采用后剪枝的方法來降低決策樹的過擬合,提高了算法模型的精度。選擇C4.5決策樹作為弱分類器,主要是由于C4.5決策樹在計算復雜度方面比SVM和邏輯回歸算法低,而分類效果也比K近鄰算法好[8]。

C4.5算法的主要思想如下:

設訓練數據集D有m個不同類Ci(i=1,2,…,m),屬性A有n個不同的值{a1,a2,…,an},若使用屬性A對數據集D進行劃分,則會分成子集{D1,D2,…,Dn}。主要計算公式如下:

1)數據集D的期望信息為:

式中pi為數據集D中第i類樣本所占的比例。

2)以屬性A劃分數據集D所需的期望信息:

3)計算屬性A的信息增益:

4)由于信息增益傾向于選擇具有更多值的屬性,為了減少信息增益帶來的偏差,C4.5算法引入分裂信息作為懲罰因子,如式(4)所示,然后得到信息增益比,如式(5)所示。

1.2 Adaboost?C4.5分類算法

AdaBoost是一種典型的集成算法[9],其核心思想是通過訓練多個弱分類器組合為一個強分類器來提高分類性能。在初始化時,所有的訓練樣本都分配了相同的權重,然后經過T輪訓練后,得到T個弱分類器。每一輪訓練結束后,計算弱分類器的誤差率,對分類錯誤的樣本賦予較大的權重,對分類正確的樣本減少其權重。這樣,在下一次迭代中,分類器將更加集中學習錯誤分類的樣本。最后,將所有生成的弱分類器組合成強分類器。本文選取C4.5決策樹算法作為弱分類器,其模型結構如圖1所示。AdaBoost?C4.5算法的具體步驟如下:

圖1 Adaboost?C4.5模型結構

輸入:訓練數據集S={(x1,y1),(x2,y2),…,(xN,yN)},其中,N表示訓練樣本數,xN表示樣本的特征向量,y∈Y={1,0},迭代次數T,弱分類器ct(xi)。

步驟1:初始化訓練樣本的權重分布,D1=

步驟2:對于t=1,2,…,T,其中,T表示迭代次數。

1)根據權重分布調用分類器ct(xi),得到弱分類器ct:X→Y;

4)更新訓練樣本的權重分布,Dt+1=其中,歸一化因子

1.3 粒子群算法

粒子群算法(PSO)是由James Kenney和Russ Eberhart在1995年提出的[10]。該算法來源于對鳥類捕食行為的研究,是一種基于迭代的方法,它把每個解看作是一只鳥,表示一個粒子。每個粒子都有一個自適應值,該值代表其自身解決方案的當前狀態。在每次迭代中,每個粒子根據全局最優解和自身找到的最優解來調整自己的運動方向和速度,逐步逼近最優粒子。

假設有m個粒子在N維目標空間中尋找最優解,空間向量Xi=(xi1,xi2,???,xin)表示粒子群中第i個粒子的位置,向量Vi=(vi1,vi2,???,vin)表示第i個粒子的速度,其中,i=1,2,…,m,那么,粒子i當前的最佳位置Pi=(pi1,pi2,???,pin),整個粒子群當前的最佳位置Pgbest=(pg1,pg2,???,pgn),第i個粒子繼續更新迭代得到如下:

式中:w表示慣性權重;c1,c2表示加速度因子;分別表示第i個粒子在第k+1次迭代生成的速度和位置[11]。

PSO算法適用于在連續性范圍內進行搜索,可以快速逼近最佳解決方案并實現參數的有效優化,易于實現,復雜度低,因此,這里可以用該算法來優化Adaboost?C4.5分類器的權重,提高降雨預測模型的準確性。

2 本文方法

2.1 分類評價指標

通常針對基本的二分類問題,我們考慮采用經典的混淆矩陣來表述分類器模型的性能。以降雨預報模型中有雨和無雨兩類為例,該模型的混淆矩陣見表1。

表1 模型預測與實際列聯表

表1中:TP表示實際有雨預測有雨的數量;FN表示將有雨預測為無雨的數量;FP表示將無雨預測為有雨的數量;TN表示表示實際無雨預測無雨的數量。在本文的降雨預報模型中,為評價晴雨預報的性能效果,文中基于混淆矩陣,采用國內外通用的降雨預報評價指標:準確率、TS評分和漏報率(MAR)[12],其計算公式分別為:

2.2 基于改進Adaboost?C4.5算法

本文利用PSO算法快速收斂、優化精度高的特性,提出一種改進的Adaboost?C4.5算法。主要改進在于將Adaboost?C4.5分類器的誤差函數作為適應度函數,并用PSO算法優化Adaboost?C4.5弱分類器的權重,以較高的精度將較大的權重分配給弱分類器,將較小的權重分配給冗余和無用的弱分類器。當弱分類器處于局部最優時,可以重新初始化來進一步優化弱分類器的權重系數。根據改進后算法生成的弱分類器,將權重系數記為A=(a1,a2,???,an),n表示弱分類器個數,粒子初始位置和速度分別為xi,vi,可以使用Adaboost?C4.5弱分類器權重系數作為粒子的位置分量,將弱分類器的錯誤率ei作為粒子的適應度值,粒子個體最優位置記為Pi,全局最優位置記為Pgbest。優化流程圖如圖2所示。

圖2 PSO優化Adaboost?C4.5弱分類器權重流程圖

傳統的自適應增強算法集成弱分類器的組合模型,在迭代的過程中,通常,這樣就確定了弱分類器的權重系數,而這些系數是不能改變的,因此,就不可避免地產生了一些冗余和無用且權值較大的弱分類器,這極大地影響了分類器的性能。因此,在采用集成學習方法對多維數據集進行分類預測時,應當充分考慮到弱分類器的權重分配問題?;谝陨系母倪M,把這種算法應用于降水預測中,其改進算法執行過程如圖3所示。

圖3 改進Adaboost?C4.5算法執行流程圖

3 實驗與分析

3.1 數據選取及處理

本文實驗數據選取南京市2016—2019年的6—8月某點觀測站的氣象數據資料,任何一條數據的氣象要素包括大氣壓強(單位:hPa)、氣溫(單位:℃)、風向(單位:(°))、風速(單位:m/s)、相對濕度(單位:%)、每小時降雨量(單位:mm)。其中,把前5個氣象要素作為降雨分類預測的輸入屬性,把是否降雨作為輸出屬性,數據來源于中國氣象數據網。部分原始氣象數據如表2所示。

表2 部分原始氣象數據

在獲取數據后,屬性可能會有缺失值,為處理這個問題,可以使用屬性的平均值來填補缺失值,以獲得更好的準確性。由于不同的氣象要素通常具有不同的量綱和數量級大小,為了讓氣象要素之間具有相同的量綱和數量級而能夠相互產生可比性,需要對樣本數據進行歸一化處理,通過函數變換將樣本數據的各要素值映射在[0,1]之間,具體歸一化公式[13]如下:

式中:x代表樣本屬性值;xmax和xmin分別代表樣本數據中各氣象要素值的最大值和最小值。

3.2 降水等級模型建立

本文研究了對降水等級的預測,將上面提出的5個氣象要素作為輸入,對降水等級進行分析,按照國家防汛部門對1 h降雨量等級的劃分,建立5個等級預報降雨模型,具體降雨等級劃分見表3。

表3 1 h降雨量等級劃分

3.3 實驗結果與分析

為了驗證本文的改進后算法在降水預報模型上的先進性,在此將本文方法與其他兩種降水預報模型作對比,分別進行了降水量等級預報和晴雨預報,其他兩種降水模型分別是基于C4.5決策樹算法的降水預報模型和基于Adaboost?C4.5算法的降水預報模型。在實驗中采用10?折交叉驗證方法將數據集隨機分為10份,其中,9份作為訓練,1份作為測試,將10次實驗的結果平均值作為最終的評價標準。在實驗之前,設定實驗基本參數,粒子群規模N=50,學習因子c1=c2=1.494,慣性權重系數w=0.729,最大迭代次數Tmax=50。

首先,選擇利用PSO改進后Adaboost?C4.5算法和傳統Adaboost集成C4.5算法在構建不同弱分類器個數的情況下,比較兩者對樣本的分類精度,如圖4所示。

圖4 兩種強分類器準確率對比

由圖4可以看出,隨著兩者構建弱分類器個數的增加,線性組合的強分類器對樣本分類的準確率也在增加。隨后,慢慢趨于穩定,改進后的Adaboost?C4.5算法在弱分類器個數達到18~20時趨于穩定,而前者在弱分類器個數達到16時便出現飽和,在T=18時,改進后的Adaboost?C4.5算法比傳統Adaboost?C4.5算法的準確率高了2.8%。在1 h降雨量等級預報實驗中,固定迭代次數T=18,計算三種模型的降水預報標準誤差見表4。由表4中可以看出,由于各類樣本所占的比重不同,三種分類器對不同降水等級的預報效果也不同。三種算法對0級和1級降水表現出很好的性能,對降雨量大的樣本表現出較差的性能,但改進后的算法對3級和4級降水表現出比其他兩種模型更好的性能。

表4 三種模型的降水預報標準誤差

為了進一步檢驗本文提出的降水預報模型性能,本文利用三種降水預報模型分別進行了晴雨預報。實驗樣本數分別為200,400,600,800,1 000,1 200,1 400,1 600,1 800和2 000。固定迭代次數T,晴雨預報的準確率、TS評分、漏報率如圖5~圖7所示。圖5~圖7分別顯示了在不同樣本數下三種降水預報模型的準確率、TS評分和漏報率的變化曲線。其中,在晴雨預報中,準確率、TS評分越高,漏報率越低,所反應的降水模型性能越好。由圖5可以看出,隨著樣本數的增加,改進后的Adaboost?C4.5分類器的準確率逐漸穩定在86.5%左右,而傳統Adaboost?C4.5分類器在樣本數達到1 200以后出現了性能退化的現象,總的來說,隨著樣本數的增加,改進后的Adaboost?C4.5分類器模型在準確率和TS評分上總是高于其他兩種分類器模型。由圖7可以看出,改進后的Adaboost?C4.5分類器的漏報率在總體上低于其他兩種分類器模型。當樣本數達到1 400時,傳統的基于C4.5算法降水模型的漏報率為35.32%,改進后的Adaboost?C4.5算法模型漏報率僅為25.33%,比前者降低了10.01%。

圖5 三種預報方法的準確率對比

圖6 三種預報方法的TS評分對比

圖7 三種預報方法的漏報率對比

4 結 語

本文提出了一種改進的Adaboost?C4.5算法,利用PSO算法來優化Adaboost?C4.5弱分類器的權重,可以有效地減少權重大的冗余或無用的弱分類器,從而提高強分類器的預測精度。在這個基礎上,應用改進的算法構建降水預報模型。實驗結果表明,本文提出的降水預報方法在總體上提高了準確率、TS評分和降低了漏報率,預報效果優于其他兩種預報方法,一定程度上克服了傳統降水預測模型泛化能力低、精度不足的問題,具有一定的實際應用價值。

猜你喜歡
決策樹分類器降水
黑龍江省玉米生長季自然降水與有效降水對比分析
一種針對不均衡數據集的SVM決策樹算法
決策樹和隨機森林方法在管理決策中的應用
為什么南極降水很少卻有很厚的冰層?
BP-GA光照分類器在車道線識別中的應用
加權空-譜與最近鄰分類器相結合的高光譜圖像分類
結合模糊(C+P)均值聚類和SP-V-支持向量機的TSK分類器
基于決策樹的出租車乘客出行目的識別
降水現象儀模擬軟件設計與實現
基于肺癌CT的決策樹模型在肺癌診斷中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合