随着智能手机和信息通信技术的不断发展和普及,大规模的轨迹数据存储已经比较普遍,成为挖掘用户行为模式的重要来源,工作地和居住地是用户行为模式的重要表现,可以用于辅助智能城市的建设,比如优化通勤路线、产业布局、分析人口流动情况等等,从而减少交通拥堵、提高市民生活便利性和满意度等。但是现有的工作地居住地计算方法存在不同程度的问题,本文提出一种改进方案。
01、现有方法
目前的工作地居住地定位方法主要有两种,一是基于规则,一是基于模型;
基于规则的方法是通过业务经验设计逻辑,根据设定的统计指标选择工作地居住地。
比如基于汽车的数据会基于用户每天的起始点和终点,来统计频次、时长等指标,选择排名最高的作为工作地居住地;
基于基站的数据会统计用户连接每个基站的时间,选择工作时间连接时间最长且月度工作日连接次数/休息日连接次数最高的作为工作地;
基于模型的方法是通过聚类+有监督模型来定位工作地居住地,通过聚类来剔除噪声点,然后通过规则来生成特征,通过人工对工作地居住地进行标注,最后通过有监督模型来预测工作地和居住地。
02、现有方法局限性
基于规则的方法局限性比较大,不同行业都有自己的规则和特定结构的数据,不够通用;且难以穷尽所有规则,对于异常情况的适应性不够好,复杂且不够精确;
基于模型的方法需要进行人工标注,成本较高且整个计算流程比较复杂;准确率对特征的代表性和样本覆盖的广度依赖较大;
现有方法计算出的工作地居住地经常不符合业务逻辑,如正常的工作地应该大部分分布在写字楼、工业园区等poi,少部分分布在餐厅、商场等其他各种类型的poi;正常的居住地应该大部分分布在小区、别墅、公寓等poi,少部分分布在其他各种类型的poi;但是现有方法计算的结果受数据源影响较大,并不能保证这一点,导致可能大量的工作地出现在小区里,大量的居住地出现在写字楼或商场里等情况,导致业务不可用。
本文提出了一种更通用的计算方法,降低整个流程的复杂性并提高准确性;设计一种更贴近业务的计算方法,提高工作地居住地的可用性。
03、背景知识介绍
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
04、具体方法
1. 对用户近X个月的轨迹数据做预处理,清洗掉其中的异常数据和节假日数据(大小长假,但不包括周末);
2. 划分工作时间和休息时间;
3. 爬取poi数据数据,并对poi数据进行清洗;
4. 判断用户的轨迹数据是否落在某类poi中:
有poi边界的直接使用poi边界判断;
没有poi边界的,使用poi点经纬度所在geohash8及周围一圈geohash8判断(九宫格);
地铁站以各出口经纬度点为中心点,生成边长100m的正方形,即poi点的经纬度加减0.0005做判断;
5. 根据计算工作地还是计算居住地,给落在不同类别poi中的点以不同的权重;
比如计算工作地时,如果点落在写字楼中,给一个较高的权重;
6. 对于落入不同的时间段的轨迹点,同样给不同的权重;
比如计算工作地时,工作时间会给一个比较高的权重;
7. 根据5、6点中给出的权重,分别对每个用户的工作时间和居住时间轨迹数据进行加权DBSCAN聚类,并调优参数;
8. 计算每个簇内的工作/休息时间点数、工作/休息时间天数,
计算每个用户的工作/休息时间总点数,
计算用户的每个簇内工作/休息时间点数,占该用户工作/休息时间总点数比例,
计算用户的每个簇内工作/休息时间天数,占该用户工作/休息时间总天数比例,
对总点数的比例和总天数的比例计算加权几何平均数,得到每个簇的得分,工作时间得分第一的簇为工作地,休息时间得分第一的簇为居住地;
举例:第一个例子最终选择的B类,第二个例子是C类
9. 对工作地簇和居住地簇根据公式分别计算其地理中心点,得到工作地居住地的最终位置;
10. 根据工作地居住地簇中的活跃天数和点数,给出相应的工作地居住地置信度,活跃天数越多,置信度越高,点数越多,置信度越高;
11. 因为即使采用了上述加权聚类的方法,也不能保证结果完全符合业务逻辑,所以给出工作地/居住地一定范围内各类poi的类型及与工作地/居住地的距离,以便于业务方自己根据距离来对工作地/居住地进行筛选。