胡進(jìn)才, 張 菁, 王大龍, 呂 偉, 歐陽文安
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620)
霧霾天氣的出現(xiàn)對身體健康、農(nóng)作物生長以及國家長遠(yuǎn)發(fā)展都有嚴(yán)重影響[1]。因此,監(jiān)測空氣質(zhì)量十分有必要。根據(jù)國家的規(guī)定,一般選取NO2,O3,CO,PM 2.5,PM 10,SO2六項檢測指標(biāo),再用空氣質(zhì)量指數(shù)(air quality index,AQI)直觀地反映空氣質(zhì)量[2,3]。
在對AQI預(yù)測模型中,最小二乘支持向量機(jī)(least square support vector machine,LSSVM)模型應(yīng)用最為廣泛,但LSSVM不能準(zhǔn)確選擇參數(shù)。對此,文獻(xiàn)[4]選擇在每次迭代中全部個體的均方誤差的最小值作為適應(yīng)度函數(shù),再利用粒子群優(yōu)化(particle swarm optimization,PSO)算法對LSSVM的兩個參數(shù)優(yōu)化,從而能夠精準(zhǔn)預(yù)測;文獻(xiàn)[5]通過鯨魚優(yōu)化算法(whale optimization algorithm,WOA)對LSSVM模型的兩個參數(shù)優(yōu)化,得到鍋爐NOx排放量的預(yù)測模型;文獻(xiàn)[6]通過樽海鞘群優(yōu)化算法(SSA)進(jìn)行尋優(yōu),再通過K均值聚類和SSA-LSSVM共同建立預(yù)測模型,對短期負(fù)荷進(jìn)行預(yù)測;文獻(xiàn)[7]通過利用自適應(yīng)位置更新和高斯變異來對灰狼優(yōu)化(GWO)算法進(jìn)行改進(jìn),然后優(yōu)化LSSVM的參數(shù),最終能夠?qū)δサV粒度進(jìn)行預(yù)測;文獻(xiàn)[8]通過利用非線性慣性權(quán)重來改進(jìn)螢火蟲算法(FA),再把改進(jìn)的算法用來優(yōu)化LSSVM的參數(shù),最終實現(xiàn)對糧食產(chǎn)量的預(yù)測。
上述文獻(xiàn)中,雖然各模型都能實現(xiàn)預(yù)測,但精度不高,并且優(yōu)化算法中初始群體是隨機(jī)產(chǎn)生的,容易擴(kuò)大尋優(yōu)范圍使迭代次數(shù)增加,不利于尋找最優(yōu)解。為解決上述問題,本文提出一種基于改進(jìn)的適應(yīng)度相關(guān)優(yōu)化器(improved fitness dependent optimizer LSSVM,IFDO-LSSVM)的預(yù)測方法。
LSSVM[9,10]是一種機(jī)器學(xué)習(xí)方法[11]。其具體內(nèi)容如下:
在給定的數(shù)據(jù)訓(xùn)練集{(xi,yi)|i=1,2,…,m},其中,m為訓(xùn)練樣本數(shù),LSSVM的優(yōu)化模型可以表示為
(1)
s.t.yi=wTφ(xi)+b+ei,i=1,2,…,m
(2)
式中w為權(quán)重,C為懲罰參數(shù),ei為松弛變量,b為誤差;φ(xi)為一種映射關(guān)系。
利用Lagrange法求式(1)、式(2)的優(yōu)化問題,構(gòu)造成函數(shù)為
L(w,b,e,α)=J(w,b,e)-
(3)
式中α為Lagrange乘子,即α=[α1,α2,…,αm],并且每個元素都大于零。
再利用KKT條件,對式(3)中w,b,ei,αi求偏導(dǎo),得
(4)
(5)
(6)
(7)
然后根據(jù)式(4)消除式(7)中的w,用式(6)消除式(7)中的ei,可以把式(5)、式(7)最終整理為
(8)
其中,i=1,2,…,m;j=1,2,…,m;令:K(xi,xj)=φ(xi)Tφ(xj),其中K(xi,xj)代表核函數(shù)。然后對式(8)進(jìn)行求解,可得LSSVM的回歸方程
(9)
由于徑向基函數(shù)結(jié)構(gòu)簡單,參數(shù)少[12],因此,選擇徑向基函數(shù)作為核函數(shù),即表示為
(10)
式中σ為核函數(shù)的參數(shù)。
適應(yīng)度相關(guān)優(yōu)化器(fitness dependent optimizer,FDO)算法[13]是由Abdullah J M和Rashid T A在2019年提出的一種新啟發(fā)式算法。算法通過蜜蜂在繁殖時的行為和蜂群決策而受到啟發(fā)。在這個過程中主要包括兩個階段,即是搜索過程和移動過程。
算法中,先設(shè)置迭代次數(shù)max_iteration、群體數(shù)目u、優(yōu)化問題的維數(shù)v、優(yōu)化對象的范圍、初始群體的位置、初始速度的大小、適應(yīng)度函數(shù)。其中,初始群體為
X(u,v)=(g(1,v)-h(1,v))×
rand(u,v)+h(1,v)
(11)
式中g(shù)(1,v)為優(yōu)化對象最大值;h(1,v)為優(yōu)化對象最小值;v為優(yōu)化對象維數(shù);u為群體數(shù)目;u,v取正整數(shù)。
搜索過程:通過式(11)在規(guī)定范圍內(nèi)產(chǎn)生初始蜂群(偵查蜜蜂數(shù)目),每個偵查蜜蜂的位置代表一個解。每個偵查蜜蜂通過隨機(jī)機(jī)制搜索更多蜂巢(解),每發(fā)現(xiàn)一個更好的解,先前的解將被忽略。如果目前搜索的解沒有先前效果好,則下次搜索方向?qū)凑障惹胺较蛩阉?但搜索出的解還是沒有先前效果好,則下次搜索將繼續(xù)使用先前的解。
移動過程:每個偵查蜜蜂通過增加速度來更新此時的位置,以此得到更好的解。偵查蜜蜂移動位置的更新公式如下
Xi,t+1=Xi,t+pace
(12)
式中i為當(dāng)前群體中第i個偵查蜜蜂;t為當(dāng)前第t次迭代;X為每個偵查蜜蜂的位置;pace為偵查蜜蜂移動的速度和方向;pace主要由適應(yīng)度權(quán)重wf決定,pace的方向只有隨機(jī)機(jī)制決定。適應(yīng)度權(quán)重wf的計算公式如下
(13)
(14)
再由wf得到速度的值,r屬于[-1,1]中的隨機(jī)數(shù)。當(dāng)wf=1,wf=0,xi,t fitness=0時,執(zhí)行式(15);當(dāng)0 wf=1 orwf=0 orxi,t fitness=0?pace=xi,t*r (15) (16) (17) X1(2u,v)=(g(1,v)-h(1,v))×rand(2u,v)+ h(1,v) (18) 基于IFDO-LSSVM的預(yù)測模型步驟如下: 步驟1 利用Mapminmax函數(shù)對數(shù)據(jù)進(jìn)行預(yù)處理。 步驟2 設(shè)置FDO算法的參數(shù):迭代次數(shù)max_iteration,群體數(shù)目u,優(yōu)化問題的維數(shù)v,優(yōu)化對象的范圍g(1,v)和h(1,v),初始速度pace,適應(yīng)度權(quán)重系數(shù)αw=1。 步驟3 選擇合適的適應(yīng)度函數(shù),在此處選擇數(shù)據(jù)的標(biāo)準(zhǔn)誤差均方根誤差(root mean square error,RMSE)作為適應(yīng)度函數(shù),公式如下 (19) 式中m為訓(xùn)練數(shù)據(jù)的個數(shù);X″i為預(yù)測值,Xi為真實值。 步驟4 利用2.1節(jié)的方法產(chǎn)生初始群體,同時用式(19)得到適應(yīng)度函數(shù)值。 步驟5 當(dāng)t≤max_iteration時,更新wf,pace,X。 步驟7 更新r,然后當(dāng)wf=1,wf=0,xi,t fitness=0時,執(zhí)行式(15);當(dāng)0 步驟8 如果通過步驟7更新xi,t fitness比之前效果好,那么保存pace,xi,t fitness和X;否則,利用之前X的和步驟7中的pace,通過式(20)更新X,利用式(19)更新xi,t fitness Xi,t+1=Xi,t+pace+pace* (20) 式中pace*為在第t-1次迭代時第i個位置對應(yīng)的速度。 步驟9 如果通過步驟8更新xi,t fitness比之前效果好,那么保存pace,xi,t fitness和X;否則,在步驟8中X的基礎(chǔ)上隨機(jī)生成X,同時利用式(19)更新xi,t fitness。 步驟10 如果通過步驟9更新xi,t fitness比之前效果好,那么保存xi,t fitness和X;否則,X為本次迭代開始的X。 步驟11 執(zhí)行t=t+1,循環(huán)步驟5~步驟10,當(dāng)t大于 max_iteration時循環(huán)結(jié)束。輸出u個X,在u個X中找到全局最優(yōu)解x*。 步驟12 步驟11中的x*為LSSVM中的兩個參數(shù)C和σ。將C和σ以及預(yù)測數(shù)據(jù)代入到LSSVM模型中,即可得到預(yù)測結(jié)果。 實驗中,通過天氣后報數(shù)據(jù)網(wǎng)站(http:∥www.tianqihoubao.com/)收集鄭州市在2017年~2019年750組天氣數(shù)據(jù),如表1所示。 表1 部分實驗數(shù)據(jù) 其中,550組數(shù)據(jù)為訓(xùn)練樣本,200組數(shù)據(jù)為測試樣本,AQI為預(yù)測對象。NO2,O3,CO,PM 2.5,PM 10,SO2這6個指標(biāo)作為輸入對象,建立模型。由于6個指標(biāo)量綱不同,對預(yù)測結(jié)果會產(chǎn)生影響。因此,用Mapminmax函數(shù)對數(shù)據(jù)預(yù)處理,得到的數(shù)據(jù)在區(qū)間[0,1]中,公式如下 (21) 式中ymax為指定預(yù)處理所到區(qū)間的最大值,ymin為指定預(yù)處理所到區(qū)間的最小值,x為樣本數(shù)據(jù),x′為處理后的數(shù)據(jù),xmax,xmin分別為樣本的最大值、最小值。 在Windows10操作系統(tǒng)中,利用MATLAB R2016b軟件進(jìn)行實驗。對FDO算法設(shè)置參數(shù):max_iteration為100,u為50,v為2,C取值范圍為[0.1,500],σ取值范圍為[0.1,100],對于此外的PSO算法、WOA中參數(shù)設(shè)置與FDO算法相同。選用式(19)作為適應(yīng)度函數(shù),式(19)、式(22)作為評價指標(biāo) (22) 用IFDO算法、FDO算法、PSO算法、WOA進(jìn)行尋優(yōu),四種算法的適應(yīng)度變化曲線對比圖,如圖1所示。 圖1 適應(yīng)度曲線對比 從圖1可以看出,FDO算法、WOA、PSO算法和IFDO算法在尋優(yōu)時適應(yīng)度的起始點所在范圍分別為[9,10],[10,11],[7,8],[6,7]。FDO算法、WOA和PSO算法隨機(jī)產(chǎn)生初始群體,而IFDO算法利用改進(jìn)的反向?qū)W習(xí)算法產(chǎn)生初始群體。因此,從圖中可以看出,IFDO算法的收斂精度更高,初始群體更加靠近全局最優(yōu)解,從而尋優(yōu)范圍變小,便于尋優(yōu)。用IFDO算法尋優(yōu)時在30~40代之間收斂,用FDO算法尋優(yōu)時在40~50代之間收斂,用PSO算法尋優(yōu)時在70~80代收斂,用WOA尋優(yōu)時在80~90代收斂,因此,IFDO算法比FDO算法、PSO算法和WOA收斂快。 在通過上述算法尋優(yōu)后,取得最優(yōu)參數(shù)C和σ。用IFDO算法優(yōu)化參數(shù)為C=496.031 7,σ=0.100 1,預(yù)測結(jié)果如圖2所示。 圖2 AQI的真實值與預(yù)測值 四種模型的預(yù)測精度如表2所示。 表2 四種算法預(yù)測誤差的對比 選擇MSE和RMSE作為評價指標(biāo),這兩個指標(biāo)越小,說明預(yù)測精度越高,預(yù)測誤差越小。從表2中可以看出,通過WOA-LSSVM得到MSE和RMSE分別為15.655 5,3.956 7;通過PSO-LSSVM得到MSE和RMSE分別為14.438 6,3.799 8;通過FDO-LSSVM模型得到MSE和RMSE分別為12.713 5,3.565 6;通過IFDO-LSSVM得到的MSE和RMSE分別為12.108 9,3.479 8。因此,在四種模型中,IFDO-LSSVM的模型具有最高精度,最小誤差。 1)本文提出一種基于IFDO-LSSVM的AQI預(yù)測模型,模型中,IFDO算法收斂速度快,初始群體更靠近全局最優(yōu)解,從而有利于搜索全局最優(yōu)解。 2)通過三種模型對AQI預(yù)測發(fā)現(xiàn)IFDO-LSSVM預(yù)測模型精度最高,誤差最小。因此,該方法對AQI能夠?qū)崿F(xiàn)有效預(yù)測。2.2 基于IFDO-LSSVM的預(yù)測模型
3 實例分析
3.1 數(shù)據(jù)的來源與預(yù)處理
3.2 實驗參數(shù)的設(shè)置和結(jié)果分析
4 結(jié)束語