一种基于海量空间轨迹挖掘的在线的位置预测方法

文档序号:6631543阅读:180来源:国知局
一种基于海量空间轨迹挖掘的在线的位置预测方法
【专利摘要】本发明涉及一种基于海量空间轨迹挖掘的在线的位置预测方法,属于空间轨迹挖掘领域。本发明提出的方法首先从海量空间轨迹中挖掘频繁序列模式,接着使用序列模式构建基于前缀树结构的模型,然后构建基于距离和流行度的模型用来解决零频率问题,最后利用构建的预测模型,根据运动目标当前轨迹信息来预测运动目标的下一位置。该预测方法的准确率相对于现有方法有较大提升,而且计算复杂度低,能对运动目标的位置进行实时预测,并且仅依赖于运动目标的位置信息,因此可以广泛应用于智能交通、基于地理位置的服务等多个领域。
【专利说明】一种基于海量空间轨迹挖掘的在线的位置预测方法

【技术领域】
[0001] 本发明涉及运动目标的位置预测方法,特别涉及一种基于海量空间轨迹挖掘的在 线的位置预测方法。

【背景技术】
[0002] 近年来,随着移动互联网的发展和移动智能终端的普及,定位技术已经被广泛应 用。例如作为智能交通系统的基础设施,许多城市的出租车和公交车装配了 GPS设备;在微 博、微信、大众点评等移动互联网应用中,用户当前的位置也常常作为最基础的信息,被记 录和分享。这些由车辆和用户等运动目标所产生的海量空间轨迹信息,使得对运动目标的 行为模式进行分析成为可能。其中,对运动目标的位置进行预测是一项重要的研究任务,具 有重要的理论意义和实际应用价值。例如对车辆的位置进行预测可以有助于智能交通系统 进行道路流量预测,执行合理的流量疏导策略;对用户的位置进行预测可以向用户推荐与 地点相关的商品和服务。
[0003] 现有的基于空间轨迹挖掘的位置预测方法可以分为两大类:第一大类是使用多种 上下文信息的方法。此类方法的研究对象通常是基于地理位置的社交网络服务中的数据。 此类方法通过对基于地理位置的社交网络中的文本标签、用户评论、照片等多种上下文信 息进行挖掘,获得关于地点和用户的语义层次的理解,再结合位置信息,建立预测模型。此 类方法通过综合多种上下文信息可以提高预测的准确率,但是模型的计算复杂度较大,难 以满足某些对实时性要求高的应用。另外,此类方法使用了多种上下文信息,所以普适性不 强。第二大类方法是仅使用位置信息的方法,应用范围具有较强的普适性。本发明提出的 方法属于此类方法,因此下面对此类方法进行进一步介绍。
[0004] 仅使用位置信息的预测方法大致可以分为两类。一类是模型驱动的方法。即对用 户的行为建立概率模型,将用户兴趣、地点距离、地点流行度等影响用户运动的因素作为变 量,加入到模型中。利用数据对模型进行训练,训练完成的模型就可以用于位置预测。另一 类是数据驱动的方法。即利用海量的历史轨迹数据,通过挖掘出的运动模式来进行位置预 测,而不对用户的运动因素做任何假设。
[0005] 模型驱动的方法由于对用户运动的内在因素进行建模,所以此类方法的可解释性 较强,但是此类方法需要当前用户的较多历史轨迹信息才能进行建模,而且计算复杂度较 高,所以存在一定的局限性。数据驱动的方法不对用户运动的内在因素进行假设,所以可解 释性较弱,而且预测的准确率受到训练数据规模的影响。但是数据驱动的方法在构建完模 型之后,对用户位置进行预测的效率较高,可以满足某些应用场合的实时性的要求。


【发明内容】

[0006] 发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于海 量空间轨迹挖掘的在线的位置预测方法。
[0007] 为了解决上述技术问题,本发明公开了一种基于海量空间轨迹挖掘的在线的位置 预测方法,包括以下四个步骤:
[0008] 频繁序列挖掘;
[0009] 构建基于前缀树结构的模型;
[0010] 构建基于距离和流行度的模型;
[0011] 预测运动目标下一位置。
[0012] 本发明中,所述的频繁序列挖掘包括以下步骤:
[0013] 步骤a,对一组运动目标的历史空间轨迹集合S = (S1, S2, ...,sm}使用频繁序列挖 掘算法,得到序列模式以及对应的支持度,m表示轨迹的总数;
[0014] 所述的构建基于前缀树结构的模型包括以下步骤:
[0015] 步骤b,将步骤a中得到的序列模式构建成一棵前缀树A,序列模式中包含的地点 构成前缀树A的边,序列模式对应的支持度则记录在序列模式路径所对应的节点中;
[0016] 步骤c,将步骤a中得到的序列模式倒序,并构建成一棵前缀树B,倒序的序列模式 中包含的地点构成前缀树B的边,序列模式对应的支持度则记录在倒序的序列模式路径所 对应的节点中;
[0017] 所述的构建基于距离和流行度模型包括步骤:
[0018] 步骤d,建立结合距离因素和地点流行度因素的预测模型,该预测模型将地点的流 行度定义为地点在历史空间轨迹集合中被用户访问的次数,并设定一个距离阈值D,然后将 运动目标当前位置距离范围D内的最流行的地点作为下一位置的预测结果;
[0019] 所述的预测运动目标下一位置的步骤为:
[0020] 步骤e,获得用户当前位置信息的输入,如果是首次输入或者上一轮预测结果是由 步骤i所产生,则转到步骤f,否则转到步骤g ;
[0021] 步骤f,将运动目标当前的运动轨迹s倒序,记作运动轨迹在步骤c中由倒序的 序列模式所构建的前缀树B上,从根节点开始,依照运动轨迹:f包含的地点向子节点搜索, 直到无法继续搜索,此时到达子节点I i ;将根节点到子节点Ii的路径倒序,记作路径V ;在 步骤b中由序列模式构建的前缀树A上,从根节点开始,按照路径s'搜索,直到路径s'搜 索结束;将当前在前缀树上的位置保存到变量Γ,接着转到步骤h ;
[0022] 步骤g,如果上一轮预测结果是由基于步骤h前缀树结构的模型产生,则检查用户 的当前位置是否是上一轮预测时变量Γ中保存的前缀树A的节点的子节点,如果是,将用 户当前位置存入变量Γ,然后转到步骤h,如果不是,则转到步骤f ;
[0023] 步骤h,遍历上一步骤变量Γ中保存的前缀树A的节点的子节点,将支持度最大的 子节点作为运动目标下一位置的预测结果;如果支持度最大的子节点不唯一,则按照步骤 d中流行度的定义,将流行度最大的地点作为预测结果,转到步骤j,如果上一步骤变量Γ 保存的节点没有子节点,则转到步骤i ;
[0024] 步骤i,用步骤d中的模型来预测运动目标的下一位置,接着转到步骤j ;
[0025] 步骤j,输出预测结果,完成此轮预测,转到步骤e,进行下一轮预测。
[0026] 本发明中,步骤a中设定支持度阈值为ξ,则挖掘得到的序列模式表示为: Ω =吣| % £e S,5^x4?, J 2 0,其中 ' 表示历史空间轨迹集合s中的第q 条空间轨迹,9^{1,2,...,111},111为历史空间轨迹集合3中包含的轨迹的数量,〇1)为挖 掘得到的序列模式集合Ω中第p个序列模式,包含η个地点{、,'...,、,...,、!,其 中I1?表示序列模式的第r个地点,r取值1?n,Support ( α ρ)为序列模式α ρ的支持 度简化记为supportp,并与序列模式α ρ = Il1, 12, . . .,ln}合并在一起表示,记作α ρ = U1, 12, · · ·,ln: supportp} 〇
[0027] 本发明中,步骤b中,利用得到的序列模式集合构建成一棵前缀树Α,序列模式 Ct P包含的地点I1, 12,. . .,In构成前缀树A的边,对应的支持度Supportp则记录在路径 I1I2... In所对应的节点中。
[0028] 本发明中,步骤c中,根据得到的所有序列模式Cip倒序,记为%,并构建前缀树 B, ?ρ包含的地点ln, Ilri,. . .,I1构成前缀树B的边,而对应的支持度Supportp则记录在路 径ln,Ilri,...,I1所对应的节点中。
[0029] 本发明中,步骤d,预测下一位置的过程为:假设用户当前已经访问过j个地点,轨 迹为Il 1,12, ...,lj},则用户当前地点为Ij ;将距离地点Ij范围D内所有的地点作为候选地 点,记为集合ΙΛ,...,lk,...,lK},其中I k代表集合中的第K个地点,K为候选地点集合中 地点个数;依据候选地点Ik对应的流行度# (Ik),选择出最流行的地点1+1作为运动目标的 下一位置的预测结果,预测模型表示为:
[0030] ξ+1 = arg Iiuix4 ?#(/Α)丨且满足条件(1」,lk)〈D,
[0031] 其中,L表示用户当前所在的地点为用户轨迹序列中的第j个地点,用户下一个访 问地点记为lj+1,对下一个地点的预测记为€+1,d(lj, Ik)为距离函数,表示地点Ij与地点Ik 之间的距离,D为距离阈值,所有与当前地点L距离小于阈值D的地点Ik都是候选地点;利 用长度为1的序列模式ak = {lk:# (Ik)}计算候选地点Ik的流行度,序列模式中的支持度 #(lk)表示了地点I k在历史空间轨迹集合中被用户访问的次数,将支持度#(lk)作为地点流 行度的衡量指标;函数argma Xx{F(X)}返回使得F(X)取得最大值的X。
[0032] 本发明中,步骤f包括:将运动目标当前的轨迹s = I1, 12, ...,Ij倒序,得到轨迹 I = ,在步骤c中由倒序的序列模式所构建的前缀树B上,从根节点开始,依照轨 迹y包含的地点向子节点搜索,直到无法继续搜索,此时到达子节点Ii ;从根节点到子节点 的路径为:lj,lj_i,...,Ii,将其倒序,得到轨迹S' = Ii, li+1,...,lj,在步骤b中由频繁序列 构建的前缀树A上,从根节点开始,按照轨迹S'的路径搜索,直到搜索结束,当前在前缀树 A上的位置所对应的节点为Ij,将其存入变量Γ。
[0033] 本发明中,步骤h包括:遍历上一步骤变量Γ保存的前缀树A上节点的子节点,将 支持度最大的子节点作为运动目标下一位置的预测结果,即:
[0034] ? +1 = argmiix, ; support(/ …·.广 /,,)!,
[0035] 其中support (Ii, ···,Γ, Ik)是节点Ik中所记录的地点序列Ii, ···,Γ, Ik的支持 度;
[0036] 如果支持度最大的子节点不唯一,则按照对地点的流行度的定义,输出流行度最 大的地点,即:
[0037] //+1 ^argmax, {#(/)),/e L ;
[0038] 其中,L为支持度最大的子节点的集合,即:
[0039] i = argmax、!support^,…,厂乂 H
[0040] 1为集合L中的子节点,#(1)为地点1的流行度。
[0041] 本发明的有益效果在于四个方面:第一,该方法是在线(online)的。该方法在获 得了运动目标最新的位置后,都会动态调整模型,从而预测运动目标的下一个位置,如此循 环往复。第二,该方法能充分利用运动目标当前的历史轨迹信息,提高预测的准确率。序列 预测的最常用的方法是马尔科夫模型,马尔科夫模型的阶数大的时候,模型的复杂度高,容 易产生训练数据不足而导致模型偏差;而模型的阶数小的时候,模型过于简单,没有充分挖 掘数据内在的结构和依赖关系,导致预测准确率低。而本方法在步骤f中,相当于动态选择 合适的阶数。第三,通过建立基于距离和地点流行度的模型(步骤d),该方法可以应对数据 稀疏导致的"零频率"问题。第四,该方法简单高效,适用范围广泛。该方法将海量空间轨 迹挖掘得到的序列模式构建前缀树,并在每一轮预测中都保留了前缀树上对应的位置用作 下一轮预测。此外还在基于流行度和距离的模型中建立了空间索引。因此该预测方法的最 好时间复杂度为0(1)。由于该方法仅使用了运动目标的位置信息,所以该方法适用范围很 广,例如可以直接应用于现有的各类基于地理位置的服务(LBS)应用。

【专利附图】

【附图说明】
[0042] 下面结合附图和【具体实施方式】对本发明做更进一步的具体说明,本发明的上述和 /或其他方面的优点将会变得更加清楚。
[0043] 图1预测模型总体框图。
[0044] 图2在线的位置预测的流程图。
[0045] 图3实验数据分布图。
[0046] 图4利用频繁序列模式及支持度建立前缀树的示意图。
[0047] 图5利用倒序的频繁序列模式及支持度建立前缀树的示意图。
[0048] 图6利用地点距离和流行度建立模型的示意图。

【具体实施方式】
[0049] 本发明的目的在于通过挖掘海量的空间轨迹,构建预测模型,然后根据运动目标 的当前的位置信息,预测运动目标的下一位置,并在每一轮预测时保留相关信息,从而提高 下一轮预测的效率。
[0050] 为达到上述目的,本发明提供一种基于海量空间轨迹挖掘的在线的位置预测方 法,该方法包括频繁序列挖掘、构建基于前缀树结构的模型、构建基于距离和流行度的模型 以及预测运动目标下一位置四大步骤。
[0051] 所述的频繁序列挖掘步骤为:
[0052] 步骤a,对运动目标的历史空间轨迹集合S = (S1, S2, ...,sj使 用频繁序列挖掘算法,挖掘出所有支持度大于阈值ξ的频繁序列,记为: Ω=!% |αΛ ?e5,&//沪。集合Ω中的每个频繁序列模式,可以表示为 a p = Il1, 12, · · ·,Ir, · · ·,ln:supportp}。其中 Ir 表示序列包含的第 r 个地点,Supportp 表 示α p的支持度。
[0053] 所述的构建基于前缀树结构的模型步骤为:
[0054] 步骤b,利用步骤a中得到的序列模式集合A中所有的Cip构建成一棵前缀树。 Ct P包含的地点I1, 12,. . .,In构成前缀树的边,而对应的支持度Supportp则记录在路径 "I 1I2. ·· In"所对应的节点中。
[0055] 步骤c,将步骤a中得到的序列模式集合A中的所有α p倒序,记为力,并构建前 缀树。6^包含的地点ln, Ilri,...,I1构成前缀树的边,而对应的支持度Supportp则记录在 路径〃ln,Ilri,...,I1"所对应的节点中。
[0056] 所述的构建基于距离和流行度模型的步骤为:
[0057] 步骤d,结合距离因素和地点流行度因素,可以建立如下的模型:
[0058] f.+1 = argmax/( {#(4)} s.t.d{lj,l1s)<D
[0059] H(Ik)为步骤a得至繼序列模式集合Λ中,长度为1的Cik所对应的支持度,艮P Cik ={ik:#(ik)},它代表了地点ik的流行度。该模型根据运动目标当前地点距离范围D 内的最流行的地点/;+1作为运动目标的下一位置的预测结果。在模型中,对地点的空间坐标 建立空间索弓丨,以提高搜索周围地点的效率。
[0060] 建立该模型的意义在于:当运动目标的运动轨迹超出了从海量空间轨迹中挖掘出 来的序列模式的范围时,上一步骤构建的基于前缀树结构的模型就无法对运动目标的位置 做出预测,这种由训练数据的稀疏性带来的问题被称为"零频率"问题。此时基于距离和地 点流行度的模型就可以作为补充,对运动目标的位置做出预测。
[0061] 所述的预测运动目标下一位置的步骤为:
[0062] 步骤e,接收用户当前位置信息的输入。如果是首轮预测或者上一轮预测结果不是 由基于前缀树结构的模型产生,则转到步骤f,否则转到步骤g。
[0063] 步骤f,将运动目标当前的运动轨迹记为s = I1J2,...,1』,将s倒序,得到 I = /,,/,+ ···.(。在步骤c中由倒序的序列模式所构建的前缀树上,从根节点开始,依照y包 含的地点向子节点搜索,直到无法继续搜索,此时到达子节点Ii。从根节点到子节点的路径 为:...,Ii,将其倒序,得到s' = Ii, li+1,.. .,Ip在步骤b中由频繁序列构建的前 缀树上,从根节点开始,按照s'的路径搜索,直到搜索结束,当前在前缀树上的位置所对应 的节点应该为Ip保留当前在前缀树上的位置,接着转到步骤h。
[0064] 步骤g,如果上一轮预测结果是由基于前缀树结构的模型产生,则检查用户的当前 位置是否是上一轮预测时在前缀树上保留位置的子节点。如果是,将前缀树上保留的位置 移动到该子节点,然后转到步骤h。如果不是,则转到步骤f。
[0065] 步骤h,将上一步骤前缀树上保留的位置对应的节点记为Γ,将Γ的子节点中支持 度最大的子节点L作为运动目标下一位置的预测结果。即: ? 申
[0066] /, I = arginaX/ |support(/,",·,/ 乂
[0067] support (Ii, · · ·,Γ, Ik)是节点Ik中所记录的地点序列Ii, · · ·,Γ, Ik的支持度。 [0068] 如果支持度最大的子节点不唯一,则按照步骤d中流行度的定义,输出流行度最 大的地点。转到步骤j。如果找不到子节点,则转到步骤i。
[0069] 步骤i,用步骤d中的模型来预测运动目标的下一位置。接着转到步骤j。
[0070] 步骤j,输出预测结果,完成此轮预测。转到步骤e,进行下一轮预测。
[0071] 本发明提出的方法首先从海量空间轨迹中挖掘频繁序列模式,接着使用序列模式 构建基于前缀树结构的模型,然后构建基于距离和流行度的模型用来解决零频率问题,最 后利用构建的预测模型,根据运动目标当前轨迹信息来预测运动目标的下一位置。该预测 方法的准确率相对于现有方法有较大提升,而且计算复杂度低,能对运动目标的位置进行 实时预测,并且仅依赖于运动目标的位置信息,因此可以广泛应用于智能交通、基于地理位 置的服务等多个领域。
[0072] 实施例1
[0073] 如图1所示,本实施例提出的基于海量空间轨迹挖掘的在线的位置预测方法包括 频繁序列挖掘、构建基于前缀树结构的模型、构建基于距离和流行度的模型以及预测运动 目标下一位置四大步骤。其中前三大步骤涉及了预测模型的构建,第四大步骤涉及预测模 型的使用,即:根据运动目标当前的位置在线地预测目标的下一位置。由于涉及到比较复杂 的逻辑,所以第四大步骤的具体流程单独绘制,如图2所示。
[0074] 在对本实施例的运算过程作详细说明之前,对本实例进行一定的描述。本实例所 涉及的数据,来自海量地理位置数据挖掘领域常用的数据来源Panoramio. com。实现抓取这 些数据的爬虫设计及数据的预处理方法,不在本实施例范围之内。
[0075] 本实施例的数据的获取以及预处理方法如下:
[0076] 从带有GPS位置信息的照片分享网站Panoramio. com上爬取了由1,267, 123位用 户上传的14, 679, 221张照片的GPS位置,接着对这些GPS位置做了如下处理:(1)使用均值 漂移聚类算法对GPS位置聚类,聚类算法带宽设置为0. 01,对应到地球表面的距离约为100 米。(2)对聚类结果进行过滤。在每一类中,如果数据点的GPS位置到聚类中心的距离大于 1千米,则去除该数据点。用这种规则去除了聚类的数据点之后,如果一个聚类包含的数据 点少于20,或者聚类的数据点对应的用户少于5,则把这个聚类剔除。这一步去除了低质量 的聚类,即保证剩下的聚类是有意义的地点。(3)生成用户旅行的地点序列。将每个用户 的GPS位置按照对应的照片拍摄时间的先后顺序进行排列,得到用户的GPS位置序列。然 后根据步骤2中GPS位置与聚类的对应关系,将用户的GPS位置序列转换为地点序列。最 后,剔除包含地点数量小于2的地点序列。(4)经过上述的处理步骤,共得到了 115, 303条 地点序列,这些地点序列包含了 36, 042个不同的地点。这些地点的分布如图3所示。
[0077] 将用户的地点序列集合记为S = {Sl,s2, ...,sm},集合中的每个元素 Si代表某个 用户的一条地点序列=Si = ln,li2, ...,Iin。本实施例提出的方法的目的是通过挖掘S,构建 预测模型,根据用户当前的地点序列ΙΛ,12,. . .,Ij预测用户将要前往的下一个地点/^1。 当用户实际前往地点lj+1之后,将地点lj+1的位置信息输入预测模型,获取用下一个位置的 预测结果ξ. +2。如此往复进行下去。
[0078] 下面对本实施例提出方法的运算过程作详细说明:
[0079] 所述的频繁序列挖掘流程为:
[0080] 步骤101,使用频繁序列挖掘算法PrefixSpan并设定支持度阈值为ξ,从集合S中 挖掘出所有满足条件的频繁序列,记为:〇 =!%!%^\,_^£乂%少_(%)^.!。集合 Ω中的每个频繁序列模式,可以表示为a p = Il1, I2, · · · , Ir, · · · , ln:supportp}。其中Ir表 示序列包含的第r个地点,Supportp表示α p的支持度。
[0081] 步骤102,将频繁序列集合Ω中长度为1的序列模式与其它序列模式分开。长度 为1的序列模式代表单个地点,模式的支持度代表了地点的流行度。其余长度大于1的序 列模式将在后续的步骤中用于构建前缀树模型。
[0082] 所述的构建基于前缀树结构的模型步骤为:
[0083] 步骤201,将步骤102中得到的长度大于1的序列模式构建成一棵前缀树A。构建 前缀树A的方法是:每个序列模式a i中包含的地点I1, 12, ...,In构成前缀树A的边,而序 列模式α p的支持度Supportp则记录在路径"I1I2. . . In〃所对应的节点中。
[0084] 为了清晰地展示步骤201构建前缀树的方法,图4给出了一个范例。假设在步 骤102中得到的长度大于1的序列模式以及支持度为:{A,B:4} {B,C:4} {A,D:5} {B,E:5} {D,E:4} {A,B,C:4} {A,B,E:4} {A,D,E:4},按照步骤201构建出来的前缀树A应当如图4所 示。前缀树上从根节点到某个子节点的路径对应一个序列模式,序列模式的支持度存储在 子节点中。
[0085] 步骤202,将步骤102中得到的长度大于1的每个序列模式α p倒序,记为^,并 构建前缀树B。巧包含的地点ln,Ilri, ...,I1构成前缀树B的边,而对应的支持度Supportp 则记录在路径〃ln,Ilri,...,I1〃所对应的节点中。
[0086] 为了清晰地展示步骤202构建前缀树B的方法,图5给出了一个范例。假设在步 骤102中得到的长度大于1的序列模式以及支持度为:{A,B:4} {B,C:4} {A,D:5} {B,E:5} {D,E:4} {A,B,C:4} {A,B,E:4} {A,D,E:4},将其倒序得到{B,A:4} {C,B:4} {D,A:5} {E,B:5} {E,D:4} {C,B,A:4} {E,B,A:4} {E,D,A:4}。用这些倒序的序列模式和对应的支持度构建前缀 树,应当得到如图5所示的前缀树。前缀树上从根节点到某个子节点的路径对应一个序列 模式的倒序,序列模式的支持度存储在子节点中。
[0087] 所述的构建基于距离和流行度模型的步骤为:
[0088] 步骤301,使用KD树对地点的位置建立空间索引,这样可以加速搜索当前地点周 围地点的过程。
[0089] 步骤302,将步骤102中得到的地点的流行度按照从大到小的方式排序,记录每个 地点的序号。流行度最大的地点记为1,流行度次之的记为2,依次类推。地点和序号记录 在字典结构中,字典的每个键值对为<l t,〇t>,〇t为地点It的序号。
[0090] 图2展示了根据用户当前的位置在线地预测下一位置的流程,下面结合图2,对预 测方法进行详细描述:
[0091] 步骤401,接收用户当前位置信息的输入。如果上一轮预测结果不是由基于前缀树 结构的模型产生(也包含开始预测时,首次输入运动目标的轨迹的情况),则转到步骤402, 否则转到步骤403。
[0092] 步骤402,将用户当前的轨迹s = I1, 12, ...,Ij逆序,得到歹= 。然后在 步骤202中由逆序的序列模式所构建的前缀树B上从根节点开始搜索,直到无法继续搜 索,此时到达子节点Ii。根节点到子节点的路径为:lp 1m,...,Ii,将其倒序,得到^ = Ii, li+1,...,lp接着将s'在步骤201中由序列模式所构建的前缀树A上从根节点开始搜 索,直到无法继续搜索,将前缀树A上的当前位置保存在变量Γ中,接着转到步骤404。
[0093] 步骤403,如果上一轮预测结果是由基于前缀树结构的模型产生,则检查用户的当 前位置是否是上一轮预测时变量Γ所保存的前缀树A上节点的子节点。如果是,将用户当 前位置存入变量Γ,然后转到步骤404,否则转到步骤402。
[0094] 步骤404,选择变量Γ所保存的前缀树A上节点的子节点中支持度最大的节点,作 为用户的下一位置的预测结果输出。如果支持度最大的子节点不唯一,则输出流行度最大 的子节点。转到步骤406。如果找不到子节点,则转到步骤405。
[0095] 步骤405,搜索用户当前位置距离D内的地点,得到候选地点集合L。利用步骤302 中的键值对<l t,〇t>,遍历L中的所有地点,把最小的Ot所对应的地点It作为预测结果输出, 转到步骤406。
[0096] 步骤406,输出预测结果,完成此轮预测。转到步骤401,进行下一轮预测。
[0097] 为了清晰地展示步骤401-406描述的根据运动目标当前的位置在线地预测目标 的下一位置的方法,下面结合图4、图5和图6给出一个范例。
[0098] 首轮预测:用户向预测模型输入当前的轨迹s = EBC,从步骤401转到步骤402。将 s倒序得到f = CM,在图5由序列模式的逆序所构成前缀树上从根节点开始搜索,得到路 径〃CB〃就无法继续向下搜索,将其倒序得到s' =BC。然后将s'在图4所示的前缀树上 搜索,得到路径"BC"所对应的节点,保留该节点,转到步骤404。发现当前节点不含有子节 点,转到步骤405。如图6所示,用户当前位置为'C',在范围D内有两个地点'A'和'D',选 择流行度大的地点'D'作为预测结果输出。转到步骤406,完成此轮预测。转到步骤401, 进行下一轮预测。
[0099] 第二轮预测:用户当前到达的位置为'A'。由于上一轮预测结果不是由基于前缀 树的模型产生,所以转到步骤402。此时s = EBCA,类似于首轮的方法,最终保留在图4的 根节点下的'A'节点对应的位置,跳转到步骤404。发现有两个子节点'B'和'D',将支持 度大的地点'D'作为预测结果输出。转到步骤406,完成此轮预测。转到步骤401,进行下 一轮预测。
[0100] 第三轮预测:用户当前到达的位置为'B'。上一轮预测是基于前缀树模型产生的, 所以转到步骤403。上一轮在图4的前缀树上保留的位置是根节点下的'A'节点对应的位 置,而'B'是该位置的子节点,所以将前缀树上保留的位置移动到'B',然后转到步骤404。 此时子节点为'C'和?',支持度均为4,所以考虑单个地点的流行度。由于E的流行度为 5, C的流行度为4,所以把E作为预测结果输出。转到步骤406,完成此轮预测。转到步骤 401,进行下一轮预测。
[0101] 如此循环地将用户当前位置信息输入预测模型,获得下一位置的预测结果。
[0102] 为了检验本实施例提出的方法的有效性,本实施例从地理位置信息数据挖掘相关 的研究领域常用数据来源Panoramio. com上,通过编写网络爬虫获得了由1,267, 123位用 户上传的14, 679, 221个GPS标签,并进行预处理得到用户的旅游过程中产生的地点序列。 然后将地点序列随机分成两份,分别作为训练数据集和测试数据集。然后使用训练数据 集按照本发明提出的方法构建预测模型,接着将测试数据集中的序列依次输入预测模型, 产生预测结果,并将预测结果与实际结果进行对比。对比结果采用平均准确率均值(Mean Average Precision,MAP)作为评价指标,如表1所示。
[0103] 实验结果显示本实施例提出的方法所获得的预测准确率高于传统的序列预测算 法。需要强调的是,实验结果中本实施例提出的方法共测试了两类频繁序列。一类是一 般意义的频繁序列,即步骤a挖掘的序列模式α p中包含的地点I1, 12, ...,In在原始序列 Sq,Sq e S中可以不连续,另一类限定频繁序列为原始序列的子串,即要求序列模式α p中包 含的地点I1, 12, ...,In在原始序列S,,s, e S中是连续的。这两类频繁序列都属于步骤a 中描述的挖掘频繁序列,当然,挖掘得到的频繁序列也可以是上述两类频繁序列的变形、修 改和等效。
[0104] 表1预测方法的准确率比较
[0105]

【权利要求】
1. 一种基于海量空间轨迹挖掘的在线的位置预测方法,其特征在于,包括以下四个步 骤: 频繁序列挖掘; 构建基于?υ缀树结构的I吴型; 构建基于距离和流行度的模型; 预测运动目标下一位置。
2. 根据权利要求1所述的一种基于海量空间轨迹挖掘的在线的位置预测方法,其特征 在于,所述的频繁序列挖掘包括以下步骤: 步骤a,对一组运动目标的历史空间轨迹集合S=(S1, S2,...,sm}使用频繁序列挖掘算 法,得到序列模式以及对应的支持度,m表示轨迹的总数; 所述的构建基于前缀树结构的模型包括以下步骤: 步骤b,将步骤a中得到的序列模式构建成一棵前缀树A,序列模式中包含的地点构成 前缀树A的边,序列模式对应的支持度则记录在序列模式路径所对应的节点中; 步骤c,将步骤a中得到的序列模式倒序,并构建成一棵前缀树B,倒序的序列模式中包 含的地点构成前缀树B的边,序列模式对应的支持度则记录在倒序的序列模式路径所对应 的节点中; 所述的构建基于距离和流行度模型包括步骤: 步骤d,建立结合距离因素和地点流行度因素的预测模型,该预测模型将地点的流行度 定义为地点在历史空间轨迹集合中被用户访问的次数,并设定一个距离阈值D,然后将运动 目标当前位置距离范围D内的最流行的地点作为下一位置的预测结果; 所述的预测运动目标下一位置的步骤为: 步骤e,获得用户当前位置信息的输入,如果是首次输入或者上一轮预测结果是由步骤i所产生,则转到步骤f,否则转到步骤g; 步骤f,将运动目标当前的运动轨迹s倒序,记作运动轨迹在步骤c中由倒序的序列 模式所构建的前缀树B上,从根节点开始,依照运动轨迹P包含的地点向子节点搜索,直到 无法继续搜索,此时到达子节点Ii ;将根节点到子节点Ii的路径倒序,记作路径V;在步 骤b中由序列模式构建的前缀树A上,从根节点开始,按照路径s'搜索,直到路径s'搜索 结束;将当前在前缀树上的位置保存到变量Γ,接着转到步骤h; 步骤g,如果上一轮预测结果是由基于步骤h前缀树结构的模型产生,则检查用户的当 前位置是否是上一轮预测时变量Γ中保存的前缀树A的节点的子节点,如果是,将用户当 前位置存入变量Γ,然后转到步骤h,如果不是,则转到步骤f; 步骤h,遍历上一步骤变量Γ中保存的前缀树A的节点的子节点,将支持度最大的子节 点作为运动目标下一位置的预测结果;如果支持度最大的子节点不唯一,则按照步骤d中 流行度的定义,将流行度最大的地点作为预测结果,转到步骤j,如果上一步骤变量Γ保存 的节点没有子节点,则转到步骤i; 步骤i,用步骤d中的模型来预测运动目标的下一位置,接着转到步骤j; 步骤j,输出预测结果,完成此轮预测,转到步骤e,进行下一轮预测。
3. 根据权利要求2所述的方法,其特征在于,步骤a中设定支持度阈值为ξ,则挖掘 得到的序列模式表示为:Ω =bI%y</ eAd,其中Sq表示历史 空间轨迹集合S中的第q条空间轨迹,qe{1,2,...,m},m为历史空间轨迹集合S中包 含的轨迹的数量,αρ为挖掘得到的序列模式集合Ω中第p个序列模式,包含η个地点 Il1, 12,· ··,Ir,· ··,IJ,其中Ir表示序列模式的第r个地点,r取值1?n,Support(αρ)为 序列模式αρ的支持度简化记为Supportp,并与序列模式αρ =ΙΛ,12, . . .,ln}合并在一起 表示,记作αρ =Il1, 12,· · ·,ln:supportp}。
4. 根据权利要求3所述的方法,其特征在于,步骤b中,利用得到的序列模式集合构建 成一棵前缀树A,序列模式αp包含的地点I1, 12, ...,In构成前缀树A的边,对应的支持度 Supportp则记录在路径I1I2...In所对应的节点中。
5. 根据权利要求4所述的方法,其特征在于,步骤c中,根据得到的所有序列模式Cip 倒序,记为%,并构建前缀树B, 包含的地点ln,Ilri,...,I1构成前缀树B的边,而对应的 支持度Supportp则记录在路径ln,Ilri,. . .,I1所对应的节点中。
6. 根据权利要求5所述的方法,其特征在于,步骤d,预测下一位置的过程为:假设用户 当前已经访问过j个地点,轨迹为Il1,12, ...,lj},则用户当前地点为Ij;将距离地点Ij范 围D内所有的地点作为候选地点,记为集合ΙΛ,...,lk,...,IJ,其中Ik代表集合中的第K 个地点,K为候选地点集合中地点个数;依据候选地点Ik对应的流行度#(lk),选择出最流 行的地点&"乍为运动目标的下一位置的预测结果,预测模型表示为:ζ+1 =argmax^ {#(4)丨且满足条件Qj,lk)〈D, 其中士表示用户当前所在的地点为用户轨迹序列中的第j个地点,用户下一个访问地 点记为lj+1,对下一个地点的预测记为€.+1,d(lj,Ik)为距离函数,表示地点Ij与地点Ik之间 的距离,D为距离阈值,所有与当前地点L距离小于阈值D的地点Ik都是候选地点;利用长 度为1的序列模式ak = {lk:# (Ik)}计算候选地点Ik的流行度,序列模式中的支持度# (Ik) 表示了地点Ik在历史空间轨迹集合中被用户访问的次数,将支持度#(lk)作为地点流行度 的衡量指标;函数3找11^!£{?(1)}返回使得?(1)取得最大值的1。
7. 根据权利要求6所述的方法,其特征在于,步骤f包括:将运动目标当前的轨迹S =I1, 12,...,Ij倒序,得到轨迹歹=ZyJy?乂,在步骤c中由倒序的序列模式所构建的前 缀树B上,从根节点开始,依照轨迹s包含的地点向子节点搜索,直到无法继续搜索,此 时到达子节点Ii ;从根节点到子节点的路径为:lp1m,...,Ii,将其倒序,得到轨迹V= Ii,li+1,...,Ip在步骤b中由频繁序列构建的前缀树A上,从根节点开始,按照轨迹s'的路 径搜索,直到搜索结束,当前在前缀树A上的位置所对应的节点为L,将其存入变量Γ。
8. 根据权利要求7所述的方法,其特征在于,步骤h包括:遍历上一步骤变量Γ保存的 前缀树A上节点的子节点,将支持度最大的子节点作为运动目标下一位置的预测结果,即: Ji,=Urgmax, [supporti/,...,/' Ji)) 其中support(Ii,Γ,Ik)是节点Ik中所记录的地点序列Ii,Γ,Ik的支持度; 如果支持度最大的子节点不唯一,则按照对地点的流行度的定义,输出流行度最大的 地点,即: lj+x =QrgmaX/{#(/)),/ 其中,L为支持度最大的子节点的集合,即: L^argmiiX/ {supporl(/.,4)} 1为集合L中的子节点,#(1)为地点1的流行度。
【文档编号】G06F17/30GK104462190SQ201410577802
【公开日】2015年3月25日 申请日期:2014年10月24日 优先权日:2014年10月24日
【发明者】蒋锴, 傅军, 孔俊俊, 何加浪, 程序, 李伟超 申请人:中国电子科技集团公司第二十八研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1