编者按:近年来,异军突起的共享单车极大地解决了人们共同面临的“最后一公里”难题,然而,共享单车发展迅猛,自行车道建设却始终没有能够跟上脚步。幸运的是摩拜单车大量的轨迹数据为我们提供了一种新的思路:利用大数据和AI技术,使用一种数据驱动的方式更为合理地规划自行车道的建设。

在刚刚结束的SIGKDD 2017大会上,微软亚洲研究院城市计算组发表了一篇名为“Planning Bike Lanes based on Sharing Bikes’ Trajectories”的论文,利用摩拜自行车的轨迹大数据解决如今城市自行车道的规划问题,最终形成企业、政府和广大人民群众的三赢局面。点击阅读原文可查看论文。

早在上世纪七八十年代,中国曾被称为自行车大国。当时,大多数人的出行都依赖于自行车,以至于自行车成为了中国当时结婚所要求的“三大件”之一。随着经济的快速增长,越来越多的私家汽车进入了普通民众的生活,为大众的出行带来了极大的便利。但随之而来的却是各种城市问题:交通拥堵、空气污染等等。

最近一年,共享单车的出现为人们提供了一种便利的自行车共享方式,用户可以轻松地在任何地方使用智能手机来实现自行车的租借服务。于是自行车重返上路,成为城市用户喜爱的出行方式。以摩拜单车为例,目前它已拥有超过1亿注册用户,日订单量约2500万。与此同时,政府也非常愿意在群众中推广共享单车的使用。因为共享单车可以降低城市的道路拥堵,减轻空气污染,提高公共交通的使用效率,对人们来说也是更加健康的出行方式。

但是,目前的自行车道建设却没能跟上共享单车所带来的新的骑行需求。如果没有良好的自行车道规划,很多时候骑行的人们只能和机动车一起使用机动车道路,这就使人们的骑行体验大打折扣,并且还可能产生潜在的交通事故。因此,政府希望能够规划出更有效的自行车道来提升大众的骑行体验。

从城市角度看,自行车道的规划存在一定的要求和限制: 首先,建设每条专门的自行车道都需要消耗一定的资源,比如政府预算和道路空间等;其次,自行车道作为一种公共资源,政府希望它能够更好地服务更多的人,并覆盖更长的个人骑行轨迹;最后,为了施工和管理的便利,政府更希望这些道路的建设能够在整个路网上连成有限个区域(下图右图),而不是在整个城市中分散的分布(下图左图)。然而,要同时满足这些建设限制要求的规划是一个非常困难的组合优化问题。

幸运的是,摩拜单车的用户在使用过程中记录了非常有价值的轨迹信息,真实地反映了人们的骑行需求,使得我们有机会利用大数据和数据挖掘技术更有效、合理地规划自行车道的建设

在KDD 2017大会上所发表的“Planning Bike Lanes based on Sharing Bikes’ Trajectories ”论文(点击阅读原文查看论文)中,我们提出了一个基于贪心思想的近似解法,来实现自行车道规划方案的推荐。该算法包括两个步骤:1. 基于路网距离的空间聚类;2. 基于贪心的网络扩展(Greedy Network Expansion)。

在第一步计算中,我们首先根据用户在各条道路上的骑行数据选出Top-M 条用户骑行最频繁的候选路段,然后利用这些路段之间的距离进行hierarchical spatial clustering (层次空间聚类,每次我们都合并两个路网距离上最接近的路段聚类,并知道最后的结果只剩下K个聚类)。最后在每个聚类(cluster)中,我们会选择骑行最频繁的路段作为下一步贪心网络扩展的起始点。

在第二步的计算中,每一次我们都将这些起始路段的邻接路段作为候选集合,然后检验每一个候选路段所能够带来的单位长度上所有轨迹分数的提升。接下来,我们每一轮都选择能够给现有方案带来最大提升的路段作为结果,直至预算被使用完(如下图所示)。

通过以下计算方式,每条轨迹都会为新的路段给出一个得分:

其中,segs(τ)表示这条轨迹被我们的建设方案所分成的连续的段数,s.l表示每一段的长度,而α则是一个调节参数,当该数值越大时,更多的分数就会被给予更连续的规划方案,因为在连续的自行车道上骑行会有更好的体验。比如,相对于下图a 中不连续的自行车道设计方案,用户更希望在b 图中设计的自行车道方案上骑行。

a. Broken 2km               b. Continuous 2km

利用该算法,我们在上海的摩拜单车数据上做了一系列的实验。比如,想在上海周边5个区域内建设30km的自行车道,下图就是算法所推荐的一个方案,可以看到算法覆盖了这个区域所有的6个地铁站。

为了更好地评估算法所产生的自行车道规划方案的优劣,我们亲自去了上海做了实地调研。在金运路地铁站附近,我们发现除了有规模不小的万达虹桥商场,周围2公里内还坐落着许多高密度的居民区。骑行在这个区域内是最方便的出行方式,所以我们在这里看到了密度很高的骑行数据。我们还发现,在这个区域内政府只在主要干道上修建了专门的自行车道(下图中蓝色线道路),我们的算法同样也给出了在这里修建自行车道的建议。

更进一步,我们的算法在那些支路和小区周围的道路上也给出了修建自行车道的建议(上图红色线道路),因为那些道路连接了各个居民区,从数据上也可以看到很多骑行轨迹。但是目前这些地方并没有专门的自行车道,由于各种不规范停车,自行车用户只能在人行道上骑行,或者在机动车道中间骑行,这样的骑行体验自然大打折扣,交通事故的发生也在所难免。

而根据我们系统提出的建议,政府可以在这些支路上修建自行车道,或者先在这些地方增强违章停车的管理,以减少事故发生的可能性,并且提升民众的骑行体验。

该系统得到了上海市政府的高度评价。上海市徐汇区发改委副主任张岚说:“根据人们骑行共享单车的数据分析结论,为政府合理规划自行车道提供了重要的决策参考。”

总的来说,我们在本篇论文中提出了一种更加以数据为驱动的方案,利用大量摩拜单车的轨迹数据为政府推荐自行车道的规划和建设。最终,我们希望能够利用大数据和人工智能这些新兴技术,实现企业、政府和广大人民群众的三方共赢,打造一个更加便利、美好、智能的生活环境!

立即访问http://market.azure.cn

大数据freestyle: 共享单车轨迹数据助力城市合理规划自行车道的更多相关文章

  1. 【Social listening实操】用大数据文本挖掘,来洞察“共享单车”的行业现状及走势

    本文转自知乎 作者:苏格兰折耳喵 ----------------------------------------------------- 对于当下共享单车在互联网界的火热状况,笔者想从大数据文本挖 ...

  2. 爬取ofo共享单车信息

    前段时间看到很多微信公众号在转发一篇爬取mobike单车的信息,也不知道什么原因,在网上搜索了下很少有人在爬取ofo共享单车的数据,所以决定看看可以爬取ofo共享单车的那些数据. 抓取数据开始的时候, ...

  3. 频繁的或者大范围的来实现数据的共享要使用Vuex

    一. Vuex 概述 1.1 组件之间共享数据的方式 由于使用频繁,通常将v-bind:属性名=" "的格式简写成:属性名=" ".兄弟组件之间的共享即不相干组 ...

  4. 抓取摩拜单车API数据,并做可视化分析

    抓取摩拜单车API数据,并做可视化分析 纵聊天下 百家号|04-19 15:16 关注 警告:此篇文章仅作为学习研究参考用途,请不要用于非法目的. 摩拜是最早进入成都的共享单车,每天我从地铁站下来的时 ...

  5. Data.gov.uk电子政务云,牛津大学NIE金融大数据实验室王宁:数据治理的现状和实践

    牛津大学NIE金融大数据实验室王宁:数据治理的现状和实践 我是牛津互联网研究院的研究员,是英国开放互联网的一个主要的研究机构和相关政策制订的一个机构.今天主要给大家介绍一下英国数据治理的一些现状和实践 ...

  6. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(33)-数据验证共享

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(33)-数据验证共享 注:本节阅读需要有MVC 自定义验证的基础,否则比较吃力 一直以来表单的验证都是不可 ...

  7. PHP 实现多网站共享用户SESSION 数据解决方案

    PHP 实现多网站共享用户SESSION 数据解决方案 来源URL:http://blog.csdn.net/dongdongzzcs/article/details/6906613 一.问题起源 稍 ...

  8. 利用大数据技术处理海量GPS数据

    我秀中国物联网地图服务平台目前接入的监控车辆近百万辆,每天采集GPS数据7亿多条,产生日志文件70GB,使用传统的数据处理方式非常耗时. 比如,仅仅对GPS做一些简单的统计分析,程序就需要几个小时才能 ...

  9. 【CUDA 基础】5.2 共享内存的数据布局

    title: [CUDA 基础]5.2 共享内存的数据布局 categories: - CUDA - Freshman tags: - 行主序 - 列主序 toc: true date: 2018-0 ...

随机推荐

  1. Day02:数据类型、字符编码、文件处理

    一.基础数据类型与其内置方法 1. int基本使用:int(3.1) 用途:记录年龄,职级等 只能将包含纯数字的字符串类型转换成整形 特点:1.存一个值. 2.不可变 2.float基本使用 floa ...

  2. py-day17-jquery

    jquery实现案例 案例: 1.点赞 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...

  3. Flutter实战视频-移动电商-46.详细页_自定义TabBar Widget

    46.详细页_自定义TabBar Widget 主要实现详情和评论的tab provide定义变量 自己做一个tab然后用provide去控制 定义两个变量来判断是左侧选中了还是右侧选中了.并定义一个 ...

  4. 计算机图形学之扫描转换直线-DDA,Bresenham,中点画线算法

    1.DDA算法 DDA(Digital Differential Analyer):数字微分法 DDA算法思想:增量思想 公式推导: 效率:采用了浮点加法和浮点显示是需要取整 代码: void lin ...

  5. CCF 201512-3 画图 (DFS搜索+模拟)

    问题描述 用 ASCII 字符来画图是一件有趣的事情,并形成了一门被称为 ASCII Art 的艺术.例如,下图是用 ASCII 字符画出来的 CSPRO 字样. ..____.____..____. ...

  6. C#基础:对委托的简单理解

    在编程过程中,我们习惯把数据作为参数传递给方法(例:int a=int.Parse(“20”);).是否能将一个方法传递给另一个方法呢?是不是听起来有点奇怪!!! 线程大家应该熟悉吧,在计算机中并行运 ...

  7. Codeforces 174B【模拟构造】

    题意: 给你一个串只有小写字母和点,让你构造前缀是1-8,后缀是1-3长度的文件名: 思路: 那么以"."作为分割点,把字符串都拿出来,然后 首段长度<=8 OK; 中间&l ...

  8. Memcached 查看帮助

    进入到memcached目录, 输入命令: memcached -h 即可查看帮助 -p<num>要侦听的TCP端口号(默认值:11211) -u<num>udp监听端口号(默 ...

  9. 有趣的JS存储 连等问题

    五个月不见了,你是不是和我一样又帅了,今天我们先来看一道经典的关于JS存储的题目,来一场紧张又刺激的脑内吃鸡大战吧: var a = {n:1}; a.x = a = {n:2}; console.l ...

  10. java数据结构----哈希表

    1.哈希表:它是一种数据结构,可以提供快速的插入操作和查找操作.如果哈希表中有多少数据项,插入和删除操作只需要接近常量的时间.即O(1)的时间级.在计算机中如果需要一秒内查找上千条记录,通常使用哈希表 ...