1 SODA是什么##
SODA(Shanghai Open Data Apps,上海開放數據創新應用大賽)是由上海經信委和交通委主辦的一次開放數據盛會。在本次比賽中共開放了交通卡、交通事故、出租車軌跡、公交車運行、地鐵運行、空氣質量、氣象監測、新浪微博等12個數據集近TB量級的數據,供廣大參賽者深入挖掘數據中隱藏的價值,為解決實際問題提供創意來源和數據支持。
2 關于我們##
我們是“沉默的忘了愛”團隊,參賽題目是“大型活動大規模人群的識別和疏散”,志在通過應用交通數據以解決大型活動(如演唱會、足球比賽、跨年活動等)結束后大規模人群滯留導致的疏散困難、交通擁堵、事故隱患等一系列問題(如外灘踩踏事件)。
在此基礎上我們提出“公交3.0”的綠色出行概念,核心包括以下三點:
- 提倡少開私家車、多乘公交車;
- 整合公眾出行需求、動態規劃公共交通資源;
- 最大程度上實現道路暢通、節能減排、可持續發展。
我們有成熟的Hadoop+Spark大數據處理平臺,在對開放數據全集進行清洗和預處理之后,從宏觀、微觀、介觀三個尺度對人群聚集行為建模并分析,通過迭代匹配算法識別出大型活動事件的發生,并采取多目標最優化策略進行及時有效的疏散,作品成果包括可視化展示平臺、實時交通監測系統和公交3.0App原型。
我們工作內容的總體框架如下圖所示。
所使用的主要方法如下圖所示。
所涉及的主要技術如下圖所示。
3 問題場景##
大型活動的特點包括:多發于空閑時段;人群分批聚集、集中疏散;活動信息可提前預知;人數少則數千多則上萬。
大型活動結束之后,最亟待解決的便是大量滯留人群的回家問題。公交車數量太少甚至幾乎沒有,黑車出租車超載而且漫天要價,私家車數量太多道路直接癱瘓。在這場回家的戰爭中,政府、乘客、專用巴士公司三者之間聯系脆弱、信息隔離、配合艱難:
- 政府:群眾安全隱患嚴重,慢疏散一分就多一分風險;
- 乘客:無公交車,打車貴,回家難;
- 專用巴士公司:找客源難,制定路線難。
因此,我們在以上三者之間起到信息共享、資源整合、路線規劃、互惠共贏的角色,如下圖所示。
4 數據概覽##
首先讓我們從全局角度了解一下交通數據的概況。下圖是4月份地鐵、巴士和出租車日客流量統計結果,可以看出三類交通方式都呈現出顯著的周期性。相對于工作日,周末客流量顯著減少,周五會出現一個小的高峰,而總客流量從多到少依次為巴士、地鐵、出租車。
以下三幅雷達圖分別表示地鐵、巴士和出租車客流量24小時時域分布情況,地鐵和巴士呈現出顯著的早、晚兩個高峰,而出租車除了凌晨0點至5點之間客流量較少之外,其余時間段分布都比較均勻。
接下來重點看一下一卡通刷卡數據的統計結果。下圖是4月份一卡通刷卡記錄日參數統計,包括日用戶數、日交易次數和日交易額。可以看出三者之間呈正相關且周期性明顯,每人每天平均刷卡次數約為3次,每次平均刷卡金額約為2元。
下圖揭示了工作日和周末,以及晴天和雨天對一卡通刷卡情況的影響。可以看出工作日早晚高峰顯著且流量高于周末,周末客流量時域分布則相對均勻;另外天氣因素對一卡通客流量影響不明顯,說明即使是下雨天,使用一卡通乘坐地鐵或巴士出行仍然是大多數公眾的不二選擇。
5 宏觀分析##
宏觀尺度分析城市行為。將城市劃分為不同區域,基于客流量、入度和出度三項指標計算區域權重。權重越大則區域越為重要,也越有可能成為大型活動的舉辦地點。
我們參考谷歌搜索的PageRank算法,統計各區域到其他區域的客流量,依此計算各區域的入度和出度,并基于流量轉移矩陣計算區域特征值。
以地鐵站點為例,計算出各個地鐵站點的出度、入度和權重之后,我們基于百度地圖進行了熱力圖可視化,如下圖所示。可以看出越偏遠的區域(藍色)權重越低,而權重高的區域(紅色)則大多集中于市中心的位置。
除了熱力圖,我們還在可視化平臺中進行了其他展示:
折線圖展示地鐵站權重、出度和入度。偏遠的站點位于兩端,靠近市中心的站點位于中間,將二維映射為一維的目的是為了便于比較。
字符云展示地鐵站點OD。點擊某個地鐵站點名稱之后即可展示從該站出發去往其他各個地鐵站的客流量,站點名稱的高度、透明度和大小與客流量成正比,從而直觀地可視化288個地鐵站彼此兩兩之間近8萬項OD數據。
和弦圖展示地鐵線路OD。不同顏色的圓弧代表不同地鐵線路的客流量,圓弧長度表示客流量大小,圓弧之間的緞帶表示兩條線路間的OD,緞帶越粗則OD客流量越大。
以上內容都具備可交互性和可操作性,在可視化展示平臺中可以得到更佳可視化體驗。
6 微觀分析##
微觀尺度分析個人行為。以一卡通為例,個人行為指標包括4月份內刷卡總次數、出入的不同地鐵站總數等。前者越大說明用戶對地鐵和巴士等公共交通工具的依賴性越高;后者越大說明用戶出行目的地越多樣化、社會活動性越強,這類用戶更有可能成為大型活動的參與者。
下圖是一卡通用戶刷卡總次數分布統計,大多數用戶刷卡總次數為偶數(人的活動具有往返性),且主要集中于0至20這一區間,說明他們并不是每天都需要坐地鐵(如學生族、有車族)。
下圖是一卡通用戶出入不同地鐵站總數分布統計,大多數用戶出入不同地鐵站總數低于10(人的活動具有低熵性),他們一般僅往返于少數的幾個地鐵站之間。而其他用戶則相當活躍,所到地鐵站數量甚至有80個之多(上海市目前一共有288個地鐵站,不考慮換乘站重復計算),他們便是傳說中的“坐地鐵游上海一族”。
除了以上兩項基本指標外,個人行為還可以抽象為模序(motif)。使用有向圖刻畫用戶軌跡,頂點表示用戶停留位置,有向邊表示用戶的移動,通過這種抽象可以識別出個人行為中的停留點(stay point)和模序。
下圖是出現頻次最多的十大模序以及對應占比,其中單程型和往返型居多,這和我們的日常經驗是吻合的。
基于模序可以進行用戶分類。模序種類構成單一,說明用戶過著工作日“三點一線”、周末“死宅”的生活;模序構成越豐富,說明用戶出行習慣越多樣化,越有可能成為大型活動的參與者。
除此之外,模序的變化暗示著行為異常。如果某天大量用戶從各自最頻繁出現的模序變更為另一種且包含公共停留點,那么他們極有可能共同去參加了同一場大型活動。
下圖是某用戶4月份行為軌跡,共包含12個停留點和6個模序,其中2、3、4為往返型,1、5為三角型,6為四點往返型。可以明顯地判斷出用戶居住位置(大部分軌跡的交點),模序4為該用戶最頻繁的模序,可能對應工作日上班行為,模序5為次頻繁的模序,可能對應周末出游行為。
7 介觀分析##
介觀尺度分析群體行為。介觀基于宏觀和微觀,處理對象為具有相似行為的人群。同一時段進入同一地鐵站的用戶構成人群,一場大型活動的參與者同樣構成人群。他們由微觀個體組成,其群體行為是宏觀事件的一次具體展現,因此介觀是連接宏觀和微觀的紐帶。
通過分析區域性人群聚集行為,即可識別該區域該時段是否將發生大型活動。基于宏觀尺度,可以根據區域客流量是否異常進行識別;基于微觀尺度,可以根據人群模序是否發生聚集(同一天發生模序變更且變更后具備公共停留點)進行識別。從宏觀行為和微觀行為都可以推導出介觀行為,進一步說明了介觀是聯系宏觀和微觀的紐帶,也是深入理解和應用宏微觀的切入點。
我們基于宏觀尺度實現接下來的事件識別。下圖是中華藝術館站4月15日、18日和19日三天的24小時客流量分布。15日為工作日,客流量呈現出早晚高峰;18日為周六,但客流量相對15日反而增加,原因是中華藝術館站附近主要為展館和景點,因此相對工作日的上班族,旅客為周末出行貢獻了更多的客流量;19日為周日,介觀行為理應和18日類似,但卻出現了顯著異常,究其原因是因為當天19:30~22:30該站附近舉辦了一場大型演唱會。
我們的迭代匹配事件識別算法描述如下:對于某地鐵站某天的客流量數據,如果某一時刻大幅超出基準線,或一段時間內持續小幅超出基準線,即標記為正例,否則記作反例。算法中涉及的三個參數(大幅超出閾值、小幅超出閾值、小幅超出持續范圍)初始化為5倍、2倍、3個小時,通過訓練不斷迭代,并基于網絡大型活動信息進行校驗,以最小化誤差為目標確定最優模型。
基于以上算法,我們對上海市288個地鐵站4月份交通數據進行了事件識別,分析結果如下圖所示。矩形數圖中不同顏色的區塊代表不同的地鐵線路,各個小區塊的大小表示正例的天數,正例越多則小區塊面積越大。
在可視化展示平臺中點擊某個小區塊,還可以查看該地鐵站的詳細識別結果。例如在下圖中,虹口足球場站共識別出了兩次事件,分別發生于4月11日和4月25日,經驗證這兩天虹口足球場確實舉辦了大型足球賽。點擊左邊日歷中的數字,即可查看不同日期的客流量比對結果。
8 疏散措施##
實現大型活動的識別之后,我們需要制定及時有效的疏散措施。我們和小龍巴士達成合作,他們的專用巴士具有載客量大、調配靈活和價格合理等優點,而我們可以為他們提供客源、疏散建議和盈利。具體應用中,需要考慮的問題包括使用多少輛巴士、每輛巴士載客量多少、如何制定疏散策略等。根據實際需求和目標,可采取的疏散策略包括最小成本疏散、最小延誤疏散和分級快速疏散等。
下圖是我們在可視化展示平臺中搭建的模擬疏散系統,數據使用之前提及的4月11日虹口足球場站地鐵數據。通過自定義巴士數量和載客量,可以動態查看足球賽結束后的疏散結果,同時得到基于模型參數計算的總盈利和疏散時間。調配更多大容量巴士當然可以加快疏散進度,但過多巴士資源造成的浪費則會導致虧損,因此存在一個同時滿足最大盈利和最快疏散的最優點,這一結論在模擬系統中得到了充分證實。
9 公交3.0##
我們想做和能做的,其實完全不僅是大規模人群的識別和疏散問題。從這一案例中我們看到了專用巴士在緩解交通壓力、解決出行問題中扮演的重要角色,我們真正希望做的,是從大規模普及到中小規模、從特殊場景推廣到一般場景、從人群疏散延伸到綠色出行,讓專用巴士在公共交通中發揮更重要的作用。
基于流量分析和事件識別挖掘所得的乘車需求往往響應慢且效率低,我們更希望廣大用戶主動提交出行需求,包括起始點和時間等,從而讓巴士資源的調度具備相應充分、效率高等優點。我們提倡公眾少開私家車,增加公共交通工具的使用,畢竟一輛巴士能解決幾十輛私家車的出行需求。我們希望以此匯聚相似人流、優化交通資源、解決道路擁堵、改善出行體驗、促進綠色出行,因此我們提出了“公交3.0”的出行理念。
“公交1.0”即站點靜態、規劃靜態,用戶需要根據起始地查詢公交公司所提供線路,并自行規劃路線;“公交2.0”即站點靜態、規劃動態,用戶可以通過導航軟件和地圖軟件輕松獲得推薦路線;“公交3.0”即站點動態、規劃動態,巴士實際運行路線根據用戶需求動態調整,更好地利用道路和車輛資源。“公交3.0”理念下的出行包括四個步驟:
- 用戶提交個人出行需求;
- 云端整理需求和資源;
- 云端動態規劃路線、調度巴士;
- 用戶根據推送路線信息選擇所需巴士,綠色出行。
基于以上理念,我們設計了一款App概念原型,如下圖所示,主要包括查看實時巴士分布、提交新的出行需求、查看全部可乘路線、我的出行和關注路線四項功能。
基于多源開放數據和創意運營模式,“公交3.0”提倡多乘公交車、少開私家車、綠色出行、節能減排,能有效緩解道路擁擠、減少尾氣排放、節約能耗使用。“公交3.0”打破傳統固有出行方式,真正實現按需分配資源、數據驅動決策、動態平衡供需,在提高道路使用效率、緩解交通擁堵的同時促進環保節能。
10 Bonus-實時交通監測系統##
除了以上內容,我們還在本地基于4月11日數據搭建了實時交通監測系統,已實現真實數據接入和web管理接口,根據當前時刻調取最新數據,提供道路狀況、車輛分布、人群流向等監測內容的實時分析和可視化。如果能夠進一步得到實時數據和落地支持,完全可以成為出色的應用級成果。
以下四幅圖分別為實時監測系統主頁、實時車輛熱力圖和未來流量預測、不同車速車輛分布、動態更新的人流移動趨勢。
11 后記##
作為一個數據愛好者,每天痛苦于上海人擠人的地鐵和車貼車的道路,“公交3.0”是我一個美好的愿景和夢想。
記得一次下雨天,無奈只能坐公交去地鐵站,在本來10分鐘足矣的路上硬是堵了一個多小時。如果10億人人均時薪為50元,一場雨帶來的損失便難以估量。車太多,私家車太多。公交移動電視里的廣告喊著,“一輛公交車等于六十輛私家車”,然而開私家車的人接觸不到這些廣告,只有我等苦逼坐公交的人才會看到。乘坐公共交通工具出行的意義和重要性,很多人并沒有意識到。
希望有一天,公交車更加舒適,人們出行會優先想到坐公交。車少了,路不堵了,空氣也好了,出門暢快了,該是怎樣一種愉悅的體驗?
公交3.0,不僅是一個新時代,更是你我的一個夢想。