极客星球|基于加权DBSCAN的工作地居住地计算方法

本文亮点

随着智能手机和信息通信技术的不断发展和普及,大规模的轨迹数据存储已经比较普遍,成为挖掘用户行为模式的重要来源,工作地和居住地是用户行为模式的重要表现,可以用于辅助智能城市的建设,比如优化通勤路线、产业布局、分析人口流动情况等等,从而减少交通拥堵、提高市民生活便利性和满意度等。但是现有的工作地居住地计算方法存在不同程度的问题,本文提出一种改进方案。

一、现有方法

目前的工作地居住地定位方法主要有两种,一是基于规则,一是基于模型;

基于规则的方法是通过业务经验设计逻辑,根据设定的统计指标选择工作地居住地。

比如基于汽车的数据会基于用户每天的起始点和终点,来统计频次、时长等指标,选择排名最高的作为工作地居住地;

基于基站的数据会统计用户连接每个基站的时间,选择工作时间连接时间最长且月度工作日连接次数/休息日连接次数最高的作为工作地;

基于模型的方法是通过聚类+有监督模型来定位工作地居住地,通过聚类来剔除噪声点,然后通过规则来生成特征,通过人工对工作地居住地进行标注,最后通过有监督模型来预测工作地和居住地。

二、现有方法局限性

基于规则的方法局限性比较大,不同行业都有自己的规则和特定结构的数据,不够通用;且难以穷尽所有规则,对于异常情况的适应性不够好,复杂且不够精确;

基于模型的方法需要进行人工标注,成本较高且整个计算流程比较复杂;准确率对特征的代表性和样本覆盖的广度依赖较大;

现有方法计算出的工作地居住地经常不符合业务逻辑,如正常的工作地应该大部分分布在写字楼、工业园区等poi,少部分分布在餐厅、商场等其他各种类型的poi;正常的居住地应该大部分分布在小区、别墅、公寓等poi,少部分分布在其他各种类型的poi;但是现有方法计算的结果受数据源影响较大,并不能保证这一点,导致可能大量的工作地出现在小区里,大量的居住地出现在写字楼或商场里等情况,导致业务不可用。

本文提出了一种更通用的计算方法,降低整个流程的复杂性并提高准确性;设计一种更贴近业务的计算方法,提高工作地居住地的可用性。

三、背景知识介绍

1、DBSCAN聚类简介:
首先设定一个阈值a,对于样本集中的每个点,以这个点为圆心,a为半径划一个圆,被包含在这个圆中的点的个数记为b(包括圆心);

然后再设定一个阈值c,如果b>=c,则把这个圆心叫做核心对象;

如果一个核心对象A被包含在另一个核心对象B的圆中,核心对象B被包含在另一个核心对象C的圆中,则称A到C是密度可达的;

如果核心对象X到核心对象Y密度可达,核心对象Z也密度可达,则Y和Z密度相连,找到最大的密度相连的样本集合,就是聚类的一个簇,如下图所示:
在这里插入图片描述

其优点在于:

可以对任意形状的稠密数据集进行聚类,适用于地理位置数据;相对的,K-Means之类的聚类算法一般只适用于凸数据集;

可以在聚类的同时发现异常点,对数据集中的异常点不敏感;

聚类结果没有偏倚,相对的,K-Means之类的聚类算法,初始值对聚类结果有很大影响。

2、加权几何平均数:
在这里插入图片描述

3、经纬度求中心点
Lat_i = lat_i * pi/180,i= 1,2,…,n
Lon_i = lon_i * pi/180,i= 1,2,…,n

xi = cos(Lat_i) * cos(Lon_i),i= 1,2,…,n
yi = cos(Lat_i) * sin(Lon_i) ,i= 1,2,…,n
zi = sin(Lat_i) ,i= 1,2,…,n

x = (x1 + x2 + … + xn) / n
y = (y1 + y2 + … + yn) / n
z = (z1 + z2 + … + zn) / n

Lon = atan2(y, x)
Hyp = sqrt(x * x + y * y)
Lat = atan2(z, hyp)

lon_center = Lon * 180/pi
lat_center = Lat * 180/pi

四、具体方法

  1. 对用户近X个月的轨迹数据做预处理,清洗掉其中的异常数据和节假日数据(大小长假,但不包括周末);

  2. 划分工作时间和休息时间;

  3. 爬取poi数据数据,并对poi数据进行清洗;

  4. 判断用户的轨迹数据是否落在某类poi中:

有poi边界的直接使用poi边界判断;

没有poi边界的,使用poi点经纬度所在geohash8及周围一圈geohash8判断(九宫格);

地铁站以各出口经纬度点为中心点,生成边长100m的正方形,即poi点的经纬度加减0.0005做判断;

在这里插入图片描述

  1. 根据计算工作地还是计算居住地,给落在不同类别poi中的点以不同的权重;

比如计算工作地时,如果点落在写字楼中,给一个较高的权重;

  1. 对于落入不同的时间段的轨迹点,同样给不同的权重;

比如计算工作地时,工作时间会给一个比较高的权重;

  1. 根据5、6点中给出的权重,分别对每个用户的工作时间和居住时间轨迹数据进行加权DBSCAN聚类,并调优参数;

  2. 计算每个簇内的工作/休息时间点数、工作/休息时间天数,

计算每个用户的工作/休息时间总点数,

计算用户的每个簇内工作/休息时间点数,占该用户工作/休息时间总点数比例,

计算用户的每个簇内工作/休息时间天数,占该用户工作/休息时间总天数比例,

对总点数的比例和总天数的比例计算加权几何平均数,得到每个簇的得分,工作时间得分第一的簇为工作地,休息时间得分第一的簇为居住地;

举例:第一个例子最终选择的B类,第二个例子是C类
在这里插入图片描述

  1. 对工作地簇和居住地簇根据公式分别计算其地理中心点,得到工作地居住地的最终位置;

  2. 根据工作地居住地簇中的活跃天数和点数,给出相应的工作地居住地置信度,活跃天数越多,置信度越高,点数越多,置信度越高;

  3. 因为即使采用了上述加权聚类的方法,也不能保证结果完全符合业务逻辑,所以给出工作地/居住地一定范围内各类poi的类型及与工作地/居住地的距离,以便于业务方自己根据距离来对工作地/居住地进行筛选。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MobTech袤博科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值