用數據科學找出列車信号系统故障的根源
https://blog.data.gov.sg/how-we- ... 5c86ab6a#.wmox2wns1
Circle Line流氓火车如何被数据捕获文本:Daniel Sim | 分析:李尚前,Daniel Sim&Clarence Ng MRT Circle Line在最近几个月里遭到了一系列神秘的破坏,造成了成千上万的乘客的混乱和困扰。 像大多数同事一样,我每天早上在环线上乘坐火车到我的办公室。 所以在11月5日,当我的团队有机会调查原因,我毫不犹豫地自愿。
根据火车司机SMRT和陆路运输局(LTA)的事先调查,我们已经知道这些事故是由某种形式的信号干扰引起的,这导致一些列车中的信号丢失。 信号丢失将触发那些列车中的紧急制动安全特征,并使它们沿着轨道随机停止。 但事件 - 这首次发生在8月 - 似乎是随机发生的,使调查团队难以确定确切的原因。 我们得到一个由SMRT编译的数据集,其中包含以下信息: - 每个事件的日期和时间
- 事件位置
- 涉及的火车ID
- 火车方向
像往常一样,第一步是导入一些有用的Python库。
代码段1然后我们从原始数据中提取有用的部分。
代码段2我们将日期和时间列合并为一个标准化列,以便更容易地可视化数据:
代码段3这给了我们:
屏幕截图1:初始处理的输出
最初的视觉化没有明确的答案我们在我们的初步探索性分析中找不到任何明显的答案,如下图所示: 事件发生在一天中,整天的事件数量反映了高峰和非高峰旅行时间。
图1:发生次数镜像峰值和非高峰旅行时间。2.事件发生在环线上的各个地点,西侧发生的事件略多一些。
图2:干扰的原因似乎不是基于位置的。信号干扰不影响只有一个或两个火车,但许多列车在圆线上。 “PV”是“乘用车”的缩写。
图3:60个不同的列车受到信号干扰。
Marey图表:显示时间,位置和方向我们的下一步是将多维度纳入探索性分析。 我们是由马雷图,这是在爱德华·塔夫特引以为豪的1983年经典特色的启发数量信息的视觉显示 。 最近,它被用来由麦克·巴里和布莱恩卡为自己庞大的可视化项目波士顿地铁系统的影响:
截图2:来自 http://mbtaviz.github.io/在该图表中,垂直轴表示时间 - 从时间上从上到下 - 而水平轴表示沿着火车线的站。 对角线表示列车运动。 我们开始在我们的版本的Marey图中绘制轴:
图4:一个空的Marey图表,圆线版本在正常情况下,在HarbourFront和Dhoby Ghaut之间运行的火车将以类似的方式移动,每次单程行程只需要一个小时以上:
图5:列车在环线上的运动的风格化表示我们的目的是在这个图表上绘制事件 - 这是点而不是线。
准备可视化数据首先,我们将站名从三字母代码转换为数字: - 滨海湾到海滨长廊:0到1.5
- Dhoby Ghaut到HarbourFront:2到29
如果两个站之间发生的事件,这将被表示为0.5 +两个站数的降低 。 例如,如果事件发生在HarbourFront(29号)和Telok Blangah(号码28)之间,则位置将是“28.5”。 这使我们很容易绘制沿水平轴的点。
代码段4然后我们计算数字位置ID ...
代码段5并添加到数据集:
代码段6然后我们有:
屏幕截图3:添加位置ID后的输出表通过数据处理,我们能够创建所有紧急制动事件的散点图。 这里的每个点代表一个事件。 再次,我们无法发现任何明确的事故模式。
图6:以散点图形式表示的信号干扰事件接下来,我们通过将每个事件表示为指向左侧或右侧的三角形,而不是点,将火车方向添加到图表中:
图7:方向由箭头和颜色表示。它看起来相当随机,但当我们放大到图表,一个模式似乎表面:
图8:上午6点至10点之间的事件如果你仔细阅读图表,你会注意到故障似乎顺序发生。 当一列火车得到了由干扰打, 落后于同一方向移动另一列火车后,得到了很快打出。
信号干扰如何通过隧道移动?在这一点上,仍然不清楚,一列火车是罪魁祸首。 我们建立的是,似乎有一个模式随着时间和地点:事故发生一个接一个,在与上一个事件相反的方向。 它似乎几乎像有一条“破坏的踪迹”。 它是不是在我们的数据集中导致的事件? 事实上,连接事件的想象线看起来可疑地类似于Marey图表(屏幕截图2)。推理的原因是一列火车 - 在对面的轨道?
图9:它是一列火车在相反方向移动吗?我们决定测试这个“流氓火车”假说。 我们知道,沿着Circle Line的车站之间的行驶时间在两到四分钟之间。 这意味着如果发生间隔4分钟,我们可以将所有紧急制动事件分组在一起。
片段7我们发现满足这个条件的所有事件对:
Snippet 8然后,我们分组的所有相关事件对成用一个更大的集不相交集数据结构 。这使我们可以将可能链接到同一“流氓火车”的事件分组。
片段9然后我们将我们的算法应用于数据:
Snippet 10这些是我们确定的一些集群: [{0,1},
{2,4},
{5,6,7},
{8,9},
{18,19,20},
{21,22,24,26,27},
{28,29,30,31,32,33,34},
{42,44,45},
{47,48},
{51,52,53,56}] 接下来,我们计算了可以通过我们的聚类算法解释的事件的百分比。
Snippet 11结果是: (189,259,0.7297297297297297) 这意味着什么: 在我们的数据集中的259紧急制动事件中,189案例-或其中的73% -可以由“流氓车”的假说来解释。 我们觉得我们在正确的轨道上。 我们基于聚类结果对事故图进行了着色。 具有相同颜色的三角形在同一个集群中。
图10:我们的算法聚类的事件
有多少流氓列车?正如我们在图5中显示,每个终端到终端的环线,全程约1小时。 我们通过事件重复提请最佳拟合线和线紧密匹配的是, 图5的。 这强烈暗示只有一个“流氓火车”。
图11:集群事件的时间强烈地意味着干扰可以链接到单列火车我们还观察到,不明的“流氓火车”本身似乎没有遇到任何信号问题,因为它没有出现在我们的散点图。 我们相信我们有一个很好的例子,我们决定进一步调查。
捕捉流氓火车在日落之后,我们去了金川车站,以确定“流氓火车”。 我们不能检查详细的火车日志,因为SMRT需要更多的时间来提取数据。 因此,我们决定通过检查到达和离开每个车站的火车在事件发生时的视频记录来识别火车的旧学校方式。 上午3点,车队发现了主要嫌疑人:PV46,一辆自2015年起投入服务的火车。
测试假设11月6日(星期日),LTA和SMRT测试了如果PV46是在非高峰时间运行火车的问题的根源。 我们是对的 - PV46确实导致附近列车之间的通信丢失,并激活那些列车上的紧急制动器。 没有这样的事件发生在PV46在那天投入使用。 在11月7日(星期一),我们的团队处理PV46的历史位置数据,并得出结论,超过95%的所有事件从8月到11月可以解释我们的假设。 其余的事件可能是由于在正常条件下偶尔发生的信号丢失。 在某些日子,如9月1日,这种模式特别明显。你可以很容易地看到,当PV46服役时,在时间带或周围发生干扰事件。
LTA和SMRT最终发表了一份联合新闻稿 11月11日与公众分享调查结果。
最后的想法当我们开始时,我的同事和我希望找到跨机构调查组可能感兴趣的模式,其中包括LTA,SMRT和DSTA的许多官员。 SMRT和LTA提供的整洁的事件日志有助于我们取得良好的开端,因为在导入和分析数据之前需要尽可能少的清理。 我们还对LTA和DSTA的有效后续调查表示满意,证实了PV46的硬件问题。 从数据科学的角度来看,我们很幸运,事件发生得如此接近。 这使我们能够在如此短的时间内识别问题和罪魁祸首。 如果事件更加孤立,则Z字形模式将不那么明显,并且它将需要我们更多的时间和数据来解决这个谜。 当然,我们最高兴的是,我们所有人现在可以再次使用Circle Line再次信心工作。
注:这里的代码写于2016年11月5日-当我们在工作SMRT数据的实际日识别环线事故的原因。 我们承认可能存在低效率。 您可以下载我们的Jupyter笔记本的副本在这里 。 Daniel Sim,Lee Shangqian和Clarence Ng是GovTech数据科学部的数据科学家。
|