杜英魁張乙芳原忠虎關 屏彭 躍
(1.沈陽大學信息工程學院 沈陽110000)(2.沈陽恒源偉業環境檢測服務有限公司 沈陽110000)(3.遼寧省環境監測實驗中心 沈陽110000)
隨著經濟的快速發展,大氣污染也逐日嚴重。沈陽作為東北老工業的重點城市,大氣環境質量也不容樂觀。2013年1月到2019年3月共75個月份,沈陽空氣質量月均指數(AQI)Ⅰ級(優)月數0個(0%),Ⅱ級(良)月數47個(62.7%),Ⅲ級(輕度污染)月數22個(29.3%),Ⅳ(中度污染)月數4個(5.3%),Ⅴ(重度污染)月數2個(2.7%)。大氣污染已經成為沈陽市迫在眉睫的問題。研究大氣污染濃度的變化,掌握其變化規律對大氣污染的治理、改善大氣污染是十分有必要的。
針對大氣污染物濃度預測問題,國內外學者提出了一系列的預測模型。騰浩宇[1]使用多元回歸模型預測PM2.5濃度,趙學敏[2]使用灰色GM(1,1)預測模型對北京市大氣污染濃度進行預測,但都沒有考慮大氣污染物濃度數據具有時序性和非線性的特點;岳鵬程[3]使用模糊時序和支持向量機對SO2濃度進行預測,解決了大氣污染物時序性特點,但支持向量機中的參數難以確定,參數的選取過于依賴主觀經驗[4];范竣翔[5]建立RNN空氣污染時空預報模型,RNN模型擅長處理連續的時間序列數據,但在運算過程中容易出現梯度消失問題。大氣污染物濃度數據采集過程中,存在數據質量層次不齊、存在異常值和缺失值等數據質量問題[6]。如果不能選擇合適的數據預處理方法,可能會對數據的分析結果產生嚴重偏差,因此數據預處理方法的選取顯得尤為重要。
本文利用LSTM模型擅長處理時序的、非線性數據的特點,具有適用性強、防止梯度消失等優點[7]。與不同缺失值處理方法相結合,建立LSTM空氣污染預測模型。主要工作包括:通過箱線圖法識別出各種污染物濃度數據中的異常值,并采用異常值視為缺失值的處理方法;使用均值替換法、回歸插補法以及多重插補法對數據進行數據預處理,比較三種缺失值處理方法的效果;建立LSTM預測模型,分別使用三種預處理后的數據進行訓練與檢驗,比較LSTM模型的精度。
本文所使用的沈陽市大氣污染物濃度數據,主要來源于國家空氣質量自動監測點位的空氣質量自動監測數據。所采集的沈陽市大氣污染物濃度數據具體為2016年11月1日 至2019年3月31日,共881天5286個大氣污染物濃度的日均值數據,主要包括顆粒物PM2.5,顆粒物PM10,二氧化硫(SO2),二氧化氮(NO2),一氧化氮(CO),臭氧(O3)六種污染物。
異常值的存在會對數據的計算分析帶來不良影響,本文采用箱線圖法分析采集數據中的異常值[8],箱線圖為我們提供了識別異常值的一個標準:異常值被定義為小于Q1-1.5IQR或大于Q3+1.5IQR的值[9],如圖1所示。據統計六種污染物異常值共為57個,占總數據的4.15%。同時采用異常值視為缺失值的方法,對異常值進行填補。

圖1 六種污染物異常值識別
數據收集的過程中,由于數據采集失誤、數據存儲失敗、機器損毀等原因會導致數據的不完整性。一般來說,缺失值的處理包括兩個步驟:即缺失值數據識別和缺失值處理。
原始數據缺失值的識別如圖2所示,按照不同類別和比例,展示了大氣污染物濃度原始數據的基本情況,淺色表示濃度值小,深色表示濃度值大,黑色表示缺失值。

圖2 原始數據缺失值識別
本文采集的大氣污染物濃度數據總量為5286條,缺失量為237,缺失率為5.38%。表1對原始數據缺失值進行了詳細統計。本文分別使用均值替換法、回歸插補法以及多重插補法[10],對缺失值進行處理,并比較其處理效果。

表1 缺失值統計
均值替換法保留了與缺失變量無關的其他變量的信息,最大程度上保證了數據真實性與完整性的特點[11]。即采用均值替換法分別計算出PM2.5均值為44、PM10均值為81、SO2均值為28、NO2均值為41、O3均值為53、CO均值為1。對污染物濃度數據進行均值替換法處理的頻數分布對比,如圖3所示。

圖3 均值替補法前后數據頻數分布圖
通過污染物變量與時間變量建立回歸模型,利用回歸方程的預測值對缺失數據進行回歸插補[12]。對污染物濃度數據進行回歸插補法處理的頻數分布對比,如圖4所示。

圖4 回歸插補法前后數據頻數分布圖
對原始數據進行多重插補,利用每一個插補值對缺失數據插補得到相應個數的完整樣本[13]。對污染物濃度數據進行均值替換法處理的頻數分布對比,如圖5所示。

圖5 多重插補法前后數據頻數分布圖
通過以上三種方法對原始數據時間序列集進行缺失值處理后,可明顯看出,處理后數據頻數發生了明顯變化。沈陽市六種污染物濃度變化的時間序列分布折線圖如圖6所示,六種污染物濃度變化趨勢具有較為明顯的周期性特征。其中PM2.5、PM10、SO2、NO2每年的11月份到次年的3月份濃度較高,主要原因是沈陽市仍然以燃煤為主,冬天采暖期煤的消耗量較大,供暖期的燃煤量是非供暖期的3倍[14],使得冬季這四種污染物濃度較高;每年2月至8月O3的濃度較高,主要原因是夏季沈陽市溫度較高,同時汽車保有量的迅速增加[15]也是O3濃度升高的原因之一。CO濃度值主要在(0,2)之間波動,對沈陽市空氣質量的影響較小,故本文不進行CO污染物濃度變化研究。

圖6 六種污染物濃度時間序列分布折線圖
長短期記憶網絡(Long Short-Term Memory Network,LSTM)是循環神經網絡(Recurrent Neural Network,RNN)的變形結構[16],在隱藏層各神經單元中增加單元狀態量,使時間序列上的記憶信息可控;在隱藏層各單元傳遞時通過遺忘門、輸入門、輸出門控制歷史信息與當前信息的記憶和遺忘程度。
本文采用三層神經網絡結構,輸入層和輸出層是通過實際情況而設計的,輸入層輸入數據為PM2.5、PM10、SO2、NO2、O3共五個特征變量,神經元個數為5;輸出層預測輸入層五個特征變量的濃度變化,神經元個數亦為5。
目前對于隱藏層神經元個數的選取沒有準確的算法公式,只能結合經驗公式和不斷進行試驗的方式來確定[17],經驗公式如下:

其中n為輸入層的神經元個數,n1為輸出層神經元個數,a是(1,10)范圍內的任意整數,M是隱藏層的神經元個數。由式(1)可得,M的取值范圍是(4,13),式(2)可得M取值為3,故隱含層的神經元個數范圍為(3,13)之間的整數,在這范圍內采用試湊法,對11種不同隱藏層神經元個數進行對比訓練,利用MAE和RMSE作為模型精度評價指標(式(3)和式(4)),找出最合適的隱藏層神經元個數為3。激活函數為Sigmoid,學習率(learningrate)設置為0.01,每次訓練輸入的樣本數(batch_size)為50,迭代次數(numepochs)為150次。

式中:MAE為平方絕對誤差,n為數據總個數,yi為數據的真實值,y?i為數據的預測值。

式中:RMSE為均方根誤差,n為數據總個數,yi為數據的真實值,y?i為數據的預測值。
通過三種不同數據預處理形成三組新的數據集,以及直接刪除缺失值的原始數據集,分別對這四組數據集進行歸一化處理,并分別選取2016年11月~2018年12月 數 據 作 為 訓 練 集,2019年1月~2019年3月數據作為測試集;利用前一天五種污染物濃度值作為模型輸入,后一天五種污染物濃度值作為模型輸出,進行LSTM模型仿真實驗,實驗結果如表2、表3所示。

表2 缺失值處理方法的預測精度評價指標MAE對比

表3 缺失值處理方法的預測精度評價指標RMSE對比
通過表2、表3可知,模型的隱藏層神經元個數為3時,模型的評價指標最好,并且不同缺失值的處理方法的評價指標也不同,故對缺失值處理方法與模型精準度進行排序如表4所示。

表4 隱藏層神經元個數為3的缺失值處理方法排序
通過以上分析可得:多重插補法的RMSE和MAE的值均為最小,模型的預測精度最高,而原始數據的預測精度最低。與原始數據相比,多重插補法的精準度評價指標MAE提高了22%,RMSE提高了13%,所以應采取多重插補法進行缺失值處理;圖7是采用多重插補法的LSTM模型對五種污染物濃度的原始數據與預測結果的曲線對比圖,可以看出該模型對污染物濃度的變化趨勢預測較好,根據模型計算出MAE誤差約為13.3,預測值與實際值擬合較好,同時具有良好的泛化能力。

圖7 多重插補法的LSTM預測模型對圖
通過對沈陽市8個國控站點數據的采集、處理和挖掘,得出沈陽的主要污染物是PM25、PM10、SO2、NO2、O3,同時污染物濃度變化具有一定的周期性。本文建立三層LSTM時間序列模型可以精確地預測五種污染物濃度,實驗結果表明通過數據和缺失值預處理,可以有效提高預測精度,其中多重插補法的精度提升最高。本文對于LSTM模型的隱藏層神經元個數設置,采用的是經驗公式法和試湊法的結合,因此隱藏層神經元的最優個數的選取上仍然有進一步優化的空間。