范文婷, 王 曉
(太原科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 太原 030024)
作為霧霾的主要元兇之一, PM2.5對人類生活、身心健康、經(jīng)濟(jì)發(fā)展等都造成了嚴(yán)重影響[1,2]. 如何高效、準(zhǔn)確地預(yù)測PM2.5值, 進(jìn)而制定科學(xué)合理的霧霾防控方案具有重要意義.
目前, 常用的PM2.5預(yù)測方法包括回歸模型[3-5]、人工神經(jīng)網(wǎng)絡(luò)[6-8]、支持向量機(jī)[9,10]等. 其中, 支持向量機(jī)(Support Vector Machine, SVM)以其強(qiáng)大的學(xué)習(xí)泛化能力, 結(jié)構(gòu)風(fēng)險(xiǎn)小的特點(diǎn), 在小樣本、非線性預(yù)測領(lǐng)域取得了良好的應(yīng)用效果. 在實(shí)際應(yīng)用中, SVM參數(shù)選擇直接影響預(yù)測性能, 找到一個(gè)合適的算法對SVM參數(shù)尋優(yōu)至關(guān)重要. 常用SVM參數(shù)優(yōu)化方法包括: 遺傳算法 (Genetic Algorithm, GA)、粒子群算法(Particle Swarm Optimization, PSO)、螢火蟲算法 (Firefly algorithm, FA)等. 如朱霄珣等[11]使用GA優(yōu)化SVM參數(shù), 建立風(fēng)速預(yù)測模型. 戴李杰等[12]將GA的變異因子引入到PSO中對SVM參數(shù)尋優(yōu)建立未來24小時(shí)PM2.5滾動(dòng)預(yù)報(bào)模型. 楊孟英[13]使用FA優(yōu)化SVM參數(shù), 進(jìn)行中文文本分類. 相比于GA和PSO, FA結(jié)構(gòu)簡單、調(diào)節(jié)參數(shù)少, 易于計(jì)算, 能更好地平衡全局和局部性能[14-16], 但標(biāo)準(zhǔn)FA也存在缺陷, 如迭代后期收斂速度慢, 固定步長造成振蕩現(xiàn)象等[17-19]. 為此, 本文對標(biāo)準(zhǔn)FA進(jìn)行改進(jìn), 利用改進(jìn)FA對SVM參數(shù)尋優(yōu), 構(gòu)建IFA-SVM的PM2.5預(yù)測模型, 用此模型預(yù)測太原市未來一天和三天的PM2.5含量, 分析該模型用于PM2.5濃度預(yù)測的可行性和高效性.
PM2.5預(yù)測是依據(jù)氣象條件、污染源等因素和歷史數(shù)據(jù)建立數(shù)學(xué)模型來預(yù)測未來PM2.5值, 表示為如下非線性關(guān)系:
其中, {x1,x2,···,xn}為影響因子為 影響因子個(gè)數(shù),為預(yù)測模型為PM2.5預(yù)測值.
由于PM2.5是氣象條件、污染源、地理空間等多種因素共同作用的結(jié)果[20], 呈現(xiàn)高度非線性, 本文使用SVM來預(yù)測PM2.5值.
SVM基本思想是針對PM2.5非線性樣本, 引入徑向基 (Radial Basis Function, RBF)核函數(shù), 將樣本映射到高維空間, 在高維空間求解超平面, 使得兩類樣本的間隔最大[21], 即求解如下約束優(yōu)化問題:
FA受自然界螢火蟲生物特性啟發(fā)[22], 其對SVM參數(shù)優(yōu)化思想為:
將所有SVM可選參數(shù)模擬為螢火蟲個(gè)體, 將優(yōu)化過程看作對最優(yōu)個(gè)體的尋找, 即通過個(gè)體的吸引和位置移動(dòng)實(shí)現(xiàn)目標(biāo)參數(shù)尋優(yōu), 在迭代過程中用好的可行解淘汰較差可行解, 直到得到最優(yōu)解, 即亮度最高的螢火蟲的位置即為最優(yōu)參數(shù).
尋優(yōu)過程中螢火蟲i被吸引向螢火蟲j移動(dòng)的位置更新公式為:
FA主要步驟包括:
(1)根據(jù)目標(biāo)函數(shù)計(jì)算螢火蟲的亮度;
(2)亮度較暗的螢火蟲按公式(6)向較亮的螢火蟲移動(dòng);
(3)對螢火蟲按亮度值從大到小排序, 找到最亮的螢火蟲;
(4)重復(fù)迭代, 直到達(dá)到最大迭代次數(shù).
標(biāo)準(zhǔn)FA迭代中亮度較暗的螢火蟲按公式(6)向較亮的螢火蟲移動(dòng), 當(dāng)?shù)笃诹炼认嗤瑫r(shí), 螢火蟲將隨機(jī)運(yùn)動(dòng), 此時(shí)收斂速度下降且很難找到最優(yōu)解. 同時(shí)若螢火蟲個(gè)體搜索半徑內(nèi)沒有更亮個(gè)體, 螢火蟲也將隨機(jī)運(yùn)動(dòng), 此時(shí)最優(yōu)亮度為搜索半徑內(nèi)局部最優(yōu)而非全局最優(yōu), 算法搜索能力下降, 精度較差. 根據(jù)文獻(xiàn)[19], 設(shè)計(jì)兩種鄰域搜索策略為參數(shù)尋優(yōu)提供更多更精確的候選解, 幫助螢火蟲跳出局部最優(yōu)并加速收斂,具體鄰域搜索策略為:
其中,xi3、xi4是從整個(gè)種群中隨機(jī)選取的兩個(gè)螢火蟲,gbest是目前為止全局最大的目標(biāo)函數(shù)值是[0, 1]上的常數(shù), λ4+λ5+λ6=1, 此鄰域搜索策略在當(dāng)前迭代次數(shù)全局范圍內(nèi)選擇候選解.
如果迭代過程中, 第t次迭代螢火蟲亮度值與t-1次亮度值相等, 執(zhí)行上述兩種策略, 找到其它兩個(gè)候選解, 然后從中選擇最亮的作為.顯然鄰域搜索策略可以提供更多更精確的候選解, 提高螢火蟲算法的搜索能力并加速收斂.
其中,t為當(dāng)前迭代次數(shù),maxG為最大迭代次數(shù).
IFA-SVM PM2.5預(yù)測過程如下:
(1)收集太原市PM2.5濃度實(shí)驗(yàn)數(shù)據(jù), 劃分訓(xùn)練集和測試集, 并歸一化預(yù)處理;
(2) IFA-SVM參數(shù)迭代尋優(yōu)
1)初始化算法各基本參數(shù), 隨機(jī)分布螢火蟲;
2)計(jì)算螢火蟲的目標(biāo)函數(shù)值, 以SVM對訓(xùn)練集的PM2.5預(yù)測性能作為目標(biāo)函數(shù)值;
3)對螢火蟲的目標(biāo)函數(shù)值進(jìn)行亮度排序, 找到當(dāng)前最優(yōu)的目標(biāo)函數(shù)值及其對應(yīng)螢火蟲, 并根據(jù)公式(6)更新螢火蟲;
4)如果迭代過程中, 第t次迭代目標(biāo)函數(shù)值與t-1迭代目標(biāo)函數(shù)值相等, 執(zhí)行2.3節(jié)中兩種鄰域搜索策略;
5)若達(dá)到最大迭代次數(shù), 或滿足停止迭代的條件,則轉(zhuǎn)至步驟6), 否則轉(zhuǎn)至步驟2)繼續(xù)迭代;
6)輸出最大目標(biāo)函數(shù)值及其對應(yīng)的螢火蟲, 即得到最優(yōu)參數(shù).
(3)使用最優(yōu)參數(shù)預(yù)測測試集PM2.5值, 并將預(yù)測結(jié)果反歸一化, 得到實(shí)際PM2.5預(yù)測值, 輸出結(jié)果.
具體流程如圖1所示.
圖1 IFA-SVM PM2.5預(yù)測流程
統(tǒng)計(jì)發(fā)現(xiàn), 太原市秋冬季節(jié)出現(xiàn)霧霾頻率更高, 綜合考慮氣象條件和污染源, 收集太原市2015.10~2016.3、2016.10~2017.3和2017.11的濕度、露點(diǎn)、氣壓、風(fēng)速、O3、CO、NO2、PM10共8項(xiàng)PM2.5影響因子進(jìn)行建模. 具體如表 1 所示, 其中, 2015.10~2016.3、2016.10~2017.3作為訓(xùn)練樣本, 2017.11作為測試樣本.
為了消除各影響因子量綱不同對預(yù)測速度和精度的影響, 建模之前進(jìn)行歸一化預(yù)處理, 歸一化公式為:
表1 實(shí)驗(yàn)數(shù)據(jù)
采用平均絕對誤差(MAE)、均方根誤差(RMSE)對預(yù)測結(jié)果進(jìn)行評價(jià), 計(jì)算公式如下:
為了驗(yàn)證IFA的性能, 選取Ackley函數(shù)、Sphere函數(shù)進(jìn)行仿真測試. 種群數(shù)量設(shè)置為=0.01, 初始步長=0.2. 每個(gè)函數(shù)獨(dú)立運(yùn)行 30 次, 得到FA、IFA的仿真曲線, 如圖2與圖3所示.
圖2 算法對Ackley函數(shù)的收斂曲線對比
從圖2與圖3看到, 針對函數(shù)Ackley與Sphere,IFA收斂速度更快, 精度更高.
為了比較性能, 分別用標(biāo)準(zhǔn)FA、GA、PSO、IFA選取SVM參數(shù), 各優(yōu)化算法得到的SVM參數(shù)如表2所示.
圖3 算法對Sphere函數(shù)的收斂曲線對比
表2 優(yōu)化得到的各SVM模型參數(shù)
3.5.1 IFA-SVM實(shí)驗(yàn)結(jié)果與分析
利用最優(yōu)IFA-SVM參數(shù)預(yù)測2017年11月太原市兩種PM2.5值:
(1)預(yù)測未來一天PM2.5濃度值;
(2)預(yù)測未來第三天PM2.5濃度值.
實(shí)驗(yàn)得到最終預(yù)測值, 將實(shí)際值與IFA-SVM的預(yù)測值進(jìn)行對比, 結(jié)果如圖4所示.
圖4的結(jié)果顯示, 預(yù)測太原市2017年11月的PM2.5濃度, 得到未來一天的預(yù)測結(jié)果與實(shí)際非常接近, 而未來第三天稍有偏差, 但整體變化趨勢相同, 預(yù)測值與實(shí)際值的曲線擬合度很高. 此結(jié)果表明IFA-SVM模型是有效的, 該模型可以幫助預(yù)測太原市PM2.5值. 而預(yù)測未來第三天的精度比未來一天的精度低, 這主要是由于長期預(yù)測會(huì)對短期的預(yù)測錯(cuò)誤進(jìn)行積累.
3.5.2 實(shí)驗(yàn)結(jié)果比較與分析
分別用模型GA-SVM、PSO-SVM、FA-SVM和IFA-SVM對PM2.5濃度進(jìn)行預(yù)測, 預(yù)測誤差結(jié)果如表3.
由表3可知, 使用四個(gè)模型對太原市2017年11月的PM2.5未來一天和第三天濃度預(yù)報(bào)后, 得到的預(yù)測誤差從低到高依次是IFA-SVM、FA-SVM、PSO-SVM.即與模型GA-SVM、PSO-SVM相比, FA-SVM的預(yù)測結(jié)果更準(zhǔn)確, 偏離實(shí)際值較小, 而與FA-SVM相比,IFA-SVM誤差更小, 即IFA-SVM模型的MAE和RMSE都是4個(gè)預(yù)測模型中最低的, 其中性能最好的IFA-SVM預(yù)測未來一天的PM2.5濃度值,MAE和RMSE分別為3.85和4.07.
綜合考慮3.4節(jié)迭代曲線和3.5預(yù)測誤差結(jié)果, 可以看到與標(biāo)準(zhǔn)FA相比, IFA收斂速度更快, 精度更高,同時(shí)IFA-SVM PM2.5預(yù)測值也最接近實(shí)際值.
針對PM2.5與影響因子間的高度非線性關(guān)系, 提出一種基于改進(jìn)螢火蟲尋優(yōu)支持向量機(jī)的PM2.5預(yù)測模型IFA-SVM, 并以太原市未來一天和第三天的PM2.5值作為實(shí)驗(yàn)樣本進(jìn)行模型測試, 并對比GA-SVM、PSOSVM、FA-SVM的預(yù)測效果, 經(jīng)實(shí)驗(yàn)得到如下結(jié)論:
(1) IFA-SVM模型對未來一天和三天的PM2.5值都可以有效預(yù)測, 由于預(yù)測誤差會(huì)不斷積累, 一天的預(yù)測精度更高.
(2) FA能夠跳出局部最優(yōu)且計(jì)算簡單, FASVM模型比GA-SVM和PSO-SVM方法預(yù)測更準(zhǔn)確.
(3)引入鄰域搜索和可變步長策略改進(jìn)FA, 可加速算法收斂, 平衡局部和全局性能, 使得IFA-SVM模型預(yù)測結(jié)果更接近實(shí)際的PM2.5變化趨勢, 為霧霾預(yù)測提供了一種新思路.
由于PM2.5濃度值不僅與本文所選因子有關(guān), 還受到城市資源能耗、道路布局、空間位置等多種因素影響. 在今后的研究工作中, 嘗試將這些信息和技術(shù)應(yīng)用進(jìn)來, 進(jìn)一步提高PM2.5預(yù)測性能.