(沈陽(yáng)理工大學(xué) 遼寧 沈陽(yáng) 110000)
地鐵在城市的交通系統(tǒng)中具有相當(dāng)重要的地位。若能夠準(zhǔn)確預(yù)測(cè)地鐵站的流量,可以作為地鐵的安保決策的依據(jù),確保社會(huì)的和諧穩(wěn)定,能夠?yàn)槲覈?guó)的地鐵流量預(yù)測(cè)提供參考。
地鐵是人們?nèi)粘5闹匾煌ǚ绞?,其出入流量受到人們?nèi)粘3鲂辛?xí)慣的影響,具有規(guī)律性,適合使用LSTM來(lái)根據(jù)前幾天的流量情況來(lái)預(yù)測(cè)當(dāng)天的人流量??紤]到人們每個(gè)時(shí)間段的出行習(xí)慣不同,每個(gè)地鐵站的地理位置不同,應(yīng)當(dāng)針對(duì)不同地鐵站、不同時(shí)間段訓(xùn)練模型、預(yù)測(cè)流量。
LSTM(Long Short-Term Memory),為傳統(tǒng)RNN的變形,是一種時(shí)間循環(huán)神經(jīng)網(wǎng)絡(luò),適合預(yù)測(cè)具有教程時(shí)間序列的事件。
模型(模型圖如圖1所示)的輸入為長(zhǎng)度為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)練時(shí)間。模型的第三層為全連接層,節(jié)點(diǎn)數(shù)為1,它作為網(wǎng)絡(luò)的輸出,輸出的是一個(gè)浮點(diǎn)數(shù),是預(yù)測(cè)當(dāng)天的流量的歸一化后的結(jié)果。
其中第一層的節(jié)點(diǎn)數(shù)目使用了常用經(jīng)驗(yàn)公式[1]:
(1)
式中:l表示LSTM的節(jié)點(diǎn)數(shù),n表示輸入數(shù)據(jù)的長(zhǎng)度,m表示輸出層的節(jié)點(diǎn)數(shù)(輸出數(shù)據(jù)的長(zhǎng)度)。
圖1模型結(jié)構(gòu)
當(dāng)訓(xùn)練該模型時(shí),使用了均方誤差損失函數(shù)(mean squared error),其公式為:
(2)
使用Python語(yǔ)言利用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ù)來(lái)源于紐約市從2017-04 至2018-01 近九個(gè)月的地鐵旋轉(zhuǎn)門數(shù)據(jù),數(shù)據(jù)中包含了時(shí)間、監(jiān)控器編號(hào)、車站名稱、出入站人流量等信息。本實(shí)驗(yàn)為預(yù)測(cè)某個(gè)地鐵站某個(gè)時(shí)間段的流量,因此需要從源數(shù)據(jù)中提取流量信息??紤]到數(shù)據(jù)量較大,數(shù)據(jù)的字段較復(fù)雜并需要數(shù)據(jù)之間的合并計(jì)算,需要使用能夠完成復(fù)雜操作大數(shù)據(jù)量的工具完成這行工作。
Spark是基于分布式的計(jì)算框架,適合處理大數(shù)據(jù)量的作業(yè),本實(shí)驗(yàn)使用了Spark SQL對(duì)原數(shù)據(jù)處理,提取出了每個(gè)地鐵站每個(gè)時(shí)間段的流量信息,并將其保存至文件供模型訓(xùn)練和測(cè)試。
在模型的輸入和輸出中,為了加快梯度下降的速度、提高精讀以及網(wǎng)絡(luò)中最后一層也只能輸入0-1的小數(shù),需要對(duì)所輸入的數(shù)據(jù)進(jìn)行歸一化,以及對(duì)預(yù)測(cè)出的數(shù)據(jù)進(jìn)行反歸一化以加以利用。本實(shí)驗(yàn)使用了線性歸一化(也稱最大最小歸一化),公式如下:
(3)
為了分析預(yù)測(cè)的效果,設(shè)定了MAE(絕對(duì)平均誤差)作為評(píng)價(jià)指標(biāo)[2],用以評(píng)價(jià)模型的優(yōu)劣。其中N為預(yù)測(cè)天數(shù)。
(4)
如圖2所示,為訓(xùn)練模型中某一地點(diǎn)11點(diǎn)至15點(diǎn)的預(yù)測(cè)值、實(shí)際值對(duì)比圖(紅色線條的高度為預(yù)測(cè)值,黑色線條的高度為實(shí)際值,縱軸為流量值,橫軸為測(cè)試的樣本批次)。從對(duì)比圖中可以明顯看出,預(yù)測(cè)值大體符合流量變化趨勢(shì),能夠相對(duì)有效地預(yù)測(cè)出人流量趨勢(shì),能夠達(dá)到流量預(yù)警,是一種有效的人流量預(yù)測(cè)模型。
圖2 預(yù)測(cè)值與實(shí)際值對(duì)比
本模型存在當(dāng)人流量驟變時(shí)所預(yù)測(cè)的趨勢(shì)有滯后性以及無(wú)法預(yù)測(cè)出一些極端流量情況等問(wèn)題,本模型仍有繼續(xù)改進(jìn)的空間。另外,本模型是針對(duì)某一地鐵站、某一個(gè)時(shí)間段的人流量進(jìn)行預(yù)測(cè),當(dāng)有眾多地點(diǎn)以及時(shí)間段較多時(shí),需要相當(dāng)多的模型進(jìn)行預(yù)測(cè),雖然模型的結(jié)構(gòu)沒(méi)有變化,但是訓(xùn)練的計(jì)算量較大,需要使用較長(zhǎng)的訓(xùn)練時(shí)間。