韓存鑫,陳 超,黃樂成
(四川輕化工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,四川宜賓 644000)
大氣微粒包括PM2.5和PM10是指空氣動力學(xué)當(dāng)量直徑分別小于2.5 mm 和10 mm 的氣溶膠微粒,其主要成分為有機(jī)碳和元素碳,是致癌物質(zhì)。碳質(zhì)氣溶膠含量的增加與心血管病死亡率和發(fā)病率的相關(guān)性顯著,對人類身體健康狀況具有極大的影響[1-3]。鑒于大氣微粒對人體健康的巨大威脅,一系列大氣治理措施,大氣污染防治計(jì)劃、打贏藍(lán)天保衛(wèi)戰(zhàn)三年計(jì)劃等相繼頒布,PM2.5濃度的預(yù)測對大氣治理具有重要的參考意義。
近年來,對PM2.5濃度的預(yù)測主要包括基于統(tǒng)計(jì)學(xué)模型預(yù)測方法和基于機(jī)器學(xué)習(xí)的回歸模型預(yù)測方法。Huang等[4]對長沙PM2.5進(jìn)行研究并建立回歸模型,發(fā)現(xiàn)其濃度存在季節(jié)性波動。萬永權(quán)等[5]考慮了氣象參數(shù)與污染物之間的相關(guān)性,引入了5 個氣象參數(shù),利用人工神經(jīng)網(wǎng)絡(luò)獲得了更好的預(yù)測結(jié)果。孔宇等[6]使用隨機(jī)森林和梯度提升樹分別建立了PM2.5預(yù)測模型較符合PM2.5真實(shí)趨勢。戴李杰等[7]提出的SVM模型與多元線性回歸模型等相比,提高了PM2.5未來1 h濃度預(yù)報(bào)準(zhǔn)確度。李棟等[8]使用自回歸分布滯后模型、果蠅優(yōu)化算法、核極限學(xué)習(xí)機(jī)的PM2.5日均濃度混合預(yù)測模型得到擬合度較高的預(yù)測模型。楊云等[9]使用遺傳算法優(yōu)化的BP 神經(jīng)網(wǎng)絡(luò)的預(yù)測結(jié)果比普通BP神經(jīng)網(wǎng)絡(luò)具有更高的準(zhǔn)確度。任才溶等[10]考慮了PM2.5的時(shí)空關(guān)聯(lián)性,使用k-means 對太原測量站進(jìn)行聚類后分別建模,對PM2.5等級預(yù)測具有較好的準(zhǔn)確度、召回率與F值。Chang等[11]對不同時(shí)間點(diǎn)計(jì)算基礎(chǔ)模型的Person 相關(guān)系數(shù)并選擇最高相關(guān)系數(shù)的基礎(chǔ)模型建立混合模型,模型對PM2.5的預(yù)測能力得到提升。
在對PM2.5預(yù)測中多數(shù)使用單模型預(yù)測,或者是對單一模型進(jìn)行疊加。模型的疊加使得模型的預(yù)測性能有一定的提升,為進(jìn)一步提升模型的預(yù)測性能,本文提出一種基于貝葉斯優(yōu)化的Bagging 和Stacking 相結(jié)合的集成模型,將Bagging 算法加權(quán)后的模型再使用Stacking進(jìn)行疊加得到集成模型,使用貝葉斯優(yōu)化尋找最優(yōu)超參數(shù)。實(shí)驗(yàn)證明,Bagging-Stacking 集成模型可以提高模型的預(yù)測準(zhǔn)確性,有更好的預(yù)測效果。
機(jī)器學(xué)習(xí)中提高模型預(yù)測能力需要對超參數(shù)進(jìn)行優(yōu)化,使用高斯過程優(yōu)化采樣函數(shù)的貝葉斯優(yōu)化算法有助于超參數(shù)的調(diào)優(yōu)過程,且節(jié)省大量時(shí)間。貝葉斯優(yōu)化算法步驟如下:
步驟1數(shù)據(jù)集D={(X1,y1),(X2,y2),…,(Xn,yn)},并有yn=f(Xi)。其中Xi={x1,x2,…,xn}為超參數(shù)組合,xn為第n個超參數(shù)。
步驟2使用高斯過程優(yōu)化的采樣函數(shù),選取下一個采樣點(diǎn)

式中:Φ 為累計(jì)概率分布;μ 為均值;σ 為標(biāo)準(zhǔn)差;X+為之前查找的位置;ε 為偏執(zhí)。尋求目標(biāo)函數(shù)最大的超參數(shù)組合Xi。
步驟3將Xi代入進(jìn)行訓(xùn)練計(jì)算出yi。
步驟4對數(shù)據(jù)集進(jìn)行更新操作

步驟5重復(fù)步驟2~4 直到收斂或者達(dá)到預(yù)算。
單學(xué)習(xí)器的學(xué)習(xí)能力具有一定的局限性,以單學(xué)習(xí)器構(gòu)建的預(yù)測模型往往預(yù)測能力偏弱。一組訓(xùn)練性能相似的分類器可能具有不同的泛化性能,通過平均來組合多個分類器的輸出可降低選擇到性能差的分類器的風(fēng)險(xiǎn)。平均值可能不會超過集合中最佳分類器的性能,但它肯定會降低做出特別差選擇的總體風(fēng)險(xiǎn)[12]。集成學(xué)習(xí)算法是通過一定的整合策略整合多個單學(xué)習(xí)器,得到一個預(yù)測準(zhǔn)確度更高的強(qiáng)學(xué)習(xí)器。文獻(xiàn)[13-14]中的研究也表明集成學(xué)習(xí)算法的模型預(yù)測結(jié)果更優(yōu)。
Bagging算法,又稱為裝袋法,Bagging 對同一種單學(xué)習(xí)器進(jìn)行bootstrap的抽樣訓(xùn)練,獲得多個不同的單學(xué)習(xí)器,并使用每個學(xué)習(xí)器進(jìn)行預(yù)測,將所有學(xué)習(xí)器的預(yù)測結(jié)果進(jìn)行加權(quán)得到最終預(yù)測結(jié)果。Bagging 可提高算法的準(zhǔn)確性和穩(wěn)定性,并降低過擬合的風(fēng)險(xiǎn)。
Stacking處理單學(xué)習(xí)器的輸出結(jié)果是使用學(xué)習(xí)法,Stacking共分為2 層,第1 層采用多個不同的單學(xué)習(xí)器,按照交叉驗(yàn)證的折數(shù)k將訓(xùn)練集劃分為k份,并分別使用k-1 份進(jìn)行模型訓(xùn)練,對剩余的1 份和測試集分別進(jìn)行預(yù)測,重復(fù)k次后將每次訓(xùn)練集中剩余的1 份的預(yù)測結(jié)果橫向拼接,再將k次的測試集預(yù)測結(jié)果求平均值,都輸入到第2 層。第2 層將第1 層的輸入進(jìn)行縱向的拼接,分別作為第2 層的訓(xùn)練集和測試集,訓(xùn)練出模型后,再對測試集進(jìn)行預(yù)測,最后輸出結(jié)果。
通常Stacking模型都是將單學(xué)習(xí)器作為第1 層的基礎(chǔ)學(xué)習(xí)器,本文選取SVM,XGBoost,AdaBoost 作為Bagging的基礎(chǔ)學(xué)習(xí)器,得到3 種Bagging 加權(quán)的模型Bagging-SVM、Bagging-XGBoost 和Bagging-AdaBoost,再將這3 種模型作為Stacking 第1 層的基礎(chǔ)學(xué)習(xí)器,并再次將Bagging-XGBoost 作為Stacking 第2 層的基學(xué)習(xí)器對第1 層3 種模型的預(yù)測結(jié)果進(jìn)行擬合,得到最終的Bagging-Stacking集成模型。
集成模型算法步驟如下:
步驟1將訓(xùn)練集Train 分為5 份,用4 份作為Stacking第1 層模型訓(xùn)練數(shù)據(jù)輸入。
步驟2初始化基模型ζ 和Bagging 的訓(xùn)練輪數(shù)T。
步驟3采樣建模,并對輸入數(shù)據(jù)進(jìn)行預(yù)測

式中:D為輸入數(shù)據(jù);Dbs為bootstrap 采樣數(shù)據(jù);t∈{1,2,…,T}。
步驟4重復(fù)步驟3,直到t=T。加權(quán)求平均值

步驟5重復(fù)步驟2~4,進(jìn)行5 折交叉驗(yàn)證,將5次對Train 剩余1 份的預(yù)測結(jié)果橫向拼接記為TrainingData,并將5 次對測試集Test的預(yù)測求均值。
步驟6重復(fù)步驟5 得到3 個Bagging 模型的輸出。并將3 次得到的TrainingData 和Test進(jìn)行縱向拼接,輸入Stacking的第2 層。
步驟7令ζ =XGBoost,重復(fù)步驟2~4,然后進(jìn)行預(yù)測。
相關(guān)性分析是一種度量影響因子之間的密切性的統(tǒng)計(jì)學(xué)方法,可反映出PM2.5與其他影響因子之間的依賴程度,通常使用Person 相關(guān)系數(shù)來表示2 個數(shù)據(jù)序列的相關(guān)性程度

式中,cov(X,Y)為X與Y的協(xié)方差。
計(jì)算PM2.5與PM10等其他污染物之間的Pearson相關(guān)系數(shù)結(jié)果,見表1。

表1 PM2.5與其他污染物相關(guān)系數(shù)
由表1 可知,PM2.5與PM10為正相關(guān),PM2.5與PM10呈現(xiàn)的強(qiáng)相關(guān)性說明PM2.5與PM10的來源具有一致性,源于相同的污染物[1]。PM2.5成分中包括硝酸鹽,SO2與NO2經(jīng)過化學(xué)反應(yīng)可生成二次硝酸鹽,SO2和NO2也成為影響PM2.5濃度的重要因素[15]。CO 與PM2.5也是正相關(guān),但O3與PM2.5呈現(xiàn)出負(fù)相關(guān),這是由于O3的生成需要紫外線等陽光輻射,而PM2.5會使陽光輻射降低[16]。
PM2.5與溫度、濕度、壓強(qiáng)、風(fēng)速之間的Pearson 相關(guān)系數(shù),見表2。

表2 PM2.5與氣象因子的相關(guān)系數(shù)
由表2 可知,PM2.5的濃度與溫度、濕度、風(fēng)速之間為負(fù)相關(guān),與壓強(qiáng)為正相關(guān)。氣象因子對PM2.5濃度有較大的影響,不同氣象因子對PM2.5濃度影響具有差異,相同的氣象因子在不同的數(shù)值條件下對PM2.5的影響程度也不同[5]。在污染物相同條件下,不同氣象因子條件對污染物的傳播、沉降、凝聚和稀釋也不同[10]。氣象因子條件的不同使得PM2.5濃度呈現(xiàn)不同的濃度差異,也是決定PM2.5濃度的關(guān)鍵因數(shù),一部分研究[17-18]也表明氣象因子與PM2.5之間存在密切關(guān)系。低溫情況下,大氣顆粒物不容易沉降和凝聚,風(fēng)速和大氣顆粒物呈現(xiàn)為梯度下降的負(fù)相關(guān)關(guān)系。
相鄰地點(diǎn)之間可能存在相似的地形、地貌,它們處在溫度、濕度和壓強(qiáng)等近乎相同的大氣環(huán)境中,它們的PM2.5濃度呈現(xiàn)出的變化趨勢和濃度高低等具有較高相似度。相近地點(diǎn)的污染物排放和傳播是在相似的大氣環(huán)境下進(jìn)行的,相近地點(diǎn)在一年時(shí)間中人類活動往往具有固定的規(guī)律,對PM2.5濃度的影響也呈現(xiàn)同波動規(guī)律,就是相近地點(diǎn)之間PM2.5濃度受到區(qū)域內(nèi)風(fēng)力影響,綜合上述幾點(diǎn),區(qū)域內(nèi)各地點(diǎn)之間的PM2.5呈現(xiàn)出強(qiáng)相關(guān)性[19]。相似的地貌特征和大氣環(huán)境,不僅僅局限于地理位置上相鄰的地點(diǎn),使用k-means 算法對不同地點(diǎn)進(jìn)行聚類分析,以提高模型預(yù)測的準(zhǔn)確度。
大氣污染數(shù)據(jù)集為中國科學(xué)院大氣物理研究所等單位發(fā)布的中國高分辨率大氣污染再分析數(shù)據(jù)集[20],包括6 項(xiàng)常規(guī)污染物PM2.5、PM10、SO2、NO2、O3、CO的濃度數(shù)據(jù)以及氣壓、濕度、氣溫、經(jīng)向風(fēng)、維向風(fēng)等。選取2017 年1 月1 日至2018 年12 月31 日的數(shù)據(jù),按經(jīng)緯度定位至62 個鄉(xiāng)、鎮(zhèn)和街道。并獲取定位點(diǎn)歷史天氣狀況相關(guān)信息,數(shù)據(jù)來源為中國天氣網(wǎng)(http:∥www.weather.com.cn/)。
PM2.5的濃度在相同的月份內(nèi)存在相似的規(guī)律,將數(shù)據(jù)按照月份進(jìn)行劃分。天氣狀況包括雨、陰、晴和多云,將天氣狀況進(jìn)行獨(dú)熱編碼,以提高算法預(yù)測的準(zhǔn)確性。對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,消除數(shù)據(jù)之間的數(shù)量級差距,統(tǒng)一量綱,可以提升模型的迭代收斂速度和預(yù)測準(zhǔn)確性

在進(jìn)行k-means聚類時(shí),k值需要人為指定,為達(dá)到最佳的聚類效果,對不同的k值計(jì)算聚類的輪廓系數(shù),如圖1 所示。

圖1 不同k值的輪廓系數(shù)
當(dāng)聚類的k=3 時(shí),擁有最高的輪廓系數(shù),聚類效果最佳。計(jì)算每個簇中單個樣本對象的輪廓系數(shù),如圖2 所示。

圖2 簇中每個對象的輪廓系數(shù)
虛線為平均輪廓系數(shù),可反映各個簇中達(dá)到平均值的樣本數(shù)量,用以反映聚類的總體效果。
數(shù)據(jù)包含某市18 個行政區(qū)域共62 個鄉(xiāng)、鎮(zhèn)和街道點(diǎn),使用k-means對62 個地點(diǎn)進(jìn)行聚類形成3 個簇聚類結(jié)果如圖3 所示。

圖3 某市62個地點(diǎn)聚類結(jié)果
結(jié)合該市的地形圖進(jìn)行分析可知,聚類與地形劃分基本吻合,大致為丘陵地帶為1 類,平原地帶以山脈為分割分為2 類。
采用統(tǒng)計(jì)誤差標(biāo)準(zhǔn)中的平均絕對誤差(MAE)、根均方誤差(RMSE)、確定系數(shù)(R2),作為模型預(yù)測能力的評價(jià)指標(biāo):

以聚類區(qū)域A 中的PM2.5預(yù)測結(jié)果為例,選取測試集中前81 條數(shù)據(jù),各個模型的預(yù)測值與真實(shí)值的對比情況如圖4 所示。

圖4 A區(qū)域81個預(yù)測值與真實(shí)值對比
由圖8 可知,Bagging-Stacking 模型對真實(shí)值擬合程度最高,預(yù)測結(jié)果貼近真實(shí)值,在一些PM2.5濃度突變的點(diǎn)也都很好地?cái)M合,對PM2.5濃度變化趨勢預(yù)測較為準(zhǔn)確。
不同 模型對各地區(qū)的PM2.5預(yù)測結(jié)果的MAE、RMSE、R2見表3~5。

表3 A區(qū)域PM2.5預(yù)測評價(jià)指標(biāo)
由實(shí)驗(yàn)結(jié)果可見,在不同的地區(qū)中,Bagging 模型對PM2.5的預(yù)測結(jié)果要優(yōu)于對應(yīng)的單模型,而Bagging-Stacking集成模型的預(yù)測結(jié)果與真實(shí)值最為接近,具有更好的模型泛化性,擁有更準(zhǔn)確的預(yù)測結(jié)果。

表4 B區(qū)域PM2.5預(yù)測評價(jià)指標(biāo)

表5 C區(qū)域PM2.5預(yù)測評價(jià)指標(biāo)
本文針對某市的PM2.5的濃度預(yù)測問題,使用基于貝葉斯優(yōu)化的Bagging-Stacking 的集成模型。該模型融合污染物參數(shù)和氣象參數(shù),考慮污染物與氣象因素的相關(guān)性,不同地點(diǎn)之間的空間關(guān)聯(lián)性使用了kmeans算法進(jìn)行聚類分析,通過預(yù)測仿真與其他模型進(jìn)行對比表明,基于Bagging-Stacking集成模型擁有更低的MAE 和RMSE 以及更高的R2,能更為準(zhǔn)確的對PM2.5的濃度進(jìn)行預(yù)測。