盧光躍,李四維,趙宇翔,王天賜
(西安郵電大學(xué) 陜西省信息通信網(wǎng)絡(luò)及安全重點(diǎn)實(shí)驗(yàn)室,陜西 西安 710121)
隨著移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展、基于位置服務(wù)的廣泛應(yīng)用,電信運(yùn)營(yíng)商收集了大量用戶位置數(shù)據(jù),這些位置數(shù)據(jù)具有豐富的時(shí)間和空間信息,對(duì)其進(jìn)行深入有效的挖掘進(jìn)而準(zhǔn)確預(yù)測(cè)人群流量,可為電信運(yùn)營(yíng)商網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化、網(wǎng)絡(luò)資源合理配置等應(yīng)用提供有效參考。
區(qū)域人群流量預(yù)測(cè)是指,采用時(shí)間序列預(yù)測(cè)方法對(duì)代表該區(qū)域人群流量的時(shí)間序列進(jìn)行預(yù)測(cè)。傳統(tǒng)的時(shí)間序列預(yù)測(cè)方法主要有線性回歸[1]和自回歸(auto regressive,AR)模型法[2-3]。這些方法對(duì)線性時(shí)間序列有較好的預(yù)測(cè)效果,但對(duì)非線性時(shí)間序列的預(yù)測(cè)效果不佳,而從電信位置數(shù)據(jù)中提取出的時(shí)間序列具有非線性特征,故需采用非線性時(shí)間序列預(yù)測(cè)方法對(duì)其進(jìn)行預(yù)測(cè)[4]。常用的非線性時(shí)間序列預(yù)測(cè)方法,包括基于支持向量回歸(support vector regression,SVR)的預(yù)測(cè)方法[5-7]、基于神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)方法[8-10]和經(jīng)驗(yàn)?zāi)B(tài)分解(empirical mode decomposition,EMD)方法[11]等。基于神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)方法,有較強(qiáng)的非線性擬合能力,可映射任意復(fù)雜的非線性關(guān)系,且學(xué)習(xí)規(guī)則簡(jiǎn)單,便于計(jì)算機(jī)實(shí)現(xiàn)[12],若針對(duì)區(qū)域人群流量數(shù)據(jù),引入人群流量時(shí)間序列的橫向變化趨勢(shì)[13],預(yù)測(cè)準(zhǔn)確率還可以更最。
實(shí)際數(shù)據(jù)分析顯示,當(dāng)前時(shí)刻人群流量既與其橫向變化趨勢(shì)關(guān)聯(lián),還與前若干個(gè)自然日同一時(shí)刻的值(即縱向變化趨勢(shì))有關(guān)。本文綜合考慮人群流量變化的橫向和縱向趨勢(shì),同時(shí)考慮使用遺傳算法(genetic algorithm,GA)對(duì)SVR算法的參數(shù)進(jìn)行尋優(yōu),給出一種基于綜合特征和GA的SVR區(qū)域人群流量預(yù)測(cè)算法,即對(duì)原始電信位置數(shù)據(jù)進(jìn)行預(yù)處理,提取出反映區(qū)域人群流量的時(shí)間序列,綜合考慮其橫向變化趨勢(shì)和縱向變化趨勢(shì),建立基于GA與SVR的融合算法GA-SVR模型,對(duì)區(qū)域人群流量進(jìn)行預(yù)測(cè)。
基于電信位置數(shù)據(jù)預(yù)測(cè)人群流量,首先需要從原始電信位置數(shù)據(jù)中提取中反映人群流量的時(shí)間序列。選用國(guó)內(nèi)某市持續(xù)時(shí)間為1個(gè)月的電信位置數(shù)據(jù),共包含5個(gè)字段:時(shí)間字段記錄數(shù)據(jù)采集的時(shí)間;區(qū)域代碼字段記錄基站覆蓋區(qū)域的代碼;經(jīng)緯度字段記錄數(shù)據(jù)采集時(shí)設(shè)備的位置;MAC地址字段記錄對(duì)應(yīng)設(shè)備的MAC地址。
設(shè)備MAC地址唯一,可用于代表用戶。故只需選定某個(gè)區(qū)域,選擇時(shí)間范圍和采樣時(shí)間間隔,統(tǒng)計(jì)采樣時(shí)間間隔內(nèi)此區(qū)域中不同MAC地址出現(xiàn)的次數(shù),由此即可得到反映該區(qū)域人群流量的時(shí)間序列。
為了對(duì)區(qū)域人群流量時(shí)間序列進(jìn)行建模,選擇其中的m天數(shù)據(jù),將其中前t天的數(shù)據(jù)作為訓(xùn)練樣本,后m-t天作為測(cè)試樣本。
當(dāng)前時(shí)刻人群流量xs(k)與其橫向變化趨勢(shì)關(guān)聯(lián),即與人群流量時(shí)間序列中的前p個(gè)時(shí)刻的值xs(k-1),xs(k-2),…,xs(k-p)有關(guān)[13],據(jù)此可建立預(yù)測(cè)模型
此外,當(dāng)前時(shí)刻人群流量還與其縱向變化趨勢(shì)相關(guān)聯(lián),即與前q個(gè)自然日同一時(shí)刻的值xs-q(k),xs-q+1(k),…,xs-1(k)有關(guān)。為了提升預(yù)測(cè)精度,綜合考慮該時(shí)間序列的橫向變化趨勢(shì)和縱向變化趨勢(shì),修訂預(yù)測(cè)模型為
支持向量機(jī)(support vector machine,SVM)作為一種機(jī)器學(xué)習(xí)算法,可用于模式分類和非線性回歸,即建立一個(gè)分類超平面做為決策曲面,使得樣本之間的隔離邊緣被最大化[14]?;貧w是SVM的一個(gè)重要應(yīng)用,SVR即是利用非線性映射φ(x),將原始空間中的量x變換到高維空間,然后在高維空間中進(jìn)行線性回歸,再將結(jié)果反過(guò)來(lái)映射到低維度空間中,如此間接實(shí)現(xiàn)低維空間中無(wú)法實(shí)現(xiàn)的非線性回歸。以下選取SVR作為預(yù)測(cè)算法f。
g(x)=ωTφ(x)+b。
其中φ:n→F,ω∈F,F為向量集,ω的維數(shù)與特征空間維數(shù)相等,b為偏置。
s.t.
其中,C>0為懲罰系數(shù),ε為敏感系數(shù)。數(shù)據(jù)樣本滿足ε-不敏感損失函數(shù),即
|yi-g(xi)|ε=
max {0,|yi-g(xi)|-ε}。
由拉格朗日乘子法可得
根據(jù)卡魯什-庫(kù)恩-塔克(Karush-Kuhn-Tucker,KKT)條件,得對(duì)偶優(yōu)化問(wèn)題
ωTφ(xi)+b-yi+ε=0,
所以有
其中K(xj,xi)=[φ(xj)]Tφ(xi)為核函數(shù),滿足Mercer條件[14],SSV是支持向量集。
綜上得區(qū)域人群流量預(yù)測(cè)的支持向量回歸模型
它依賴于核函數(shù)和參數(shù)的選擇。
在此選擇高斯徑向基核函數(shù)
則SVR可調(diào)的模型參數(shù)有懲罰系數(shù)C、核函數(shù)參數(shù)σ和不敏感損失系數(shù)ε。
不敏感損失系數(shù)ε控制著SVR回歸函數(shù)對(duì)樣本數(shù)據(jù)的不敏感區(qū)域的寬度,影響支持向量的數(shù)目,其值和樣本噪聲有密切關(guān)系。ε過(guò)大,支持向量數(shù)就少,可能導(dǎo)致模型過(guò)于簡(jiǎn)單,學(xué)習(xí)精度不夠;ε過(guò)小,回歸精度較高,但可能導(dǎo)致模型過(guò)于復(fù)雜,得不到好的推廣能力。隨著ε的下降,誤差趨于穩(wěn)定,但求解時(shí)間增大。
為找到最優(yōu)核參數(shù)σ和懲罰系數(shù)C,用GA優(yōu)化SVR參數(shù)。優(yōu)化的整體流程如圖1所示。
圖1 利用GA優(yōu)化SVM參數(shù)的算法流程
為了精確地評(píng)價(jià)預(yù)測(cè)性能的優(yōu)劣,采用平均絕對(duì)誤差(mean absolute error,MAE)eMA、平均絕對(duì)百分誤差(mean absolute percent error,MAPE)eMAP和均方根誤差(root mean square error,RMSE)eRMS來(lái)評(píng)價(jià)預(yù)測(cè)精度,它們分別表示為
驗(yàn)證所給算法的有效性。實(shí)驗(yàn)環(huán)境為Intel(R) Core(TM) i7-4 790 CPU @ 3.60GHz,內(nèi)存16 GB,Windows 10 64位專業(yè)版操作系統(tǒng),Python 2.7,Matlab R2013a軟件。
原始電信位置數(shù)據(jù)如表1所示,其中共包含數(shù)據(jù)4 686 428條。
表1 電信原始數(shù)據(jù)集描述
選定區(qū)域代碼為371 312的基站覆蓋區(qū)域,選擇時(shí)間范圍為9月1日0時(shí)至30日24時(shí),采樣間隔為15 min,從原始電信位置數(shù)據(jù)中提取出時(shí)間序列,如圖2(a)所示。其中,采樣時(shí)間點(diǎn)500到2 000之間存在部分缺失值,需要借用灰度預(yù)測(cè)方法[15]進(jìn)行填補(bǔ)。補(bǔ)全后的時(shí)間序如圖2(b)所示。
圖2九月某區(qū)域時(shí)間序列
對(duì)于所提取出的時(shí)間序列,選取其中20天的數(shù)據(jù),經(jīng)進(jìn)一步處理后,得出橫向特征輸入訓(xùn)練集和綜合特征輸入訓(xùn)練集。
利用訓(xùn)練數(shù)據(jù),使用GA對(duì)其參數(shù)進(jìn)行尋優(yōu), 得出基于SVR的預(yù)測(cè)模型參數(shù),如表2所示。
表2 GA-SVR預(yù)測(cè)模型參數(shù)
根據(jù)所選參數(shù)建立模型,對(duì)區(qū)域人群流量進(jìn)行預(yù)測(cè),結(jié)果如圖3所示。由其可見,歷史平均預(yù)測(cè)方法、小波神經(jīng)網(wǎng)絡(luò)方法、BP神經(jīng)網(wǎng)絡(luò)方法、廣義回歸神經(jīng)網(wǎng)絡(luò)方法與GA-SVR方法,均較好地反映出區(qū)域流量的變化規(guī)律。在圖3的預(yù)測(cè)曲線中,當(dāng)采樣時(shí)間點(diǎn)處于20到28之間、70到80之間和115到125之間這些過(guò)渡階段時(shí),5種預(yù)測(cè)方法的預(yù)測(cè)結(jié)果與真實(shí)值相差很小,預(yù)測(cè)的流量能夠較好地跟蹤區(qū)域人群流量的實(shí)時(shí)變化趨勢(shì)。但是,當(dāng)流量值處于峰值或者低谷區(qū)域時(shí),如采樣時(shí)間點(diǎn)處于29至68之間時(shí),歷史平均預(yù)測(cè)方法不能很好地預(yù)測(cè)流量的變化趨勢(shì)和數(shù)值,而其他4種方法則表現(xiàn)出更好的預(yù)測(cè)性能。預(yù)測(cè)性能指標(biāo)如表3所示。
(a) 輸入橫向特征
(b) 輸入混合特征
表3 預(yù)測(cè)性能指標(biāo)
當(dāng)輸入相同時(shí),由表3可見,GA-SVR方法的3項(xiàng)性能指標(biāo)數(shù)值均比其他方法低,算法的3項(xiàng)預(yù)測(cè)性能指標(biāo)數(shù)值越低說(shuō)明算法的預(yù)測(cè)精確度越高,預(yù)測(cè)性能越好??紤]區(qū)域人群流量的縱向變化趨勢(shì)后,應(yīng)用小波神經(jīng)網(wǎng)絡(luò)方法、BP神經(jīng)網(wǎng)絡(luò)方法、廣義回歸神經(jīng)網(wǎng)絡(luò)方法和GA-SVR方法,分別在電信數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),其性能指標(biāo)數(shù)值均有所下降,這說(shuō)明6種方法的預(yù)測(cè)精確度均得到提升。
針對(duì)神經(jīng)網(wǎng)絡(luò)、傳統(tǒng)SVM進(jìn)行人群流量預(yù)測(cè)精度低的問(wèn)題,綜合考慮人群流量變化的橫向和縱向趨勢(shì),并優(yōu)化算法參數(shù),給出一種基于GA-SVR的人群流量預(yù)測(cè)算法,與歷史平均預(yù)測(cè)方法、小波神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)方法、BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)方法、廣義回歸神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)方法和傳統(tǒng)SVR方法對(duì)比,所給算法不僅可用于區(qū)域人群流量預(yù)測(cè),且其預(yù)測(cè)精度更高。算法預(yù)測(cè)精度受特征選擇和參數(shù)優(yōu)化的影響較大,今后將重點(diǎn)研究如何更精確更有效地選擇訓(xùn)練樣本的特征,并根據(jù)不同數(shù)據(jù)集進(jìn)行參數(shù)優(yōu)化,以求進(jìn)一步提升算法的精確度。