王鑫圓 曹春萍



摘 ?要: 由于PM2.5濃度預測中的影響因素過于復雜,影響因素的高維性與非線性對預測結果有著很大的干擾,容易產生PM2.5濃度預測誤差高和模型泛化能力差等問題。針對上述缺陷,可通過一種基于隨機森林-粒子群優化-極限學習機(RF-PSO-ELM)的PM2.5濃度預測模型解決。該模型首先使用隨機森林算法對影響因素進行特征選擇,選擇出對于PM2.5濃度重要性高的因素構成特征;再利用提取得到的特征作為PSO-ELM算法的輸入;最后對上海市的PM2.5濃度做出預測,從最終的實驗數據中可以看出:該模型比支持向量機(SVM)、未優化的極限學習機(ELM)和反向神經網絡(BPNN)等預測模型在預測精度和泛化能力方面有著顯著的提高。
關鍵詞: 極限學習機;隨機森林;改進的粒子群優化算法;PM2.5;特征選擇
中圖分類號: TP39 ? ?文獻標識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2020.06.003
本文著錄格式:王鑫圓,曹春萍. 基于隨機森林與改進極限學習機的PM2.5濃度模型[J]. 軟件,2020,41(06):1218+62
【Abstract】: Because the factors affecting the PM2.5 concentration value are too complicated, the high dimensionality and nonlinearity of the influencing factors have a great interference with the final result of the prediction. The performance of the prediction model is prone to problems such as high prediction error of PM2.5 concentration value and poor generalization ability. In view of the above mentioned defects, which can be solved by proposing a PM2.5 concentration prediction model based on random forest-particle swarm optimization-extreme learning machine (RF-PSO-ELM). The model first uses the random forest algorithm to select the influencing factors, selects the characteristics that are important to the PM2.5 concentration, and uses the extracted features as the input of the PSO-ELM algorithm to predict the PM2.5 concentration. The prediction of PM2.5 concentration in Shanghai shows significant improvements that the model is more accurate than the traditional support vector machine (SVM) and unoptimized extreme learning machine (ELM) and back propagation neural network (BPNN) and so on in terms of prediction accuracy and generalization capabilities.
【Key words】: ELM; RF; Improved PSO algorithm; PM2.5; Feature selection
0 ?引言
近幾年,PM2.5濃度過高被認為是大氣污染危害的主要成因,其不僅對各行各業的發展造成了阻礙,還會嚴重危害人們的生活健康。所以,建立完善的PM2.5預測模型顯得尤為重要。但是,影響PM2.5濃度的因素繁多,許多復雜的氣象因素[1]與多樣的空氣污染物[2]都對PM2.5濃度有著顯著的影響。因此如何選取可信度高的影響因素,建立可靠、高效、泛用性廣、泛化能力強的PM2.5濃度預測模型就有著很大的實際意義,這種計算機科學與環境科學的交叉領域是當前機器學習的一個熱門研究方向。
多年以來,已經有很多對PM2.5預測的研究成果發表在了眾多的論文期刊上。其中比較典型的有多元線性回歸(MLR)模型[3]以及差分整合移動平均自回歸模型(ARIMA)模型[4],這兩種模型易于建立,并且對預測自變量與因變量之間具有強線性相關性的數據有明顯的優勢。但是缺點也同樣明顯,以上兩種模型在本質上只能捕獲線性關系,而不能捕獲非線性關系。由于PM2.5的影響因素相當復雜,所以線性模型不能全面理解任何多個輸入變量間的相互作用,容易導致模型精度下降。隨著機器學習的發展,支持向量機(SVM)和人工神經網絡(ANN)在被應用到了許多場景當中,其對非線性數據能有著良好的解釋性。張長江等人[5]應用SVM對PM2.5未來一小時的濃度建立了預測模型;Wei Su等人[6]應用了最小二乘支持向量機(LSSVM)建立了日常PM2.5預測模型。SVM在解決小樣本和非線性數據方面有著良好的泛化能力,但由于訓練樣本數量不足,采用的數據樣本時間跨度小且數據具有一定的特殊性,其在實際環境中的預測能力值得進一步的研討。神經網絡在預測數據能力方面可以實現非線性的映射,有一定的自學能力和概括能力,被廣泛地應用于PM2.5濃度預測中[7]。Yegang Chen[8]在PM2.5濃度預測算法中運用了BP神經網絡,具有一定的精度。鄭海明等人[9]在預測PM2.5濃度時利用了遺傳算法對BP神經網絡進行了改進,李曉理等人[10]則通過改進粒子群優化BP_Adaboost神經網絡預測PM2.5值。 這些基于BP神經網絡的預測方法最大的問題是容易在訓練模型時出現過擬合現象,上述文獻中的研究雖然能加速神經網絡的收斂速度,但都很難達到理想的預測效果,其泛化能力較差,實驗精度有待提高。
極限學習機(Extreme Learning Machine)[11]是一種高效的神經網絡算法,近年來不斷地被應用到了分類、聚類和回歸分析的問題當中。由于ELM只需要確定激活函數和隱含層節點后就能快速學習,比起支持向量機(Support Vector Machine)和BP神經網絡(back propagation Neural Network)有著更快的訓練速度和泛化能力。本文中將極限學習機和粒子群優化算法(Particle Swarm Optimization)相結合,以優化相關參數的方法進一步提高預測效果。先通過隨機森林(Random Forest)選擇對PM2.5濃度影響程度大的特征值,避免過多的無用特征導致模型預測誤差過大;再結合經過粒子群優化算法改進的極限學習機模型對PM2.5濃度進行預測;最后通過實驗數據論證本次研究建立的模型有著較強的泛化能力,且在預測性能方面優于其它預測模型。
1 ?相關技術
在本章節中,我們詳細介紹了PM2.5模型建立所需的相關技術。其中包括了隨機森林算法、極限學習機算法、改進的粒子群優化算法以及粒子群算法如何優化極限學習機的步驟。
1.1 ?隨機森林
隨機森林[12]是一種分類器集合算法,有不容易發生過擬合的優點。它不僅可以用來做分類,也可以做回歸預測。同時它也是一種基于Bagging的學習方法,其中的每一棵決策樹就是一個分類器,對于一個輸入樣本,N棵樹會有N個分類結果。通過有放回地抽取原始數據產生多個樣本子集,之后利用這些樣本子集建立多個決策樹,最終的結果由決策樹組成的隨機森林所決定。
隨機森林的具體生成過程如下:
(1)從初始訓練集中運用boostrap方法隨機且有放回地抽取N個新的子樣本集,并由這些樣本集建立N棵分類回歸樹。
(2)設樣本集的特征維數為M,并設定一個常數m(m<=M),在每棵樹的每個節點選取m個特征,計算每個特征含有的信息量,從m個特征中選擇最有分類能力的一個特征進行節點分裂。
(3)每棵樹都在最大程度上生長,沒有剪枝 ?過程。
(4)所有的樹最后整合成為一個隨機森林。當處理分類問題時,會根據哪一種分類結果數最多決定最終輸出;當使用隨機森林建立回歸預測時,最終結果由所有樹輸出的平均值確定。
1.2 ?極限學習機
極限學習機在人工智能領域得到了廣泛應用,它是對傳統前饋神經網絡的改進,其能夠通過一步計算求得輸出權值。它的另一大特點就是它可以隨機生成從輸入層到隱藏層的連接權重和隱藏層的閾值,且設置完后無需再調整;與此同時,因為隱含層和輸出層之間的連接權值不需要迭代調整,而是通過解方程組的方式一次性確定,所以比起傳統的機器學習算法運算速度更快。ELM的算法原理結構如圖1所示。
1.3 ?改進的粒子群優化算法
粒子群優化算法被是一種優秀的智能優化算法,尤其在解決函數擬合與數值優化問題上有著相當顯著的效果。在算法中,所有優化問題的參數尋優解都可以被視為一個粒子,每一個粒子都在一個D維空間中搜索最優解。在定義一個適應度函數之后,我們可以將每個粒子代入進這個函數,得到適應度值,并以此來作為評判粒子優劣程度的標準。
PSO-ELM具體算法流程如下:
(1)設置極限學習機參數。將輸入權值設為一個-1到1之間的隨機數;閾值設置成一個0到1范圍內的隨機數。
(2)選擇粒子群參數。根據(1)中的參數范圍設置粒子的尋優范圍,確定種群規模數、最大迭代次數、學習因子c1與c2,慣性權重初始值和粒子維數。
(3)通過粒子信息和樣本集得到極限學習機的預測值,根據得到的預測值通過式(8)計算所有粒子的適應度值,進而求出每個粒子的個體極值pbest和群體的全局極值gbest。
(4)對每個粒子的位置與速度迭代更新。在每次迭代完成后,取粒子適應度最小值與之前幾次迭代的粒子適應度最小值比較,其中適應度值最低的粒子即為當前的最優參數。
(5)每當迭代更新之后,將優化后的參數傳遞給ELM。
(6)當迭代循環次數達到設定值時,停止對參數的尋優,得到最佳的ELM參數。
2 ?PM2.5預測模型
本文的原始數據集主要來源于兩方面:空氣污染物濃度和氣象相關數據。此次實驗數據從天氣后報網站(http://www.tianqihoubao.com/aqi/shanghai. html)和weather underground世界天氣預報網站上獲取(https://www.wunderground.com/history/)。經過了初步的篩選,實驗選取了上海市的2013年11月至2019年5月的數據作為實驗的樣本集。本文以上海市PM2.5濃度預測為例,詳細闡述了預測模型的特征選擇過程、模型參數選擇流程以及與其它預測模型的對比過程。原始數據中一共有16種影響因素,包含了空氣污染物(PM10、SO2、CO、O3、NO2、前一天的PM2.5濃度)和氣象數據(最高與最低氣溫、天氣情況、最大與最小風速、平均露點溫度、最大與最小相對濕度、最大與最小大氣壓強)。
建模流程如圖2所示,具體步驟如下:
(1)剔除數據殘缺的樣本,根據PM2.5濃度均值對天氣情況數據進行量化處理,對所有樣本進行歸一化處理。
(2)將上海市的PM2.5濃度影響因素整合成一個整體樣本集,用隨機森林方法進行特征選擇,使用5折交叉驗證的方式訓練模型,以決定系數為影響因素的選擇標準,選擇決定系數值高的特征作為PSO-ELM算法的輸入參數。
(3)通過計算測試集和訓練集誤差的方式選擇極限學習機的激活函數以及隱含層節點數量。
(4)粒子群優化算法對極限學習機的參數迭代尋優,得到最優的權值與閾值。
(5)將優化完成的參數代入極限學習機,得到最終的PM2.5濃度預測結果。
2.1 ?數據預處理
由于原始數據中有天氣情況這種類型的定性數據,所以需要對其進行量化處理。本次實驗原始數據中的天氣情況有晴天、多云、陰天、雨天和雪天,一共5種。根據每種天氣情況下的平均PM2.5濃度值對其進行量化,其中晴天的平均濃度最高,高達60微克/立方米,雨天和雪天的平均濃度最低,分別為37微克/立方米、32微克/立方米,多云和陰天的平均濃度值分別為49微克/立方米和42微克/立方米。故而根據以上的分析可以將雪天、雨天、陰天、多云和晴天各自量化為1、2、3、4和5表示。因為此次實驗原始數據中的特征有著不同的量綱和量綱單位,為了消除特征之間的量綱影響,減少對實驗模型的誤差影響,本文對原始數據進行了歸一化處理。通過歸一化處理能夠將各個數據指標處于同一量綱級,此次實驗的歸一化公式如下:
2.2 ?特征選擇
因為各種各樣的氣象因素和污染物因素都對PM2.5濃度有著影響,且這些PM2.5影響因素具有一定的高維性,所以如果將全部的PM2.5影響因素都作為預測模型的輸入,容易降低預測模型的泛化能力與預測精度,由此可以看出對初始的PM2.5影響因素進行特征篩選尤為必要。本文使用了隨機森林算法來選擇影響因素,由于原始數據中的影響因素和響應變量之間的關系是非線性的,基于決策樹的隨機森林算法可以較好地選擇出對于PM2.5濃度影響程度高的特征。
此次實驗使用單變量選擇的方式對PM2.5影響因素進行選取,將每一個PM2.5影響因素與PM2.5濃度值建立隨機森林模型,以決定系數作為隨機森林模型的評價指標,則可以把決定系數視為PM2.5影響因素對于PM2.5濃度值的影響程度,決定系數的計算公式如下所示:
在選擇特征的過程中,運用了5折交叉驗證的模型訓練方式,其是將整體數據集分解成5份數據集,交替地把其中4份作為訓練集、1份作為測試集來訓練模型,最后對5次訓練的輸出(影響系數)取平均值。這樣做能提升模型的穩定性,增加特征選擇結果的可信度。經過網格搜索算法進行參數尋優后,本次實驗將隨機森林中決策子樹的個數設置為550,每顆樹的最大深度設為20,葉子節點最少樣本數設為2,決策樹的最大特征數為11。
實驗根據上文中提到的16種影響因素,以及上海市2013年11月至2018年12月的1866個樣本(剔除了原始樣本中具有嚴重數據缺失情況的樣本)作為特征選擇算法的輸入,利用了Python語言進行編程,借助了Pycharm集成開發環境和Scikit-learn機器學習庫完成此次實驗。表1中的影響系數即為每一個PM2.5影響因素對于PM2.5濃度值的影響程度。各個影響因素的影響系數如表1所示。
從表1中可以看出,原始數據中的16種影響因素對于PM2.5濃度有著不同的影響系數,其中PM10濃度、SO2濃度、NO2濃度、CO濃度等特征有著較高的影響比例;而大氣壓強、風速、相對濕度等特征的影響比例較小。經過實驗后,本文所建立的預測模型選擇了影響比例大于0.1的8種特征作為模型的輸入變量,選擇過程在2.3節中呈現。
2.3 ?PSO-ELM模型參數的確定
在閱讀了相關參考文獻之后,此次實驗對模型參數設置如下:確定粒子群規模為40;最大迭代次數為150;學習因子c1=c2=2;慣性權重ω最大值設定為0.9、最小值設定為0.4、初始值設定為0.9;由于需要優化的參數有兩個,所以粒子維數為2。
為了確定模型的特征個數、激活函數與隱含層節點數,此次實驗隨機選取經過預處理后的1400組數據作為訓練集,466組樣本作為測試集,以3∶1的比例分割數據集。
在極限學習機節點數數為10且激活函數為sigmoid函數時,圖3展示了影響系數在不同閾值時本文預測模型的均方根誤差,故而本次實驗選擇影響系數大于0.1的8個特征。
假設極限學習機隱含層節點的個數為10個,通過在相同網絡復雜度的情況下比較sigmoid函數、sin函數和hardlim函數哪一個更適合本次試驗。從表2中可以看出,當隱含層節點數均為10時,sigmoid函數下的模型平均絕對誤差為9.93,sin函數和hardlim函數分別為12.71和13.12。由于sigmoid函數在對模型的精度影響方面明顯優于其它兩種,因此本文選擇sigmoid函數作為ELM的激活函數。
隱含層節點的選擇一直都是極限學習機建立過程中的關鍵問題,良好的節點數不但能夠降低模型的輸出誤差,還能夠增加模型的泛用性。但是節點數的選擇從來不具有一般性,幾乎所有的研究都是從主觀上或是根據經驗公式來決定其數量。本次研究為了能夠盡量提升模型的功能與性能,從訓練集和測試集的均方根誤差兩方面來觀察節點數量帶來的變化。表3即為在不同節點數的情況下,上述兩種數據集的均方根誤差變化。
從表3中可以得出:隱含層節點數的增加會導致訓練集的均方根誤差越來越小,并且隨著節點數的增大,訓練集的均方根誤差變化越小;但是,當隱含層節點數為15時,測試集的均方根誤差為11.7473,是表3中測試集誤差的最小值,之后隨著節點數增大其誤差反而增加。上述結論表明了隱含層節點的選取并不是值越大越好,對于模型而言會有一個合適的隱含層節點數。為了抑制過擬合現象的發生,本次實驗將極限學習機模型的隱含層節點設置為了15。
3 ?實驗結果分析
在完成預測模型的各種參數設置與選取之后,為了證明此次研究建立的模型具有較強的實用意義,本章節對2019年1月至5月的PM2.5濃度進行了仿真預測實驗,并且與其它較為成熟的預測算法作出對比。在此之上,實驗還進行了模型的泛化能力證明與特征選擇的有效性驗證。
3.1 ?PM2.5濃度預測仿真結果對比
本章節用PSO-ELM預測模型與支持向量機、BP人工神經網絡和未優化的極限學習機等算法以對上海市2019年1月的PM2.5濃度值預測結果為例。為了證明對比實驗的有效性,每一個預測模型的輸入特征都經過了隨機森林算法的篩選,輸入的訓練樣本也相同,并且做了同樣的數據預處理工作。為了能夠使預測模型更加具有實用性,預測過程中的前一天PM2.5濃度特征均采用預測值。本次實驗將BP神經網絡中的隱含層節點設置為6(此情況下誤差最小)、最大訓練次數為200、學習率為0.1、訓練需求精度為10–5并且將激活函數設為sigmod函數;設置SVM類型為epsilon-SVR,選擇徑向基函數為核函數。采用5折交叉驗證優化參數,得到核函數的懲罰系數c=2.5、核函數參數g=0.07且epsilon-SVR損失函數值p=0.01;LSTM(長短期記憶網絡)建模方式參照了文獻[14];多元線性回歸參數使用Scikit-learn中的默認值。對比實驗的結果如下。
表4中以相關系數、均方根誤差和平均絕對誤差闡述了PSO-ELM的優越性。從表中不難得出,經過了粒子群優化算法進行參數尋優的極限學習機比起未經優化的ELM、BP人工神經網絡和支持向量機等有著更加好的擬合優度和預測精確性,說明了本次研究的PSO-ELM預測模型有著良好的預測性能,比起傳統的極限學習機和其它傳統的機器學習預測算法有著更高的實用性。
3.2 ?模型泛化能力的證明
為了證明本文建立的預測模型有著較高的泛化能力,對不同的月份也有著較好的預測效果。本章節中運用了在3.1節中相同的數據處理方式預測了上海市2019年1月至5月的PM2.5濃度,并且作出了是否使用特征選擇算法的對比實驗。得到的結果圖如下所示。
圖7不僅展示了2019年1月至5月的誤差數據,還表現出了特征選擇的有效性。從圖中可以得出結論:經過粒子群算法優化的極限學習機有著較強的泛化能力,對于不同時期的PM2.5濃度都能做出良好的預測效果,且誤差范圍穩定在一個區間范圍內;與此同時,隨機森林算法成功地對原始特征集進行了降維處理,其選擇的特征能夠更好地建立預測模型,有效地增加模型預測精度。
4 ?結論
數值預測模型的研究是機器學習領域的研究熱點,本文提出了基于RF算法特征選擇與PSO算法參數優化的ELM預測模型,將其應用于PM2.5濃度值的預測。最終的實驗結果表明,RF算法能有效地提取出有用的影響因素,PSO優化算法可以高效地對ELM算法的參數進行尋優,RF-PSO-ELM算法比起傳統的數值預測算法SVM、BP人工神經網絡等有著更高的預測性能。此次研究比起其它相近研究論文選取的數據更具有普遍性,有著更強的理論指導意義。
與此同時,由于PM2.5濃度影響因素較為廣泛,本次的研究過程中尚未考慮具體的日均降雨量與日照時長對PM2.5濃度值的影響;并且在泛化能力證明階段,對于不同的測試集模型的表現能力略有起伏。日后的研究旨在考慮增加更多的基礎特征與如何對模型做出更進一步的優化方法。
參考文獻
[1] 徐偉嘉, 朱倩茹, 劉永紅, 等. 廣州PM_(2.5)污染特征及影響因素分析[J]. 中國環境監測, 2013, 29(2): 15-20.
[2] 鮑孟盈, 曹芳, 劉壽東, 等. 蘇州郊區主要大氣污染物的演變特征及其影響因素研究[J]. 生態環境學報, 2017, 26(1): 119-128.
[3] 張云云, 朱家明, 高子云, 等. 基于多元線性回歸的PM2.5含量的影響因素研究[J]. 西昌學院學報(自然科學版), 2016, 30(1): 17-20.
[4] 彭斯俊, 沈加超, 朱雪. 基于ARIMA模型的PM2.5預測[J]. 安全與環境工程, 2014, 21(6): 125-128.
[5] 張長江, 戴李杰, 馬雷鳴. 應用SVM的PM2.5未來一小時濃度動態預報模型[J]. 紅外與激光工程, 2017, 46(2): 245-252.
[6] Sun W, Sun J. Daily PM2.5 concentration prediction based on principal component analysis and LSSVM optimized by cuckoo search algorithm [J]. Journal of Environmental Management, 2017, 188(1): 144-152.
[7] Fabio B, Marcella B, Marco V, et al. Recursive neural network model for analysis and forecast of PM10 and PM2.5 [J]. Atmospheric Pollution Research, 2017, 8(4): 652-659.
[8] Chen Ye-gang. Prediction algorithm of PM2.5 mass concentration based on adaptive BP neural network[J]. Computing, 2018, 100(8): 825-838.
[9] 鄭海明, 商瀟瀟. 基于GA-BP神經網絡大氣中PM2.5軟測量研究[J]. 計量學報, 2014, 35(6): 621-625.
[10] 李曉理, 梅建想, 張山. 基于改進粒子群優化BP_Adaboost神經網絡的PM2.5濃度預測[J]. 大連理工大學學報, 2018, 58(3): 99-106.
[11] Huang Guang-Bin, Zhu Qin-yu, Chee-Kheong Siew. Extreme learning machine: Theory and applications[J]. Neurocomputing, 2006, 70(1-3): 489-501.
[12] Breiman L. Random Forests[J]. Machine Learning, 2001, 45(1): 5-32.
[13] Zheng Qin,Fan Yu,Zhewen Shi, et al. Adaptive Inertia Weight Particle Swarm Optimization[C]//Proceedings of the 8th international conference on Artificial Intelligence and Soft Computing. Springer Berlin Heidelberg, 2006: 450-459.
[14] 白盛楠, 申曉留. 基于LSTM循環神經網絡的PM2.5預測[J]. 計算機應用與軟件, 2019, 36(1): 67-70.
[15] 陳芳. 小型智能化車載PM2.5檢測系統[J]. 軟件, 2018, 39(2): 164-165.
[16] 陳婕, 金馨. 基于極限學習機的鋰電池健康狀態預測[J]. 軟件, 2018, 39(2): 191-196.
[17] 蘇志同, 汪武珺. 基于隨機森林的煅燒工藝參數的研究和分析[J]. 軟件, 2018, 39(4): 148-150.
[18] 趙乃剛. 慣性權重動態調整的混沌粒子群算法[J]. 軟件, 2016, 37(3): 01-03.
[19] 崔仁桀. 數據挖掘在學生專業成績預測上的應用[J].軟件, 2016, 37(01): 24-27.