一种分析用户WiFi活动轨迹规律的分布式实现方法与流程

文档序号:12494403阅读:230来源:国知局

本发明涉及信息技术领域,尤其涉及一种分析用户WiFi活动轨迹规律的分布式实现方法。



背景技术:

在现有技术中,用户手持开启WiFi的智能终端经过WiFi覆盖区域过程中,WiFi采集设备会采集用户终端的WiFi数据,主要包括MAC地址(Media Access Control,物理地址)、扫描时间和扫面设备的经纬度。因此,一般WiFi扫描列表中的数据主要由扫描时间、扫描到的AP(Access Point,无线网络接入点)或MAC地址、信号强度以及相应的SSID(Service Set Identifier,服务集标识)构成,然而这其中并不包括显示轨迹的坐标信息。

此外,WiFi数据一方面无法像GPS那样精确记录用户的实际地理坐标;另一方面WiFi数据记录的位置点比较稀疏,不能向GPS那样具有连续的位置点。因此,传统的处理GPS轨迹数据的方法不能完全照搬到WiFi轨迹数据中。

一般用户连接的WiFi多数是由固定AP发出,可以通过AP的部署位置获知对应的WiFi的坐标,因此通过WiFi来分析用户的活动轨迹规律有着潜在的应用价值,而目前比较成熟的频繁模式挖掘算法用于其中,同时现有挖掘算法大多数针对轨迹的空间规律,很少从时间和空间去考虑用户在不同时间尺度(星期、时段)下的活动规律,而这种时空规律对于频繁轨迹和兴趣区域的语义具有重要的参考价值。



技术实现要素:

本发明的目的在于提供一种分析用户WiFi活动轨迹规律的分布式实现方法,提取用户WiFi活动轨迹,并从时间和空间两个方面去考虑用户在不同时间尺度(星期、时段)下的活动规律。

为实现上述目的,本发明提出了一种分析用户WiFi活动轨迹规律的分布式实现方法,包括以下步骤:

(a)轨迹提取:后台服务器查询模块查询后台服务器数据库中的用户移动端MAC地址所对应的WiFi扫描记录,所述WiFi扫描记录为由多台WiFi采集设备采集记录并由所述WiFi采集设备上传至所述后台服务器数据库;

将所述WiFi扫描记录按采集时间进行排序获得WiFi扫描轨迹E={ e1,e2,…,en },其中ei=<pi, ti>,i为自然数,ei表示轨迹点,pi表示地理位置,ti表示扫描时间;

(b)轨迹点预处理:后台服务器的数据处理模块依次遍历WiFi扫描轨迹E,对任意连续的两个轨迹点记录ei和ei+1,如果pi = pi+1且ti+1- ti < Δt,则将所述ei和ei+1两条记录合并为一个复合轨迹点记录ei'= <pi,tiin,tiout>,其中, tiin=ti, tiout= ti+1;由合并后的复合轨迹点记录ei'组成WiFi扫描轨迹E'={ e1', e2',…,en'},其中ei'=<pi,tiin,tiout>,n为自然数,pi表示地理位置,tiin表示ei'采集开始时间,tiout表示ei'采集结束时间;

(c)轨迹片段划分:根据预定规则对步骤(b)中获得的WiFi扫描轨迹E'进行分割,获得只包含有序位置轨迹点位置的多条轨迹片段,并由所述多条轨迹片段得到轨迹集合TR;

(d)频繁轨迹提取:采用并行算法计算步骤(b)中获取的轨迹集合TR中的轨迹点pi出现频率次数,得到频繁轨迹点,进而使用并行后缀树算法实现频繁轨迹提取;

(e)建立语义化模型:对频繁轨迹产生时间的星期和小时进行语义化定义;

(f)建立轨迹语义化:获取频繁轨迹的时间尺度频率次数中次数最多的星期和小时,根据语义化模型将轨迹路径进行分类,获取频繁轨迹的语义化模型。

进一步的,在所述分析用户WiFi活动轨迹规律的分布式实现方法中,所述预定规则包括规则一和规则二:

规则一:如果一个轨迹点<pi,tiin,tiout>的停留时间τi= tiout - tiin >Δt,则将轨迹在pi处进行分割,且将地理位置点pi作为上一段轨迹片段的终点和下一段轨迹片段的起点;

规则二:如果两个轨迹点<pi,tiin,tiout>和<pi+1,ti+1in,ti+1out>的间隔时间τi'= ti+1in - tiout> Δt,则将轨迹在pi处进行分割,其中pi作为上一段轨迹片段的终点,pi+1作为下一段轨迹片段的起点;

根据规则一或规则二对WiFi扫描轨迹E'进行分割后获得轨迹集合TR={TR1, TR2, …, TRn},其中第i条轨迹片段TRi= {pi1, pi2, … , pim},pim表示第i条轨迹片段中的用户移动端经过的第m项轨迹点位置,pim对应WiFi采集设备地理位置。

进一步的,在所述分析用户WiFi活动轨迹规律的分布式实现方法中,所述频繁轨迹提取包括以下步骤:

步骤一,对步骤(b)中的每个项pim对应的WiFi采集设备地理位置PI在TR中出现的频率次数进行计数,然后将WiFi采集设备PI出现频率次数进行降序排序,并从TR中过滤出WiFi采集设备PI出现频率次数大于最小支持度的项作为频繁轨迹点;

步骤二:采用均衡分组算法将步骤1中获得的对应频繁轨迹点均匀地划分到Q个分组中,平衡所有组内的计算负载,其中Q为大于1的自然数;

步骤三:获得每条轨迹片段TRi的后缀模式,所述轨迹片段TRi的后缀{pi1, pi2, … , pim}包括多种组成模式,所述组成模式为将轨迹片段TRi中所有的有序轨迹点位置任意分成两部分然后由后一部分有序轨迹点位置组成,一种所述组成模式为所述轨迹片段TRi的一种后缀模式;根据后缀模式中第一项是否为频繁轨迹点来判断所述后缀模式的分组,其中,若后缀模式中第一项为频繁轨迹点,则将所述后缀模式归属到其第一项对应的频繁轨迹点所在的分组;若后缀模式中第一项不是频繁轨迹点,则该后缀模式被自动过滤不进入任意分组中;

步骤四:对每个分组构建一个后缀树,获得Q个后缀树,由Q个后缀树构造并行后缀树,对并行后缀树进行并行处理;后缀树的创建为首先建立树的根节点,然后扫描同一个分组内的所有TRi的后缀模式,并对每个后缀模式创建分枝,所述后缀模式中任意轨迹点位置pim为所述后缀模式分枝的节点,将所有的后缀模式分枝连接到根节点,获得每个分组的后缀树,并对所述后缀树进行压缩处理;

步骤五:对后缀树每个后缀树模式分枝内有序的各节点依次计数,通过节点的计数与最小支持度的比较确定频繁轨迹片段,即若某一节点的计数小于最小支持度则停止对所述后缀树模式分枝内后续节点的计数且所述计数小于最小支持度时的节点前面所有节点组合形成一条频繁轨迹片段;或者若所述后缀模式分枝所有节点的计数均满足大于等于最小支持度则所述后缀模式分枝为频繁轨迹片段,由频繁轨迹片段组成频繁轨迹。

进一步的,在所述分析用户WiFi活动轨迹规律的分布式实现方法中,所述最小支持度为频率次数阈值,所述频率次数阈值根据环境进行设置。

进一步的,在所述分析用户WiFi活动轨迹规律的分布式实现方法中,对所述TRi的后缀模式形成的后缀树进行压缩处理方法为:所述后缀模式分枝内某一节点后的节点均为其子节点,若后缀模式分枝内的节点只有一个子节点,且满足该节点的计数与该节点的子节点的计数相同,则将该节点与其子节点合并为一个节点。

进一步的,在所述分析用户WiFi活动轨迹规律的分布式实现方法中,根据频繁轨迹产生时间的星期和小时建立语义化模型,其中将星期分为工作日和休息日,当星期为工作日时,小时分为n个时间段,对n个时间段分别语义化定义n个事件;当星期为休息日时,小时分为m个时间段,对m个时间段分别语义化定义m个事件。

与现有技术相比,本发明的有益效果是:根据MAC的活动规律轨迹可以得到MAC的常驻区域,对活动规律轨迹的时间进行分析,可以预测目标对象在哪个时间段可能出现在哪些区域,也可以查询与该MAC具有相似活动轨迹规律的MAC集。可以对挖掘出来的轨迹进行语义化,找出用户的一些通勤模式,比如上下班路线;可以对挖掘出来的兴趣区域进行语义化,找出用户的上班区域、住宅区域。

构建在大数据平台上能处理大量的数据,通过Flume实时采集数据、HDFS、Hbase存储、Spark分析处理、ElasticSearch查询检索以及并行化的后缀树算法实现的大规模分布式处理平台,能够快速准确的找出MAC地址的活动轨迹规律。

附图说明

图1为本发明一实施例中分析用户WiFi活动轨迹规律的分布式实现方法示意图。

具体实施方式

下面将结合示意图对本发明的分析用户WiFi活动轨迹规律的分布式实现方法进行更详细的描述,其中表示了本发明的优选实施例,应该理解本领域技术人员可以修改在此描述的本发明,而仍然实现本发明的有利效果。因此,下列描述应当被理解为对于本领域技术人员的广泛知道,而并不作为对本发明的限制。

如图1所示,本发明提出了一种分析用户WiFi活动轨迹规律的分布式实现方法,包括以下步骤:

(a)轨迹提取:后台服务器查询模块查询后台服务器数据库中的用户移动端MAC地址所对应的WiFi扫描记录,所述WiFi扫描记录为由多台WiFi采集设备采集记录并由所述WiFi采集设备上传至所述后台服务器数据库;

将所述WiFi扫描记录按采集时间进行排序获得WiFi扫描轨迹E={ e1,e2,…,en },其中ei=<pi, ti>,i为自然数,ei表示轨迹点,pi表示地理位置,ti表示扫描时间;

(b)轨迹点预处理:后台服务器的数据处理模块依次遍历WiFi扫描轨迹E,对任意连续的两个轨迹点记录ei和ei+1,如果pi = pi+1且ti+1- ti < Δt,则将所述ei和ei+1两条记录合并为一个复合轨迹点记录ei'= <pi,tiin,tiout>,其中, tiin=ti, tiout= ti+1;由合并后的复合轨迹点记录ei'组成WiFi扫描轨迹E'={ e1', e2',…,en'},其中ei'=<pi,tiin,tiout>,n为自然数,pi表示地理位置,tiin表示ei'采集开始时间,tiout表示ei'采集结束时间;

(c)轨迹片段划分:根据预定规则对步骤(b)中获得的WiFi扫描轨迹E'进行分割,获得只包含有序位置信息的多条轨迹片段,并由所述多条轨迹片段得到轨迹集合TR;

(d)频繁轨迹提取:采用并行算法计算步骤(b)中获取的轨迹集合TR中的轨迹点pi出现频率次数,得到频繁轨迹点,进而使用并行后缀树算法实现频繁轨迹提取;

(e)建立语义化模型:对频繁轨迹产生时间的星期和小时进行语义化定义;

(f)建立轨迹语义化:获取频繁轨迹的时间尺度频率次数中次数最多的星期和小时,根据语义化模型将轨迹路径进行分类,获取频繁轨迹的语义化模型。

其中,在本实施例中,所述预定规则包括规则一和规则二:

规则一:如果一个轨迹点<pi,tiin,tiout>的停留时间τi= tiout - tiin >Δt,则将轨迹在pi处进行分割,且将地理位置点pi作为上一段轨迹片段的终点和下一段轨迹片段的起点;

规则二:如果两个轨迹点<pi,tiin,tiout>和<pi+1,ti+1in,ti+1out>的间隔时间τi'= ti+1in - tiout> Δt,则将轨迹在pi处进行分割,其中pi作为上一段轨迹片段的终点,pi+1作为下一段轨迹片段的起点。

在本实施例中,根据上述规则一或规则二对WiFi扫描轨迹E'进行分割后获得轨迹集合TR={TR1, TR2, …, TRn},其中第i条轨迹片段TRi= {pi1, pi2, … , pim},pim表示第i条轨迹片段中的用户移动端经过的第m项轨迹点位置,pim对应WiFi采集设备地理位置。

具体的,在本实施例中,所述频繁轨迹提取的方法包括以下步骤:

步骤一,对步骤(b)中的每个项pim对应的WiFi采集设备地理位置PI在TR中出现的频率次数进行计数,然后将WiFi采集设备PI出现频率次数进行降序排序,并从TR中过滤出WiFi采集设备PI出现频率次数大于最小支持度的项作为频繁轨迹点,其中,所述最小支持度为频率次数阈值,所述频率次数阈值根据环境进行设置;

步骤二,采用均衡分组算法将步骤1中获得的对应频繁轨迹点均匀地划分到Q个分组中,平衡所有组内的计算负载,其中Q为大于1的自然数;

步骤三,获得每条轨迹片段TRi的后缀模式,所述轨迹片段TRi的后缀{pi1, pi2, … , pim}包括多种组成模式,所述组成模式为将轨迹片段TRi中所有序轨迹点位置任意分成两部分然后由后一部分有序轨迹点位置组成,一种所述组成模式为所述轨迹片段TRi的一种后缀模式,如TRi={b,a,n,a,n,a},则TRi的多种后缀模式包括:{b,a,n,a,n,a};{ a,n,a,n,a };{ n,a,n,a };{ a,n,a };{ n,a };{ a },后缀模式中第一项是频繁轨迹点,则将所述后缀模式归属到后缀模式中第一项所在的分组,后缀模式中第一项不是频繁轨迹点,则将所述后缀模式过滤掉,不进入分组。例如:(1)a为频繁轨迹点且a被分在Q1组中,n为频繁轨迹点且被分在Q2组中,则后缀模式{ a,n,a,n,a }被分在Q1组中,{ n,a,n,a }被分在Q2组中;(2)a为频繁轨迹点且a被分在Q1组中,n不是频繁轨迹点,则后缀模式{ n,a,n,a }被直接过滤掉不进入任意分组,{ a,n,a }被分在Q1组中。

步骤四,对每个分组构建一个后缀树,获得Q个后缀树,由Q个后缀树构造形成并行后缀树,对并行后缀树进行并行处理,即对Q个后缀树同时进行计算处理;其中,后缀树的创建首先需要建立树的根节点,然后扫描同一个分组内的所有轨迹片段TRi的后缀模式,并对每个后缀模式创建分枝,所述后缀模式中任意轨迹点位置pim为所述后缀模式分枝的节点,将所有的后缀模式分枝连接到根节点,获得每个分组的后缀树,并对所述后缀树进行压缩处理。所述压缩处理方法为:若后缀模式分枝内的节点只有一个子节点,且满足该节点的计数与该节点的子节点的计数相同,则将该节点与其子节点合并为一个节点。其中子节点定义为所述后缀模式分枝内某一节点后的节点均为其子节点,如后缀树模式{ n,a,n,a }中,第一个n的子节点包括三个,且依次为其后的a,n,a;第二个n的子节点仅包含一个为其后的a。

步骤五,对后缀树每个后缀树模式分枝内有序的各节点依次计数,通过计数与最小支持度的比较确定频繁轨迹片段,即若某一节点的计数小于最小支持度则停止对所述后缀树模式分枝内后续节点的计数,所述计数小于最小支持度时的节点前面所有节点组合形成一条频繁轨迹片段;或者若所述后缀模式分枝所有节点的计数均满足大于等于最小支持度则所述后缀模式分枝形成一条频繁轨迹片段,由频繁轨迹片段组成频繁轨迹。例如:(1)后缀树模式分枝{ a,n,a,n,a },其中节点a,n,a,n和a各自的计数均满足大于等于最小支持度,则后缀树模式分枝{ a,n,a,n,a }为一条频繁轨迹片段;(2)后缀树模式分枝{ a,b,c,d,e },其中节点a,b,c各自的计数均满足大于等于最小支持度而节点d的计数小于最小支持度,则不再对节点e进行计数,且由{a,b,c}形成一条频繁轨迹片段。

优选地,在本实施例中,在所述分析用户WiFi活动轨迹规律的分布式实现方法中,根据频繁轨迹产生时间的星期(week)和小时(hour)建立语义化模型,其中将星期分为工作日和休息日,当星期为工作日时,小时分为n个时间段,对n个时间段分别语义化定义n个事件;当星期为休息日时,小时分为m个时间段,对m个时间段分别语义化定义m个事件,例如:

a)week 为工作日

n1. hour 在7-10点之间 n1 上班路线

n2. hour 在17-20点之间 n2 下班路线

n3. hour 在11-13点之间 n3 午餐时间

n4. hour 在其它时间 n4 其他

b)week 为休息日

m1. hour 在7-9点之间 m1 早餐

m2. hour 在11-13点之间 m2 午餐时间

m3. hour 在18-20点之间 m3 晚餐时间

m4. hour 在其它时间 m4 其他

分析频繁轨迹的时间规律,统计记录的week和hour的出现的次数,根据得到出现次数多的week和hour的语义化获得轨迹的语义化。例如week为工作日且hour在7~10点之间出现的次数较多,根据语义化模型就可以将week为工作日且hour在7~10点之间语义化为上班路线的轨迹,通过上班路线轨迹的起点和终点可以判断为家庭住址和工作地点附近。

综上,在本发明实施例提供的分析用户WiFi活动轨迹规律的分布式实现方法中,根据MAC的活动规律轨迹可以得到MAC的常驻区域,对活动规律轨迹的时间进行分析,可以预测目标对象在哪个时间段可能出现在哪些区域,也可以查询与该MAC具有相似活动轨迹规律的MAC集。可以对挖掘出来的轨迹进行语义化,找出用户的一些通勤模式,比如上下班路线;可以对挖掘出来的兴趣区域进行语义化,找出用户的上班区域、住宅区域。

构建在大数据平台上能处理大量的数据,通过Flume实时采集数据、HDFS、Hbase存储、Spark分析处理、ElasticSearch查询检索以及并行化的后缀树算法实现的大规模分布式处理平台,能够快速准确的找出MAC地址的活动轨迹规律。

上述仅为本发明的优选实施例而已,并不对本发明起到任何限制作用。任何所属技术领域的技术人员,在不脱离本发明的技术方案的范围内,对本发明揭露的技术方案和技术内容做任何形式的等同替换或修改等变动,均属未脱离本发明的技术方案的内容,仍属于本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1