□文/石友山
(西安財經大學 陜西·西安)
[提要] 支持向量機(SVM)是一種監督學習的方法,以統計學習理論為基礎,主要用于進行分類和回歸分析,是處理非線性回歸的一種有效方法。近年來,西安霧霾事件頻發,由于霧霾預測含有大量的非線性因素。對此,本文綜合考慮濕度、溫度、風級、實際二氧化硫濃度、二氧化氮濃度、一氧化碳濃度、臭氧濃度和PM10 濃度等因素,將粒子群算法(PSO)與支持向量機結合,通過構造PSO-SVM模型,對西安PM2.5 濃度進行預測。
近年來,我國多地發生霧霾天氣,西安是受霧霾影響較為嚴重的地區之一。當前,西安正處在城市化高速發展的重要階段,為在2035 年之前基本實現現代化,使西安在“創新、協調、綠色、開放”等方面位于前列,成為國家中心城市,西安發展不能有絲毫懈怠。隨著西安市經濟的較快發展,城市開發力度不斷增大,消耗能源的速度正在迅速增長,部分高能耗、重污染的企業占據西安市周邊。而且由于西安地處黃土高原和秦嶺山脈之間,冬季時西安市內排放暖氣、工地揚塵增多,所造成的懸浮顆粒物沒有擴散到西安市以外,使得霧霾構成物堆積在西安,極易出現大規模的霧霾現象。因此,政府和公眾越來越關注霧霾的治理和預防,霧霾預測也顯得尤為重要。
細顆粒物(PM2.5)是指大氣中直徑小于或等于2.5 微米的顆粒物,可被直接吸入人體,引發各種疾病,其數值越高,代表顆粒物濃度越高,意味著空氣污染越嚴重。影響PM2.5 濃度的因素有空氣中二氧化硫、二氧化氮、一氧化碳、可吸入顆粒物(PM10)、臭氧的含量和氣象因素等。近年來,西安多次出現霧霾天氣,對人們的生活產生了嚴重影響。PM2.5 是霧霾污染天氣加重的主要因素,是描述霧霾天氣的重要指標,故而對PM2.5 濃度的準確預測變得十分重要。分析PM2.5 濃度值變化規律對空氣質量監測有重要意義。
對于非線性關系的霧霾預測問題來說,傳統的統計預測方法很難解決。Vapnik 等人于1995 年在統計學習理論(SLT)基礎上提出支持向量機(簡稱SVM),它是一種處理非線性回歸的有效方法。SVM 為非線性的霧霾天氣預測提供了一種可行的途徑。本文利用與PM2.5 相關的多個變量建立支持向量機模型,然后通過粒子群算法對支持向量機的核心參數進行優化,建立了PSO-SVM 霧霾預測模型。
(一)霧霾預測模型數據采集。氣象因子和大氣污染物對PM2.5 有著重要影響。氣象因素與大氣污染物的數據均來自真氣網,本文選擇2019 年1 月1 日~2021 年8 月31 日的PM2.5濃度數據和真氣網的氣象數據,主要包括AQI、PM2.5、PM10、SO2、NO2、CO、O3、溫度、濕度、風級。
霧霾預測模型的數據集包括訓練集和測試集,將原始數據進行劃分,其中把隨機選取的75%的數據(730 d)劃分為訓練集,剩下的25%的數據(244 d)劃分為測試集。使用SVM 模型對訓練集進行訓練,使用測試集進行驗證,將得到的結果與測試集真實的PM2.5 濃度進行對比,并計算平均絕對誤差和均方根誤差,驗證預測的準確度。
(二)支持向量機模型。支持向量機算法中,通過算法將輸入空間升維,與傳統的方法思路不同。升維后,改變了內積的運算,問題在高維空間可以線性可分。并且在高維空間算法復雜性不受維數影響。SVM 模型具有如下優勢:(1)針對小樣本、有限樣本可以獲得理想的效果;(2)可以較好地處理非線性回歸的問題;(3)計算量與樣本維數基本無關,保證較好的泛化能力;(4)解決了模型選擇、過擬合等問題,采用不同的核函數可以生成不同的SVM 算法。
建立基于支持向量機的霧霾濃度變化的預測模型,最重要的問題是選定合適的訓練、測試樣本,以及選擇正確的預測模型結構主要參數。預測模型步驟為:
1、構建有效的自變量。由于霧霾濃度主要受大氣污染和氣象因子的影響,因此將前一天的AQI、PM10、SO2、NO2、CO、O3、溫度、濕度與風級作為自變量。對輸入的9 個變量進行數據降維,進而消除各變量間的相關性,剔除相關性較高的變量,留下相關性不高的因子,然后用留下來的7 個變量所構成的矩陣模型作為SVM 預測模型的輸入因子。變量之間的相關關系如表1 所示。(表1)

表1 變量之間相關關系一覽表
2、選擇核函數及參數值。建立試驗,設定不同的核函數并建立SVM 預測模型,預測模型預測結果的MAE 和RMSE 如表2 所示。(表2)
根據表2 得知,高斯(RBF)核函數的平均相對誤差和均方根誤差較小,所以將RBF 設置為預測模型的核函數。懲罰因子C 的取值權衡了經驗風險和結構風險。通過試驗,設定不同懲罰因子C 并建立SVM 預測模型,設定其他參數不變,改變懲罰因子C 的數值(0~1,000),分析對RBF 核函數的影響,如表3所示。(表3)

表2 核函數平均相對誤差和均方根誤差一覽表

表3 懲罰因子C平均相對誤差和均方根誤差一覽表
3、使用python 中的libsvm包對測試樣本預測。使用傳統的SVM(選用RBF 核函數),根據表3 選取最優的懲罰因子C=1,將預測樣本放入模型中。預測結果如圖1、圖2 所示。(圖1、圖2)

圖1 PM2.5 預測濃度與觀測濃度比較圖

圖2 測試樣本預測圖
PM2.5 濃度擬合效果一般,霧霾濃度與實際檢測值有出入,預測結果不是很理想,總體誤差有些大,決定系數只有0.6555,說明SVM 預測模型仍有較大的提升空間。需要對SVM的參數進行更為準確的設定,來提升預測的精確度。
(三)PSO-SVM預測模型。支持向量機算法中重要參數主要有核函數參數和懲罰系數,它的本質是一個優化搜索過程,本文提出粒子群優化算法(PSO)作為尋優技巧的SVM 建模參數調整方法。
粒子群算法最早是由兩名美國的科學家基于鳥群覓食尋找最佳覓食區域的過程所提出來的一種基于種群的搜索算法。PSO 模擬的就是最佳決策的過程,鳥群覓食類似于人類的決策過程,從隨機解出發,通過迭代尋找最優解,通過適應度來評價解的品質。建立SVM 模型需要設定懲罰因子C 和核函數σ。這兩個參數值的選擇都會對最終預測結果產生影響。因此,選取合適的參數對模型的預測效果十分重要,能夠影響支持向量機的準確度及運算速率。
利用粒子群優化算法對待優化模型參數進行快速、全面的搜索,減少了試算產生的模糊定位,提高了模型預測的準確性。本文基于PSO-SVM 模型對參數進行了優化。首先,隨機初始化總體,得到n 個粒子的總體,每個粒子代表參數的方向。將其作為SVM 參數進行迭代訓練,記錄下一次迭代得到的參數值。當迭代完成時,得到的粒子為適應度函數最大的粒子,該粒子表示使SVM 訓練最優的SVM 參數。將該優化參數作為支持向量機預測參數進行預測,得到了預測結果。
初始化粒子群算法:首先,設置學習因子C1=2、C2=2,設置迭代次數的最大值為100,設置種群數量為20;完成初始化后,粒子將獲得最優的懲罰參數C、核函數參數γ。其次,將最優的參數輸入預測模型中,得到訓練集的預測結果,其中粒子群的參數尋優適應度曲線如圖3 所示。(圖3)

圖3 粒子群優化算法參數尋優的適應度曲線圖
兩個參數的尋優的結果分別是γ=0.001 以及C=3.70786491。將尋優參數帶入到SVM 預測模型中,將預測樣本輸入到尋優后的預測模型。圖4、圖5 為基于PSO-SVM 模型的樣本測試集預測結果。(圖4、圖5)

圖4 PM2.5 預測濃度與觀測濃度比較圖

圖5 測試樣本預測圖
PM2.5 通過使用PSO-SVM 建立的預測模型預測后擬合度更好,更具備線性特征。混合模型在經過參數尋優以后,對預測精度有明顯提升,預測效果比SVM 模型預測效果好,決定系數達到0.7183。但依舊與實際值有出入,還需提升訓練樣本容量,確定更為精確的SVM 參數來提高模型的準確度。
(一)評價標準。本文使用平均絕對誤差(MAE)、均方根誤差(RMSE)和決定系數(R2)對預測結果進行評價。
復相關系數R2的計算公式為:
其中,yi和分別表示真實值和預測值。
(二)各模型預測結果。以平均絕對誤差(MAE)、均方根誤差(RMSE)和決定系數(R2)作為評價指標,對不同模型的性能進行了評價,如表4 所示。(表4)

表4 各模型預測評價一覽表
在表4 中,平均絕對誤差(MAE)的排名從高到低為SVM(14.1827)、PSO-SVM(14.0210),均方根誤差(RMSE)從高到低排名為SVM(23.4377)、PSO-SVM(21.1958),皮爾遜系數(R2)從高到低為PSO-SVM(0.7183)、SVM(0.6555)。實驗表明,本文經過粒子群算法優化的支持向量機有了較高的提升,基于粒子群算法的支持向量機模型提高了對霧霾的預測準確度。
為提高對西安市霧霾的預測,考慮到霧霾影響因素復雜、非線性化的樣本數據以及各類影響,本文提出粒子群優化的支持向量機的預測模型,混合模型提高了單一模型的預測精度。運用數據預測并結合以往數據規律來預防大氣污染的發生,其結果對霧霾預測與防治有重要的實際意義。本文的主要研究結果:(1)對霧霾預測的研究現狀進行簡要介紹,探究支持向量機核函數、懲罰因子的選擇,對于參數選擇的問題,本文引入粒子群算法,并對粒子群算法做簡單的介紹。分析支持向量機在非線性模型上的優勢,對其預測流程進行了簡單分析。(2)本文探究影響霧霾濃度的關鍵因素,進而將氣象因素與空氣污染物等影響因素作為霧霾的重要成因,分析了霧霾濃度與各種影響因子之間的聯系,確定了7 種因素作為模型的輸入樣本。(3)本文選用SVM 模型和PSO-SVM 模型對霧霾做出預測。通過對比平均絕對誤差、均方根誤差和決定系數,認為PSO-SVM 混合預測模型的全局搜索能力較為優異,同時提升收斂速度與預測的相對精度,并且三種評價指標均為最優。
本文的樣本數據只考慮了大氣因素對霧霾濃度的影響,為提高模型的精確度,可以加入多維度的影響因子,如人口密度、綠化水平、城鎮化水平等。細化需要預測的地域,可以提高其精確性,也可以學習一些其他優化算法,在本文算法的基礎上嘗試融合,并檢驗新混合模型的精確度。