本发明涉及数据挖掘领域,具体涉及一种用户轨迹分析方法及系统。
背景技术:
近年来,随着智能设备的普及,以及数据收集处理、分析技术的快速发展,用户数据越来越受到各家企业,特别是涉及交通分析、用户推荐等相关业务企业的关注。目前,用于用户轨迹分析的主要数据来源有GPS数据、SDK(Software Development Kit,软件开发工具包)获得的用户位置数据和运营商提供的基站收集到的信令数据。其中,GPS数据定位较准确,但其数据太过密集和繁杂,难以分析处理;SDK数据收集间隔长,由此分析出的用户轨迹不准确;信令数据准确性虽较之GPS数据略差,但误差通常不会超过200米,且其收集量、收集间隔时间,都在可控范围内,能基本反映用户轨迹。
现有的基于信令数据的用户轨迹分析方法,多是较为简单的根据用户所在基站位置,得到用户移动序列轨迹。这种方法存在以下缺点:基站的覆盖范围较大,且各基站间有交集,用户可能同时位于两个基站的覆盖范围内,这都导致用户轨迹分析不准确;此外,在实际收集的信令数据中,由于信号技术本身的问题,会出现一瞬间距离特别远的点,严重影响用户轨迹分析的准确性。
技术实现要素:
本发明实施例提供一种用户轨迹分析方法及系统,以提高用户轨迹分析的准确性。
为此,本发明提供如下技术方案:
一种用户轨迹分析方法,包括:
获取用户的信令数据;所述信令数据包括:时间信息、空间信息、用户ID;
根据所述信令数据得到对应每个用户ID的用户轨迹点信息,所述用户轨迹点信息包括:采集轨迹点的时间、所处小区ID、小区经度、小区纬度;
剔除所述用户轨迹点信息中的异常数据;
确定剔除异常数据后的用户轨迹点中的移动点对,得到移动轨迹序列。
优选地,所述空间信息具体为小区信息,所述小区信息包括:小区ID、经度、纬度、覆盖半径。
优选地,所述空间信息具体为基站信息,所述基站信息包括:基站ID、覆盖半径、经度、纬度、小天线编号、小天线方位角;
所述方法还包括:
将所述基站信息转换为小区信息。
优选地,所述剔除所述用户轨迹点信息中的异常数据包括:
剔除所述用户轨迹点信息中速度异常的轨迹点数据,所述速度异常的轨迹点数据是指速度不属于设定的速度范围内的轨迹点数据;和/或
剔除所述用户轨迹点信息中与前、后轨迹点形成的夹角异常的轨迹点数据,所述与前、后轨迹点形成的夹角异常的轨迹点数据是指夹角小于设定的夹角阈值的轨迹点数据。
优选地,所述方法还包括:
确定剔除异常数据后的用户轨迹点中的静止点簇。
优选地,所述确定剔除异常数据后的用户轨迹点中的移动点对和静止点簇包括:
对应每个用户ID,初始化轨迹点序列M、移动点对序列W、静止点簇集合N;
将所述用户ID对应的预设时间内的轨迹点信息按时间先后顺序形成轨迹点序列M;
依次将所述轨迹点序列M中的各轨迹点作为当前轨迹点进行分析,直至所述轨迹点序列M中所有轨迹点都已被作为当前轨迹点进行分析过,所述分析包括:
依时间先后顺序计算当前轨迹点与其之前的各轨迹点之间的距离;
如果该距离大于对应的两轨迹点所属小区覆盖半径的和,则将该距离对应的两轨迹点作为移动点对依时间先后顺序添加到所述移动点对序列W中,并从所述轨迹点序列M中删除该距离对应的两轨迹点及其中间各轨迹点的数据;
否则,将该距离对应的两轨迹点作为静止点簇添加到所述静止点簇集合N中。
优选地,所述方法还包括:
对移动点对序列W中的每个轨迹点,依次两两判断两个轨迹点间的时间差,如果所述时间差大于设定的时间差阈值,则确定所述用户在这两个轨迹点之间有短停留;和/或
获取静止点簇集合N中每个轨迹点所属的小区信息,在预设静止分析时间内,依据小区信息变化情况确定静止方式是单点静止、来回跳转静止、还是成环静止。
优选地,所述方法还包括:
在地图上标记用户的运动轨迹时,用设定标记标识所述移动点对及静止点簇的位置;或者用设定标记标识所述移动点对、静止点簇的位置、短停留区段、及静止点簇的静止方式。
一种用户轨迹分析系统,包括:
信令数据获取模块,用于获取用户的信令数据;所述信令数据包括:时间信息、空间信息、用户ID;
信息提取模块,用于根据所述信令数据得到对应每个用户ID的用户轨迹点信息,所述用户轨迹点信息包括:采集轨迹点的时间、所处小区ID、小区经度、小区纬度;
筛选模块,用于剔除所述用户轨迹点信息中的异常数据;
数据分析模块,用于确定剔除异常数据后的用户轨迹点中的移动点对,得到移动轨迹序列。
优选地,所述空间信息具体为小区信息,所述小区信息包括:小区ID、经度、纬度、覆盖半径。
优选地,所述空间信息具体为基站信息,所述基站信息包括:基站ID、覆盖半径、经度、纬度、小天线编号、小天线方位角;
所述系统还包括:
信息转换模块,用于将所述基站信息转换为小区信息。
优选地,所述筛选模块包括:
第一筛选单元,用于剔除所述用户轨迹点信息中速度异常的轨迹点数据,所述速度异常的轨迹点数据是指速度不属于设定的速度范围内的轨迹点数据;和/或
第二筛选单元,用于剔除所述用户轨迹点信息中与前、后轨迹点形成的夹角异常的轨迹点数据,所述与前、后轨迹点形成的夹角异常的轨迹点数据是指夹角小于设定的夹角阈值的轨迹点数据。
优选地,所述数据分析模块,还用于确定剔除异常数据后的用户轨迹点中的静止点簇。
优选地,所述数据分析模块包括:
初始化单元,用于对应每个用户ID,初始化轨迹点序列M、移动点对序列W、静止点簇集合N;
序列生成单元,用于将所述用户ID对应的预设时间内的轨迹点信息按时间先后顺序形成轨迹点序列M;
分析处理单元,用于依次将所述轨迹点序列M中的各轨迹点作为当前轨迹点进行分析,直至所述轨迹点序列M中所有轨迹点都已被作为当前轨迹点进行分析过,所述分析包括:依时间先后顺序计算当前轨迹点与其之前的各轨迹点之间的距离;如果该距离大于对应的两轨迹点所属小区覆盖半径的和,则将该距离对应的两轨迹点作为移动点对依时间先后顺序添加到所述移动点对序列W中,并从所述轨迹点序列M中删除该距离对应的两轨迹点及其中间各轨迹点的数据;否则,将该距离对应的两轨迹点作为静止点簇添加到所述静止点簇集合N中。
优选地,所述数据分析模块还包括:
短停留判断单元,用于对移动点对序列W中的每个轨迹点,依次两两判断两个轨迹点间的时间差,如果所述时间差大于设定的时间差阈值,则确定所述用户在这两个轨迹点之间有短停留;和/或
静止点簇方式判断单元,用于获取静止点簇集合N中每个轨迹点所属的小区信息,在预设静止分析时间内,依据小区信息变化情况确定静止方式是单点静止、来回跳转静止、还是成环静止。
优选地,所述系统还包括:
标记模块,用于在地图上标记用户的运动轨迹时,用设定标记标识所述移动点对及静止点簇的位置;或者用设定标记标识所述移动点对、静止点簇的位置、短停留区段、及静止点簇的静止方式。
本发明实施例提供的用户轨迹分析方法及系统,基于用户的信令数据,首先剔除所述用户轨迹点信息中的异常数据,然后通过分析用户不同轨迹点中的移动点对来判断用户的活动状态,有效解决了传统简单根据用户基站位置分析用户轨迹方法所存在的分析不准确问题,提高了用户轨迹分析的准确性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本发明实施例用户轨迹分析方法的流程图;
图2是本发明实施例中小区、基站覆盖区域示意图;
图3是本发明实施例中用户移动轨迹示意图;
图4是本发明实施例中用户静止状态示意图;
图5是本发明实施例中确定用户轨迹点中的移动点对和静止点簇的流程图;
图6是本发明实施例用户轨迹分析系统的一种结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。
如图1所示,是本发明实施例用户轨迹分析方法的流程图,包括以下步骤:
步骤101,获取用户的信令数据;所述信令数据包括:时间信息、空间信息、用户ID。
所述信令数据一般由运营商提供,其中的空间信息可以是小区信息,也可以是基站信息。对于2G或3G网络,运营商可直接提供小区信息,但对于4G网络,运营商提供的是基站信息。所述小区信息通常包括小区ID、经度、纬度、覆盖半径;所述基站信息通常包括:基站ID、覆盖半径、经度、纬度、小天线编号CellID(如50、51、52等)、小天线方位角。
因此,在运营商提供的是基站信息的情况下,还需要将基站信息转换为小区信息,具体转换方法如下:
(1)小区ID
可以由运营商提供的转换方法进行转换,如中国电信:
小区ID=eNodeBId*256+CellID (1)
其中,eNodeBId是基站ID,CellID是小天线的编号。
(2)小区经度、纬度
假设地球为一半径为R的表面光滑圆球体,则同一纬线圈上相差一经度两点间的距离为同一经线圈上相差一纬度两点间的距离为Y=2πR/360。
假设基站经纬度为(x,y),基站的覆盖半径为r,基站中小天线的方位角为θ,则该小天线对应的小区的经度为:
纬度为:
(3)小区覆盖半径
假设基站有N个小区,每个小区天线指向不同的方位角,可以近似地将基站和小区的覆盖范围视为圆形。在本发明实施例中,结合小天线(小区)方位角、基站覆盖范围,将基站覆盖范围转换为小区覆盖范围,具体方法:以基站中心位置O和小天线方位角θ,可以确定一条射线L,以基站覆盖半径r为长度在射线L上截取线段OA,以OA为直径的圆可以近似作为小区的覆盖范围,如图2所示。
步骤102,根据所述信令数据得到对应每个用户ID的用户轨迹点信息,所述用户轨迹点信息包括:采集轨迹点的时间、所处小区ID、小区经度、小区纬度。
步骤103,剔除所述用户轨迹点信息中的异常数据。
所述异常数据主要包括:速度异常的轨迹点数据和/或夹角异常的轨迹点数据。所述速度异常的轨迹点数据是指速度不属于设定的速度范围内的轨迹点数据;所述夹角异常的轨迹点数据是指夹角小于设定的夹角阈值的轨迹点数据。
需要说明的是,用户轨迹分析一般是针对一定时间(比如2小时,其取值根据实际应用情况和/或大量实验结果、经验确定)内的用户轨迹点进行分析。因此,可以依次将预设时间T1内所有用户轨迹点作为当前轨迹点,计算当前轨迹点的速度,具体计算方法可以采用现有技术中的速度计算方法,得到当前轨迹点的速度,比如计算当前轨迹点与前面一个轨迹点的相对速度,作为当前轨迹点的速度。如果当前轨迹点速度不在设定的速度范围(如2km/h—150km/h),则该速度超出了正常的速度,因此将当前轨迹点作为速度异常轨迹点。当前轨迹点与其前、后轨迹点形成的夹角的计算同样可以采用现有技术中的一些常规计算方法,对此本发明不做限定。如果计算得到的夹角小于设事实上的夹角阈值(如35度),则确定当前轨迹点为夹角异常轨迹点。所述速度阈值和夹角阈值可由实际应用情况和/或大量实验、经验确定。
为了更形象地描述上述两种异常数据对应的轨迹点,可以将其统称为“飞点”。
通过速度和/或夹角的计算及判断,可以将获取的用户轨迹点信息中的异常信息去除,提高后续用户轨迹分析的准确性。
步骤104,确定剔除异常数据后的用户轨迹点中的移动点对,得到移动轨迹序列。
针对一些用户生活特征、区域交通状况的应用需求,在本发明实施例中,主要是根据用户的轨迹点分析用户的运动情况,具体地,以移动点对的形式表示,当然,根据不同的应用需求,还可以进一步分析用户的静止情况,具体地,以静止点簇表示。
无论是确定用户轨迹点中的移动点对,还是静止点簇,都需要首先将同一个用户ID对应的预设时间内的轨迹点信息按时间先后顺序形成轨迹点序列,然后依次将所述轨迹点序列中的各轨迹点作为当前轨迹点,依时间先后顺序计算当前轨迹点与其之前的各轨迹点之间的距离,根据该距离来判断。因此,下面将对移动点对和静止点簇的分析放在一起加以说明。
在确定移动点对和静止点簇时,需要针对每个用户的轨迹点数据进行单独分析,具体地,首先,将同一个用户ID对应的预设时间内的轨迹点信息按时间先后顺序形成轨迹点序列,依次将所述轨迹点序列中的各轨迹点作为当前轨迹点,依时间先后顺序计算当前轨迹点与其之前的各轨迹点之间的距离;如果该距离大于对应的两轨迹点所属小区覆盖半径的和,则该距离对应的两轨迹点作为移动点对,并从所述轨迹点序列中删除该距离对应的两轨迹点及其中间各轨迹点的数据;否则,将该距离对应的两轨迹点作为静止点簇。具体过程将在后面详细描述。
用户的运动轨迹是指根据时间、用户在不同时间所处的位置信息在地图上标记的一系列线段。这样,在地图上标记用户的运动轨迹时,可以用设定标记标识所述移动点对及静止点簇的位置。
如图3、图4显示的用户运动轨迹,其中,图3中“0、1、2、3”等数字表示各个移动点;图4中A、B、C表示一个个静止点簇。
如图5所示,是本发明实施例中确定用户轨迹点中的移动点对和静止点簇的流程图,包括以下步骤:
步骤501,对应每个用户ID,初始化轨迹点序列M、移动点对序列W、静止点簇集合N;
步骤502,将所述用户ID对应的预设时间内的轨迹点信息按时间先后顺序形成轨迹点序列M;
步骤503,依次将所述轨迹点序列M中的各轨迹点作为当前轨迹点,依时间先后顺序计算当前轨迹点与其之前的各轨迹点之间的距离;
步骤504,判断该距离是否大于对应的两轨迹点所属小区覆盖半径的和;如果是,则执行步骤505;否则,执行步骤506;
步骤505,将该距离对应的两轨迹点作为移动点对依时间先后顺序添加到所述移动点对序列W中,并从所述轨迹点序列M中删除该距离对应的两轨迹点及其中间各轨迹点的数据;然后执行步骤507;
步骤506,将该距离对应的两轨迹点作为静止点簇添加到所述静止点簇集合N中;然后执行步骤507;
步骤507,判断所述轨迹点序列M中是否所有轨迹点都已被作为当前轨迹点进行分析过;如果是,则执行步骤508;否则,执行步骤503;
步骤508,结束。
下面举例说明移动点对和静止点簇的确定过程。
假设轨迹点序列M中依时间先后顺序有轨迹点P1、P2、P3、P4、P5,首先将轨迹点P1作为当前轨迹点,轨迹点P1之前没有轨迹点,则继续将轨迹点P2作为当前轨迹点,比较轨迹点P2与轨迹点P1之间的直线距离,若计算得到的距离大于这两个轨迹点各自所属小区覆盖半径之和,则认为(P1、P2)形成移动点对,将其存入到移动点对序列W中,并将P1、P2从轨迹点序列M中清除,再将轨迹点P3作为当前轨迹点,重复前面的比较步骤,直至轨迹点序列M中的所有轨迹点都作为当前轨迹点进行了分析;若计算得到的距离小于或等于这两个轨迹点各自所属小区覆盖半径之和,则认为P1、P2共同静止,将这两个轨迹点存入静止点簇集合N中,需要说明的是,此时不需要将P1、P2从轨迹点序列M中清除,然后将轨迹点P3作为当前轨迹点,依次与其前面的轨迹点P1、轨迹点P2两两比较,如果轨迹点P3与轨迹点P1之间的直线距离大于这两个轨迹点各自所属小区覆盖半径之和,则认为(P1、P3)形成移动点对,将其存入到移动点对序列W中,并将P1、P2、P3从轨迹点序列M中清除,然后将轨迹点P4作为当前轨迹点进行上述比较分析,直至轨迹点序列M中所有轨迹点都作为当前轨迹点进行了分析。
另外,在本发明方法另一实施例中,还可以对移动点对和/或静止点簇做进一步地分析,具体如下:
对移动点对的分析:对移动点对序列W中的每个轨迹点,依次两两判断两个轨迹点间的时间差,如果所述时间差大于设定的时间差阈值(如3分钟),则确定所述用户在这两个轨迹点之间有短停留;
对静止点簇的分析:获取静止点簇集合N中每个轨迹点所属的小区信息,在预设静止分析时间(如15分钟)内,依据小区信息(即小区的ID)变化情况确定静止方式是单点静止、来回跳转静止、还是成环静止。比如,对于时间T2内所有静止点,如果只有一个小区ID,如C1C1C1C1,则为单点静止;如果出现两个小区ID,且来回切换,如C1C2C2C1C1C2,则为来回跳转静止;如果出现多个小区ID,且第一个出现的小区ID与最后出现的小区ID相同,如C1C2C2C3C3C1,则为成环静止。
相应地,在地图上标记用户的运动轨迹时,还可以用设定标记标识短停留区段及静止点簇的静止方式,比如,短停留区段用间断线标识,单点静止、来回跳转静止和成环静止的静止点簇分别用不同的符号来表示等。
本发明提供的用户轨迹分析方法,基于用户的信令数据,首先剔除所述用户轨迹点信息中的异常数据,然后通过分析用户不同轨迹点中的移动点对来判断用户的活动状态,有效解决了传统简单根据用户基站位置分析用户轨迹方法所存在的分析不准确问题,提高了用户轨迹分析的准确性。
相应地,本发明实施例还提供一种用户轨迹分析系统,如图6所示,是该系统的一种结构示意图。
在该实施例中,所述系统包括:
信令数据获取模块601,用于获取用户的信令数据;所述信令数据包括:时间信息、空间信息、用户ID;
信息提取模块602,用于根据所述信令数据得到对应每个用户ID的用户轨迹点信息,所述用户轨迹点信息包括:采集轨迹点的时间、所处小区ID、小区经度、小区纬度;
筛选模块603,用于剔除所述用户轨迹点信息中的异常数据;
数据分析模块604,用于确定剔除异常数据后的用户轨迹点中的移动点对,得到移动轨迹序列。
在实际应用中,信令数据获取模块601获得的空间信息可以是小区信息,所述小区信息包括:小区ID、经度、纬度、覆盖半径;也可以是基站信息,所述基站信息包括:基站ID、覆盖半径、经度、纬度、小天线编号、小天线方位角。
相应地,如果得到的是基站信息,所述系统还包括:信息转换模块(图中未示),用于将所述基站信息转换为小区信息,将基站信息转换为小区信息的具体方法在前面已有详细说明,在此不再赘述。
上述筛选模块603主要是剔除所述用户轨迹点信息中速度异常的轨迹点数据和/或夹角异常的轨迹点数据。所述速度异常的轨迹点数据是指速度不属于设定的速度范围(比如2km/h—150km/h)内的轨迹点数据;所述夹角异常的轨迹点数据是指夹角小于设定的夹角阈值的轨迹点数据。相应地,筛选模块603的一种具体结构可以包括:第一筛选单元和/或第二筛选单元。其中:
所述第一筛选单元,用于剔除所述用户轨迹点信息中速度异常的轨迹点数据,所述速度异常的轨迹点数据是指速度大于设定的速度阈值的轨迹点数据;
所述第二筛选单元,用于剔除所述用户轨迹点信息中与前、后轨迹点形成的夹角异常的轨迹点数据,所述与前、后轨迹点形成的夹角异常的轨迹点数据是指夹角小于设定的夹角阈值的轨迹点数据。
根据不同的应用需求,上述数据分析模块604还可进一步用于确定剔除异常数据后的用户轨迹点中的静止点簇。
相应地,上述数据分析模块604的一种具体结构可以包括以下各单元:
初始化单元,用于对应每个用户ID,初始化轨迹点序列M、移动点对序列W、静止点簇集合N;
序列生成单元,用于将所述用户ID对应的预设时间内的轨迹点信息按时间先后顺序形成轨迹点序列M;
分析处理单元,用于依次将所述轨迹点序列M中的各轨迹点作为当前轨迹点进行分析,直至所述轨迹点序列M中所有轨迹点都已被作为当前轨迹点进行分析过,所述分析包括:依时间先后顺序计算当前轨迹点与其之前的各轨迹点之间的距离;如果该距离大于对应的两轨迹点所属小区覆盖半径的和,则将该距离对应的两轨迹点作为移动点对依时间先后顺序添加到所述移动点对序列W中,并从所述轨迹点序列M中删除该距离对应的两轨迹点及其中间各轨迹点的数据;否则,将该距离对应的两轨迹点作为静止点簇添加到所述静止点簇集合N中。
当然,根据应用需求,如果不需要确定所述静止点簇,则上述分析处理单元在对每个当前轨迹点进行分析时,只需按照上述过程生成移动点对序列W即可。
进一步地,数据分析模块604还可以对移动点对和/或静止点簇做进一步地分析,相应地,在另一实施例中,所述数据分析模块604还可包括:短停留判断单元、和/或静止点簇方式判断单元。其中:
所述短停留判断单元,用于对移动点对序列W中的每个轨迹点,依次两两判断两个轨迹点间的时间差,如果所述时间差大于设定的时间差阈值,则确定所述用户在这两个轨迹点之间有短停留;
所述静止点簇方式判断单元,用于获取静止点簇集合N中每个轨迹点所属的小区信息,在预设静止分析时间内,依据小区信息变化情况确定静止方式是单点静止、来回跳转静止、还是成环静止。
相应地,在本发明系统另一实施例中,所述系统还可进一步包括:标记模块(未图示),用于在地图上标记用户的运动轨迹时,用设定标记标识所述移动点对及静止点簇的位置。当然,对应于上述数据分析模块604包括短停留判断单元、和/或静止点簇方式判断单元的情况,所述标记模块605还可进一步在地图上标记用户的运动轨迹时,用设定标记标识短停留区段及静止点簇的静止方式。
本发明提供的用户轨迹分析系统,基于用户的信令数据,首先剔除所述用户轨迹点信息中的异常数据,然后通过分析用户不同轨迹点中的移动点对来判断用户的活动状态,有效解决了传统简单根据用户基站位置分析用户轨迹方法所存在的分析不准确问题,提高了用户轨迹分析的准确性。
本发明实施例提供的用户轨迹分析方法及系统,基于用户的信令数据,不仅对用户的移动轨迹做出分析,而且也可对用户的静止状态做出分析,利用该分析结果,可以对道路中行驶车辆的车速、区域人流量进行准确判断。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及系统;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。