?

基于XGboost模型的城市軌道交通列車運行速度實時異常檢測研究

2021-03-15 12:31
關鍵詞:列車運行速度預測

劉 杰

(重慶工程職業技術學院 智能制造與交通學院,重慶 402260)

0 引 言

截至2018年底,中國內地共34個城市開通城市軌道交通運營服務,開通城軌交通線路171條,線路總長度為5 295.1 km,同比增長15.53%。2012—2018年,中國城市軌道交通運營線路總長度年復合增長率高達17.06%。隨著城市軌道交通的迅猛發展,人們越發重視行車安全。對列車運行速度的監控是掌握列車運行是否安全的一個重要方面,因此對列車運行過程的速度異常檢測十分重要。

國內外針對城軌列車運行速度異常檢測研究較少。一般異常檢測主要方法有基于距離、密度、聚類和深度學習的異常檢測算法。竇珊等[1]提出基于LSTM長短期記憶的檢測模型,首先引入一層LSTM對時間序列數據進行向量表示,再采用另一層LSTM對時間序列逆序重構,將重構值與實際值對比并通過極大似然估計得出異常概率,最終通過學習異常報警閾值判斷異常;曾惟如等[2]提出了一種學習時間序列內在模式關系的層級實時記憶網絡,首先離散表征原數據相關性,然后輸入層級記憶模型網絡預測下一時刻數值,最終通過和實際值比較判斷異常;陳興蜀等[3]對網絡流量異常檢測進行了研究,首先對實際網絡流量長期觀測提取正常網絡行為多維特征,然后引入時間序列偏離度概念,并且根據網絡環境變化對更新偏離度,最后利用支持向量機分類來結合各維度信息對異常做綜合判斷;閆偉等[4]也對網絡流量時間序列異常檢測進行研究,首先提取網絡流量時間序列數據并進行小波降噪消除干擾因素影響,然后建立狀態回聲流量網絡模型檢測異常;余宇峰等[5]以窗口來進行子序列分割,用分割后的子序列來預測,并根據窗口大小及用戶期望動態設定異常判定閾值;陳乾等[6]提出基于距離和自回歸的聯合檢測方法,計算待檢測矢量和訓練集中各歷史矢量距離,只要小于閾值,則判斷為異常,在考慮算法通用性和復雜性上,該研究采用的是線性回歸;孫梅玉[7]首先在時間序列GMBR表示的基礎上提出異常模式定義,再將基于距離和基于密度的方法結合來檢測異常;徐永紅等[8]以滑動窗口為基礎,將協方差矩陣作為時間序列的描述算子,用黎曼距離作為相似性度量標準,以統計過程控制圖作為評價對多元時間序列做異常檢測;李海林等[9]針對增量式時間序列效率低的問題,提出基于頻繁模式異常檢測方法,首先將時間序列符號化,再利用符號化的特征找出頻繁模式,最后度量頻繁模式和新增時間序列之間的相似度來做異常判斷;曹丹陽等[10]基于密度的方法,首先將陰極壓降時間序列分割成不重疊的子序列,再基于子序列的局部密度判斷異常子序列;朱煒玉等[11]首先基于AR自回歸對水質時間序列預測,然后采用孤立森林算法去做異常檢測,得到了較滿意結果。

以上是將各種時間序列異常檢測技術和方法運用于不同領域的研究成果,但是并沒有針對城市軌道交通運行速度異常檢測的研究,因此筆者主要提出一種針對城市軌道交通列車運行速度異常檢測算法。

1 列車運行速度實時異常檢測原理

列車運行速度異常檢測的本質均為利用歷史數據信息來做預測,通過比較預測值和實際值來判斷異常。其難點在于以下3點:①如何充分挖掘歷史數據信息;②如何設定預測值和實際值的異常判斷閾值;③實時檢測對模型算法計算時間效率要求較高。筆者實際研究場景為城市軌道交通列車運行的時間-速度數據異常檢測。首先采用可變滑動窗口分割子序列,將得到的子序列作為樣例訓練XGboost預測模型 ,然后用XGboost的預測值區間作為列車速度真實值可疑判定標準,最后用Grubbs檢驗判斷異常。

列車運行指除去停站時間外的行駛過程。全過程由若干站間運行子過程組成。每個子過程從數據上可表示為時間-速度值的時間序列,因此列車運行異常檢測問題就是一個時間序列異常點檢測問題。

(1)

(2)

m=1,2,…,M2)

(3)

式中:M2為測試時間序列個數;f為預測模型;S為測試序列集合且S={s1,s2,…,sM2}。

(4)

2 基于XGboost的預測模型構建

XGboost(extrem gradient boosting)是一種由若干棵回歸樹組合而成的提升集成算法,其每一輪訓練在上一輪基礎上迭代而來,第t次迭代目標函數為[12]:

(5)

式(2)中obj(t)表示t棵回歸樹集成模型的目標函數優化,因此進一步簡化為單棵回歸樹優化問題,目標函數如式(6)~式(7):

(6)

(7)

(8)

式中:T為單棵回歸樹葉子節點個數;λ為單棵回歸樹葉子節點權值復雜度懲罰系數;γ為單棵回歸樹葉子節點數量復雜度懲罰系數;qj為第j個葉子節點包含的樣本集合。

XGboost的本質就是通過樣本訓練得到若干棵回歸樹,而每一棵樹的構造都是從一個根節點開始的二分裂生長過程,因此式(3)最終簡化為樹節點分裂目標函數:

(9)

2.1 滑動窗口抽樣

D={d1,d2,…,dM1}為列車運行歷史時間速度序列集合,其中,dm=(x1,x2,…,xnm)為第m個列車運行時間速度序列。nm為第m個時間序列長度值,M1為觀測值時間序列個數。對于任意從dm∈D提取的樣本要反映序列的局部特征,而最后得到的樣本全集能反映整個序列的特征。抽樣步驟如下:

步驟1:令m=1,k=1,A=φ,A為樣例集合且(zk,yk)∈TD,(zk,yk)為第k個樣例,其中zk為樣本,yk為標簽值。

步驟2:令i=1。

步驟4:如果i=nm,則m=m+1,轉步驟5;否則轉步驟2。

步驟5:如果m>M1,則結束,輸出A,否則轉步驟2。

2.2 XGboost模型訓練

通過2.1節得到的樣例集合A,采用五折交叉驗證方法劃分訓練集和驗證集,循環評估模型預測效果。在劃分時按隨機抽樣原則,以避免采樣誤差[13]。

圖1 五折交叉驗證過程

由圖1可以看出,每一次迭代均將樣例集劃分為訓練集和驗證集。在訓練集中用XGboost方法迭代訓練模型,運用網格搜索方法選擇XGboost模型參數最優值,逐步調參,最后利用驗證集臺驗證預測效果選取最優參數組,從而得到最終的預測模型f。利用預測模型就可以對列車在實際運行過程中采集的數據進行實時預測。

3 異常判定

異常判定分為兩個階段。第一階段是判斷第i時刻預測值和列車速度真實值之差是否在閾值區間內,如果在區間內,則為正常,否則判定為可疑點。第二階段是如果列車速度真實值被判定為可疑,則對該點進一步用Grubbs檢驗判定是否為異常點。

3.1 可疑點判斷

(10)

式中:μe和σe分別為誤差正態分布的均值和標準差。

接下來將集合E看作e的樣本集,根據最大似然原理對μe和σe進行參數估計,如式(11)~式(13):

(11)

(12)

PI=[μe-3σe,μe+3σe]

(13)

式中:PI為閾值區間;|E|為集合E的元素個數。

(14)

3.2 Grubbs異常檢驗

步驟1:初始化檢驗水平α=0.01的Grubbs檢驗臨界值分別為C3=1.155,C4=1.492,C5=1.749。

將異常判定兩個階段的算法步驟合在一起,得到完整異常判定算法,步驟如下:

步驟1:m=1,sm∈S,轉步驟2。

步驟6:如果i

步驟7:如果m

綜上所述,異常檢測整個流程如圖2。

圖2 實驗流程

4 實例分析

4.1 實驗環境和數據集

實驗在windows10系統、2.7 GHz Inter Core i7 處理器、Python 3.6.4 環境下進行,以重慶地鐵6號線15個車一個月行車數據為基礎數據集,抽樣得到151 771條樣例。測試集數據采用人工標注過異常點的時間序列72條共110 232個數據點,其中標記異常點總數3 012個。

4.2 最優參數選擇

在樣例集上運用五折交叉驗證和網格搜索計算得到樣例集總誤差隨窗口長度參數變化情況如圖3。

圖3 樣例集總誤差和窗口長度變化情況

從圖3可以看出,不同r取值會影響XGboost預測模型的預測精度。實驗結果表明,當r=90時,預測總誤差最小值為18.554 4,因此筆者選擇r=90所對應的XGboost模型作為最終預測模型,其最優參數取值為:max_depth=8, min_child_weight=1,gamma=0.0,colsample_bytree=0.8, subsample=0.8,eta=0.05,r=90。其中, eta為學習率;min_child_weight為最小葉子節點樣本權重和;max_depth為單棵樹最大深度;gamma為節點分裂所需的最小損失函數下降值;colsample_bytree為特征的隨機采樣比例;subsample為生成樹的隨機采樣比例。

上述得到XGboost預測模型在樣例集上的誤差,結合式(10)~式(12)計算得到μe=-0.000 002,σe=0.009 395和PI=[-0.028 187,0.028 183]。

4.3 實驗結果對比

基于上述計算參數將得到的異常檢測模型同ARIMA模型、高斯混合模型、3-sigma模型和孤立森林模型進行對比,在查準率(P)、召回率(R)和F1值3個指標上的對比結果如下表1。

表1 模型評估指標對比

從表1可以看出,在查準率上5種模型都有很高準確率,最低的3-sigma模型為0.916 46,說明模型的誤報率都很低。但是通過分析可知,樣例集中正常點和異常點的比例為35.597 6,說明樣例占比極不均衡,因此在樣本不均衡情況下即使查準率接近100%也并不能作為模型整體檢測性能的關鍵指標。再從召回率來看,R值分別為0.941 39、0.873 06、0.823 75、0.810 08和0.920 16,這說明在漏報率方面筆者模型性能優于其他模型。F1值是一個綜合P值和R值考慮的模型性能評估指標,從其結果來看筆者模型在整體檢測性能上也要優于其他模型。

4.4 時間效率分析

在實際異常檢測過程中必須要考慮模型的計算時間效率,否則不滿足實時檢測的要求。重慶行車數據的采集時間間隔為0.2 s,這要求模型從當前時刻算起,預測下一時刻數據和異常點判定時間總和小于0.2 s。5種模型在測試集上計算時間如圖4。

圖4 計算時間

從圖4可以看出,5種模型在測試集所有數據點上的計算時間均小于0.2 s,說明它們均滿足實時檢測要求。經統計各模型計算時間的均值和標準差如表2。

表2 均值和標準差統計

從表2可以看出,從均值來看,時間效率平均水平從高到低分別是高斯混合、3-sigma、ARIMA、筆者模型和孤立森林,說明高斯混合和3-sigma模型 計算時間是最快的。從標準差來看,從低到高分別是高斯混合、3-sigma、筆者模型、ARIMA和孤立森林,說明高斯混合和3-sigma模型計算時間也最穩定。分析可知,高斯混合和3-sigma模型都是基于概率密度的判斷模型,其時間開銷主要在數據點異常概率計算上,而在異常判定時只需與閾值比較,幾乎不需要時間開銷。相比而言,其它3種模型都是基于預測值的判斷模型,除了在預測值生成上的時間開銷高于概率密度計算外,還在異常判定時有檢驗計算時間開銷,因此總的時間效率水平和穩定性低于高斯混合和3-sigma模型。

5 結 論

列車運行速度實施異常檢測對于城市軌道交通正常運營起安全監控作用。筆者針對城軌列車運行速度異常檢測提出基于XGboost模型和Grubbs檢驗的方法,可有效解決其他方法中召回率不高的不足。實驗結果表明,筆者提出模型在測試集上整體性能表現優于其他對比模型,而且在F1值上超過90%,說明在誤報率和漏報率兩個方面都有較好表現,滿足城市軌道交通列車運行速度實時異常檢測的時間要求,模型的計算效率在實際測試中是有效的。鑒于異常檢測預測模型在訓練上計算開銷巨大,特別在模型調參優化上非常耗時,如何加快模型訓練速度是進一步研究方向。

猜你喜歡
列車運行速度預測
無可預測
選修2-2期中考試預測卷(A卷)
選修2-2期中考試預測卷(B卷)
行駛速度
選修2—2期中考試預測卷(A卷)
速度
圖侃天下
鐵路調圖
秒速5厘米
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合