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

2次阅读

共计 2330 个字符,预计需要花费 6 分钟才能阅读完成。

本文亮点

随着智能手机和信息通信技术的一直倒退和遍及,大规模的轨迹数据存储曾经比拟广泛,成为开掘用户行为模式的重要起源,工作地和居住地是用户行为模式的重要体现,能够用于辅助智能城市的建设,比方优化通勤路线、产业布局、剖析人口流动状况等等,从而缩小交通拥堵、进步市民生存便利性和满意度等。然而现有的工作地居住地计算方法存在不同水平的问题,本文提出一种改良计划。

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 做判断;

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

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

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

比方计算工作地时,工作工夫会给一个比拟高的权重;

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

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

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

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

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

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

举例:第一个例子最终抉择的 B 类,第二个例子是 C 类

  1.    对工作地簇和居住地簇依据公式别离计算其天文中心点,失去工作地居住地的最终地位;
  2.  依据工作地居住地簇中的沉闷天数和点数,给出相应的工作地居住地置信度,沉闷天数越多,置信度越高,点数越多,置信度越高;
  3.  因为即便采纳了上述加权聚类的办法,也不能保障后果完全符合业务逻辑,所以给出工作地 / 居住地肯定范畴内各类 poi 的类型及与工作地 / 居住地的间隔,以便于业务方本人依据间隔来对工作地 / 居住地进行筛选。
正文完
 0