手机用户的GSP轨迹数据分析_适当喝点的博客-程序员ITS203_gbsmot 轨迹

技术标签: 停留点  DBSCAN  用户轨迹分析  密度聚类  GPS  

       目前,手机已经成为我们生活的必需品。服务商可以很容易通过手机采集到我们日常生活的GPS轨迹数据,图1为用户GPS轨迹数据示例,其采集数据的时间间隔为5秒。直接观察这些数据,我们只能发现用户经过某些地点,却不能确定用户是否在这些地点停留过。

GPS数据示例

图1用户GPS轨迹数据示例

       那么,如何通过分析用户的GPS数据来确定他在哪些地方停留过呢?
解决这一问题用到的算法是CB-SMoT。该算法是密度聚类的一个改进。选择密度聚类是因为它可以发现任意形状的簇,这正符合用户的活动规律。
CB-SMoT算法判断用户在哪些地方停留过的依据有两点,一是用户在哪些地方的GPS点相对密集,二是用户在哪些地方的运动速度较慢。从大量点数据中寻找密集点正是密度聚类的功能所在。而CB-SMoT所定义的新邻域则是寻找速度较慢的点的。
       CB-SMoT算法其实是DBSCAN聚类算法的改进,它与DBSCAN的不同之处在于对邻域的定义不同。CB-SMoT对邻域定义如下:
这里写图片描述
       下面通过如图2来举例说明新邻域。对于O点邻域内的点,DBSCAN算法认为以O点为圆心、Eps为半径的圆内的点都在O点邻域内,由此可知,A、B、C、D、E、F、G这八个点都在O点邻域内;而CB-SMoT算法认为,当由O点两侧相邻的点组成的线段的长度之和小于等于Eps时,这些点才在O点的邻域内,由此可知,O点邻域的点只包含B、C、D、E四个,这是因为
BC+CO=48<Eps,OD+DE=48<Eps B C + C O = 48 < E p s , O D + D E = 48 < E p s

CB-SMoT的邻域

图2 CB-SMoT的邻域

       新邻域内相邻的点所组成的线段的长度之和,如图2,S=BC+CO+OD+DE实际上就是用户所走的路程。用户的GPS点是按照一定的时间间隔采集的。假设采集的时间间隔是5秒,由于图2中新邻域内共有5个点,所以此时用户的运动时间为t=25秒。用户在这一邻域的速度可以表示为S/t。S最大为2Eps,邻域内的点越多,则t越大,S/t越小,说明用户在这一区域的速度越慢,用户可能在此处停留。
参考文献
Palma A T, Bogorny V, Kuijpers B, et al. A clustering-based approach for discovering interesting places in trajectories[C]// ACM Symposium on Applied Computing. DBLP, 2008:863-868.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41228463/article/details/80231006

智能推荐

IOS软键盘点击空白处不关闭问题_Mr-K的博客-程序员ITS203

objBlurFun(&quot;input&quot;); //如果不是当前触摸点不在input上,那么都失去焦点 function objBlurFun(sDom,time){ var time = time||300; //判断是否为苹果 var isIPHONE = navigator.userAgent.toUpperCase().indexO...

趣谈linux操作系统--Linux内存管理笔记_S-U-M-M-E-R的博客-程序员ITS203

内存管理包含: 物理内存管理; 虚拟内存管理; 两者的映射除了内存管理模块, 其他都使用虚拟地址(包括内核)虚拟内存空间包含: 内核空间(高地址); 用户空间(低地址)用户空间从低到高布局为: 代码段; DATA 段; BSS 段(未初始化静态变量); 堆段; 内存映射段; 栈地址空间段多个进程看到的用户空间是独立的内核空间: 多个进程看到同一内核空间, 但内核栈每个进程不一样内核代码也仅能访问内核空间内核也有内核代码段, DATA 段, 和 BSS 段; 位于..

C++11并发与多线程笔记(3) 线程传参详解,detach()大坑,成员函数做线程函数_胡胡浩特的博客-程序员ITS203

第三节 线程传参详解,detach()大坑,成员函数做线程函数一、传递临时对象作为线程参数1.1要避免的陷阱1:#include &lt;iostream&gt;#include &lt;thread&gt;using namespace std;void myPrint(const int &amp;i, char* pmybuf){ //如果线程从主线程detach了 //i不是mvar真正的引用,实际上值传递,即使主线程运行完毕了,子线程用i仍然是安全的,但仍不推荐传递引用 /

cstdarg or stdarg.h_hxzhang1024的博客-程序员ITS203

1.要在函数中使用参数,首先要包含头文件。这个头文件声明了一个va_list类型,定义了四个宏,用来遍历可变参数列表。void va_start(va_list ap, last);type va_arg(va_list ap, type);void va_end(va_list ap);void va_copy(va_list dest, va_list 

sqlnet.ora 参数_黑裤子的博客-程序员ITS203

5 Parameters forthe sqlnet.ora FileThis chapter provides completelisting of the sqlnet.ora file configurationparameters.This chapterincludes the following topics:Overview of Profile Config

OracleP6机场工程进度控制系列1:机场工程的组成和特点概述_思纬网络SIWICLOUD的博客-程序员ITS203_wbs例子机场轻轨

卷首语了解机场工程的组成,对于项目建设进度管控过程中的WBS分解至关重要。一、机场工程的组成民用机场工程一般均是大型复杂工程,通常为多项目主体多项目群工程,这给机场工程建设与运营筹备的进度及其管理带来挑战。为实现机场工程总进度目标,应实施总进度综合管控。大型机场工程按投资主体通常划分为机场主体工程、民航配套工程和场外配套工程等,如图所示:1、机场主体工程1)飞行区工程,包括跑道系统、滑行道系统、停机坪、助航设施、排水系统、机坪管制、消防急救和安防等工程。2..

随便推点

SpringBoot专题学习Part7:注解方式@PropertySource和@ImportResource导入配置文件_Piconjo_Official的博客-程序员[email protected] value 可以传 多个值么?

@PropertySource注解@PropertySource:加载指定的配置文件@ConfigurationProperties默认是从全局配置文件中获取值若不是从全局配置文件中获取值 则须加上@PropertySource注解来指定@PropertySource的value值还可以传入数组的方式加载多个配置文件person.name=陈涛person.age=19person....

【oracle】oracle数据库安装_我是罗易呀!的博客-程序员ITS203_oracle主目录名检测为空

文章目录一、安装环境二、安装步骤三、Oracle 数据库的卸载四、oracle 数据的备份与还原五、oracle使用导入导出工具备份与恢复数据库六、Oracle安装plsql一、安装环境操作系统:windows server 2008R2 64位,内存 4G数据库版本: oracle 11.2.0.3_for_win数据库工具: PL/SQL developer 10.0.3二、安装步骤打开安装文件,双击安装文件setup.exe取消:‘我希望通过My Oracle Support接收安全更

Scala学习笔记(一):入门_weixin_30260399的博客-程序员ITS203

变量定义Scala有两种变量,val和var。val类似于Java中的final变量,一旦初始化了,val就不能再被赋值。var可以多次赋值。但由于函数式编程特性,Scala更推崇val。var的使用也有其局限性,Scala有类型推断的功能,当var被初始化后,其类型就已经被断定,比如当m被赋值hello后,其被推断为String类型,此时再对m重新赋值,如果不是String类型...

三点式电容振荡器_linuxheik的博客-程序员ITS203_11.5mhz电容三点式振荡器设计

来龙去脉,我建议先学习基本的共射电路变压器反馈振荡器,然后学习共射电路电感三点反馈振荡器,这个是变压器反馈的变形,是把变压器反馈变成了抽头反馈,最后学习电容三点式,就不难了,是把抽头电感变成抽头电容

河南省第九届大学生程序设计竞赛 题解_弱菜zc的博客-程序员ITS203_河南省第九届程序设计竞赛题目思路

A 表达式求值Description假设表达式定义为:1. 一个十进制的正整数 X 是一个表达式。2. 如果 X 和 Y 是 表达式,则 X+Y, X*Y 也是表达式; *优先级高于+.3. 如果 X 和 Y 是 表达式,则 函数 Smax(X,Y)也是表达式,其值为:先分别求出 X ,Y值的各位数字之和,再从中选最大数。4.如果 X 是 表达式,则 (X)也是

国防科技大学2019校赛G Altitude(平面图转对偶图找最小割)_Flyppy_White的博客-程序员ITS203

国防科技大学2019校赛G Altitude(平面图转对偶图找最小割)https://ac.nowcoder.com/acm/contest/878/G题目大意给出一副网格,其中每条边上往来都有一些人流,网格的每个交叉点都有一个高度,网格的每条边连接着两个交叉点,人流的代价为向高处走的高度差乘上人流的人数。向低处或者相同高度处走不需要付出代价。网格的左上角的高度为0,网格右下角的高度为1。问...

推荐文章

热门文章

相关标签