甘露情,劉媛華
(上海理工大學 管理學院,上海 200093)
目前我國的空氣污染日趨嚴峻,眾多地區頻繁出現了霧霾天氣[1],對人們的健康和生產活動的危害日趨顯著.因空氣污染導致過早死亡的人數不斷增加,已經成為造成中國居民死亡的第四大死因[2].嚴重霧霾天氣導致高速關閉,航班停飛,影響人們日常生產活動的進行[3].由于空氣質量指數(Air Quality Index,AQI)的評價標準更符合人們對空氣質量的真實感受,且治理空氣污染需要長時間的控制才能得到顯著效果,因此對空氣質量指數進行有效的預測,能短時間內減少對人們健康的危害和促進社會的穩定,具有重大的現實意義.
目前國內外主要采用機器學習的方法對空氣質量進行預測,如Bai 等利用小波分析將污染物歷史時間序列分解成不同尺度,結合BP 神經網絡模型對每日空氣污染物的濃度進行預測,結果表明該模型的預測性能優于mono-BPNN 模型[4].Wang 等提出一種結合了兩階段分解技術和通過差分算法優化的極限學習機的混合預測模型,對中國北京和上海的每日AQI 數據進行實證研究,實證結果表明該混合模型的預測精度更高[5].劉篤晉等利用改進的人工蜂群算法優化神經網絡的權值和閾值,在空氣質量預測中有很好的應用[6].常恬君等建立了Prophet-隨機森林優化模型,對上海市空氣質量進行分析預測,預測結果表明該模型的預測精度更高[7].
目前很少有研究關注空氣質量指數預測模型的預測性能受離群點影響較大的問題,并且任何預測模型都存在誤差,大多數研究忽視了誤差修正能提高模型的預測精度.因此,本文首先利用孤立森林算法對空氣質量數據進行離群點分析,然后選取對離群點泛化性能較強的離群魯棒極限學習機模型(ORELM)對空氣質量指數進行預測,最后構建誤差修正模塊進一步提高模型的預測性能.
本文對空氣質量指數的預測研究,首先利用孤立森林算法驗證實驗數據中是否存在離群點,然后采用隨機森林算法篩選出最優因素子集作為預測模型的輸入變量,最后構建離群魯棒極限學習機預測模型對AQI 指數進行預測,模型相關理論介紹如下.
離群點指在一個時間序列中遠離一般水平的極端大值和極端小值.由于常常會出現某日空氣質量特別好或特別差的情況,則AQI 值極小或極大,因此空氣質量指數數據中一般會存在離群點.為驗證本文的空氣質量數據中是否存在離群點,采用孤立森林算法對其進行分析.
孤立森林(isolation Forest,iForest)是一種無監督學習算法,最早由莫納什大學的Liu FT、Ting KM和南京大學的周志華提出[8].在孤立森林中,異常值的定義為分布稀疏且離密度高的群體較遠的點[9].孤立森林的基本思想是采用一個隨機超平面對數據集空間進行切割,切割一次產生兩個子空間,然后繼續采用一個隨機超平面對兩個子空間進行切割,一直循環下去,直到每個子空間只剩下一個數據點[10].由于異常值處于密度較低的區域,很早就能停止切割,正常的數據處于密度較高的區域,需要進行很多次切割才能停止.
孤立森林算法是一種集成學習算法,由多顆孤立樹(isolation Tree,iTree)組成,每棵孤立樹都具有二叉樹結構[11].其構建一顆孤立樹的步驟如下:
(1)從數據集中均勻抽取Ψ 個樣本作為孤立樹的訓練樣本.
(2)在訓練樣本中,隨機選擇一個樣本特征,并在該樣本特征的最小值和最大值范圍內隨機選擇一個值P作為孤立樹的根節點.
(3)對樣本進行切割,將小于P的樣本值劃分到根節點的左邊,大于P值的樣本點劃分到根節點的右邊.
(4)對切割產生的左右兩個數據集重復步驟(2)和步驟(3)操作,直到節點只有一個數據或者達到最大限度樹的高度.
重復上述的操作構建N棵孤立樹,利用測試數據對孤立森林進行訓練,使每一個樣本點遍歷所有孤立樹,直到達到終止條件,計算樣本點經過的路徑長度[12].在這種隨機分割策略下,異常點的路徑通常都較短,最先被分割出來.
空氣質量指數的影響因子較多,利用隨機森林對影響因子進行重要性度量,篩選出最優因素子集作為預測模型的輸入變量,可以減少冗余因子對預測結果的影響.
隨機森林算法是由Breiman 等提出,其變量重要性度量可以作為分析特征選擇的工具,且具有很好的魯棒性[13,14].
隨機森林進行特征選擇的主要思想是向一個重要特征中加入噪聲時,預測的準確率會降低,若是無關特征則預測準確率變化不大.具體利用袋外數據計算隨機森林中的每個決策樹的袋外數據誤差,記原始袋外數據誤差為errOOB1;然后改變樣本中某個特征的數值,保持其他特征數值不變,得到一個新的隨機森林預測準確率errOOB2,則該特征的重要性可以由兩個預測準確率之差來表示.假設隨機森林中有Ntree棵樹,則特征重要度公式可以表示為:

若袋外誤差準確率降低幅度越大,則該特征對該樣本的影響越大.利用隨機森林算法分析特征重要性的具體步驟如下:
(1)利用Bootstrap 重采樣方法,從原始數據集中隨機產生K個訓練集,構成K棵決策樹[15];
(2)從m個特征中隨機選取n個特征作為分裂屬性集,并從該屬性集中選擇最好的分裂方式對該節點進行分裂;
(3)每棵樹都完整生長,不進行任何修剪;
(4)將生成的多顆決策樹組成隨機森林,利用投票的方法得到分類結果;
(5)利用袋外數據誤差計算每個特征的重要性,并對特征進行降序排序;
(6)確定一個刪除比例,將相應比例不重要的特征從當前特征變量中剔除,從而得到一個新的特征集;
(7)新的隨機森林由上一步得到的新的特征子集來構建,計算特征集中每個特征的重要性,并進行排序;
(8)重復步驟(5)-(7),直到剩下n個特征;
(9)計算以上生成的每個特征集和相應建立的隨機森林的袋外數據誤差,選擇誤差最低的特征子集.
極限學習機(Extreme Learning Machine,ELM)是一種特殊的單隱含層前饋神經網絡,其在訓練過程中隨機生成輸入層與隱含層間的權值以及隱含層的閾值,并且在整個訓練過程中,權值和閾值都保持不變,只需要預先設置隱含層神經元數,就能得到預測結果[16].因此該算法結構簡單,訓練速度快.模型表達式可簡化為:

其中,H為模型網絡結構隱含層的輸出,wi表示第i個隱含層節點與輸入神經元間的權值,bi為第i個隱含層節點的閾值,g(x)為隱含層激活函數,βi為第i個隱含層神經元與輸出神經元間的連接權值.Q為樣本個數,L為隱含層神經元個數,輸出層神經元個數為m.由于wi和bi在 訓練過程中不變,則輸出權值 β可以通過對式(2)求解最小二乘解來獲得,即:

其中,H+是隱含層的輸出矩陣H的Moore-Penrose 廣義逆.
由于最小二乘法分配給每個輸入數據相同的權重,因此當輸入數據集中存在離群點時,這些離群點的影響會被放大,ELM 模型的預測性能會降低[17].為了解決離群值對模型預測性能的影響,Zhang和Luo[18]提出了離群魯棒極限學習機(Outlier Robust Extreme Learning Machine,ORELM).ORELM 模型為了不失去稀疏性且能達到最小化凸,其目標函數變成一個約束凸優化問題[19],表達式為:

該約束凸優化問題可以由拉格朗日乘數(Augmented Lagrange Multiplier,ALM)方法來求解,表達式為:

拉格朗日函數可以通過增廣拉格朗日乘子來求解,新的迭代方式為:

βk+1和ek+1通過以下公式求得:

不論是單一預測模型還是混合預測模型都會存在一定的誤差,可以通過一些非線性模型對原預測模型的誤差進行預測,進而修正模型的預測結果,以達到提高模型預測性能的目的.誤差修正模塊構建的關鍵是誤差時間序列的預測及修正模型的選擇.具體步驟如下:
(1)產生誤差時間序列
O(t)為t時刻的模型預測值,A(t)為在t時刻的真實值,則模型在t時刻的預測誤差值為:

(2)進行誤差預測
由于誤差值具有時間序列特征,假設t時刻的誤差值由前k個時刻的誤差值預測得到,f[·]是誤差時間序列預測模型,則t時刻的誤差預測值可表示為:

由于支持向量機模型是一種基于時間序列的回歸模型,泛化性能強,需要調節的參數少,本文選擇支持向量機模型作為誤差時間序列預測模型.
(3)進行誤差修正,得到最終預測值
得到誤差序列預測值后,大部分誤差修正模型直接將原模型預測值和誤差預測值相加得到最終的模型預測值,忽略簡單相加產生的問題.本文通過建立非線性預測模型F[·]來得到最終預測值,可表示為:

其中,非線性預測模型F[·]是通過極限學習機模型基于數據訓練而確定,模型的輸入為誤差時間序列預測值E f(t)和原模型預測值O(t),模型的輸出為最終預測值F(t).
本文選取北京市2013年12月2日到2017年2月28日共1184 組AQI 數據和6 種污染物數據(PM2.5,PM10,NO2,SO2,CO,O3),以及同時期風速、氣壓、氣溫、降雨量4 種氣象數據作為研究對象,數據來源于中國環境監測總站和中國氣象局.
利用Python 語言中的isolationForest 包完成對空氣質量數據集的離群點檢測,將經過預處理的空氣質量指數數據作為輸入數據,使其遍歷每一棵孤立樹,計算其路徑長度,結果如圖1所示.
如圖1所示,AQI 數據中存在一定數量的離群點,若是將這些離群點都刪除,會影響數據集的分布.本文采用對離群點泛化性能較強的離群魯棒極限學習機預測模型對空氣質量指數進行預測來減小離群點的影響.
利用隨機森林對影響因素進行重要性排序通過R 語言中的randomForest 程序包來完成,將前一天的空氣污染物數據和當天的氣象數據作為輸入數據,當天的AQI 數據作為輸出值.其中參數設置:決策樹(Ntree)設置為100 棵,importance=TRUE 表示要計算變量的特征重要性,其他參數為默認值.因子重要性排序如圖2所示,其中日均風速的重要性最大.依次將重要性最小的因子去掉,將剩下因素子集輸入極限學習機模型中進行預測,以均方根誤差為評價指標.各因素子集對應的均方根誤差如圖3所示.由圖3中可以看出,當不重要的因子刪除時,預測誤差降低;隨著重要性高的因子刪除,誤差又逐漸提高.當因子數量為8 個時,均方根誤差達到最低.最終篩選出來的最優特征子集為日均風速、NO2、PM10、CO、PM2.5、日均氣壓、日均氣溫及O3.

圖1 離群點檢測結果

圖2 因素重要性排序

圖3 各因素子集相對應的均方根誤差
為了證明本文選擇的離群魯棒極限學習機模型在預測離群樣本點上的優越性,將其與極限學習機模型進行對比實驗,兩個模型的隱含層神經元數量都設置為50.首先對空氣質量數據集進行歸一化處理,將其中的1100 組數據作為訓練集數據,剩余的84 組數據作為測試集數據.根據篩選出來后的最優因素子集,將預測日前一天的NO2、PM10、CO、PM2.5、O3數據以及預測日的日均風速、日均氣壓以及日均氣溫數據作為模型的輸入數據,預測日當天的AQI 數據作為模型的輸出變量.以平均絕對百分誤差(MAPE)、均方根誤差(RMSE)、平均絕對誤差(MAE)作為評價指標,結果如表1所示.

表1 預測結果評價表
由表1所示,離群魯棒極限學習機的3 個誤差值都小于極限學習機,表明ORELM 模型對存在離群點的樣本數據泛化性能更強,能有效的提高模型的預測性能.
為了驗證誤差修正模塊的有效性,將經過誤差修正后的預測結果與原模型預測結果進行比較,預測結果對比圖如圖4所示.由圖4可以看出經過誤差修正之后的模型擬合能力更強,預測精度明顯提高.經誤差修正后,模型的MAPE、RMSE、MAE 分別為0.1289、18.7728、11.2148,均比原模型預測誤差低,表明誤差修正模塊能有效的提高模型的預測性能.

圖4 模型預測對比圖
空氣污染一般需要長時間的治理才能得到顯著效果,因此,提高空氣質量指數預測模型的精度,對人們身體健康和社會穩定具有重大的研究意義.本文從離群點檢測和誤差修正兩個角度來提高模型的預測性能.利用孤立森林對空氣質量數據進行離群點檢測,檢測結果表明數據集中存在一定數量的離群點,采用對離群點泛化性能更強的離群魯棒極限學習機模型對空氣質量進行預測來消除離群點的影響,并對模型預測值進行誤差修正.根據平均絕對百分誤差(MAPE)、均方根誤差(RMSE)、平均絕對誤差(MAE)3 個評價指標,得出離群魯棒極限學習機模型對存在離群點的樣本數據泛化性能更強,經過誤差修正后,預測誤差降低,表明誤差修正能有效的提高模型的預測性能.而對于空氣污染程度不同的城市,該模型是否能對空氣質量指數進行有效的預測以及更長的預測時間都是后續需要進一步研究的內容.