摘要: 随着城市轨道交通的迅猛发展,为保证列车安全行驶,对列车速度异常检测方法研究十分必要。为此提出一种将极端梯度提升( XGboost) 和异常检验方法结合的列车速度异常检测方法。首先利用现场采样的列车速度数据,对 XGboost 模型进行训练,然后利用交叉验证和网格搜索方法确定 XGboost 模型最优参数,最后利用极大似然估计和格拉布斯检验,对预测结果进行异常判定。实验结果表明: 与另外 4 种常用模型的测试集对比,F1 值分别提高 7.08%、12.9%、16.9%和 2.9%,该方法在时间效率上满足列车运行实时检测要求。
关 键 词: 交通运输工程; 列车速度异常检测; 极端梯度提升; 交叉验证; 网格搜索; 格拉布斯检验
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 检验判断异常。
列车运行指除去停站时间外的行驶过程。全过程由若干站间运行子过程组成。每个子过程从数据上可表示为时间-速度值的时间序列,因此列车运行异常检测问题就是一个时间序列异常点检测问题。
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 可以看出,不同 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 为生成树的随机采样比例。
相关知识推荐:交通工程sci期刊难投稿吗
上述得到 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 可以看出,在查准率上 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 可以看出,5 种模型在测试集所有数据点上的计算时间均小于 0.2 s,说明它们均满足实时检测要求。经统计各模型计算时间的均值和标准差如表 2。
从表 2 可以看出,从均值来看,时间效率平均水平从高到低分别是高斯混合、3-sigma、ARIMA、笔者模型和孤立森林,说明高斯混合和 3-sigma 模型 计算时间是最快的。从标准差来看,从低到高分别是高斯混合、3-sigma、笔者模型、ARIMA 和孤立森林,说明高斯混合和 3-sigma 模型计算时间也最稳定。分析可知,高斯混合和 3-sigma 模型都是基于概率密度的判断模型,其时间开销主要在数据点异常概率计算上,而在异常判定时只需与阈值比较,几乎不需要时间开销。相比而言,其它 3 种模型都是基于预测值的判断模型,除了在预测值生成上的时间开销高于概率密度计算外,还在异常判定时有检验计算时间开销,因此总的时间效率水平和稳定性低于高斯混合和 3-sigma 模型。
5 结 论
列车运行速度实施异常检测对于城市轨道交通正常运营起安全监控作用。笔者针对城轨列车运行速度异常检测提出基于 XGboost 模型和 Grubbs 检验的方法,可有效解决其他方法中召回率不高的不足。实验结果表明,笔者提出模型在测试集上整体性能表现优于其他对比模型,而且在 F1 值上超过 90%,说明在误报率和漏报率两个方面都有较好表现,满足城市轨道交通列车运行速度实时异常检测的时间要求,模型的计算效率在实际测试中是有效的。鉴于异常检测预测模型在训练上计算开销巨大,特别在模型调参优化上非常耗时,如何加快模型训练速度是进一步研究方向。——论文作者:刘 杰
* 稍后学术顾问联系您