编者按:
随着智能手机和信息通信技术的一直倒退和遍及,大规模的轨迹数据存储曾经比拟广泛,成为开掘用户行为模式的重要起源,工作地和居住地是用户行为模式的重要体现,可用于辅助智能城市的建设,比方优化通勤路线、产业布局、剖析人口流动状况等,从而缩小交通拥堵、进步市民生存便利性和满意度。同时也能够辅助商业天文地产、线下生产等行业的征询决策,比方依据生产人群的寓居工作信息优化品牌布局和商业定位、优化线下广告投放等。但针对现有的工作地居住地计算方法存在不同水平的难题,本文将提出一种改良计划。
一、现有办法
基于加权 DBSCAN 的工作地居住地计算方法
【能够查阅此文:极客星球|基于加权 DBSCAN 的工作地居住地计算方法】
二、现有办法局限性
Poi 数据的覆盖度有余和准确度有余导致无奈很好的对 dbscan 聚类进行加权。
三、改良办法
对地块用地属性进行分类,填补上述 geohash 地块无 poi 分类的有余。
四、地块分类的作用
在商业天文中对用地属性进行分类是很有意义的一项工作,例如在计算设施的居住地和工作地时,如果不提前对地块进行划分,仅思考工夫维度,就会导致许多设施的居住地被计算在商场、园区、公园等非居住地块,而工作地落在了路线、旱路等非工作地块的后果。如果提前将用地属性权重退出到计算中,在计算居住地时仅思考设施呈现在属性为小区的地块的报点(工作地同理),就能够极大晋升设施职住地预测后果的准确性。此文将介绍两种在商业天文中较为实用的两种用地属性分类的办法。
1、基于 k -NN 的地块分类办法
第一种办法是先将整个地图划分成小网格(geohash),再将地图上的所有的小网格分成居住地、工作地和其余三个类别,分类的根底框架采纳的是 k -NN 算法,但在该算法的根底上减少了一些修改步骤。
这个办法中咱们的根本假如是不同用地属性的网格在一个工作日中不同工夫产生点位上报的概率分布具备显著差别。直观上的了解就是,居住地在非工作时间段具备更大的概率产生报点,而工作地则在工作工夫具备更大的概率产生报点。基于这个根本假如咱们最后的想法是收集每个网格中近三个月的工作日的所有报点工夫,用这些报点工夫通过核预计的办法预计出该网格内一天中产生报点的概率随工夫变动的概率密度函数(PDF),再将两个网格之间的间隔定义为对应概率密度函数围成的面积。但这种先取差的绝对值再积分的思路在工程实现的过程中计算耗时太长,以咱们目前的计算资源无奈在正当的工夫内实现整个城市地图的计算工作。在尝试了多种间隔定义之后,最终咱们抉择了推土机间隔(Wasserstein distance)作为 k -NN 的间隔函数。
两个概率密度函数 u 和 v 之间的推土机间隔的原始定义是 ,其中 是 u 和 v 的联结散布,能够证实该定义与 是齐全等价的[1],其中 U 和 V 是两个概率密度函数对应的累积散布函数(CDF)。在这个新的定义下,只需用教训累积散布(empirical CDF)来估算累计散布函数,再对样本数据进行排序,就能够通过四则运算失去两个散布之间的间隔,从而躲避对核预计函数的积分,极大晋升了计算间隔的效率。
在确定了间隔函数之后,采纳 k -NN 的算法逻辑对未知类型小网格分类成居住地、工作地和其余三个类型,在商业天文中,咱们关注的居住地次要是小区,工作地则次要是写字楼和园区,除此之外的商场、公园、路线、湖泊、景区等等各种类型都归类在了其余类型中,在这个定义下,其余类型涵盖的用地属性实际上十分多,而咱们的训练集难以涵盖如此多的类型。间接采纳 k -NN 进行分类会导致样本不均衡,即训练集中寓居类型网格和工作类型网格的数量大于其余类型,但理论状况恰好相反。
为了解决这个问题,咱们先取出训练集中类型为居住地和工作地的网格组成新的训练集,采纳 k -NN 算法将所有待分类的网格分为居住地和工作地两个类型,以居住地为例,在分类过程中会计算每个待分类网格与训练集中所有网格的间隔,利用该数据再次计算每个被 k -NN 分类到居住地的网格与训练集中所有居住地网格的间隔均值,而后设定居住地均值的阈值,将均值大于设定阈值的网格从新分类为其余,阈值的设置办法十分多,在此不再赘述,对于被 k -NN 分类到工作地的网格同理。至此咱们实现了居住地、工作地和其余三种类型的分类,以下展现上海市长宁区的居住地分类后果。
上海市长宁区居住地分类后果
2、基于 maskrcnn 模型的地块 poi 宰割办法
除了上述的办法以外,是否还有方法对一个地块或者中央的用地属性进行分类呢?
在这里咱们想到了,就是地图对于不同的地块的信息是不一样的,例如在地图中,小区个别都是很多个小的方形的建筑物密集排布;甚至有卫星图也能够很容易的分辨出地块的属性。
在这里安利一下达摩院的一个小工具:
https://aiearth.aliyun.com/
达摩院的能力当然是很强的,咱们尝试着去简略复现一下。
整个算法的实质是要进行实例宰割,简称抠图。
基于此,咱们整顿了大大小小 4 万多张地图图片,并将其外部建筑物一一抠出,并分成 5 大类:小区、写字楼、商场、园区、景区,局部如下图所示:
而后对数据进行解决,包含由经纬度组成的点转换成对应图片 xy 坐标的点,并以此生成 mask 遮罩,并对 mask 遮罩生成游程编码压缩存储空间。最初将这些所有信息一并通过 json 存起来。
至此,所有的数据已筹备结束,包含图片和对应的 json 文件。
下一步咱们来训练模型:
在后期的测试和理解阶段,咱们打算间接应用百度的 easydl 平台来实现简略的输入:
百度 easydl 平台
以后刚在平台上实现测试,测试后果尚佳,后续为了晋升准确率,咱们冀望能将卫星图也退出到实例宰割的数据中去,而两张图片的交融进行实例宰割在百度的 easydl 平台将无奈实现,只能本人创立模型,并对开源算法进行“魔改”。
在这里咱们打算采纳的是业界宽泛应用而且有较多源码反对的 Mask-RCNN
Mask-RCNN 是 ICCV2017 的 best paper,是 FAIR 团队的 Kaiming 大神和 RBG 大神的作品,同时也是 Faster R-CNN 和 FCN 的交融产物。长处是实现起来比较简单高效,毛病是相比以后新的模型,准确度和速度都尚未达标。以后地块分类对于模型像素级别分类的准确度的要求绝对不高,而且因为是离线训练应用,在速度方面没有具体要求。所以从工程繁难水平方面思考,咱们抉择了 Mask-RCNN 模型。
Mask-RCNN 模型“魔改”的内容次要是集中在对入参的矩阵大小进行批改,须要对源代码中的第一层矩阵向量大小从 3 改到 6,从而实现两张图片像素 RGB 交融(一个像素 3 个维度,如:255,255,255),以后这部分工作还在进行当中,后续将会继续更新停顿。
参考文献:
[1] Ramdas, Garcia, Cuturi“On Wasserstein Two Sample Testing and Related Families of Nonparametric Tests”(2015) https://arxiv.org/abs/1509.02237