大家好,又见面了,我是你们的朋友全栈君。
1 关于数据
本文中所使用到的数据包括,交通卡、交通事故、出租车轨迹、公交车运行、地铁运行、空气质量、气象监测、新浪微博等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,不仅是一个新时代,更是你我的一个梦想。
如果觉得文章不错,不妨点一下左下方的喜欢~
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160328.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...