趙文芳 王京麗 尚敏 劉亞楠
摘 要:為了提高花粉濃度預(yù)報(bào)的準(zhǔn)確率,解決現(xiàn)有花粉濃度預(yù)報(bào)準(zhǔn)確率不高的問題,提出了一種基于粒子群優(yōu)化(PSO)算法和支持向量機(jī)(SVM)的花粉濃度預(yù)報(bào)模型。首先,綜合考慮氣溫、氣溫日較差、相對(duì)濕度、降水量、風(fēng)力、日照時(shí)數(shù)等多種氣象要素,選擇與花粉濃度相關(guān)性較強(qiáng)的氣象要素構(gòu)成特征向量;其次,利用特征向量與花粉濃度數(shù)據(jù)建立SVM預(yù)測(cè)模型,并使用PSO算法找出最優(yōu)參數(shù);然后利用最優(yōu)參數(shù)優(yōu)化花粉濃度預(yù)測(cè)模型;最后,使用優(yōu)化后的模型對(duì)花粉未來24h濃度進(jìn)行預(yù)測(cè),并與未優(yōu)化的SVM、多元線性回歸法(MLR)、反向神經(jīng)網(wǎng)絡(luò)(BPNN)作對(duì)比。此外使用優(yōu)化后的模型對(duì)某市南郊觀象臺(tái)和密云兩個(gè)站點(diǎn)進(jìn)行逐日花粉濃度預(yù)測(cè)。實(shí)驗(yàn)結(jié)果表明,相比其他預(yù)報(bào)方法,所提方法能有效提高花粉濃度未來24h預(yù)測(cè)精度,并具有較高的泛化能力。
關(guān)鍵詞:花粉濃度;支持向量機(jī);粒子群優(yōu)化算法;Spark;花粉濃度預(yù)測(cè)
中圖分類號(hào): TP391; TP181
文獻(xiàn)標(biāo)志碼:A
Abstract: To improve the accuracy of pollen concentration forecast and resolve low accuracy of current pollen concentration forecast model, a model for daily pollen concentration forecasting based on Particle Swarm Optimization (PSO) algorithm and Support Vector Machine (SVM) was proposed. Firstly, the feature vector extraction was carried out by using correlation analysis technique to select meteorological data with strong correlation with pollen concentration, such as temperature, daily temperature difference, relative humidity, precipitation, wind, sunshine hours. Secondly, an SVM prediction model based on this vector and pollen concentration observation data was established. The PSO algorithm was designed to optimize the parameters in SVM algorithm, and then the optimal parameters were used to construct daily pollen concentration prediction model. Finally, the forecast of pollen concentration in 24 hours in advance was made by using the optimized SVM model. The comparison among the accuracy of the optimized SVM model, Multiple Linear Regression (MLR) model and Back Propagation Neural Network (BPNN) model was performed to evaluate their performances. In addition, the optimized model was also applied for the forecast of pollen concentration in 24 hours in advance at Nanjiao and Miyun meteorological observation stations. The experimental results show that the proposed method performs better than MLR and BPNN methods. Meanwhile, it also provides promising results for forecast of pollen concentration in 24 hours in advance and also has good generalization ability.
Key words: pollen concentration; Support Vector Machine (SVM); Particle Swarm Optimization (PSO) algorithm; Spark; pollen concentration forecast
0 引言
花粉過敏已經(jīng)成為季節(jié)性的流行疾病,具有相當(dāng)高的發(fā)病率。北京作為人口密集的超大城市,花粉過敏病患者占呼吸道過敏病患者的比例已超1/3,在花粉高峰期間大約有幾十萬人以不同程度的發(fā)病,所需花費(fèi)的醫(yī)療費(fèi)用相當(dāng)可觀。參照1%的發(fā)病率來計(jì)算,如果每位患者根據(jù)花粉濃度預(yù)報(bào)信息采取了防護(hù)措施,每年可節(jié)約醫(yī)療費(fèi)用300元,按服務(wù)效益30%計(jì)算,北京每年可至少節(jié)約900萬元。通過準(zhǔn)確的花粉預(yù)測(cè)服務(wù),提醒花粉敏感者提前采取有效的預(yù)防和醫(yī)療措施,減輕花粉過敏的發(fā)病癥狀,是花粉氣象服務(wù)、環(huán)境氣象服務(wù)和醫(yī)療氣象服務(wù)的重要宗旨[1],因此,建立和發(fā)展精細(xì)準(zhǔn)確的花粉濃度預(yù)報(bào)是一項(xiàng)既重要又迫切的工作,同時(shí)也具有很高的經(jīng)濟(jì)和社會(huì)效益。
目前花粉濃度預(yù)報(bào)主要使用統(tǒng)計(jì)學(xué)預(yù)報(bào)法,即選擇對(duì)花粉濃度有影響的氣象因素作相關(guān)性分析,然后建立多元線性回歸模型進(jìn)行預(yù)測(cè)[2-3]。白玉榮等[4-5]曾作過天津氣象要素與花粉濃度的相關(guān)性分析,并以溫度作為主要?dú)庀笠蜃咏⒘酥鹑栈ǚ蹪舛阮A(yù)報(bào)方程;張德山等[6-9]應(yīng)用正交篩選多元回歸方法建立預(yù)報(bào)方程作北京地區(qū)的花粉濃度預(yù)報(bào);這些研究取得了一定的成果并應(yīng)用在花粉預(yù)報(bào)日常業(yè)務(wù)中,但實(shí)際的預(yù)報(bào)效果不盡如人意。首先,氣象因素與花粉濃度并非線性的關(guān)系,它對(duì)花粉的影響十分復(fù)雜,同一氣象要素在植物生長的不同階段影響差異很大,而目前的實(shí)際預(yù)報(bào)并沒有根據(jù)植物的不同物候期具體分析,導(dǎo)致預(yù)報(bào)的花粉濃度存在較大不確定性。其次,這些研究工作在花粉觀測(cè)業(yè)務(wù)建立的初期就已經(jīng)完成,但由于當(dāng)時(shí)數(shù)據(jù)來源有限,數(shù)據(jù)規(guī)模較小,無法全面分析花粉濃度的影響因素,導(dǎo)致模型預(yù)測(cè)值往往偏離實(shí)際觀測(cè)值;然而在當(dāng)前,機(jī)器學(xué)習(xí)的智能算法可以處理大量的歷史和當(dāng)前花粉濃度數(shù)據(jù)和氣象數(shù)據(jù),從而更準(zhǔn)確地建立預(yù)測(cè)模型。
支持向量機(jī)(Support Vector Machine, SVM)是一種常用于模式識(shí)別、分類和回歸分析的監(jiān)督學(xué)習(xí)模型。近年來,SVM在小樣本、非線性、高維模式識(shí)別等問題的解決上表現(xiàn)出許多特有優(yōu)勢(shì),可避免神經(jīng)網(wǎng)絡(luò)中經(jīng)常出現(xiàn)的過擬合及局部極小等問題,推廣誤差較小,具有較好的泛化能力,已經(jīng)被廣泛用于解決一些回歸問題。本文提出將支持向量機(jī)與粒子群優(yōu)化(Particle Swarm Optimization, PSO)算法相結(jié)合的方法,首先利用皮爾遜算法找出與花粉濃度相關(guān)的氣象要素并進(jìn)行特征提取,再結(jié)合支持向量機(jī)算法進(jìn)行建模并使用粒子群算法對(duì)模型進(jìn)行優(yōu)化,進(jìn)而得到花粉濃度預(yù)報(bào)結(jié)果,有利于降低不確定影響因素對(duì)預(yù)測(cè)結(jié)果的影響,也為花粉濃度預(yù)報(bào)提供一種新方法。
1 相關(guān)工作
對(duì)于預(yù)測(cè)模型,SVM能較好地解決非線性問題,近年來也被廣泛應(yīng)用在PM2.5濃度預(yù)報(bào)、大氣污染等級(jí)預(yù)報(bào)等預(yù)報(bào)領(lǐng)域。李龍等[10]選擇綜合氣象指數(shù)、二氧化硫濃度、一氧化硫濃度、二氧化氮濃度和PM10濃度構(gòu)成特征向量,利用特征向量和PM2.5濃度數(shù)據(jù)應(yīng)用最小二乘支持向量機(jī)(Least Squares Support Vector Machine, LS-SVM)預(yù)測(cè)模型。結(jié)果表明,該模型能更準(zhǔn)確地預(yù)測(cè)PM2.5濃度,具有較強(qiáng)的泛化能力;劉杰等[11]提出應(yīng)用SVM和模糊?;瘯r(shí)間序列相結(jié)合預(yù)測(cè)PM2.5的方法,結(jié)果表明這種預(yù)報(bào)模型可以較好解決PM2.5機(jī)理性建模方式下由于影響因素考慮不全而造成的預(yù)報(bào)結(jié)果不穩(wěn)定的問題;岳鵬程等[12]提出應(yīng)用SVM和模糊?;瘯r(shí)間序列相結(jié)合的方法預(yù)測(cè)公路SO2濃度,結(jié)果表明這種算法不受機(jī)理性理論研究的限制,支持小樣本學(xué)習(xí),非線性擬合效果好,泛化能力強(qiáng);陳柳等[13]提出了大氣污染物濃度的小波分析及支持向量機(jī)時(shí)間序列預(yù)測(cè)模型。
以上研究表明,已有大量文獻(xiàn)利用支持向量機(jī)結(jié)合模糊?;⑿〔ǚ治龅葢?yīng)用在PM2.5濃度預(yù)測(cè)、大氣污染預(yù)測(cè)和SO2濃度預(yù)測(cè)中,但是將支持向量機(jī)應(yīng)用至花粉濃預(yù)報(bào)中的研究相對(duì)甚少。本文提出一種將支持向量機(jī)與粒子群優(yōu)化算法相結(jié)合的花粉濃度預(yù)測(cè)模型。
2 數(shù)據(jù)預(yù)處理與分析
2.1 花粉濃度的時(shí)間序列分析
以2013—2017年北京地區(qū)7個(gè)觀測(cè)站點(diǎn)在花粉觀測(cè)期(每年4—9月)的逐日花粉監(jiān)測(cè)樣本為數(shù)據(jù)基礎(chǔ),分析花粉濃度的季節(jié)性周期變化規(guī)律?;ǚ蹪舛扔^測(cè)方法如下:采用醫(yī)院常用的鏡檢用片,在長76mm、寬22mm的載玻片上均勻地涂上一層凡士林,將該載物片放到室外花粉采集架上,空氣中的部分花粉就會(huì)落到載玻片上,24h后取回載物片,進(jìn)行染色,在顯微鏡下讀取花粉顆粒數(shù)?;ǚ蹪舛染褪侵富ǚ墼诳諝庵?4h內(nèi)每千平方毫米沉降的顆粒數(shù)。
北京地區(qū)的花粉含量隨季節(jié)變化明顯,高峰為春季和秋季,春季多為木本花粉,秋季以草本花粉為主。圖1反映了北京地區(qū)2013—2017年同期4—9月的逐日花粉濃度隨時(shí)間的變化趨勢(shì),橫坐標(biāo)為4月1日—9月30日共183天,縱坐標(biāo)為逐日花粉濃度,可以看出春季4—5月、秋季8—9月各有一個(gè)高峰,受每年同期氣象條件差異影響,花粉濃度高峰出現(xiàn)的時(shí)間也存在差異。
2.2 花粉濃度與氣象要素的相關(guān)性分析
氣象因素對(duì)花粉濃度的影響十分復(fù)雜,往往是不同氣象因素相互影響的結(jié)果。如果分別考慮各個(gè)因素,則不能很好體現(xiàn)多個(gè)因素相互作用對(duì)花粉濃度產(chǎn)生的耦合效應(yīng),從而影響預(yù)報(bào)模型的準(zhǔn)確性。本文綜合考慮平均氣溫、最高氣溫、最低氣溫、氣溫日較差、平均相對(duì)濕度、降水量、平均氣壓、平均風(fēng)速、最大風(fēng)速、日照時(shí)數(shù)等多種氣象因素?cái)?shù)據(jù),選擇可靠的相關(guān)性分析方法對(duì)氣象因素與花粉濃度進(jìn)行分析,最后選擇相關(guān)性較強(qiáng)的因素構(gòu)成特征向量。
通過收集整理,建立了7個(gè)觀測(cè)站逐年4—9月的逐日花粉濃度和11個(gè)氣象要素的數(shù)據(jù)樣本集,共計(jì)5310個(gè)樣本。利用Spark并行計(jì)算框架的機(jī)器學(xué)習(xí)庫,編寫程序并在大數(shù)據(jù)環(huán)境下運(yùn)行,快速分析出花粉濃度與各氣象要素相關(guān)性,如圖2所示。從圖2可以看出:平均風(fēng)速、氣溫日較差、日照時(shí)數(shù)、平均相對(duì)濕度、平均氣壓與花粉濃度呈現(xiàn)正相關(guān);平均氣溫、最大氣溫、最低氣溫、極大風(fēng)速、日降水量、最大相對(duì)濕度與花粉濃度呈負(fù)相關(guān);其中平均氣溫、最大氣溫、最低氣溫、氣溫日較差與花粉濃度相關(guān)性較強(qiáng),相關(guān)系數(shù)絕對(duì)值大于0.4。
3 花粉濃度預(yù)測(cè)模型
SVM是在研究統(tǒng)計(jì)學(xué)習(xí)理論基礎(chǔ)上提出的分類設(shè)計(jì)準(zhǔn)則。粒子群優(yōu)化算法是一種進(jìn)化計(jì)算技術(shù),其基本思想是通過群體中個(gè)體之間的信息傳遞及信息共享來尋找最優(yōu)解。在SVM建模過程中,如何確定最優(yōu)參數(shù)值是建模的關(guān)鍵,已有優(yōu)化方法主要有網(wǎng)格搜索法、遺傳算法、粒子群算法、蟻群算法等。網(wǎng)格搜索法是一種窮舉搜索算法,參數(shù)優(yōu)化時(shí)間相當(dāng)長;遺傳算法具有較強(qiáng)的搜索能力,但是自身參數(shù)設(shè)置缺乏理論指導(dǎo);粒子群算法比遺傳算法簡單,比蟻群算法搜索速度更快。本文以花粉濃度觀測(cè)數(shù)據(jù)和多個(gè)氣象要素作為基礎(chǔ)數(shù)據(jù),結(jié)合SVM和粒子群算法建立花粉濃度預(yù)測(cè)模型。
本章主要介紹相關(guān)的算法和模型。
3.1 非線性ε-支持向量機(jī)回歸
利用SVM進(jìn)行非線性回歸和預(yù)測(cè)是將數(shù)據(jù)非線性映射到高維特征空間,然后在該特征空間建立線性模型來擬合回歸函數(shù)。核函數(shù)常用來解決數(shù)據(jù)的非線性映射問題,大量的實(shí)驗(yàn)和研究表明,采用徑向基函數(shù)(Radial Basis Function, RBF)為核函數(shù)具有較高的擬合和預(yù)測(cè)精度,故通常選用其作為核函數(shù)進(jìn)行研究[14-16]。損失函數(shù)是評(píng)價(jià)預(yù)測(cè)準(zhǔn)確程度的一種度量,ε不敏感損失函數(shù)是其中一種,通過將松弛變量ξ引入支持向量機(jī),采用ε不敏感損失函數(shù)進(jìn)行樣本訓(xùn)練,得到非線性ε-支持向量回歸。松弛變量ξ度量了訓(xùn)練樣本點(diǎn)上誤差的代價(jià),在ε不敏感帶內(nèi)的點(diǎn)誤差為0。
1)初始化粒子群算法系列參數(shù)。設(shè)置粒子的數(shù)目等于30,優(yōu)化過程的結(jié)束條件為粒子迭代次數(shù)達(dá)到設(shè)定值100。
2)每個(gè)粒子的位置用向量(C,γ),初始化30個(gè)粒子的位置和加速度。
3)設(shè)置適應(yīng)度函數(shù)為模型預(yù)測(cè)結(jié)果的均方誤差。根據(jù)每個(gè)微粒值的大小即(C,γ)代入SVM重建回歸模型,根據(jù)檢驗(yàn)樣本的計(jì)算結(jié)果和式(9)即可得到每個(gè)微粒對(duì)應(yīng)的適應(yīng)值。對(duì)30個(gè)粒子的適應(yīng)值進(jìn)行比較,適應(yīng)值最小的那個(gè)粒子的值將其記為前群體的最優(yōu)位置。
4)開始迭代計(jì)算。根據(jù)式(6)更新所有粒子加速度,根據(jù)式(7)更新所有粒子的當(dāng)前位置;重復(fù)第3)步,計(jì)算更新后的每個(gè)粒子的適應(yīng)值。將當(dāng)前粒子群中取得的最小適應(yīng)值與前幾代粒子群優(yōu)化取得的最小適應(yīng)值進(jìn)行比較,擇最小值作為前群體最優(yōu)位置,最小值對(duì)應(yīng)的粒子(C,γ)作為最優(yōu)參數(shù)。
5)達(dá)到迭代次數(shù)結(jié)束計(jì)算過程。
3.4 花粉濃度預(yù)測(cè)模型
基于北京市氣象局2013—2017年逐年4—9月的花粉實(shí)況觀測(cè)濃度、花粉預(yù)報(bào)濃度和主要的氣象因素等資料,聯(lián)合應(yīng)用SVM和具有自適應(yīng)慣性權(quán)重的粒子群算法建立花粉濃度預(yù)測(cè)模型,對(duì)未來24h濃度進(jìn)行預(yù)報(bào)。在實(shí)驗(yàn)之前,首先將所有數(shù)據(jù)進(jìn)行預(yù)處理,計(jì)算每類數(shù)據(jù)的均值和方差,根據(jù)均值和方差相互關(guān)系的基本規(guī)律,將均值在縮小而偏差在增大的數(shù)據(jù)看作錯(cuò)誤數(shù)據(jù),并從樣本集中剔除。
本方案首先選用皮爾遜相關(guān)系數(shù)算法得出各氣象要素和花粉濃度的相關(guān)性,然后選擇相關(guān)系數(shù)大于0.2的氣象要素、花粉濃度觀測(cè)數(shù)據(jù)、花粉濃度預(yù)報(bào)數(shù)據(jù)組成特征向量建立SVM模型,再利用粒子群算法優(yōu)化SVM的懲罰參數(shù)和核函數(shù)參數(shù)得出最終預(yù)測(cè)模型。模型流程如圖3所示,具體步驟如下:
1)對(duì)所有數(shù)據(jù)進(jìn)行預(yù)處理,計(jì)算均值和方差,剔除掉明顯錯(cuò)誤的數(shù)據(jù)樣本。
2)使用皮爾遜系數(shù)計(jì)算各氣象要素與花粉濃度相關(guān)性。根據(jù)對(duì)2013—2017年每年4—9逐日花粉濃度隨時(shí)間的變化趨勢(shì)分析可以得知,花粉濃度峰值在4—5月和8—9月,但是每年峰值出現(xiàn)的時(shí)間都不相同。選擇相關(guān)系數(shù)大于0.2的氣象要素和花粉濃度組成特征向量,形成樣本集。
3)將樣本集中的2013—2016年的數(shù)據(jù)作為訓(xùn)練集,2017年數(shù)據(jù)作測(cè)試集。初始化參數(shù)C及γ,建立SVM回歸模型,將花粉濃度預(yù)測(cè)數(shù)據(jù)和相同時(shí)刻的氣象要素作為訓(xùn)練輸入,相同時(shí)刻的花粉觀測(cè)濃度作為輸出。
4)使用具有自適應(yīng)慣性權(quán)重的粒子群算法找出參數(shù)C及γ的最優(yōu)解。
5)將優(yōu)化結(jié)束之后得到的粒子群最優(yōu)位置(C,γ)賦予SVM重建回歸模型,得到模型預(yù)測(cè)結(jié)果。
4 實(shí)驗(yàn)及分析
4.1 實(shí)驗(yàn)環(huán)境及數(shù)據(jù)
本文使用的實(shí)驗(yàn)數(shù)據(jù)來源于北京7個(gè)觀測(cè)站點(diǎn)從2013—2017年每年4—9月的花粉濃度觀測(cè)資料、花粉預(yù)報(bào)、逐日氣象要素等,經(jīng)過預(yù)處理獲得5310個(gè)可用樣本,在此基礎(chǔ)上進(jìn)行本文的所有實(shí)驗(yàn)。預(yù)測(cè)模型是根據(jù)這些5310個(gè)數(shù)據(jù)樣本的11個(gè)氣象和花粉變量的數(shù)據(jù)集構(gòu)建的,并利用模型對(duì)2017年花粉濃度進(jìn)行了預(yù)測(cè)。
為了減少整個(gè)實(shí)驗(yàn)的訓(xùn)練時(shí)間,本文在Cloudera集群上實(shí)現(xiàn)了基于Spark框架的數(shù)據(jù)相關(guān)性分析和并行AWI-PSO算法。該集群由7臺(tái)獨(dú)立機(jī)器組成,每臺(tái)機(jī)器包含32GB內(nèi)存,8個(gè)Intel Xeon E-52680 V3處理器和Linux操作系統(tǒng)。
4.2 相關(guān)算法實(shí)現(xiàn)
4.2.1 數(shù)據(jù)的并行預(yù)處理
數(shù)據(jù)預(yù)處理需要完成數(shù)據(jù)的存儲(chǔ)管理、數(shù)據(jù)的均值和方差相互關(guān)系的基本分析、數(shù)據(jù)間相關(guān)系數(shù)的計(jì)算等工作。首先,實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)。Impala是Cloudera平臺(tái)下的大規(guī)模并行處理(Massive Parallel Processing, MPP)數(shù)據(jù)庫引擎,使用Python編寫程序,將實(shí)驗(yàn)數(shù)據(jù)寫入Impala數(shù)據(jù)表;其次,通過調(diào)用Spark機(jī)器學(xué)習(xí)庫(Machine Learning Library, MLlib)的Statistics組件實(shí)現(xiàn)數(shù)據(jù)均值、方差,通過分析剔除明顯錯(cuò)誤的數(shù)據(jù),并在此基礎(chǔ)上得出可用樣本集;然后,調(diào)用MLlib的Statistics組件實(shí)現(xiàn)數(shù)據(jù)之間相關(guān)性系數(shù)計(jì)算,找出與花粉濃度相關(guān)的主要?dú)庀笠?最后,選擇Spark on Yarn運(yùn)行方式和合適的Spark運(yùn)行參數(shù)組合,將這些程序提交到Cloudera集群上運(yùn)行,實(shí)現(xiàn)并行化處理以提高數(shù)據(jù)預(yù)處理工作的時(shí)效。
AIW-PSO算法的運(yùn)行效率與粒子群中粒子數(shù)目、參數(shù)的取值此處缺少了相關(guān)變量吧?請(qǐng)補(bǔ)充、參與建模的數(shù)據(jù)樣本等都有關(guān)系,通常需要運(yùn)行多次粒子群算法才能到達(dá)調(diào)優(yōu)目的。單機(jī)模式下運(yùn)行一次粒子群算法程序往往需要2~3h,因此整個(gè)參數(shù)調(diào)優(yōu)的過程十分耗時(shí)。本文基于Spark框架實(shí)現(xiàn)AIW-PSO算法的處理。
4.2.2 花粉濃度預(yù)測(cè)模型的實(shí)現(xiàn)
由于MLlib的SVM組件目前只支持分類不支持回歸,因此基于Python的開源機(jī)器學(xué)習(xí)庫,使用最優(yōu)的(C,γ)參數(shù)建立SVM的花粉濃度預(yù)測(cè)模型,對(duì)未來24h的花粉濃度進(jìn)行預(yù)測(cè)。其中,SVM類型選擇epsilon-SVR,核函數(shù)選擇RFB核函數(shù)。
為了方便具有自適應(yīng)慣性權(quán)重的粒子群算法與其他優(yōu)化算法進(jìn)行比較,實(shí)現(xiàn)了標(biāo)準(zhǔn)粒子群優(yōu)化算法、傳統(tǒng)遍歷算法以及基于這些算法的SVM建模。此外,為了更進(jìn)一步將SVM與其他模型相比,還實(shí)現(xiàn)了多元線性回歸法(Multiple Linear Regression, MLR)和RBFNNBPNN請(qǐng)補(bǔ)充RBFNN的中文全稱和英文全稱?;貜?fù):原內(nèi)容為"RBFNN",現(xiàn)修改為"BPNN"的建模,然后考慮到這些優(yōu)化算法本身的差異、MLlib對(duì)機(jī)器學(xué)習(xí)算法支持的局限性和編程工作量,這些算法和模型的實(shí)現(xiàn)選擇了基于Python的開源機(jī)器學(xué)習(xí)庫,程序的運(yùn)行方式為單機(jī)模式運(yùn)行。
4.3 實(shí)驗(yàn)結(jié)果的分析
4.3.1 SVM的參數(shù)優(yōu)化
本文實(shí)現(xiàn)了AIW-PSO算法、標(biāo)準(zhǔn)粒子群算法和傳統(tǒng)遍歷方法,得到了不同算法下的最優(yōu)(C,γ)參數(shù)。
1)使用AIW-PSO算法。
在參考大量文獻(xiàn)的基礎(chǔ)上,在本文中對(duì)PSO算法的各個(gè)參數(shù)作合理的設(shè)定。需要優(yōu)化的有2個(gè)參數(shù),因此選擇粒子群的維度為2。粒子群體的大小決定了初始搜索的速度,設(shè)置為30。加速度常數(shù)取c1=c2=2,迭代步數(shù)為100,慣性權(quán)重ω取初始值為0.9。參數(shù)C的優(yōu)化范圍(0,10000),參數(shù)γ的優(yōu)化范圍為(0,20)。根據(jù)上述的模型優(yōu)化過程計(jì)算,可以得到如圖4所示的粒子群優(yōu)化誤差曲線。橫軸為迭代步數(shù),縱軸為預(yù)測(cè)結(jié)果的均方誤差(MSE)。
由圖4中可以看出,粒子群算法需要65步左右可以找到最優(yōu)參數(shù),收斂速度還算快。迭代100步在單機(jī)模式下需要時(shí)間為5581s,在Spark框架下則僅需要617s,得到C為592,γ為34.25,代入SVM建模得到測(cè)試樣本數(shù)據(jù)預(yù)測(cè)結(jié)果的均方誤差為1.85×10-2。圖4為均方誤差隨迭代步長的變化。
2)使用傳統(tǒng)的遍歷方法。
傳統(tǒng)的遍歷方法就是設(shè)定參數(shù)C和γ的優(yōu)化范圍、固定優(yōu)化步長,通過多次遍歷循環(huán)使預(yù)測(cè)結(jié)果的均方誤差在可被允許的誤差范圍內(nèi)。為了方便比較,參數(shù)C的優(yōu)化范圍(0,10000),優(yōu)化步長為20,參數(shù)γ的優(yōu)化范圍為(0,20),選取優(yōu)化步長為1。從程序運(yùn)行結(jié)果來看,整個(gè)優(yōu)化過程在單機(jī)模式下需時(shí)間約為30965s,約8.6h,得到C為784,γ為25.37,根據(jù)所得參數(shù)重建回歸模型得到測(cè)試樣本的預(yù)測(cè)結(jié)果均方誤差為4.18×10-2。
3)使用標(biāo)準(zhǔn)粒子群優(yōu)化(PSO)算法。
標(biāo)準(zhǔn)的粒子群算法將慣性權(quán)重ω參數(shù)取一個(gè)固定值來進(jìn)行計(jì)算,這是它和有自適應(yīng)慣性權(quán)重的粒子群算法的唯一區(qū)別。慣性權(quán)重ω取值為0.9,其他參數(shù)與具有于有自適應(yīng)慣性權(quán)重的粒子群算法取值相同。從程序運(yùn)行結(jié)果來看,整個(gè)優(yōu)化過程在單機(jī)模式下需時(shí)間約為19531s,得到C為478,γ為17.61,根據(jù)所得參數(shù)重建回歸模型得到測(cè)試樣本的預(yù)測(cè)結(jié)果均方誤差為2.67×10-2。表1列出了三種優(yōu)化算法的運(yùn)行時(shí)間和得到的優(yōu)化參數(shù)。
可以看出,幾種方法建立的花粉濃度預(yù)測(cè)模型的誤差水平基本相當(dāng)。AIW-PSO算法建立回歸預(yù)測(cè)模型所需時(shí)間最短而誤差最小;與傳統(tǒng)遍歷方法相比,AIW-PSO算法建立模型的耗時(shí)減少了81.9%;與標(biāo)準(zhǔn)粒子群算法相比,AIW-PSO算法建立模型的耗時(shí)減少了71.4%,而均方誤差則與它相差不遠(yuǎn)。由此可以看出,AIW-PSO算法實(shí)現(xiàn)簡單,通過信息的共享及傳遞大幅度縮短了尋優(yōu)時(shí)間,大幅度提高了收斂速度。
4.3.2 未來24h花粉濃度預(yù)測(cè)
根據(jù)表1所示幾種優(yōu)算法的均方誤差結(jié)果,選擇AIW-PSO算法得到的參數(shù)結(jié)果建立優(yōu)化后的SVM模型對(duì)2017年4—9月逐日花粉濃度進(jìn)行預(yù)測(cè),并將它與未優(yōu)化的SVM、MLR和反向傳播神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network, BPNN)模型進(jìn)行對(duì)比,四種模型下的花粉濃度預(yù)測(cè)曲線隨時(shí)間的變化如圖5所示。
由圖5可知,對(duì)于逐日花粉濃度,各種方法的預(yù)測(cè)曲線與實(shí)際觀測(cè)曲線的趨勢(shì)都基本保持一致。優(yōu)化后的SVM模型的預(yù)測(cè)曲線與實(shí)際觀測(cè)曲線最為接近,尤其是在濃度波峰附近,表明該模型能較好地對(duì)花粉濃度峰值進(jìn)行預(yù)測(cè),這對(duì)花粉預(yù)測(cè)的社會(huì)影響有著十分積極的作用,因?yàn)榛ǚ蹪舛确逯抵苯雨P(guān)系到花粉過敏癥患者的病情。未優(yōu)化的SVM模型的預(yù)報(bào)曲線在花粉濃度波谷部分和花粉濃度不超過200部分?jǐn)M合較好,對(duì)花粉濃度峰值的預(yù)測(cè)偏離較大,預(yù)測(cè)效果不理想。MLR模型的預(yù)報(bào)曲線起伏不是很大,花粉不超過200的預(yù)測(cè)值比實(shí)際觀測(cè)值偏大,而花粉濃度超過400的預(yù)測(cè)值又比實(shí)際觀測(cè)值偏小很多,總之和實(shí)際觀測(cè)曲線偏離較大,這個(gè)結(jié)果也從客觀上驗(yàn)證了花粉濃度和氣象要素并不是線性相關(guān)的。BPNN模型的預(yù)測(cè)曲線在花粉濃度小于100情況下擬合較好,在花粉濃度超過100的時(shí)候普遍比實(shí)際觀測(cè)值偏小。相比之下,優(yōu)化后的SVM模型預(yù)測(cè)效果最好。
4.3.3 平均絕對(duì)誤差與MSE誤差分析
本文使用均方誤差和平均絕對(duì)誤差(Mean Absolute Error, MAE)對(duì)預(yù)測(cè)結(jié)果進(jìn)行評(píng)價(jià)。均方誤差是衡量“平均誤差”的一種較常見方法,可以評(píng)價(jià)數(shù)據(jù)的變化程度,均方誤差的值越小,說明預(yù)測(cè)模型具有更好的精確度。圖6顯示了2013—2017年每年4—9月幾種模型的MSE月均值分布在不同數(shù)值區(qū)間的情況。從圖6可以看出,優(yōu)化后的SVM模型的MSE在[0.01,56.93]區(qū)間,在(0,5]區(qū)間出現(xiàn)了23次,(5,50]區(qū)間出現(xiàn)了6次,(50,100]區(qū)間出現(xiàn)了1次;未優(yōu)化的SVM模型的MSE在[0.01,272.33]區(qū)間,在(0,5]區(qū)間出現(xiàn)了3次,(5,50]區(qū)間出現(xiàn)了5次,(50,100]區(qū)間出現(xiàn)了2次,[100,200]區(qū)間出現(xiàn)了18次,(200,300)區(qū)間出現(xiàn)了2次;MLR模型的MSE分布在[23.79,343.68]區(qū)間,(5,50]區(qū)間出現(xiàn)了2次,在[100,200]區(qū)間出現(xiàn)14次,在[(200,350]區(qū)間出現(xiàn)了14次。優(yōu)化后的SVM模型的MSE分布最多的區(qū)間為(0,50],未優(yōu)化的SVM模型的MSE分布最多的區(qū)間為(100,200],而MLR模型的MSE大部分分布在(100,350]區(qū)間,相比之下,優(yōu)化后的SVM模型MSE最小,預(yù)測(cè)精確度最高。
平均絕對(duì)誤差是絕對(duì)誤差的平均值,能更好地反映預(yù)測(cè)值誤差的實(shí)際數(shù)量情況。圖7顯示了幾種預(yù)測(cè)花粉濃度模型的MAE。根據(jù)圖7,使用AIW-PSO算法的SVR模型達(dá)到了最佳估計(jì)成果,其五年的平均MAE僅為16.24,這是最小的并且表明絕對(duì)誤差是可接受的。BPNN模型和MLR模型的MAE大于這兩個(gè)SVR模型。BPNN模型的預(yù)測(cè)誤差最大,而MLR模型的穩(wěn)定性最差。綜上所述,采用AIW-PSO算法的SVR模型預(yù)測(cè)精度最高,算法性能穩(wěn)定。
4.3.4 優(yōu)化后SVM模型的泛化能力
為了證明優(yōu)化后的SVM模型具有泛化能力,并進(jìn)一步驗(yàn)證改進(jìn)后的模型的有效性,本文選擇了北京市觀象臺(tái)和密云站點(diǎn)作為檢驗(yàn)對(duì)象(這兩個(gè)站點(diǎn)海拔高度差別大、基本氣候條件不一樣)再次進(jìn)行2012年4—9月逐日花粉濃度預(yù)測(cè),得出結(jié)果如圖8所示。觀察對(duì)比兩個(gè)站點(diǎn)發(fā)現(xiàn),預(yù)測(cè)曲線和實(shí)際觀測(cè)曲線擬合較好,充分說明模型預(yù)測(cè)有效,具有范化能力。
5 結(jié)語
氣象因素一直是影響花粉濃度預(yù)測(cè)的主要因素,分別分析單一氣象因素的影響不能較好地體現(xiàn)出多個(gè)氣象因素產(chǎn)生的耦合效果對(duì)它的影響規(guī)律。本文提出了一種利用SVM進(jìn)行非線性回歸和預(yù)測(cè)的方法,利用氣象影響因子和花粉濃度觀測(cè)實(shí)況數(shù)據(jù),應(yīng)用粒子群算法優(yōu)化SVM參數(shù),在此基礎(chǔ)上建立花粉濃度預(yù)測(cè)模型。通過幾個(gè)模型預(yù)測(cè)結(jié)果和誤差的對(duì)比表明,優(yōu)化后的SVM模型較為合理,預(yù)測(cè)精度較高,根據(jù)測(cè)試,預(yù)測(cè)結(jié)果比較接近實(shí)際觀測(cè)值,同時(shí)具有較強(qiáng)泛化能力。
在算法的實(shí)現(xiàn)過程中,本文充分利用大數(shù)據(jù)技術(shù),利用Impala技術(shù)實(shí)現(xiàn)樣本數(shù)據(jù)的高效存儲(chǔ)管理,基于Spark框架實(shí)現(xiàn)了數(shù)據(jù)預(yù)處理和部分關(guān)鍵算法的并行處理,大幅度提高了算法時(shí)效;然而由于Spark支持的機(jī)器學(xué)習(xí)算法有一定局限,本文涉及到的部分算法還未實(shí)現(xiàn)并行化的處理,這方面仍存在改進(jìn)與提高的空間,所以,接下來還可以繼續(xù)研究SVM回歸模型算法的并行化技術(shù),進(jìn)一步提高模型的效率和精度。
參考文獻(xiàn) (References)
[1] 吳振玲,劉愛霞,白玉榮,等.花粉預(yù)報(bào)服務(wù)社會(huì)經(jīng)濟(jì)效益估算分析[J].氣象,2011,37(5):626-632.(WU Z L, LIU A X, BAI Y R, et al. Study on evaluation of economic benefits from pollen forecast and service in Tianjin [J]. Meteorological Monthly, 2011, 37(5):626-632.)
[2] 白玉榮,劉彬賢,劉艷,等.花粉濃度預(yù)報(bào)[J].氣象,2002,28(6):56-57.(BAI Y R, LIU B X, LIU Y, et al. Pollen concentration forecast [J]. Meteorological Monthly, 2002, 28(6): 56-58.)
[3] 劉彬賢,白玉榮.花粉濃度預(yù)報(bào)方法的初步探究[J].氣象科學(xué),2007,27(b12):95-99.(LIU B X, BAI Y R. Primary research method on forecasting the pollen concentration [J]. Scientia Meteorologica Sinica, 2007,27(b12):95-99.)
[4] 段麗瑤,白玉榮,吳振鈴.天津地區(qū)氣象要素與花粉濃度的關(guān)系[J].城市環(huán)境與城市生態(tài),2008,21(4):37-40.(DUAN L Y, BAI Y R, WU Z L. Relationship between pollen concentration and meteorological elements in Tianjin area [J]. Urban Environment & Urban Ecology, 2008, 21(4):37-40.)
[5] 吳振玲,宛公展,白玉榮,等.天津氣傳花粉預(yù)測(cè)模型研究[J].氣象科技,2007,35(6):832-838.(WU Z L, YUAN G Z, BAI Y R, et al. Study of airborne pollen prediction model [J]. Meteorological Science and Technology, 2007, 35(6):832-838.)
[6] 張德山,海玉龍,馮濤,等.北京地區(qū)1~4天花粉濃度預(yù)報(bào)的應(yīng)用研究[J].氣象,2010,36(5):128-132.(ZHANG D S, HAI Y L, FENG T, et al. Applied research on the 1-4 day pollen concentration forecast in Beijing area [J]. Meteorological Monthly, 2010, 36(5):128-132.)
[7] 張德山,徐景先,張姝麗,等.北京地區(qū)花粉通量演變曲線的預(yù)報(bào)模式初探[J].氣象科學(xué),2010,30(6):822-826.(ZHANG D S, XU J X, ZHANG Z L, et al. Preliminary study on predicting model of airborne pollen flux in Beijing [J]. Meteorological Science, 2010, 30(6):822-826.)
[8] 張姝麗,張德山,何海娟.北京城市花粉數(shù)量天氣條件分析法研究[J].氣象科技,2003,31(6):406-408.(ZHANG Z L, ZHANG D S, HE H J. Study on the weather conditions of pollen concentration in Beijing city [J]. Meteorological Science and Technology, 2003, 31(6):406-408.)
[9] 張姝麗,張德山,何海娟.北京城區(qū)8月日花粉總量和致敏花粉數(shù)量短期預(yù)報(bào)[J].氣象科技,2006,34(6):724-727.(ZHANG Z L, ZHANG D S, HE H J. Daily total pollen and allergic pollen forecasting in August in Beijing [J]. Meteorological Science and Technology, 2006, 34(6): 724-728.)
[10] 李龍,馬磊,賀建峰,等.基于特征向量的最小二乘支持向量機(jī)PM2.5濃度預(yù)測(cè)模型[J].計(jì)算機(jī)應(yīng)用,2014,34(8):2212-2216.(LI L, MA L, HE J F, et al. PM2.5 concentration prediction model of least squares support vector machine based on feature vector [J]. Journal of Computer Applications, 2014,34(8):2212-2216.)
[11] 劉杰,楊鵬,呂文生,等.模糊時(shí)序與支持向量機(jī)建模相結(jié)合的PM2.5質(zhì)量濃度預(yù)測(cè)[J].北京科技大學(xué)學(xué)報(bào),2014,36(12):1694-1703.(LIU J, YANG P, LYU W S, et al. Prediction model of PM2. 5 mass concentrations based on fuzzy time series and support vector machine [J]. Journal of University of Science and Technology Beijing, 2014, 36(12):1694-1703.)
[12] 岳鵬程,張林梁,馬閱軍.基于模糊時(shí)序和支持向量機(jī)的高速公路SO2濃度預(yù)測(cè)算法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2017,26(6):1-8.(YUE P C, ZHANG L L, MA Y J. Prediction for SO2 concentration based on the fuzzy time series and Support Vector Machine (SVM) on expressway [J]. Journal of Computer System Applications, 2017, 26(6): 1-8.)
[13] 陳柳,吳冬梅,陳俏.小波分析及支持向量機(jī)應(yīng)用于大氣污染預(yù)測(cè)[J].西安科技大學(xué)學(xué)報(bào),2010,30(6):726-730.(CHEN L, WU D M, CHEN Q. Prediction of air pollution based on wavelet analysis and support vector machine [J]. Journal of Xian University of Science and Technology,2010, 30(6):726-730.)
[14] 劉春波,王群芳,潘豐.基于蟻群優(yōu)化算法的支持向量機(jī)參數(shù)選擇及仿真[J].中南大學(xué)學(xué)報(bào)(自然科學(xué)版),2008,39(6):1309-1314.(LIU C B, WANG Q F, PAN F. Parameters selection and stimulation of support vector machines based on ant colony optimization algorithm [J]. Journal of Central South University (Science and Technology), 2008, 39(6): 1309-1314.)
[15] RAKOTOMAMONJY A, LE RICHE R, GUALANDRIS D, et al. A comparison of statistical learning approaches for engine torque estimation[J]. Control Engineering Practice, 2008, 16(1):43-45.
[16] 陳然,孫冬野,秦大同,等.發(fā)動(dòng)機(jī)支持向量機(jī)建模及精度影響因素[J].中南大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,41(4):1391-1396.(CHEN R, SUN D Y, QIN D T, et al. A novel engine identification model based on support vector machine and analysis of precision-influencing factors [J]. Journal of Central South University (Science and Technology), 2010, 41(4):1391-1396.)
[17] YOU Z Y, CHEN W R, HE G J. Adaptive weight particle swarm optimization algorithm with constriction factor[C]// Proceedings of the 2010 International Conference of Information Science and Management Engineering. Washington, DC: IEEE Computer Society, 2010: 245-248.