CN104462190B - 一种基于海量空间轨迹挖掘的在线的位置预测方法 - Google Patents
一种基于海量空间轨迹挖掘的在线的位置预测方法 Download PDFInfo
- Publication number
- CN104462190B CN104462190B CN201410577802.9A CN201410577802A CN104462190B CN 104462190 B CN104462190 B CN 104462190B CN 201410577802 A CN201410577802 A CN 201410577802A CN 104462190 B CN104462190 B CN 104462190B
- Authority
- CN
- China
- Prior art keywords
- sequence
- prefix tree
- location
- prediction
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Navigation (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种基于海量空间轨迹挖掘的在线的位置预测方法,属于空间轨迹挖掘领域。本发明提出的方法首先从海量空间轨迹中挖掘频繁序列模式,接着使用序列模式构建基于前缀树结构的模型,然后构建基于距离和流行度的模型用来解决零频率问题,最后利用构建的预测模型,根据运动目标当前轨迹信息来预测运动目标的下一位置。该预测方法的准确率相对于现有方法有较大提升,而且计算复杂度低,能对运动目标的位置进行实时预测,并且仅依赖于运动目标的位置信息,因此可以广泛应用于智能交通、基于地理位置的服务等多个领域。
Description
技术领域
本发明涉及运动目标的位置预测方法,特别涉及一种基于海量空间轨迹挖掘的在线的位置预测方法。
背景技术
近年来,随着移动互联网的发展和移动智能终端的普及,定位技术已经被广泛应用。例如作为智能交通系统的基础设施,许多城市的出租车和公交车装配了GPS设备;在微博、微信、大众点评等移动互联网应用中,用户当前的位置也常常作为最基础的信息,被记录和分享。这些由车辆和用户等运动目标所产生的海量空间轨迹信息,使得对运动目标的行为模式进行分析成为可能。其中,对运动目标的位置进行预测是一项重要的研究任务,具有重要的理论意义和实际应用价值。例如对车辆的位置进行预测可以有助于智能交通系统进行道路流量预测,执行合理的流量疏导策略;对用户的位置进行预测可以向用户推荐与地点相关的商品和服务。
现有的基于空间轨迹挖掘的位置预测方法可以分为两大类:第一大类是使用多种上下文信息的方法。此类方法的研究对象通常是基于地理位置的社交网络服务中的数据。此类方法通过对基于地理位置的社交网络中的文本标签、用户评论、照片等多种上下文信息进行挖掘,获得关于地点和用户的语义层次的理解,再结合位置信息,建立预测模型。此类方法通过综合多种上下文信息可以提高预测的准确率,但是模型的计算复杂度较大,难以满足某些对实时性要求高的应用。另外,此类方法使用了多种上下文信息,所以普适性不强。第二大类方法是仅使用位置信息的方法,应用范围具有较强的普适性。本发明提出的方法属于此类方法,因此下面对此类方法进行进一步介绍。
仅使用位置信息的预测方法大致可以分为两类。一类是模型驱动的方法。即对用户的行为建立概率模型,将用户兴趣、地点距离、地点流行度等影响用户运动的因素作为变量,加入到模型中。利用数据对模型进行训练,训练完成的模型就可以用于位置预测。另一类是数据驱动的方法。即利用海量的历史轨迹数据,通过挖掘出的运动模式来进行位置预测,而不对用户的运动因素做任何假设。
模型驱动的方法由于对用户运动的内在因素进行建模,所以此类方法的可解释性较强,但是此类方法需要当前用户的较多历史轨迹信息才能进行建模,而且计算复杂度较高,所以存在一定的局限性。数据驱动的方法不对用户运动的内在因素进行假设,所以可解释性较弱,而且预测的准确率受到训练数据规模的影响。但是数据驱动的方法在构建完模型之后,对用户位置进行预测的效率较高,可以满足某些应用场合的实时性的要求。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于海量空间轨迹挖掘的在线的位置预测方法。
为了解决上述技术问题,本发明公开了一种基于海量空间轨迹挖掘的在线的位置预测方法,包括以下四个步骤:
频繁序列挖掘;
构建基于前缀树结构的模型;
构建基于距离和流行度的模型;
预测运动目标下一位置。
本发明中,所述的频繁序列挖掘包括以下步骤:
步骤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上,从根节点开始,依照运动轨迹包含的地点向子节点搜索,直到无法继续搜索,此时到达子节点li;将根节点到子节点li的路径倒序,记作路径s′;在步骤b中由序列模式构建的前缀树A上,从根节点开始,按照路径s′搜索,直到路径s′搜索结束;将当前在前缀树上的位置保存到变量l*,接着转到步骤h;
步骤g,如果上一轮预测结果是由基于步骤h前缀树结构的模型产生,则检查用户的当前位置是否是上一轮预测时变量l*中保存的前缀树A的节点的子节点,如果是,将用户当前位置存入变量l*,然后转到步骤h,如果不是,则转到步骤f;
步骤h,遍历上一步骤变量l*中保存的前缀树A的节点的子节点,将支持度最大的子节点作为运动目标下一位置的预测结果;如果支持度最大的子节点不唯一,则按照步骤d中流行度的定义,将流行度最大的地点作为预测结果,转到步骤j,如果上一步骤变量l*保存的节点没有子节点,则转到步骤i;
步骤i,用步骤d中的模型来预测运动目标的下一位置,接着转到步骤j;
步骤j,输出预测结果,完成此轮预测,转到步骤e,进行下一轮预测。
本发明中,步骤a中设定支持度阈值为ξ,则挖掘得到的序列模式表示为:
其中sq表示历史空间轨迹集合S中的第q条空间轨迹,q∈{1,2,...,m},m为历史空间轨迹集合S中包含的轨迹的数量,αp为挖掘得到的序列模式集合Ω中第p个序列模式,包含n个地点{l1,l2,...,lr,...,ln},其中lr表示序列模式的第r个地点,r取值1~n,Support(αp)为序列模式αp的支持度简化记为supportp,并与序列模式αp={l1,l2,...,ln}合并在一起表示,记作αp={l1,l2,...,ln:supportp}。
本发明中,步骤b中,利用得到的序列模式集合构建成一棵前缀树A,序列模式αp包含的地点l1,l2,...,ln构成前缀树A的边,对应的支持度supportp则记录在路径l1l2...ln所对应的节点中。
本发明中,步骤c中,根据得到的所有序列模式αp倒序,记为并构建前缀树B,包含的地点ln,ln-1,...,l1构成前缀树B的边,而对应的支持度supportp则记录在路径ln,ln-1,...,l1所对应的节点中。
本发明中,步骤d,预测下一位置的过程为:假设用户当前已经访问过j个地点,轨迹为{l1,l2,...,lj},则用户当前地点为lj;将距离地点lj范围D内所有的地点作为候选地点,记为集合{l1,...,lk,...,lK},其中lk代表集合中的第K个地点,K为候选地点集合中地点个数;依据候选地点lk对应的流行度#(lk),选择出最流行的地点作为运动目标的下一位置的预测结果,预测模型表示为:
且满足条件(lj,lk)<D,
其中,lj表示用户当前所在的地点为用户轨迹序列中的第j个地点,用户下一个访问地点记为lj+1,对下一个地点的预测记为d(lj,lk)为距离函数,表示地点lj与地点lk之间的距离,D为距离阈值,所有与当前地点lj距离小于阈值D的地点lk都是候选地点;利用长度为1的序列模式αk={lk:#(lk)}计算候选地点lk的流行度,序列模式中的支持度#(lk)表示了地点lk在历史空间轨迹集合中被用户访问的次数,将支持度#(lk)作为地点流行度的衡量指标;函数argmaxx{F(x)}返回使得F(x)取得最大值的x。
本发明中,步骤f包括:将运动目标当前的轨迹s=l1,l2,...,lj倒序,得到轨迹在步骤c中由倒序的序列模式所构建的前缀树B上,从根节点开始,依照轨迹包含的地点向子节点搜索,直到无法继续搜索,此时到达子节点li;从根节点到子节点的路径为:lj,lj-1,...,li,将其倒序,得到轨迹s′=li,li+1,...,lj,在步骤b中由频繁序列构建的前缀树A上,从根节点开始,按照轨迹s′的路径搜索,直到搜索结束,当前在前缀树A上的位置所对应的节点为lj,将其存入变量l*。
本发明中,步骤h包括:遍历上一步骤变量l*保存的前缀树A上节点的子节点,将支持度最大的子节点作为运动目标下一位置的预测结果,即:
其中support(li,...,l*,lk)是节点lk中所记录的地点序列li,...,l*,lk的支持度;
如果支持度最大的子节点不唯一,则按照对地点的流行度的定义,输出流行度最大的地点,即:
其中,L为支持度最大的子节点的集合,即:
l为集合L中的子节点,#(l)为地点l的流行度。
本发明的有益效果在于四个方面:第一,该方法是在线(online)的。该方法在获得了运动目标最新的位置后,都会动态调整模型,从而预测运动目标的下一个位置,如此循环往复。第二,该方法能充分利用运动目标当前的历史轨迹信息,提高预测的准确率。序列预测的最常用的方法是马尔科夫模型,马尔科夫模型的阶数大的时候,模型的复杂度高,容易产生训练数据不足而导致模型偏差;而模型的阶数小的时候,模型过于简单,没有充分挖掘数据内在的结构和依赖关系,导致预测准确率低。而本方法在步骤f中,相当于动态选择合适的阶数。第三,通过建立基于距离和地点流行度的模型(步骤d),该方法可以应对数据稀疏导致的“零频率”问题。第四,该方法简单高效,适用范围广泛。该方法将海量空间轨迹挖掘得到的序列模式构建前缀树,并在每一轮预测中都保留了前缀树上对应的位置用作下一轮预测。此外还在基于流行度和距离的模型中建立了空间索引。因此该预测方法的最好时间复杂度为O(1)。由于该方法仅使用了运动目标的位置信息,所以该方法适用范围很广,例如可以直接应用于现有的各类基于地理位置的服务(LBS)应用。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1预测模型总体框图。
图2在线的位置预测的流程图。
图3实验数据分布图。
图4利用频繁序列模式及支持度建立前缀树的示意图。
图5利用倒序的频繁序列模式及支持度建立前缀树的示意图。
图6利用地点距离和流行度建立模型的示意图。
具体实施方式
本发明的目的在于通过挖掘海量的空间轨迹,构建预测模型,然后根据运动目标的当前的位置信息,预测运动目标的下一位置,并在每一轮预测时保留相关信息,从而提高下一轮预测的效率。
为达到上述目的,本发明提供一种基于海量空间轨迹挖掘的在线的位置预测方法,该方法包括频繁序列挖掘、构建基于前缀树结构的模型、构建基于距离和流行度的模型以及预测运动目标下一位置四大步骤。
所述的频繁序列挖掘步骤为:
步骤a,对运动目标的历史空间轨迹集合S={s1,s2,...,sm}使用频繁序列挖掘算法,挖掘出所有支持度大于阈值ξ的频繁序列,记为:集合Ω中的每个频繁序列模式,可以表示为αp={l1,l2,...,lr,...,ln:supportp}。其中lr表示序列包含的第r个地点,supportp表示αp的支持度。
所述的构建基于前缀树结构的模型步骤为:
步骤b,利用步骤a中得到的序列模式集合A中所有的αp构建成一棵前缀树。αp包含的地点l1,l2,...,ln构成前缀树的边,而对应的支持度supportp则记录在路径"l1l2...ln"所对应的节点中。
步骤c,将步骤a中得到的序列模式集合A中的所有αp倒序,记为并构建前缀树。包含的地点ln,ln-1,...,l1构成前缀树的边,而对应的支持度supportp则记录在路径"ln,ln-1,...,l1"所对应的节点中。
所述的构建基于距离和流行度模型的步骤为:
步骤d,结合距离因素和地点流行度因素,可以建立如下的模型:
#(lk)为步骤a得到的序列模式集合A中,长度为1的αk所对应的支持度,即αk={lk:#(lk)},它代表了地点lk的流行度。该模型根据运动目标当前地点lj,将距离范围D内的最流行的地点作为运动目标的下一位置的预测结果。在模型中,对地点的空间坐标建立空间索引,以提高搜索周围地点的效率。
建立该模型的意义在于:当运动目标的运动轨迹超出了从海量空间轨迹中挖掘出来的序列模式的范围时,上一步骤构建的基于前缀树结构的模型就无法对运动目标的位置做出预测,这种由训练数据的稀疏性带来的问题被称为“零频率”问题。此时基于距离和地点流行度的模型就可以作为补充,对运动目标的位置做出预测。
所述的预测运动目标下一位置的步骤为:
步骤e,接收用户当前位置信息的输入。如果是首轮预测或者上一轮预测结果不是由基于前缀树结构的模型产生,则转到步骤f,否则转到步骤g。
步骤f,将运动目标当前的运动轨迹记为s=l1,l2,...,lj,将s倒序,得到在步骤c中由倒序的序列模式所构建的前缀树上,从根节点开始,依照包含的地点向子节点搜索,直到无法继续搜索,此时到达子节点li。从根节点到子节点的路径为:lj,lj-1,...,li,将其倒序,得到s′=li,li+1,...,lj。在步骤b中由频繁序列构建的前缀树上,从根节点开始,按照s′的路径搜索,直到搜索结束,当前在前缀树上的位置所对应的节点应该为lj。保留当前在前缀树上的位置,接着转到步骤h。
步骤g,如果上一轮预测结果是由基于前缀树结构的模型产生,则检查用户的当前位置是否是上一轮预测时在前缀树上保留位置的子节点。如果是,将前缀树上保留的位置移动到该子节点,然后转到步骤h。如果不是,则转到步骤f。
步骤h,将上一步骤前缀树上保留的位置对应的节点记为l*,将l*的子节点中支持度最大的子节点L作为运动目标下一位置的预测结果。即:
support(li,...,l*,lk)是节点lk中所记录的地点序列li,...,l*,lk的支持度。
如果支持度最大的子节点不唯一,则按照步骤d中流行度的定义,输出流行度最大的地点。转到步骤j。如果找不到子节点,则转到步骤i。
步骤i,用步骤d中的模型来预测运动目标的下一位置。接着转到步骤j。
步骤j,输出预测结果,完成此轮预测。转到步骤e,进行下一轮预测。
本发明提出的方法首先从海量空间轨迹中挖掘频繁序列模式,接着使用序列模式构建基于前缀树结构的模型,然后构建基于距离和流行度的模型用来解决零频率问题,最后利用构建的预测模型,根据运动目标当前轨迹信息来预测运动目标的下一位置。该预测方法的准确率相对于现有方法有较大提升,而且计算复杂度低,能对运动目标的位置进行实时预测,并且仅依赖于运动目标的位置信息,因此可以广泛应用于智能交通、基于地理位置的服务等多个领域。
实施例1
如图1所示,本实施例提出的基于海量空间轨迹挖掘的在线的位置预测方法包括频繁序列挖掘、构建基于前缀树结构的模型、构建基于距离和流行度的模型以及预测运动目标下一位置四大步骤。其中前三大步骤涉及了预测模型的构建,第四大步骤涉及预测模型的使用,即:根据运动目标当前的位置在线地预测目标的下一位置。由于涉及到比较复杂的逻辑,所以第四大步骤的具体流程单独绘制,如图2所示。
在对本实施例的运算过程作详细说明之前,对本实例进行一定的描述。本实例所涉及的数据,来自海量地理位置数据挖掘领域常用的数据来源Panoramio.com。实现抓取这些数据的爬虫设计及数据的预处理方法,不在本实施例范围之内。
本实施例的数据的获取以及预处理方法如下:
从带有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所示。
将用户的地点序列集合记为S={s1,s2,...,sm},集合中的每个元素si代表某个用户的一条地点序列:si=li1,li2,...,lin。本实施例提出的方法的目的是通过挖掘S,构建预测模型,根据用户当前的地点序列{l1,l2,...,lj}预测用户将要前往的下一个地点当用户实际前往地点lj+1之后,将地点lj+1的位置信息输入预测模型,获取用下一个位置的预测结果如此往复进行下去。
下面对本实施例提出方法的运算过程作详细说明:
所述的频繁序列挖掘流程为:
步骤101,使用频繁序列挖掘算法PrefixSpan并设定支持度阈值为ξ,从集合S中挖掘出所有满足条件的频繁序列,记为:集合Ω中的每个频繁序列模式,可以表示为αp={l1,l2,...,lr,...,ln:supportp}。其中lr表示序列包含的第r个地点,supportp表示αp的支持度。
步骤102,将频繁序列集合Ω中长度为1的序列模式与其它序列模式分开。长度为1的序列模式代表单个地点,模式的支持度代表了地点的流行度。其余长度大于1的序列模式将在后续的步骤中用于构建前缀树模型。
所述的构建基于前缀树结构的模型步骤为:
步骤201,将步骤102中得到的长度大于1的序列模式构建成一棵前缀树A。构建前缀树A的方法是:每个序列模式αi中包含的地点l1,l2,...,ln构成前缀树A的边,而序列模式αp的支持度supportp则记录在路径"l1l2...ln"所对应的节点中。
为了清晰地展示步骤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所示。前缀树上从根节点到某个子节点的路径对应一个序列模式,序列模式的支持度存储在子节点中。
步骤202,将步骤102中得到的长度大于1的每个序列模式αp倒序,记为并构建前缀树B。包含的地点ln,ln-1,...,l1构成前缀树B的边,而对应的支持度supportp则记录在路径"ln,ln-1,...,l1"所对应的节点中。
为了清晰地展示步骤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所示的前缀树。前缀树上从根节点到某个子节点的路径对应一个序列模式的倒序,序列模式的支持度存储在子节点中。
所述的构建基于距离和流行度模型的步骤为:
步骤301,使用KD树对地点的位置建立空间索引,这样可以加速搜索当前地点周围地点的过程。
步骤302,将步骤102中得到的地点的流行度按照从大到小的方式排序,记录每个地点的序号。流行度最大的地点记为1,流行度次之的记为2,依次类推。地点和序号记录在字典结构中,字典的每个键值对为<lt,ot>,ot为地点lt的序号。
图2展示了根据用户当前的位置在线地预测下一位置的流程,下面结合图2,对预测方法进行详细描述:
步骤401,接收用户当前位置信息的输入。如果上一轮预测结果不是由基于前缀树结构的模型产生(也包含开始预测时,首次输入运动目标的轨迹的情况),则转到步骤402,否则转到步骤403。
步骤402,将用户当前的轨迹s=l1,l2,...,lj逆序,得到然后在步骤202中由逆序的序列模式所构建的前缀树B上从根节点开始搜索,直到无法继续搜索,此时到达子节点li。根节点到子节点的路径为:lj,lj-1,...,li,将其倒序,得到s′=li,li+1,...,lj。接着将s′在步骤201中由序列模式所构建的前缀树A上从根节点开始搜索,直到无法继续搜索,将前缀树A上的当前位置保存在变量l*中,接着转到步骤404。
步骤403,如果上一轮预测结果是由基于前缀树结构的模型产生,则检查用户的当前位置是否是上一轮预测时变量l*所保存的前缀树A上节点的子节点。如果是,将用户当前位置存入变量l*,然后转到步骤404,否则转到步骤402。
步骤404,选择变量l*所保存的前缀树A上节点的子节点中支持度最大的节点,作为用户的下一位置的预测结果输出。如果支持度最大的子节点不唯一,则输出流行度最大的子节点。转到步骤406。如果找不到子节点,则转到步骤405。
步骤405,搜索用户当前位置距离D内的地点,得到候选地点集合L。利用步骤302中的键值对<lt,ot>,遍历L中的所有地点,把最小的ot所对应的地点lt作为预测结果输出,转到步骤406。
步骤406,输出预测结果,完成此轮预测。转到步骤401,进行下一轮预测。
为了清晰地展示步骤401—406描述的根据运动目标当前的位置在线地预测目标的下一位置的方法,下面结合图4、图5和图6给出一个范例。
首轮预测:用户向预测模型输入当前的轨迹s=EBC,从步骤401转到步骤402。将s倒序得到在图5由序列模式的逆序所构成前缀树上从根节点开始搜索,得到路径"CB"就无法继续向下搜索,将其倒序得到s′=BC。然后将s′在图4所示的前缀树上搜索,得到路径“BC”所对应的节点,保留该节点,转到步骤404。发现当前节点不含有子节点,转到步骤405。如图6所示,用户当前位置为‘C’,在范围D内有两个地点‘A’和‘D’,选择流行度大的地点‘D’作为预测结果输出。转到步骤406,完成此轮预测。转到步骤401,进行下一轮预测。
第二轮预测:用户当前到达的位置为‘A’。由于上一轮预测结果不是由基于前缀树的模型产生,所以转到步骤402。此时s=EBCA,类似于首轮的方法,最终保留在图4的根节点下的‘A’节点对应的位置,跳转到步骤404。发现有两个子节点‘B’和‘D’,将支持度大的地点‘D’作为预测结果输出。转到步骤406,完成此轮预测。转到步骤401,进行下一轮预测。
第三轮预测:用户当前到达的位置为‘B’。上一轮预测是基于前缀树模型产生的,所以转到步骤403。上一轮在图4的前缀树上保留的位置是根节点下的‘A’节点对应的位置,而‘B’是该位置的子节点,所以将前缀树上保留的位置移动到‘B’,然后转到步骤404。此时子节点为‘C’和‘E’,支持度均为4,所以考虑单个地点的流行度。由于E的流行度为5,C的流行度为4,所以把E作为预测结果输出。转到步骤406,完成此轮预测。转到步骤401,进行下一轮预测。
如此循环地将用户当前位置信息输入预测模型,获得下一位置的预测结果。
为了检验本实施例提出的方法的有效性,本实施例从地理位置信息数据挖掘相关的研究领域常用数据来源Panoramio.com上,通过编写网络爬虫获得了由1,267,123位用户上传的14,679,221个GPS标签,并进行预处理得到用户的旅游过程中产生的地点序列。然后将地点序列随机分成两份,分别作为训练数据集和测试数据集。然后使用训练数据集按照本发明提出的方法构建预测模型,接着将测试数据集中的序列依次输入预测模型,产生预测结果,并将预测结果与实际结果进行对比。对比结果采用平均准确率均值(Mean AveragePrecision,MAP)作为评价指标,如表1所示。
实验结果显示本实施例提出的方法所获得的预测准确率高于传统的序列预测算法。需要强调的是,实验结果中本实施例提出的方法共测试了两类频繁序列。一类是一般意义的频繁序列,即步骤a挖掘的序列模式αp中包含的地点l1,l2,...,ln在原始序列sq,sq∈S中可以不连续,另一类限定频繁序列为原始序列的子串,即要求序列模式αp中包含的地点l1,l2,...,ln在原始序列sq,sq∈S中是连续的。这两类频繁序列都属于步骤a中描述的挖掘频繁序列,当然,挖掘得到的频繁序列也可以是上述两类频繁序列的变形、修改和等效。
表1 预测方法的准确率比较
以上对本发明的描述是说明性的,而非限制性的,本专业技术人员理解,在权利要求限定的精神与范围之内可对其进行许多修改、变化或等效。例如该预测方法所涉及的位置信息并不限定于地理空间位置,还可以用于网络空间,网站中的页面可以被视为地点,而用户在网站中页面的点击跳转可以被视为在地点之间的运动。频繁序列挖掘的方法并不限于PrefixSpan,还可以使用Apriori、GSP、FreeSpan等算法。在建立前缀树结构时,前缀树描述的是逻辑上的层次结构,本发明提出的方法并不限定在实施时前缀树的实现一定使用树的数据结构,还可以使用数组或者链表等其它数据结构实现。在建立基于地点距离和流行度模型的时候,空间索引并不限于KD树,还可以使用基于网格的索引或者R树等其它空间索引方法。包括但不限于以上描述的各类变形、修改和等效都将落入本发明的保护范围内。
本发明提供了一种基于海量空间轨迹挖掘的在线的位置预测方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (1)
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上,从根节点开始,依照运动轨迹包含的地点向子节点搜索,直到无法继续搜索,此时到达子节点li;将根节点到子节点li的路径倒序,记作路径s′;在步骤b中由序列模式构建的前缀树A上,从根节点开始,按照路径s′搜索,直到路径s′搜索结束;将当前在前缀树上的位置保存到变量l*,接着转到步骤h;
步骤g,如果上一轮预测结果是由基于步骤h前缀树结构的模型产生,则检查用户的当前位置是否是上一轮预测时变量l*中保存的前缀树A的节点的子节点,如果是,将用户当前位置存入变量l*,然后转到步骤h,如果不是,则转到步骤f;
步骤h,遍历上一步骤变量l*中保存的前缀树A的节点的子节点,将支持度最大的子节点作为运动目标下一位置的预测结果;如果支持度最大的子节点不唯一,则按照步骤d中流行度的定义,将流行度最大的地点作为预测结果,转到步骤j,如果上一步骤变量l*保存的节点没有子节点,则转到步骤i;
步骤i,用步骤d中的模型来预测运动目标的下一位置,接着转到步骤j;
步骤j,输出预测结果,完成此轮预测,转到步骤e,进行下一轮预测;
步骤a中设定支持度阈值为ξ,则挖掘得到的序列模式表示为:
其中sq表示历史空间轨迹集合S中的第q条空间轨迹,q∈{1,2,...,m},m为历史空间轨迹集合S中包含的轨迹的数量,αp为挖掘得到的序列模式集合Ω中第p个序列模式,包含n个地点{l1,l2,...,lr,...,ln},其中lr表示序列模式的第r个地点,r取值1~n,Support(αp)为序列模式αp的支持度简化记为supportp,并与序列模式αp={l1,l2,...,ln}合并在一起表示,记作αp={l1,l2,...,ln:supportp};
步骤b中,利用得到的序列模式集合构建成一棵前缀树A,序列模式αp包含的地点l1,l2,...,ln构成前缀树A的边,对应的支持度supportp则记录在路径l1l2...ln所对应的节点中;
步骤c中,根据得到的所有序列模式αp倒序,记为并构建前缀树B,包含的地点ln,ln-1,...,l1构成前缀树B的边,而对应的支持度supportp则记录在路径ln,ln-1,...,l1所对应的节点中;
步骤d,预测下一位置的过程为:假设用户当前已经访问过j个地点,轨迹为{l1,l2,...,lj},则用户当前地点为lj;将距离地点lj范围D内所有的地点作为候选地点,记为集合{l1,...,lk,...,lK},其中lk代表集合中的第K个地点,K为候选地点集合中地点个数;依据候选地点lk对应的流行度#(lk),选择出最流行的地点作为运动目标的下一位置的预测结果,预测模型表示为:
且满足条件(lj,lk)<D,
其中,lj表示用户当前所在的地点为用户轨迹序列中的第j个地点,用户下一个访问地点记为lj+1,对下一个地点的预测记为d(lj,lk)为距离函数,表示地点lj与地点lk之间的距离,D为距离阈值,所有与当前地点lj距离小于阈值D的地点lk都是候选地点;利用长度为1的序列模式αk={lk:#(lk)}计算候选地点lk的流行度,序列模式中的支持度#(lk)表示了地点lk在历史空间轨迹集合中被用户访问的次数,将支持度#(lk)作为地点流行度的衡量指标;函数argmaxx{F(x)}返回使得F(x)取得最大值的x;
步骤f包括:将运动目标当前的轨迹s=l1,l2,...,lj倒序,得到轨迹在步骤c中由倒序的序列模式所构建的前缀树B上,从根节点开始,依照轨迹包含的地点向子节点搜索,直到无法继续搜索,此时到达子节点li;从根节点到子节点的路径为:lj,lj-1,...,li,将其倒序,得到轨迹s′=li,li+1,...,lj,在步骤b中由频繁序列构建的前缀树A上,从根节点开始,按照轨迹s′的路径搜索,直到搜索结束,当前在前缀树A上的位置所对应的节点为lj,将其存入变量l*;
步骤h包括:遍历上一步骤变量l*保存的前缀树A上节点的子节点,将支持度最大的子节点作为运动目标下一位置的预测结果,即:
<mrow>
<msub>
<mover>
<mi>l</mi>
<mo>~</mo>
</mover>
<mrow>
<mi>j</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msub>
<mo>=</mo>
<msub>
<mi>argmax</mi>
<msub>
<mi>l</mi>
<mi>k</mi>
</msub>
</msub>
<mo>{</mo>
<mi>sup</mi>
<mi>p</mi>
<mi>o</mi>
<mi>r</mi>
<mi>t</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>l</mi>
<mi>i</mi>
</msub>
<mo>,</mo>
<mn>...</mn>
<mo>,</mo>
<msup>
<mi>l</mi>
<mo>*</mo>
</msup>
<mo>,</mo>
<msub>
<mi>l</mi>
<mi>k</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>}</mo>
<mo>,</mo>
</mrow>
其中support(li,...,l*,lk)是节点lk中所记录的地点序列li,...,l*,lk的支持度;
如果支持度最大的子节点不唯一,则按照对地点的流行度的定义,输出流行度最大的地点,即:
<mrow>
<msub>
<mover>
<mi>l</mi>
<mo>~</mo>
</mover>
<mrow>
<mi>j</mi>
<mo>+</mo>
<mn>1</mn>
</mrow>
</msub>
<mo>=</mo>
<msub>
<mi>argmax</mi>
<mi>l</mi>
</msub>
<mo>{</mo>
<mo>#</mo>
<mrow>
<mo>(</mo>
<mi>l</mi>
<mo>)</mo>
</mrow>
<mo>}</mo>
<mo>,</mo>
<mi>l</mi>
<mo>&Element;</mo>
<mi>L</mi>
<mo>,</mo>
</mrow>
其中,L为支持度最大的子节点的集合,即:
<mrow>
<mi>L</mi>
<mo>=</mo>
<msub>
<mi>argmax</mi>
<msub>
<mi>l</mi>
<mi>k</mi>
</msub>
</msub>
<mo>{</mo>
<mi>sup</mi>
<mi>p</mi>
<mi>o</mi>
<mi>r</mi>
<mi>t</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>l</mi>
<mi>i</mi>
</msub>
<mo>,</mo>
<mn>...</mn>
<mo>,</mo>
<msup>
<mi>l</mi>
<mo>*</mo>
</msup>
<mo>,</mo>
<msub>
<mi>l</mi>
<mi>k</mi>
</msub>
<mo>)</mo>
</mrow>
<mo>}</mo>
<mo>,</mo>
</mrow>
l为集合L中的子节点,#(l)为地点l的流行度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410577802.9A CN104462190B (zh) | 2014-10-24 | 2014-10-24 | 一种基于海量空间轨迹挖掘的在线的位置预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410577802.9A CN104462190B (zh) | 2014-10-24 | 2014-10-24 | 一种基于海量空间轨迹挖掘的在线的位置预测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104462190A CN104462190A (zh) | 2015-03-25 |
CN104462190B true CN104462190B (zh) | 2018-01-05 |
Family
ID=52908226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410577802.9A Active CN104462190B (zh) | 2014-10-24 | 2014-10-24 | 一种基于海量空间轨迹挖掘的在线的位置预测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104462190B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104952248B (zh) * | 2015-06-08 | 2017-09-12 | 浙江大学 | 一种基于欧氏空间的车辆汇聚预测方法 |
CN105224687B (zh) * | 2015-10-30 | 2018-10-19 | 宁波大学 | 一种低消耗的Apriori方法 |
CN105224688B (zh) * | 2015-10-30 | 2018-10-19 | 宁波大学 | 一种适用于挖掘移动节点移动轨迹关联规则的Apriori方法 |
CN105592415B (zh) * | 2015-11-04 | 2019-06-07 | 宁波大学 | 基于移动预测的低消耗FMIPv6切换方法 |
CN107195178B (zh) * | 2016-03-14 | 2020-03-31 | 滴滴(中国)科技有限公司 | 一种确定车辆行驶路径的方法及装置 |
CN106528614B (zh) * | 2016-09-29 | 2019-03-08 | 南京邮电大学 | 一种移动社交网络中用户的地理位置预测方法 |
CN108133611A (zh) * | 2016-12-01 | 2018-06-08 | 中兴通讯股份有限公司 | 车辆行驶轨迹监测方法及系统 |
CN106779218B (zh) * | 2016-12-16 | 2020-10-27 | 深圳达实软件有限公司 | 一种人员活动轨迹的预测方法 |
CN107194011A (zh) * | 2017-06-23 | 2017-09-22 | 重庆邮电大学 | 一种基于社交网络的位置预测系统及方法 |
CN107273530B (zh) * | 2017-06-28 | 2021-02-12 | 南京理工大学 | 基于互联网信息的重要船只目标动态监测方法 |
CN107657007B (zh) * | 2017-09-22 | 2020-12-22 | Oppo广东移动通信有限公司 | 信息推送方法、装置、终端、可读存储介质及系统 |
CN109558961B (zh) * | 2017-09-25 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 确定位置信息的方法和系统、存储介质、处理器以及装置 |
CN107609710A (zh) * | 2017-09-26 | 2018-01-19 | 重庆市智权之路科技有限公司 | 基于大数据平台行为轨迹进行智能医疗设备运行路线优选规划方法 |
CN107704955A (zh) * | 2017-09-26 | 2018-02-16 | 重庆市智权之路科技有限公司 | 云端行进轨迹数据判断安全形势路径的工作方法 |
CN107862868B (zh) * | 2017-11-09 | 2019-08-20 | 泰华智慧产业集团股份有限公司 | 一种基于大数据进行车辆轨迹预测的方法 |
CN108268597B (zh) * | 2017-12-18 | 2020-10-09 | 中国电子科技集团公司第二十八研究所 | 一种动目标活动概率图谱构建及行为意图识别方法 |
CN109948821A (zh) * | 2017-12-21 | 2019-06-28 | 知谷(上海)网络科技有限公司 | 群体的移动模式的确定方法和预测群体目的地的方法 |
CN109992726A (zh) * | 2018-10-17 | 2019-07-09 | 招商银行股份有限公司 | 位置预测方法、装置及可读存储介质 |
CN109462821B (zh) * | 2018-11-19 | 2021-07-30 | 东软集团股份有限公司 | 预测位置的方法、装置、存储介质及电子设备 |
CN110475208B (zh) * | 2019-08-06 | 2021-07-16 | 上海尚往网络科技有限公司 | 用于确定用户设备行程轨迹的方法与设备 |
CN111291276B (zh) * | 2020-01-13 | 2023-05-19 | 武汉大学 | 一种基于局部方向中心性度量的聚类方法 |
CN112000898A (zh) * | 2020-07-14 | 2020-11-27 | 浙江大华技术股份有限公司 | 数据生成方法以及电子装置、存储介质 |
CN112351384B (zh) * | 2020-09-10 | 2022-09-27 | 小灵狗出行科技有限公司 | 一种车辆定位数据修正方法、装置及设备 |
CN113807406B (zh) * | 2021-08-25 | 2023-05-23 | 西北大学 | 一种融合地理上下文的深度多尺度交通模式识别模型 |
CN114495492B (zh) * | 2021-12-31 | 2023-05-23 | 中国科学院软件研究所 | 一种基于图神经网络的交通流预测方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894122A (zh) * | 2010-05-11 | 2010-11-24 | 清华大学 | 一种获取用户网上浏览行为差异模式的系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8417708B2 (en) * | 2009-02-09 | 2013-04-09 | Xerox Corporation | Average case analysis for efficient spatial data structures |
-
2014
- 2014-10-24 CN CN201410577802.9A patent/CN104462190B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894122A (zh) * | 2010-05-11 | 2010-11-24 | 清华大学 | 一种获取用户网上浏览行为差异模式的系统和方法 |
Non-Patent Citations (1)
Title |
---|
含地理位置信息的社交媒体挖掘及应用;蒋锴;《中国博士学位论文全文数据库信息科技辑》;20141015(第10期);第I139-17页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104462190A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104462190B (zh) | 一种基于海量空间轨迹挖掘的在线的位置预测方法 | |
Long et al. | Unified spatial-temporal neighbor attention network for dynamic traffic prediction | |
Xu et al. | Taxi-RS: Taxi-hunting recommendation system based on taxi GPS data | |
CN103533501A (zh) | 一种地理围栏生成方法 | |
Yin et al. | Feature-based map matching for low-sampling-rate GPS trajectories | |
CN106408124A (zh) | 一种面向数据稀疏环境下的移动路径混合预测方法 | |
CN112365708B (zh) | 基于多图卷积网络的景区交通量预测模型建立和预测方法 | |
CN111292356B (zh) | 运动轨迹与道路的匹配方法及装置 | |
Li et al. | Robust inferences of travel paths from GPS trajectories | |
Ozdemir et al. | A hybrid HMM model for travel path inference with sparse GPS samples | |
CN113887704A (zh) | 交通信息预测方法、装置、设备及存储介质 | |
Bermingham et al. | Mining place-matching patterns from spatio-temporal trajectories using complex real-world places | |
Cui et al. | A road-aware neural network for multi-step vehicle trajectory prediction | |
Ghosh et al. | Traj-cloud: a trajectory cloud for enabling efficient mobility services | |
Gupta et al. | Study of fuzzy logic and particle swarm methods in map matching algorithm | |
CN109581444B (zh) | 一种gps轨迹分段及语义标注方法 | |
Wang et al. | Using DTW to measure trajectory distance in grid space | |
CN113888867A (zh) | 一种基于lstm位置预测的车位推荐方法及系统 | |
Wang et al. | Abnormal trajectory detection based on geospatial consistent modeling | |
Sun et al. | Discovering expert drivers from trajectories | |
Li et al. | VIS-MM: a novel map-matching algorithm with semantic fusion from vehicle-borne images | |
Chen et al. | Mining object similarity for predicting next locations | |
CN115773744A (zh) | 模型训练和路网处理方法、装置、设备、介质和产品 | |
Wang et al. | Accurate Detection of Road Network Anomaly by Understanding Crowd's Driving Strategies from Human Mobility | |
CN114792397A (zh) | 一种sar影像城市道路提取方法、系统以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |