張 鵬,張海燕
(太原工業(yè)學院理學系,山西太原 030008)
人們生活水平的提高使得火車、高鐵等出行工具的受眾范圍越來越廣。對鐵路客運量的預測也顯得尤為重要。鐵路客運量的預測能夠讓鐵路部門更好地統(tǒng)籌規(guī)劃,也能讓其他行業(yè)提前對出行高峰做出準備。很多國內外的學者用各種方式對鐵路客運量進行了預測,例如BP 神經網絡、支持向量機、灰色線性回歸、新型組合模型等[1]。將基于“先分解后集成”的思想[2],采用EMD 和SVM 結合的預測方法來對鐵路客運量進行分析研究。
在實際中很多時間序列都不具有穩(wěn)定性,僅使用支持向量機進行回歸和預測,精度往往不如人意。將引入經驗模態(tài)分解來提高精度,EMD 模型是可以把復雜信號拆成有限的IMF 分量和余項[3-5]。EMD 分解要滿足兩個假設:首先,信號要有極大和極小值;其次,數(shù)據(jù)局部時域特性由極值點間時間尺度唯一確定。步驟如下:
(1)識別出信號x(t) 全部的極大值點和極小值點;
(2)使用3 次樣條曲線對信號x(t) 的極值點的做擬合,得到x(t)的上下包絡線esup(x)、einf(x),其中,有如下的關系式:
(3)計算上包絡線esup(x)和下包絡線einf(x)的平均值a(t),其中,
(4)用信號x(t)減去平均值a(t)可以得到一個新的函數(shù)y(t),其中,
(5)判斷y(t)是不是IMF 分量,依據(jù)是IMF 的兩個特點,如果y(t)滿足IMF 的兩個特點,就可以記y(t)是信號的一個IMF分量w1(t);
(6)假如y(t)不滿足IMF 的兩個特點,就要用新的y(t);
(7)重復上述步驟直到y(tǒng)(t)滿足了IMF 的特點,記y(t)是x(t)的一個分量w1(t);
(8)根據(jù)上述步驟每得到的一階IMF,從x(t)中減去它,得到一個新的函數(shù)b1(t),
(9)將新得到的b1(t)作為新的x(t),重復上述步驟,得到其余IMF 分量w1(t),直到rn(t)比預定值小或者成為了單調的函數(shù),就停止分解,記最后的bn(t)為殘余分量。
經過上述的EMD 分解方法,就將原始信號x(t)分解成了n個IMF分量和殘余分量的線性疊加,即
支持向量機是在深度學習被提出來前表現(xiàn)較好的機器學習算法。SVM[6-8]的基本思想是:用內積函數(shù)定義非線性變換,將輸入空間從低維變到高維空間中,使樣本線性可分。
{(x1,y1),(x2,y2),(x3,y3),L,(xn,yn)}作為一個訓練集,其SVM估計為:
在公式(6)中,<·>代表的是w和φ(x)的內積的運算,φ(x)代表的從輸入空間為高維特征空間的非線性映射,w表示的是權系數(shù)向量,c是一個常數(shù)。其正確性的衡量采用的是損失函數(shù),在SVM 模型的回歸中,采用的是不敏感損失函數(shù),公式如下:
w和c的確定的依據(jù)是風險最小化原則,它的優(yōu)化公式如公式(8),其中C表示的是懲罰因子,
為了能夠找到這兩個系數(shù),還需要引入兩個松弛變量——ξi、ξj,優(yōu)化公式為:
依據(jù)拉格朗日方法,求到w的鞍點,其中,αi,是拉格朗日乘子:
將式(10)代入式(6)中,可以得到(11),其中k(xi,x)稱為是核函數(shù),
優(yōu)化(9)式的,可以將它轉化成為對偶問題。利用對偶定理,得到如下的對偶式:
依據(jù)KKT條件,可以求出αi,,期間會有部分αi,的值不等于零,其對應的樣本,稱為支持向量。
數(shù)據(jù)選自國家統(tǒng)計局2011年10月到2020年1月的鐵路客運量。具體的鐵路的客運量數(shù)據(jù)如表1 所示,鑒于數(shù)據(jù)過多,這里只展示部分。
表1 鐵路客運量當期值
將使用平均絕對百分誤差(MAPE)和相對誤差(Pe)來衡量所建立的模型的回歸和預測能力,當MAPE 小于5%,測試集的Pe大部分小于10%,則認為建立的模型達到了精度要求。其中:
對上述的鐵路客運量數(shù)據(jù)進行經驗模態(tài)分解,將其分解成了3 個IMF 分量和一個剩余分量。使用matlabR2016a進行分解,結果如圖1所示。
圖1 鐵路客運量樣本數(shù)據(jù)及EMD分解結果
從圖1中可以看到,鐵路客運量數(shù)據(jù)被分解成立三個IMF分量以及一個殘余分量,分解得到的模塊具有一定的規(guī)律性且是平穩(wěn)的時間序列。
把樣本數(shù)據(jù)歸一化處理,可以使模型以更快速度求得最為優(yōu)異的結果。采用的映射如下:
運用上述公式分別對EMD 得到的三個IMF 分量和剩余分量進行歸一化處理。為了方便敘述,把100個樣本按時間賦予一個編號t,歸一化后數(shù)據(jù)如表2所示。由于數(shù)據(jù)過多,僅展示部分數(shù)據(jù)。
表2 EMD分解結果
在使用SVM進行回歸預測時,需要把100個樣本區(qū)分為訓練集和測試集,利用訓練集來進行模型訓練,利用測試集來檢驗模型預測的精度。由于數(shù)據(jù)是時間序列,所以將前70個月份的數(shù)據(jù)作為訓練集,后30個月的數(shù)據(jù)作為測試集。
使用GA 來尋找SVM 中參數(shù)的最優(yōu)值,初始化參數(shù)最大額進化代數(shù)為200,種群最大數(shù)量為20。先設置參數(shù)的變動范圍,分別對使用EMD 分解得到的三個IMF 分量和一個剩余分量的參數(shù)使用GA 遺傳算法進行參數(shù)的尋優(yōu)[9-11]。輸入為滯后3 個月份的分量值,標簽為當月的分量值。運行遺傳算法,得到各分量的最優(yōu)參數(shù)如表3所示。
表3 最優(yōu)參數(shù)
分量的回歸與預測使用的是RBF 核函數(shù),使用matlabR2016a進行回歸與預測。基本的思想是:對各個分量進行單獨的回歸與預測,將訓練集中滯后3個月份的分量值的歸一化后的數(shù)據(jù)作為輸入,將訓練集中當月的鐵路客運量的歸一化數(shù)值作為輸出,對模型進行足夠的訓練,得到各個分量的分量值與鐵路客運量之間的歸一化數(shù)據(jù)的非線性映射。各個分量的回歸結果和預測結果如圖2~5所示。
圖2 分量IMF1的回歸及預測結果
圖3 分量IMF2的回歸及預測結果
圖4 分量IMF3的回歸及預測結果
圖5 分量RES的回歸及預測結果
圖2~5 分別為EMD 分解得到的3 個IMF 分量和剩余分量的回歸及預測結果,其中實線代表的是原始數(shù)據(jù),圓點代表模型的回歸結果,星號代表模型的預測結果,可以看到,第1 個分量和第2 個分量的回歸及預測結果比較理想,第3個分量及剩余分量的回歸及預測結果非常理想。
將得到的歸一化后的模型的回歸結果和預測結果還原區(qū)間,得到鐵路客運量的各分量的回歸結果和預測結果。還原區(qū)間的公式如下:
由于EMD 分解的各分量有如下關系,其中wi(t)為分解得到的各個平穩(wěn)分量,bn(t)為余項。
故將各分量同時刻的回歸值疊加,就可以得到鐵路客運量的回歸值。疊加得到的鐵路客運量的回歸及預測結果如圖6所示。
圖6 鐵路客運量的回歸及預測結果
在圖6 中可以看到,雖然個別值的誤差較大,但總體上回歸及預測效果不錯。
先使用建立的模型看其在訓練集上的回歸效果,計算出每個樣本的相對誤差以及整體的平均絕對百分誤差,檢驗模型的回歸情況,計算其MAPE 為0.54%,觀察到這67 個樣本Pe的大部分都小于10%,對于訓練集,模型的回歸效果達到了預期的精度。
再使用建立的模型看其在測試集上的預測效果,計算出每個樣本的相對誤差以及整體的平均絕對百分誤差,檢驗模型的回歸情況,結果如表4所示。
表4 測試集數(shù)據(jù)預測值及相對誤差
計算其平均絕對百分誤差(MAPE)為0.64%,觀察到這27 個樣本的絕對誤差大部分都小于10%,對于測試集,模型的預測也效果達到了預期的精度。
對使用EMD 和SVM 對鐵路客運量進行了分析研究,由于鐵路客運量數(shù)據(jù)不具有平穩(wěn)性,所以先對鐵路客運量進行了EMD 分解,分解得到3 個IMF 及一個余項;之后采用SVM 對每一個分量進行回歸和預估分析,繼而把同時間點的結果進行累加合計,便可完成整個模型的構建過程??梢钥吹?,使用EMD和SVM 組合預測的方法雖然個別值有所差別,但總體預測效果理想,故對于非平穩(wěn)的數(shù)據(jù),可以使用EMD和SVM的組合預測的方式進行研究分析。