張 勤,郭進利
(上海理工大學管理學院,上海 200093)
中共中央總書記、國家主席、中央軍委主席習近平在2018 年全國生態(tài)環(huán)境保護大會上強調(diào),要堅決打好污染防治攻堅戰(zhàn),推動生態(tài)文明建設邁上新臺階[1]。空氣是地球大氣層中的氣體混合,也是人類賴以生存的自然資源之一。21 世紀以來,空氣污染已成為人類面臨的重大課題。因此,建立全面且準確的空氣質(zhì)量預測模型極為重要,這既可為市民出行提供建議,也能夠在一定程度上幫助相關(guān)部門作決策。
在已有研究中,各領(lǐng)域?qū)W者以各自的角度通過不同的方法分析影響空氣質(zhì)量的主要因素,并對其進行預測。研究方法也多種多樣,從線性回歸、時間序列模型,到近年來比較熱門的機器學習、深度學習等,都較為常用。胡玉筱等[2]采用高斯煙羽模型仿真西安市PM2.5 的擴散規(guī)律后,結(jié)合氣象因素數(shù)據(jù)構(gòu)造多元線性回歸模型以進行PM2.5的演變預測;王建書等[3]借助ARIMA 模型對蘇州市空氣質(zhì)量指數(shù)進行預測;楊思琪等[4]基于隨機森林算法的分類與回歸功能,采用交叉驗證法構(gòu)建空氣質(zhì)量預測模型;郭慶春等[5]應用BP 神經(jīng)網(wǎng)絡模型預測大氣污染,得到空氣污染指數(shù)API 的非線性時間序列神經(jīng)網(wǎng)絡模型;程蓉等[6]基于神經(jīng)隨機森林算法構(gòu)建一個局部空氣質(zhì)量預測模型;李翔[7]構(gòu)建GAB 迭代算法和模糊BP 神經(jīng)網(wǎng)絡組合預測模型;康兵兵等[8]提出深度棧式自編碼模型,選擇PM2.5、PM10等氣象因素數(shù)據(jù)作為樣本,建立最優(yōu)空氣預測模型。
近年來,機器學習研究備受關(guān)注,并已成為人工智能的核心研究領(lǐng)域之一。但在對空氣質(zhì)量或者氣象因子濃度進行預測時,絕大多數(shù)專家學者往往只應用一種機器學習算法,而在空氣污染及其相關(guān)問題上鮮少有文章對幾類機器學習算法進行同一維度上的比較分析。鑒于空氣污染物濃度的非線性特征,本文考慮采用較熱門的幾類機器學習方法對上海市空氣質(zhì)量等級進行預測[9],分別構(gòu)建基于BP 神經(jīng)網(wǎng)絡算法、決策樹算法、支持向量機算法的上海市空氣質(zhì)量預測模型。其中,設置2016 年1 月1 日-2020年12 月31 日上海市空氣質(zhì)量數(shù)據(jù)作為訓練集和測試集對模 型進行訓練,2021 年1 月1 日-2021 年3 月31 日相關(guān)數(shù)據(jù)作為檢驗數(shù)據(jù)集以檢驗模型有效性,將前一日的PM2.5、PM10、O3、SO2、NO2、CO 共6 項氣象因素數(shù)據(jù)、前日空氣質(zhì)量指數(shù)及相關(guān)數(shù)據(jù)作為輸入變量,當日空氣質(zhì)量指數(shù)數(shù)據(jù)作為輸出變量,最終將3 者的預測結(jié)果進行對比。本文所構(gòu)建的3 個模型能夠為市民提供次日空氣質(zhì)量為“優(yōu)”“良”“輕度污染”“中度污染”“重度污染”或者“重污染”的預警報告。
本研究選取目前預測及分類問題中應用較廣泛且準確度較高的BP 神經(jīng)網(wǎng)絡、決策樹以及支持向量機模型構(gòu)建上海市空氣質(zhì)量預測模型。
1.1.1 BP神經(jīng)網(wǎng)絡
在預測問題中,BP 神經(jīng)網(wǎng)絡是目前應用最廣泛的機器學習算法之一。它是一種多層前饋神經(jīng)網(wǎng)絡,該網(wǎng)絡采用誤差逆?zhèn)鞑ニ惴?,也稱BP 算法,即信號是前向傳播的,而誤差是反向傳播的[10]。正向傳播時,輸入數(shù)據(jù)通過第一層輸入層進入網(wǎng)絡,依次經(jīng)過隱含層,最后到達輸出層得到模擬輸出值。若模擬輸出值與期望輸出值不同,則將其誤差平方和作為神經(jīng)網(wǎng)絡的誤差并轉(zhuǎn)至第二個過程,即誤差反向傳播過程。誤差反向傳播時,誤差將按原路反傳并分攤給各層的所有單元,進而得到各層各神經(jīng)元的誤差信號,該信號是更新各單元權(quán)值的依據(jù)[11]。上述信號正向傳播和誤差反向傳播兩個過程不斷循環(huán)進行以逼近期望輸出,直到誤差減少到允許的程度或者訓練次數(shù)達到預先設定的學習次數(shù)[12]。
在本研究中,利用訓練好的BP 神經(jīng)網(wǎng)絡對2021 年1-3 月每日空氣質(zhì)量指數(shù)進行預測后,根據(jù)空氣質(zhì)量指數(shù)分級表對輸出值進行分類,得到最終預測分類結(jié)果。
1.1.2 CART決策樹
決策樹方法被廣泛應用于分類、預測等領(lǐng)域,它通過對訓練集的學習,在每個節(jié)點上選擇出最優(yōu)屬性進行分類[13]。決策樹算法包括ID3 算法、C4.5 算法、CART 算法等。前兩者用于分類,基于CART 算法構(gòu)建的決策樹不僅可以用于分類還可用于回歸。ID3 算法使用信息增益選擇特征,C4.5算法的特征選擇準則為信息增益比,而CART 決策樹在進行分類時,選擇基尼系數(shù)作為特征選擇的原則[14]。
本研究主要使用基于CART 算法的決策樹對上海市空氣質(zhì)量評價進行預測分類。
1.1.3 支持向量機
支持向量機(Support Vector Machine,SVM)作為一種分類算法,主要用于解決二分類問題,其基本思想是求解一個能夠正確劃分訓練數(shù)據(jù)集且最大化幾何間隔的分離超平面。在實際應用中,往往需要解決多分類問題,若將該算法推廣到多分類問題,即訓練樣本集為X={(x1,y1),(x2,y2),…,(xN,yN)},類標簽yn∈{1,2,…,M},n=1,2,…,N時,支持向量機所使用的基本方法有所不同[15]。本文主要涉及兩類方法,分別為一對一分類方法(也稱為成對分類方法)和一對多分類方法。
一對一分類方法指在任意兩個類別之間構(gòu)造一個支持向量機分類器。因此,若類標簽集合中有M 個元素,則需要構(gòu)造M(M-1)/2 個分類器。對未知的測試樣本進行分類時,這些構(gòu)造好的分類器會依次對該樣本進行分類,該過程可以視為每個分類器對分類結(jié)果進行一次投票,最終將票數(shù)最多的類別作為該未知樣本的類別[16]。
一對多分類方法指按序依次將某個類別的樣本歸為一類,其余樣本歸為另一類[17]。因此,若類標簽集合中有M 個元素,則需要構(gòu)造M 個支持向量機分類器。對未知的測試樣本進行分類時,這些構(gòu)造好的M 個分類器會依次對該樣本進行分類并得出對應的分類函數(shù)值,其中具有最大分類函數(shù)值的類別即為該未知樣本的類別。該方法的主要缺點是訓練和測試速度較慢且當測試樣本不屬于這M個類別時,則會被錯誤分類[18]。
基于一對一及一對多分類方法、線性核以及高斯核函數(shù),本研究共建立4 個支持向量機模型并對其進行訓練,將訓練好的模型在待預測樣本集上進行預測。
為有效預測空氣質(zhì)量,本文提出基于3 類機器學習算法的上海市空氣質(zhì)量預測模型。本文研究框架如圖1所示。
首先,以上海市空氣質(zhì)量為研究對象獲取2016 年1 月1 日-2021 年3 月31 日的PM2.5、PM10、O3、SO2、NO2、CO 這6項氣象因素數(shù)據(jù)和空氣質(zhì)量評價結(jié)果;然后,對數(shù)據(jù)集進行劃分,設置2016 年1 月1 日-2020 年12 月31 日上海市空氣質(zhì)量數(shù)據(jù)作為訓練集和測試集,2021 年1 月1 日-2021年3 月31 日相關(guān)數(shù)據(jù)作為檢驗數(shù)據(jù)集以檢驗模型有效性;接著,對各模型調(diào)參后分別進行訓練;最后,利用訓練好的基于不同算法的預測模型對檢驗集上的上海市空氣質(zhì)量數(shù)據(jù)進行預測分類。
Fig.1 Research framework圖1 研究框架
2.1.1 樣本數(shù)據(jù)時間確定
上海市人大常委會于第二十六次會議表決通過的《上海市煙花爆竹安全管理條例(修訂草案)》明確提出,禁止在外環(huán)線以內(nèi)區(qū)域、外環(huán)線以外8 類場所燃放煙花爆竹;在禁放區(qū)域內(nèi)不得經(jīng)營、儲存、運輸煙花爆竹,并且該條例于2016年元旦起實施。
因此,為保證樣本的可靠性和一致性,本文采集的樣本觀測數(shù)據(jù)均為2016年1月1日及以后。
2.1.2 數(shù)據(jù)來源
本文從上海市生態(tài)環(huán)境局(https://sthj.sh.gov.cn/)選取上海市2016 年1 月1 日-2021 年3 月31 日的細顆粒物(PM2.5)、可吸入顆粒物(PM10)、臭氧(O3)、二氧化硫(SO2)、二氧化氮(NO2)、一氧化碳(CO)這6 種重要的空氣質(zhì)量指標、空氣質(zhì)量指數(shù)(Air Quality Index)以及每日的質(zhì)量評價結(jié)果。其中,本文將2016 年1 月1 日-2020 年12 月31 日的數(shù)據(jù)作為訓練數(shù)據(jù),將2021 年1 月1 日-2021 年3 月31 日的數(shù)據(jù)作為預測數(shù)據(jù),以檢驗所建模型的有效性和準確性。
本文將前一日的PM2.5、PM10、O3、SO2、NO2、CO 這6 種重要的空氣質(zhì)量指標和前一日的空氣質(zhì)量指數(shù)作為輸入變量,將相應的每日質(zhì)量評價結(jié)果作為待預測的輸出變量。
2.1.3 因變量預處理
本文將空氣質(zhì)量評價作為待處理因變量,根據(jù)空氣污染指數(shù)AQI將空氣質(zhì)量分為6個等級[19],如表1所示。
Table 1 Air pollution index and corresponding air quality grade表1 空氣污染指數(shù)及對應的空氣質(zhì)量等級
根據(jù)表1,將所選的1 914 組樣本分為6 組,其中空氣質(zhì)量評價=1(優(yōu))的天數(shù)為524 個,占比27.38%;空氣質(zhì)量評價=2(良)的天數(shù)為1 080 個,占比56.43%;空氣質(zhì)量評價=3(輕度污染)的天數(shù)為265 個,占比13.85%;空氣質(zhì)量評價=4(中度污染)的天數(shù)為38 個,占比1.99%;空氣質(zhì)量評價=5(重度污染)的天數(shù)為7 個,占比0.37%;無空氣質(zhì)量評價=6(重污染)的數(shù)據(jù)樣本。
本文采用3 層BP 神經(jīng)網(wǎng)絡模型,即隱含層層數(shù)為1。將PM2.5、PM10、O3、SO2、NO2、CO 這6 項空氣質(zhì)量指標以及前日空氣質(zhì)量指數(shù)數(shù)據(jù)作為BP 神經(jīng)網(wǎng)絡模型的7 個輸入層變量,當日空氣質(zhì)量指數(shù)作為該模型的輸出變量。根據(jù)經(jīng)驗公式確定隱含層節(jié)點個數(shù),其中n 為輸入層節(jié)點個數(shù),q為輸出層節(jié)點個數(shù),a為1~10的整數(shù),m為隱含層節(jié)點個數(shù)[20]。因此,m 的取值范圍為3~13。
本研究將2016 年1 月至2020 年12 月上海市空氣質(zhì)量數(shù)據(jù)作為訓練樣本,利用Matlab 軟件作為實驗平臺,設置訓練集、驗證集和測試集劃分比例為70∶15∶15,訓練函數(shù)為Levenberg-Marquardt 函數(shù),性能函數(shù)為MSE,最大訓練次數(shù)為1 000。
為確定隱含層節(jié)點數(shù),采用試湊法對不同隱含層節(jié)點數(shù)進行逐一判斷。對基于不同隱含層節(jié)點數(shù)的11 個BP 神經(jīng)網(wǎng)絡模型分別訓練3 次,并計算該11 個模型3 次訓練過程的均方誤差的平均值。結(jié)果發(fā)現(xiàn),當隱含層節(jié)點個數(shù)設置為13 時,其平均相對誤差最小。因此,本文構(gòu)建的BP 神經(jīng)網(wǎng)絡模型的隱含層節(jié)點個數(shù)為13。
利用訓練好的BP 神經(jīng)網(wǎng)絡對2021 年1-3 月每日空氣質(zhì)量指數(shù)進行預測后,根據(jù)空氣質(zhì)量指數(shù)分級表對輸出值進行分類,得到最終預測結(jié)果。神經(jīng)網(wǎng)絡測試集混淆矩陣如表2 所示。由于在2021 年1-3 月期間,上海市空氣質(zhì)量評價結(jié)果及各模型預測結(jié)果僅存在“優(yōu)”“良”“輕度污染”“中度污染”4 種情況,因此在后續(xù)模型建立及混淆矩陣中,僅考慮這4類空氣質(zhì)量評價結(jié)果。
Table 2 Confusion matrix of prediction results based on BPNN表2 BP神經(jīng)網(wǎng)絡預測結(jié)果的混淆矩陣
由表2 可以看出,BP 神經(jīng)網(wǎng)絡預測為1,而真實情況也為1 的有7 次;預測為2,真實情況為1 的有20 次;預測為1,真實情況為2 的有1 次;預測為2,而真實情況也為2 的有55 次;預測為3,而真實情況為2 的有4 次;預測為1,而真實情況為3 的有1 次;預測為2,真實情況為3 的有1 次;預測為2,真實情況為4的有1次。
綜上,在90 組待預測數(shù)據(jù)中存在62 組數(shù)據(jù)的預測結(jié)果與真實結(jié)果一致,因此該模型總體預測準確率為68.89%。
利用Matlab 中Classification Learner 模塊下的決策樹算法,采用10 折交叉驗證,設置輸入變量為前一日的6 項空氣質(zhì)量指標以及前一日的空氣質(zhì)量評價等級,包括“1=空氣質(zhì)量為優(yōu)”、“2=空氣質(zhì)量為良”、“3=輕度污染”、“4=中度污染”、“5=重度污染”,設置輸出變量為當日空氣質(zhì)量評價等級,對決策樹模型進行訓練,訓練時長為4.087 7s。利用訓練好的模型對2021 年1 月至3 月的樣本數(shù)據(jù)集進行預測,預測結(jié)果對應的混淆矩陣見如表3所示。
Table 3 Confusion matrix of prediction results based on decision tree表3 決策樹算法預測結(jié)果的混淆矩陣
由表3 可以看出,決策樹算法預測為1,而真實情況也為1 的有13 次;預測為2,真實情況為1 的有13 次;預測為3,真實情況為1 的有1 次;預測為1,真實情況為2 的有3次;預測為2,而真實情況也為2 的有54 次;預測為3,真實情況為2 的有3 次;預測為2,真實情況為3 的有2 次;預測為2,真實情況為4的有1次。
綜上,在90 組預測數(shù)據(jù)中存在67 組數(shù)據(jù)的預測結(jié)果與真實結(jié)果一致,因此該模型總體預測準確率為74.44%。
基于Matlab 中Classification Learner 工具箱的支持向量機算法,采用10 折交叉驗證,分別將線性核和高斯核作為核函數(shù),這是因為核函數(shù)及參數(shù)選取很大程度上能夠決定支持向量機性能優(yōu)劣。分別基于一對一分類方法及一對多分類方法的支持向量機模型進行訓練后,將訓練好的模型在待預測樣本集上進行預測。這4 類模型訓練時間以及對訓練數(shù)據(jù)集的預測準確率如表4所示。
Table 4 Model training time and training accuracy表4 模型訓練時間及訓練準確率
由表4 可知,構(gòu)建一個基于線性核函數(shù)和一對多分類方法的支持向量機模型所需要的訓練時間最長,為10.883s,但該模型的訓練準確率最差,為59.9%;構(gòu)建一個基于高斯核函數(shù)和一對一分類方法的支持向量機模型所需的訓練時間最短,然而該模型訓練準確率最優(yōu),為61.3%。
4 個基于不同核函數(shù)及不同分類方法的支持向量機模型輸出的混淆矩陣如表5—表8所示。
Table 5 Confusion matrix of SVM based on linear kernel and oneagainst-one classification method表5 基于線性核及一對一分類方法的SVM預測結(jié)果混淆矩陣
由表5 可以看出,基于線性核及一對一分類方法的支持向量機預測為1,而真實情況也為1 的有19 次;預測為2,真實情況為1 的有8 次;預測為1,真實情況為2 的有8次;預測為2,而真實情況也為2 的有52 次;預測為2,真實情況為3的有2次;預測為2,真實情況為4的有1次。
綜上,在90 組預測數(shù)據(jù)中存在71 組數(shù)據(jù)的預測結(jié)果與真實結(jié)果一致,因此該模型總體預測準確率為78.89%。
Table 6 Confusion matrix of SVM based on linear kernel and oneagainst-all classification method表6 基于線性核以及一對多分類方法的SVM預測結(jié)果混淆矩陣
由表6 可以看出,基于線性核及一對多分類方法的支持向量機預測為1,而真實情況也為1 的有19 次;預測為2,真實情況為1 的有8 次;預測為1,真實情況為2 的有7次;預測為2,而真實情況也為2 的有53 次;預測為2,真實情況為3的有2次;預測為2,真實情況為4的有1次。
綜上,在90 組預測數(shù)據(jù)中存在72 組數(shù)據(jù)的預測結(jié)果和真實結(jié)果一致,因此該模型的總體預測準確率為80%。
由表7 可以看出,基于高斯核及一對一分類方法的支持向量機預測為1,而真實情況也為1 的有14 次;預測為2,真實情況為1 的有13 次;預測為1,真實情況為2 的有3次;預測為2,而真實情況也為2 的有57 次;預測為2,真實情況為3的有2次;預測為2,真實情況為4的有1次。
Table 7 Confusion matrix of SVM based on Gauss kernel and oneagainst-one classification method表7 基于高斯核及一對一分類方法的SVM預測結(jié)果混淆矩陣
綜上,在90 組預測數(shù)據(jù)中存在71 組數(shù)據(jù)預測結(jié)果和真實結(jié)果一致,因此該模型的總體預測準確率為78.89%。
Table 8 Confusion matrix of SVM based on Gauss kernel and oneagainst-all classification method表8 基于高斯核以及一對多分類方法的SVM預測結(jié)果混淆矩陣
由表8 可以看出,基于高斯核以及一對多分類方法的支持向量機預測為1,而真實情況也為1 的有16 次;預測為2,真實情況為1 的有11 次;預測為1,真實情況為2 的有6次;預測為2,而真實情況也為2 的有54 次;預測為2,真實情況為3的有2次;預測為2,真實情況為4的有1次。
綜上,在90 組預測數(shù)據(jù)中存在70 組數(shù)據(jù)預測結(jié)果和真實結(jié)果一致,因此該模型的總體預測準確率為77.78%。
將基于3 類機器學習算法的6 個上海市空氣質(zhì)量模型的預測結(jié)果綜合后,如表9所示。
Table 9 Air pollution level prediction results of each model表9 各模型的空氣質(zhì)量等級預測結(jié)果
從表9 中可以看出,在真實樣本中,存在1 個“4=空氣質(zhì)量為中度污染”的數(shù)據(jù),而6 個模型的預測結(jié)果中均不存在“4=空氣質(zhì)量為中度污染”的預測結(jié)果。結(jié)合表2—表8 可以發(fā)現(xiàn),當空氣質(zhì)量為良時,預測值和真實值的重合度高,這是因為參與機器學習訓練和測試的數(shù)據(jù)集中有56.43%的樣本空氣質(zhì)量等級為良。同時,“空氣質(zhì)量為優(yōu)”占27.38%,“空氣質(zhì)量為輕度污染”“空氣質(zhì)量為中度污染”“空氣質(zhì)量為重度污染”的樣本類型共占16.21%,由于后幾類樣本的數(shù)據(jù)較少,因此構(gòu)建的機器學習模型對其預測能力較弱,這也會對模型的整體預測精度產(chǎn)生影響,說明樣本的選取會對模型預測效果產(chǎn)生一定影響。
利用3 種機器學習方法對于2021 年1-3 月上海市空氣質(zhì)量評價進行預測得到的預測結(jié)果如表10所示。
Table 10 Comparison of prediction results of each method表10 各類方法的預測結(jié)果對比
由表10 可知,基于3 類機器學習算法構(gòu)建的預測模型預測精度都較高,均達68%以上,這說明利用機器學習方法進行上海市空氣質(zhì)量預測是有效的。其中,4 類基于不同核函數(shù)和分類方法的支持向量機的預測精度最高,其中,基于線性核函數(shù)和一對多分類方法的支持向量機預測準確率最高,為80.00%,基于高斯核函數(shù)和一對多分類方法的支持向量機準確率相對于其它3 類支持向量機模型預測效果較差,預測準確率為77.78%。除支持向量機模型外,CART 決策樹的預測準確率為74.44%,BP 神經(jīng)網(wǎng)絡的預測效果最差,僅為68.89%。
本文通過對2016 年1 月1 日-2020 年12 月31 日空氣質(zhì)量數(shù)據(jù)的分析,得到以下結(jié)論:
(1)將前一日的6 項空氣質(zhì)量指標數(shù)據(jù)和空氣質(zhì)量指數(shù)作為機器學習模型的輸入變量,可以很好地預測當日空氣質(zhì)量評價結(jié)果,其中支持向量機的預測精度最高,CART決策樹次之,預測準確率最差的是BP 神經(jīng)網(wǎng)絡,為68.89%。這也證明了在上海市空氣質(zhì)量評價結(jié)果預測問題上,支持向量機的預測能力要優(yōu)于BP 神經(jīng)網(wǎng)絡及CART決策樹。
(2)在4 類基于不同核函數(shù)和分類方法的支持向量機模型中,基于線性核函數(shù)和一對多分類方法的支持向量機預測準確率最高,為80.00%,基于高斯核函數(shù)和一對多分類方法的支持向量機準確率相對于其它3 類支持向量機模型預測效果較差,預測準確率為77.78%。
(3)當空氣質(zhì)量為良時,本文所構(gòu)建模型的預測值和真實值重合度高。在真實樣本中,存在1 個“空氣質(zhì)量為中度污染”的數(shù)據(jù),而6 個模型的預測結(jié)果中均不存在“4=空氣質(zhì)量為中度污染”的預測結(jié)果。因此,樣本量會對機器學習模型的預測結(jié)果產(chǎn)生一定影響。
(4)本文構(gòu)建的機器學習模型是以每日上海市空氣質(zhì)量等級為預測對象,而空氣質(zhì)量指數(shù)存在一定的季節(jié)變化特征。今后還需在擴大樣本量的同時,基于四季分別建立預測模型。
(5)本文針對空氣質(zhì)量評價結(jié)果的預測僅考慮了細顆粒物(PM2.5)、可吸入顆粒物(PM10)、臭氧(O3)、二氧化硫(SO2)、二氧化氮(NO2)、一氧化碳(CO)這6 項空氣質(zhì)量指標。今后還需考慮污染源排放、人類活動、區(qū)域環(huán)境等更多可能會對當?shù)乜諝赓|(zhì)量產(chǎn)生影響的因素。
為解決上海市空氣污染問題,本文提出以下建議:①建立全方位管理機制,聯(lián)合政府、技術(shù)、環(huán)保行政等多個有關(guān)部門對空氣污染問題進行有效管理和監(jiān)控的同時,深化完善加強大氣污染聯(lián)防聯(lián)控工作機制;②充分利用現(xiàn)有的研究基礎(chǔ),結(jié)合各領(lǐng)域、各行業(yè)的知識和技術(shù)針對空氣質(zhì)量和空氣污染問題建立有效的預警系統(tǒng)。