新加坡地鐵故障頻發(fā) 數(shù)據(jù)分析找出肇事元兇

新加坡地鐵環(huán)線近幾個(gè)月來發(fā)生了一系列不明原因的故障,給上千名乘客造成了困擾和麻煩。和我的大多數(shù)同事一樣,我每天早上都要搭乘環(huán)線去上班。前不久,當(dāng)我們組被任命調(diào)查故障原因時(shí),我毫不猶豫地報(bào)名參與其中。

從地鐵運(yùn)營方SMRT和道路管理局之前的調(diào)查中,我們已經(jīng)知道這些故障是由于會(huì)引發(fā)信號(hào)丟失的信號(hào)干擾所導(dǎo)致的。信號(hào)丟失會(huì)觸發(fā)列車的緊急制動(dòng)安全系統(tǒng)從而致使列車不規(guī)律地停止行駛。但是這些發(fā)生自八月份的故障看起來都是隨機(jī)發(fā)生的,這給調(diào)查組的原因排查帶來了不小的困難。

我們從SMRT獲得的數(shù)據(jù)可以提供如下信息:

·每一起故障的日期和時(shí)間

·每一起故障的發(fā)生地點(diǎn)

·故障列車的編號(hào)

·故障列車的行駛方向

我們從清理原始數(shù)據(jù)入手。我們使用的軟件是Jupyter Notebook,它是一款非常流行的用于編寫和歸檔Python代碼的工具。

—— 最基本的可視化 ——

從如下這些基本的分析處理中,我們無法確定故障的明確原因:

1.故障發(fā)生的時(shí)間遍及全天,并且早晚高峰的故障發(fā)生次數(shù)呈鏡像對(duì)稱。

2.故障發(fā)生在環(huán)線沿線多處地點(diǎn),在西部發(fā)生的次數(shù)略多。

3.信號(hào)干擾影響到多列列車?!癙V**”代表列車編號(hào)。

—— Marey圖:對(duì)時(shí)間、地點(diǎn)、行駛方向的可視化 ——

分析處理的下一步是綜合考慮多個(gè)維度的信息。我們受到Marey圖的啟發(fā),Marey圖是Edward Tufte在1983年經(jīng)典的“量化信息的可視化表達(dá)”一文中提出的。最近,Marey圖被Mike Barry和Brian Card用于波士頓地鐵系統(tǒng)的可視化項(xiàng)目中:

在這幅圖中,縱軸代表時(shí)間——從上到下按照時(shí)間順序——橫軸代表地鐵沿線各個(gè)站點(diǎn)。其中對(duì)角線代表地鐵的行進(jìn)狀態(tài)。

我們先按照我們要研究的問題畫好坐標(biāo)軸:

在正常情況下,一列從港灣站行駛至多美歌站的列車將會(huì)按照下圖的路線運(yùn)行,每一趟單程僅需一小時(shí)。我們研究的目的是在該圖中用點(diǎn)而非直線來描繪故障的發(fā)生狀況。

—— 準(zhǔn)備用于可視化的數(shù)據(jù) ——

首先,我們把由三個(gè)字母代表的站名轉(zhuǎn)化為數(shù)字:

·濱海灣至寶門廊:0至1.5

·多美歌至港灣:2至29

如果故障發(fā)生在兩站之間,我們將用0.5加上兩站中較小的數(shù)字來表示故障地點(diǎn)。舉例來說,如果故障發(fā)生在港灣(29)和直落布蘭雅(28),那么故障發(fā)生地點(diǎn)為“28.5”。這使我們?cè)跈M軸上的標(biāo)注變得簡單明了。

基于處理之后的數(shù)據(jù),我們?cè)趫D中繪制出了所有緊急制動(dòng)故障的散點(diǎn)圖。每一個(gè)點(diǎn)代表一起故障。然而,我們還是無法歸納出明確的故障發(fā)生原因。

接下來,我們加入列車行駛方向這一因素。我們用指左或指右的三角形符號(hào)來代表列車的行駛方向:

然而,它看起來還是相當(dāng)隨機(jī)。但是當(dāng)我們放大至一些局部細(xì)節(jié),一些規(guī)律似乎浮出水面:

如果你仔細(xì)研究這幅圖,你會(huì)發(fā)現(xiàn):列車故障是依序發(fā)生的。當(dāng)某一列車發(fā)生信號(hào)干擾,緊隨其后開往同一方向的列車將會(huì)很快也遭遇相同的干擾。

—— 信號(hào)干擾是如何發(fā)生的? ——

至此,我們?nèi)匀徊磺宄欠衲骋涣熊囀钦厥略獌?。我們能夠確定的是在時(shí)間和地點(diǎn)的分布上一些規(guī)律有跡可循:故障是依次交替在相反方向上發(fā)生。會(huì)不會(huì)是一些無法在數(shù)據(jù)集中體現(xiàn)的原因?qū)е逻@些故障呢?

這些假想的連接各點(diǎn)的虛線看起來與Marey圖中的直線很相似。那些沿相反方向行駛的列車會(huì)不會(huì)是造成信號(hào)干擾的原因呢?我們決定去測試一下“肇事列車”這一假設(shè)。

我們已經(jīng)知道環(huán)線每兩站之間的時(shí)間間隔大約是2-4分鐘。這意味著我們可以把四分鐘之內(nèi)發(fā)生的緊急制動(dòng)故障歸為一組。

然后,我們使用不相交的數(shù)據(jù)結(jié)構(gòu)將所有的故障事件對(duì)組合成較大的集合。這使我們能夠?qū)⒖赡芘c同一列肇事列車掛鉤的故障進(jìn)行分組。

我們把這一算法運(yùn)用在數(shù)據(jù)集上,如下是我們找出的一些歸類的集群及相應(yīng)結(jié)果:

這一結(jié)果表明:在數(shù)據(jù)集中包括的259起故障中,189起——或73%的故障——可以用“肇事列車”這一假設(shè)來解釋。這讓我們覺得我們的分析方向是正確的。

我們根據(jù)聚類結(jié)果對(duì)故障點(diǎn)進(jìn)行著色。同一顏色的三角形來自同一集群。

—— 有多少列肇事列車? ——

從前文可知,環(huán)線每一單程大約耗時(shí)一小時(shí)。我們按照正常運(yùn)行的列車Marey圖中的直線來擬合故障散點(diǎn)圖。從下圖可以清晰地看出只有一列肇事列車。

我們還可以得出:那列未知的肇事列車自身并沒有出現(xiàn)任何信號(hào)故障,因?yàn)樗]有出現(xiàn)在我們的散點(diǎn)圖中。

—— 找出肇事列車 ——

日落之后,我們前往金泉地鐵車輛段試圖找出肇事列車。由于SMRT需要更多時(shí)間來導(dǎo)出當(dāng)日數(shù)據(jù),我們無法查看列車日志的詳細(xì)記錄。所以我們決定用老式的方法,通過審查故障發(fā)生時(shí)到達(dá)和離開各車站的列車的錄像記錄。終于在凌晨三點(diǎn)鐘,團(tuán)隊(duì)發(fā)現(xiàn)了頭號(hào)嫌疑犯:PV46,一列從2015年起投入運(yùn)行的列車。

—— 驗(yàn)證假設(shè) ——

11月6日(周日),道路管理局和SMRT在非高峰期時(shí)段進(jìn)行測試來判定PV46是否是故障的源頭。測試結(jié)果表明我們是正確的——PV46確實(shí)引起了鄰近車輛的信號(hào)丟失從而觸發(fā)了那些車輛的緊急制動(dòng)系統(tǒng)。在PV46運(yùn)行之前,并沒有相關(guān)故障發(fā)生。

11月7日(周一),我們團(tuán)隊(duì)分析處理了PV46的所有關(guān)于地點(diǎn)的記錄數(shù)據(jù),發(fā)現(xiàn)從八月至十一月的95%的故障可以用我們的假設(shè)來解釋。剩下的一些案例可能是由于在正常狀況下偶發(fā)的信號(hào)丟失導(dǎo)致。

這一規(guī)律在某些日子特別明顯,例如9月1日。從下圖可以清晰地看出故障均發(fā)生在PV46運(yùn)行的時(shí)間區(qū)間內(nèi)。

—— 總結(jié) ——

當(dāng)我們剛開始調(diào)查故障原因時(shí),我的同事和我都希望能找到使跨機(jī)構(gòu)調(diào)查組感興趣的原因,這包括道路管理局,SMRT和國防科技局。由SMRT和道路管理局提供的清晰明了的故障日志給我們的調(diào)查鋪平了道路,因?yàn)槲覀儾恍枰诜治鰯?shù)據(jù)之前花費(fèi)時(shí)間和精力來清理原始數(shù)據(jù)。我們也對(duì)道路管理局和國防科技局的后續(xù)調(diào)查表示滿意,他們證實(shí)了故障確實(shí)是來自PV46的硬件問題。

從數(shù)據(jù)科學(xué)的角度來看,我們非常幸運(yùn),因?yàn)楣收习l(fā)生的時(shí)間和地點(diǎn)很接近。這使我們能夠在很短的時(shí)間內(nèi)確定問題和罪魁禍?zhǔn)?。如果這些故障更加孤立,其中的規(guī)律和關(guān)聯(lián)就不那么明顯了,我們將需要更多的時(shí)間和數(shù)據(jù)來解決這個(gè)謎題。

*本文用到的Python源代碼請(qǐng)點(diǎn)擊閱讀原文獲取。全文翻譯自新加坡GovTech發(fā)布在Medium上的官方博客How the Circle Line rogue train was caught with data.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,825評(píng)論 6 546
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,814評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,980評(píng)論 0 384
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 64,064評(píng)論 1 319
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,779評(píng)論 6 414
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,109評(píng)論 1 330
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,099評(píng)論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,287評(píng)論 0 291
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,799評(píng)論 1 338
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,515評(píng)論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,750評(píng)論 1 375
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,221評(píng)論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,933評(píng)論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,327評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,667評(píng)論 1 296
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,492評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,703評(píng)論 2 380

推薦閱讀更多精彩內(nèi)容