滕 靖,李金洋
(1.同濟大學 交通運輸工程學院,上海 201804;2.同濟大學 上海市軌道交通結構耐久與系統安全重點實驗室,上海 201804)
近年來,隨著我國高速鐵路網絡的逐漸完善,生產要素在交通圈內的流動日益頻繁,這又進一步助推了新型城鎮化發展進程的不斷加快。在此過程中,都市圈內的同城化效應開始顯現,高速鐵路城際客流規模不斷擴大,并隨之出現高密度、通勤化、隨機性的新特征。因此,鐵路運營企業有必要做好客流預測研究,科學合理地把握城市間客運需求狀態,從而促進企業在科學優化資源配置、合理制定價格策略、動態優化產品結構和持續提升運輸服務質量等方面不斷進步。
客流預測是鐵路企業運營決策和動態運營調整中最為關鍵的任務之一,同時也是支撐鐵路客運產品設計向精細化發展的基礎。根據時間尺度,鐵路客流預測可以劃分為長期、中期和短期預測3種類型[1]。短期預測一般以月份、星期、日為時間單位進行,其中又以以日為單位的預測最具挑戰性。城際鐵路的短期客流因受到周末、節假日、大型活動、天氣等因素的影響,呈現出波動性大、隨機性強的特點,為提高預測的準確性增加了難度。
從預測模型類別來看,常用的短期預測方法可以分為2 類[2]。第1 類方法是參數模型,包括指數平滑模型、灰色預測模型、自回歸綜合移動平均模型(ARIMA)等。這類方法在客流預測中較早得到應用,但其不足也比較明顯,比如指數平滑模型難以對具有較大波動性的序列做出較好的預測;灰色預測模型可能會由于樣本的稀疏性,導致預測結果出現較大偏差;ARIMA 模型不能很好地把握時間序列的非線性關系等。第2 類方法是非參數模型,包括支持向量機與神經網絡模型等。其中,神經網絡模型因其具有自適應性、非線性、任意函數性和映射能力等特點,在近年的鐵路客流短期預測中得到了大量應用,成為研究的熱點。
早期,相關研究多是以單獨的神經網絡模型進行預測,比如王艷輝等[3]建立了BP神經網絡模型對鐵路客流量進行了仿真預測,汪健雄等[4-5]和WANG Yao 等[6]則在傳統BP 神經網絡模型的基礎上做了進一步改進,提高了模型的可擴展性;在BP 神經網絡之外,吳華穩等[7]基于徑向基神經網絡,對鐵路客運量進行了分析研究,也取得了不錯的效果。然而,神經網絡還存在一些固有的缺陷,如局部極小問題、隱單元數目的選擇和過擬合的危險等,這些都有可能影響模型預測的精度和可解釋性。為此,結合神經網絡的組合預測模型近年來受到許多研究者的關注。比如曹承[8]將BP神經網絡和模態分解算法結合起來構建組合預測模型;任崇嶺[9]引入遺傳算法,對神經網絡模型進行進一步優化;史峰等[10]將模態分解算法、遺傳算法和神經網絡3種方法進行融合,對高速鐵路平日客運量進行預測,取得了較好的預測效果。
從預測對象范圍來看,早期的客流預測模型忽略了日期屬性,導致預測結果不能很好地解釋客流的異常波動。后有學者區別日期的節假日、非節假日屬性,分別進行短期客流預測,這提升了預測精度,但卻降低了模型的普適性。近來又出現新的研究趨勢,將節假日、非節假日整體考慮,建立統一的預測模型,對日期屬性做特殊標記,在體現節假日特殊性的同時又恢復模型的通用性能。然而,現有的研究在日期屬性上的特征細分度還不夠,實踐中發現,日客流波動特征與日期所在月份、星期、節假日、甚至所在節假相鄰日期的屬性均有關系,有待于進一步細化研究日期屬性帶來的影響。
在前述研究的基礎上,本文基于改進的神經網絡模型對鐵路城際客流進行短期預測:首先,基于2014—2018年間上海至南京單向鐵路客流的歷史數據,對鐵路城際客流的波動特征及影響因素進行了分析;其次,綜合考慮日期屬性和天氣因素,提出1 種結合粒子群優化(PSO)算法和長短期記憶(LSTM)神經網絡模型的鐵路城際短期客流預測方法;最后,以上海至南京的單向鐵路客流為例,對本文提出的預測方法進行驗證。
鐵路城際客流的短期變化受多方面因素影響,并呈現出既基于自身長期演變趨勢,又具有一定周期性、隨機性波動的總體規律。以2014—2018年間,上海至南京的單向鐵路客流(包括高速鐵路、城際鐵路以及普速鐵路客流,以下簡稱“滬—寧鐵路客流”)為例,觀察其變化趨勢。從長期來看,滬—寧鐵路客流保持逐年增長的發展態勢,如圖1(a)所示;但若以更短的時間單位進行周期性觀察,其客流變化還體現出不同的規律特征。
提取2017年全年的客流數據,以月為單位觀察滬—寧鐵路客流,結果如圖1(b)所示。因受到暑假以及適宜度假的天氣因素影響,夏季8月的客流規模稍高于同年其他月份。而2月處于不適宜出行的冬季,當月天數少于其他月份,又包含春節假期,對人們出行行為有較大影響,所以2月份的客流規模相對最低。
提取2017年11月1—28日客流數據,以星期為單位觀察滬—寧鐵路客流,結果如圖1(c)所示。圖中,每個星期的起點為星期二。可以看出,鐵路城際客流呈現出以星期為周期的顯著變化特征,星期五的客流會達到周期內的高峰,星期一則是周期低谷,而其他工作日的客流則相對平穩。

圖1 日期屬性對滬—寧鐵路客流變化規律與分布特征的影響
為了進一步考察節假日的影響,以2017年清明小長假為例,提取2017年3月20日—4月16日共4 個星期的客流數據(其中4月2—4日為清明小長假),如圖1(d)所示。可以看出,小長假的出現打破了客流原有的以星期為周期的變化規律,使客流在小長假的前1 d達到高峰,在小長假中間1 d形成1個相對低谷,在小長假最后1 d小幅反彈后,于小長假結束后的2 d 達到客流最低谷,如圖中虛線所示。這一規律在歷年的小長假中都可以得到印證,也說明了將節假日與非節假日綜合起來進行預測,能夠更全面地把握客流變化內在規律。
為此,本文將細分日期屬性,綜合考慮客流產生時的月份、星期以及是否處于或臨近節假日,并將其影響納入預測模型。
以日為單位的鐵路客流預測還需要考慮其獨有的特征屬性:天氣。為排除周末因素對于客流的影響,選取2014年6月16日—7月3日共3 組 星期一至星期四的滬—寧鐵路客流進行分析,如圖2所示;對應日期上海的天氣情況整理列表見表1。可以看出,同樣是星期二到星期四,第1個星期以及第3 個星期的客流呈現逐步上升的趨勢;而第2 個星期的客流則在星期三有所下降,原因是旅客的出行受到了天氣因素(大到暴雨)的影響。因此,本文將氣象特征如陰、晴、雨、雪等作為天氣因素的衡量指標,與日期屬性共同構成鐵路城際短期客流的影響因素體系,以期提升預測的敏感度與準確性。

圖2 2014年6月16日—7月3日共3組星期一至星期四的滬—寧鐵路客流

表1 2014年6月16日—7月3日共3組星期1至星期4的上海天氣情況
本文提出的考慮日期屬性與天氣因素的鐵路城際短期客流預測方法,是1 種考慮多影響因素的PSO-LSTM 組合預測模型(后文簡稱PSOLSTM)。該方法應用了粒子群優化(Particle Swarm Optimization,PSO)算法和長短期記憶(Long Short-Term Memory,LSTM)神經網絡模型,其框圖如圖3所示。預測的具體步驟是:①對鐵路城際客流以及影響因素的歷史數據進行預處理,將其轉化為有監督學習的數據集;②用處理后的數據對LSTM 模型進行訓練,并應用1種改進的PSO 算法對超參數進行優化,從而得到最優的預測模型;③將歷史數據以及預測期的影響因素數據輸入訓練好的最優預測模型,對鐵路城際客流進行預測,其中,用于預測的歷史數據以及預測期長度可根據應用的實際需要進行設定。
考慮鐵路城際短期客流的影響因素體系包括2方面:日期屬性和天氣因素。日期屬性包括月份、星期、節假日共3個因素,其中節假日取我國法定節假日的首末2日和相鄰日期,作為特殊的節假日屬性進行處理。天氣因素以出發城市的氣象特征(如陰、晴、雨、雪等)來表征,這是因為與目的城市相比,出發城市的天氣更能夠直接影響旅客的出行決策。影響因素及其包含的取值見表2。
影響因素的取值兼顧了分類的簡潔性和全面性。在節假日相關因素的取值中,考慮到清明節、端午節等春節以外的法定假日都具有相似的客流影響特征,將它們合并為1類;春節往往會帶來大量的返鄉、返工客流,對客流的時空影響范圍較大,所以春節假期內的客流與其他小長假的客流變化趨勢顯著不同,故將春節單獨列為1類。在氣象特征的取值中,本文進行如下簡化處理:對于氣象類型,“甲轉乙”的氣象類型取前者,如“晴轉多云”則記為“晴”;“甲到乙”的氣象類型則取后者,如“小到中雨”記為“中雨”。對于氣象類別,則是根據出發城市所處地理區位進行差異化的具體設置,比如表2中的取值,就是在查閱歷年上海市氣象特征的基礎上,列出并涵蓋所有上海市常見的氣象特征。

圖3 基于PSO-LSTM 模型的鐵路城際短期客流預測方法框圖
各日期屬性與氣象特征的取值都為離散變量,在輸入模型時不宜采用1個連續的實數來表征;因此采用One-hot 編碼方式對影響因素數據進行離散化的表達。One-hot 編碼方式采用N位狀態寄存器,對N個狀態進行編碼,每個狀態都采用獨立的寄存器位,并且在任意時間只有1位有效。這首先要求將分類值映射到整數值,再將每個整數值表示為二進制向量,其中,除了整數的索引被標記為1之外,其他的都被標記為0。比如對于具有7個狀態的星期屬性而言,就需要用7 個字節進行編碼,見表3。
同理,具有12 個狀態的月份屬性需要用12 個字節進行編碼,具有11 個狀態的節假日屬性需要用11 個字節進行編碼,具有13 個狀態的氣象特征需要用13個字節進行編碼。綜上,在用One-hot編碼方式對4個影響因素進行編碼處理之后,新的影響因素序列擴充為12+7+11+13=43 列;加上客流數據列,共計44列。
在編碼處理歷史數據的基礎之上,再根據模型預測的輸入步長和輸出步長將數據轉化為有監督學習的數據集。其中,輸入步長是指在預測模型的實際應用中需要輸入的歷史數據時間長度,而輸出步長則是指模型預測的時間長度。比如本研究以14 d的歷史數據預測未來7 d 的客流,那么轉化為監督學習后的數據總共為44×14+43×7=917列。

表2 鐵路城際短期客流影響因素指標體系

表3 表示星期屬性的One-hot編碼
長短期記憶(Long Short-Term Memory,LSTM)神經網絡是循環神經網絡(Recurrent Neural Networks,RNN)的1 個變體,它能夠學習輸入數據中的長期依賴,并且可以緩解模型訓練中梯度消失和梯度爆炸的問題,在處理具有非線性時間序列的數據時具有明顯的優勢[11-13]。雖然鐵路城際客流在短期內的波動較大,但它仍然是基于長期客流變化的趨勢以及近期客流水平的,具有非常顯著的時間相關性。因此選用LSTM 神經網絡模型,發揮其對于時間序列動態變化規律的把握能力,精細化提取和學習鐵路城際短期客流演變特征,對客流做出精確預測。
在傳統遞歸神經網絡模型(RNN)的隱藏層的神經元中,LSTM 神經網絡模型增加了1種被稱為記憶單元的結構,用來記憶過去的信息;增加了3 種門(輸入門、遺忘門、輸出門)結構,用來控制歷史信息的使用:忘記門控制記憶單元內需要遺忘多少信息,輸入門控制每個記憶單元需要加入多少新信息,輸出門控制每個記憶單元需要輸出多少信息。LSTM 的神經單元結構如圖4所示。其中,it,ft和ot分別為t時刻的輸入門、遺忘門和輸出門;~ct,ct和ht分別為t時刻的候選長期記憶、更新長期記憶和工作記憶,其中ht亦為t時刻的輸出;xt為t時刻的輸入;σ 為sigmoid 激活函數;tanh 為雙曲正切激活函數;⊙表示逐點乘積。

圖4 LSTM 的神經單元結構示意圖
LSTM 神經單元中各部分的計算方法如式(1)—(6)所示:

式中:Wxi,Wxf,Wxo,Wxc表示與t時刻輸入xt相關的權重矩陣;Whi,Whf,Who,Whc表示與前一時刻輸出ht-1相關的權重矩陣;bi,bf,bo,bc為各個函數的偏置項。
LSTM 神經網絡中的記憶單元使得模型適合處理和預測時間序列數據,但是學習率、隱藏層數以及訓練次數這3 個超參數依然難以確定,而這3個超參數的設定又對模型的擬合能力、訓練過程與訓練效果有很大影響。在實際應用中,超參數的設置通常依賴經驗,具有很大的隨機性和主觀性。因此引入粒子群智能算法,對上述LSTM 神經網絡中的3個超參數進行優化。
粒子群優化(Particle Swarm Optimization,PSO)算法以其簡單的操作和快速的收斂速度,廣泛應用于各種優化問題的求解當中。在求解優化問題時,粒子群優化算法通過跟蹤個體最優粒子和群體最優粒子來更新其速度和位置。這個過程可以描述如下:在1個D維的搜索空間中(即有D個待優化參數),共有m個粒子組成1個群體。在第t步迭代中,某1 個粒子的速度和位置分別為vt和xt;然后該粒子通過追蹤當前該粒子的最優適應度pbest和群體的最優適應度gbest,根據式(7)更新自己的速度和位置。
vt+1=wvt+e1r1(pbest-xt)+e2r2(gbest-xt)(7)式中:w為慣性權重;e1,e2為學習因子;r1,r2為隨機系數;pbest,gbest分別為個體極值和群體極值;xt為粒子在t時刻的位置。
由于基本的粒子群優化算法的全局尋優能力和收斂速度有限,本研究在經典算法之上又做了2 點改進。①在粒子的速度更新表達式中,慣性權重w原本取固定值,現改進為取值隨迭代次數動態變化:即隨著迭代次數的增加,令慣性權重以非線性速度遞減,并且遞減的速度隨迭代次數遞增,從而保證了算法的局部尋優能力。②在粒子的速度更新表達式中,學習因子e1和e2原本取固定值,現也改進為取值隨迭代次數動態變化。其中,對應于局部最優解的學習因子e1隨著迭代次數的增加由小到大變化,以加速粒子在前期的尋優速度;而對應于全局最優解的學習因子e2則隨著迭代次數的增加由大到小變化,以在后期協助粒子的尋優精度。改進后的粒子群優化算法流程如下。
第1 步,初始化參數,確定種群規模、訓練次數、學習因子以及位置的限定區間;
第2 步,初始化粒子的位置和速度,隨機生成LSTM神經網絡模型的3個超參數;
第3 步,確定粒子的評價函數,本方法采用LSTM 神經網絡模型訓練樣本和測試樣本精度的均值作為模型的適應度輸出;
第4 步,計算每個例子對應位置的適應度,根據初始粒子適應度值確定個體極值和群體極值,并將每個粒子的最好位置作為其歷史最佳位置;
第5 步,在每1 次迭代過程中,根據下式更新粒子的速度、位置以及慣性權重和學習因子,并根據新種群粒子適應度值更新粒子個體極值和群體極值。首先根據式(7)更新粒子的速度,然后根據式(8)—式(11)依次更新粒子的位置、慣性權重以及學習因子。

式中:t,tmax分別為當前迭代次數和最大迭代次數;vt為粒子在t時刻的速度;wmax,wmin分別為權重系數的上下界。
第6 步,滿足粒子群優化算法最大迭代次數后,輸出模型最優結果。
在最優模型的基礎之上,將輸入步長的歷史數據和輸出步長的預測期影響因素數據進行預處理,輸入訓練好的模型之中,即可得到預測期的鐵路城際客流預測結果。
上海和南京是長三角城市群的2 大核心城市,經濟關聯緊密,人員交流頻繁。滬寧通道正處在京滬運輸大通道和沿江運輸大通道的重疊區域,通道內現有京滬既有線、京滬高鐵、滬寧城際3條鐵路線。本文即以上海至南京的O-D 客流為例,基于上文建立的PSO-LSTM 組合模型,對滬—寧鐵路客流進行短期預測,驗證模型的有效性。
采集上海至南京2014年1月1日—2018年12月24日間,共計1 820 d 的單向鐵路客流數據,以及5年間出發地上海的天氣信息,其中月份、星期、節假日屬性以及氣象特征的取值釋義見表4。
取前70%的數據作為訓練樣本,后30%的數據作為檢驗樣本。首先根據2.1 節所述方法對原始數據進行預處理,對日期屬性和天氣因素進行One-hot 編碼,并將編碼后的數據轉化為有監督的數據集。取預測的輸入步長為14,輸出步長為7,即以14 d 的歷史數據預測未來7 d 的滬—寧鐵路客流。因此最后預處理后的有監督數據集輸入列數為917列,輸出列數為7列。

表4 星期、月份、節假日屬性以及氣象特征的取值釋義
將上述數據輸入PSO-LSTM 模型中。根據嘗試和經驗,PSO 算法中的種群規模和迭代次數都設置為15,LSTM 神經網絡的訓練次數上下限分別設為10 和30,隱藏層數的上下限分別設置為8和64,學習率的上下限分別設置為0.000 1 和0.005 0。經過15 次迭代,得到的最優模型適應度為91.58%,其中訓練集的訓練精度為90.81%,測試集的測試精度為92.35%;所對應的LSTM 神經網絡的訓練次數、隱藏層數以及學習率分別為26,46 和0.001 9。LSTM 模型的最優訓練次數、隱藏層數、學習率以及模型適應度隨粒子群算法迭代次數的變化情況如圖5所示。
用上述LSTM 模型,預測2018年12月25—31日的滬—寧鐵路客流,其中12月30日和31日為2019年元旦假期的前2 d。將2018年12月11—24日共計14 d的滬寧鐵路客流數據與影響因素數據,以及預測期的影響因素數據進行預處理,然后將處理后的數據輸入LSTM 模型當中,得到未來7 d 的滬寧鐵路客流預測結果,如圖6所示。

圖5 最優訓練次數、隱藏層數、學習率以及模型適應度的變化曲線

圖6 基于PSO-LSTM 模型的滬—寧鐵路客流預測值
為了驗證模型的有效性,再建立PSO-LSTM-1、PSO-LSTM-2、PSO-LSTM-3、PSO-LSTM-4、PSO-BP 共5 種模型,將其與本文PSO-LSTM 模型進行對比。其中,PSO-LSTM-1、PSO-LSTM-2、PSO-LSTM-3、PSO-LSTM-4 模型分別是在原PSO-LSTM 模型中刪除了氣象特征、節假日屬性、月份屬性以及星期屬性的模型;PSO-BP 模型則是將原PSO-LSTM 模型中的LSTM 模型,替換為已被廣泛地應用于鐵路城際短期客流預測的BP 神經網絡。
本文建立的PSO-LSTM 模型,以及5 個對比模型最后的預測平均相對誤差分別為:6.75%,8.39%,15.66%,13.34%,8.48% 和9.35%。其中預測平均相對誤差?的計算方法如式(12)所示。可見本文所建立的PSO-LSTM 模型具有最優的預測效果。

本文提出了1 種考慮多影響因素的PSOLSTM 組合預測模型。與以往的類似研究相比,本模型細分了日期屬性和天氣因素,設置了月份、星期、節假日等日期屬性,晴,多云,中雨等天氣因素;將日期屬性和天氣因素納入客流預測的影響因素體系;利用LSTM 模型對于處理非線性時間序列的優勢,提高模型的預測精度。采用上海到南京的單向鐵路城際客流數據以及上海的天氣信息進行預測驗證,預測輸入步長為14 d,輸出步長為7 d,最終的預測平均誤差為6.75%。與刪除了1 個影響因素的PSO-LSTM 模型,以及結合了BP 神經網絡的PSO-BP模型相比,本模型具有最優的預測精度。可見,全面考慮日期屬性與天氣因素的PSO-LSTM 模型具有較好的預測效果,可為鐵路運營企業把握城市間短期客運需求狀態提供參考依據。
未來,本方法可考慮從以下2 個方面進行改進。其一,鐵路客流短期波動的影響因素仍然需要全面細致的研究。本文所考慮的天氣和日期因素都是從需求側分析客流的波動,然而城際鐵路客流量也會受到供給側因素的影響,比如不同類型列車以及不同席位的數量比例等。其二,本文是用5年的客流數據對模型進行訓練,以14 d 的輸入步長和7 d 的輸出步長為例進行客流預測的,而模型中最優輸入輸出步長的設置,也需要結合實際做進一步的檢驗和優化。