(沈陽理工大學(xué) 遼寧 沈陽 110000)
地鐵在城市的交通系統(tǒng)中具有相當(dāng)重要的地位。若能夠準(zhǔn)確預(yù)測地鐵站的流量,可以作為地鐵的安保決策的依據(jù),確保社會的和諧穩(wěn)定,能夠?yàn)槲覈牡罔F流量預(yù)測提供參考。
地鐵是人們?nèi)粘5闹匾煌ǚ绞?,其出入流量受到人們?nèi)粘3鲂辛?xí)慣的影響,具有規(guī)律性,適合使用LSTM來根據(jù)前幾天的流量情況來預(yù)測當(dāng)天的人流量??紤]到人們每個時間段的出行習(xí)慣不同,每個地鐵站的地理位置不同,應(yīng)當(dāng)針對不同地鐵站、不同時間段訓(xùn)練模型、預(yù)測流量。
LSTM(Long Short-Term Memory),為傳統(tǒng)RNN的變形,是一種時間循環(huán)神經(jīng)網(wǎng)絡(luò),適合預(yù)測具有教程時間序列的事件。
模型(模型圖如圖1所示)的輸入為長度為20的數(shù)組(即之前20天的流量數(shù)據(jù)),模型的頂層為節(jié)點(diǎn)數(shù)為6的LSTM層,第二層為節(jié)點(diǎn)數(shù)為12的LSTM層。使用多層LSTM,將LSTM層進(jìn)行累加,是為了能夠得到更高更抽象的特征,并能夠一定程度上增加模型訓(xùn)練的準(zhǔn)確率并減少訓(xùn)練時間。模型的第三層為全連接層,節(jié)點(diǎn)數(shù)為1,它作為網(wǎng)絡(luò)的輸出,輸出的是一個浮點(diǎn)數(shù),是預(yù)測當(dāng)天的流量的歸一化后的結(jié)果。
其中第一層的節(jié)點(diǎn)數(shù)目使用了常用經(jīng)驗(yàn)公式[1]:
(1)
式中:l表示LSTM的節(jié)點(diǎn)數(shù),n表示輸入數(shù)據(jù)的長度,m表示輸出層的節(jié)點(diǎn)數(shù)(輸出數(shù)據(jù)的長度)。

圖1模型結(jié)構(gòu)
當(dāng)訓(xùn)練該模型時,使用了均方誤差損失函數(shù)(mean squared error),其公式為:
(2)
使用Python語言利用Keras深度學(xué)習(xí)框架實(shí)現(xiàn)了本實(shí)驗(yàn),并使用了因特爾i7-7700處理器、NVIDIA GTX 1050顯卡,于Windows10操作系統(tǒng)上進(jìn)行訓(xùn)練、并驗(yàn)證模型。
實(shí)驗(yàn)數(shù)據(jù)來源于紐約市從2017-04 至2018-01 近九個月的地鐵旋轉(zhuǎn)門數(shù)據(jù),數(shù)據(jù)中包含了時間、監(jiān)控器編號、車站名稱、出入站人流量等信息。本實(shí)驗(yàn)為預(yù)測某個地鐵站某個時間段的流量,因此需要從源數(shù)據(jù)中提取流量信息??紤]到數(shù)據(jù)量較大,數(shù)據(jù)的字段較復(fù)雜并需要數(shù)據(jù)之間的合并計算,需要使用能夠完成復(fù)雜操作大數(shù)據(jù)量的工具完成這行工作。
Spark是基于分布式的計算框架,適合處理大數(shù)據(jù)量的作業(yè),本實(shí)驗(yàn)使用了Spark SQL對原數(shù)據(jù)處理,提取出了每個地鐵站每個時間段的流量信息,并將其保存至文件供模型訓(xùn)練和測試。
在模型的輸入和輸出中,為了加快梯度下降的速度、提高精讀以及網(wǎng)絡(luò)中最后一層也只能輸入0-1的小數(shù),需要對所輸入的數(shù)據(jù)進(jìn)行歸一化,以及對預(yù)測出的數(shù)據(jù)進(jìn)行反歸一化以加以利用。本實(shí)驗(yàn)使用了線性歸一化(也稱最大最小歸一化),公式如下:
(3)
為了分析預(yù)測的效果,設(shè)定了MAE(絕對平均誤差)作為評價指標(biāo)[2],用以評價模型的優(yōu)劣。其中N為預(yù)測天數(shù)。
(4)
如圖2所示,為訓(xùn)練模型中某一地點(diǎn)11點(diǎn)至15點(diǎn)的預(yù)測值、實(shí)際值對比圖(紅色線條的高度為預(yù)測值,黑色線條的高度為實(shí)際值,縱軸為流量值,橫軸為測試的樣本批次)。從對比圖中可以明顯看出,預(yù)測值大體符合流量變化趨勢,能夠相對有效地預(yù)測出人流量趨勢,能夠達(dá)到流量預(yù)警,是一種有效的人流量預(yù)測模型。

圖2 預(yù)測值與實(shí)際值對比
本模型存在當(dāng)人流量驟變時所預(yù)測的趨勢有滯后性以及無法預(yù)測出一些極端流量情況等問題,本模型仍有繼續(xù)改進(jìn)的空間。另外,本模型是針對某一地鐵站、某一個時間段的人流量進(jìn)行預(yù)測,當(dāng)有眾多地點(diǎn)以及時間段較多時,需要相當(dāng)多的模型進(jìn)行預(yù)測,雖然模型的結(jié)構(gòu)沒有變化,但是訓(xùn)練的計算量較大,需要使用較長的訓(xùn)練時間。