一种时空轨迹的模式挖掘方法

文档序号:6544221阅读:1061来源:国知局
一种时空轨迹的模式挖掘方法
【专利摘要】本发明涉及一种时空轨迹的模式挖掘方法,其特征在于方法包括的步骤为:A、根据现有的时空点进行数据统计,根据原始信息进行数据预处理,从而生成时空轨迹;B、将生成的时空轨迹进行模式挖掘,所述的挖掘方法在于重新定义了时空相似性的度量方法,将时空相似性演变为时空距离来进行计算;C、时空相似度的特征集只包含时间和空间两个元素;D、沿用PrefixSpan方法,使用步骤B定义的时空相似性,得到频繁项,即用户频繁走动的路线、地点;E、将采集到的信息存储时采用了一种可变换的随机灵活的存储方式,即伪投影的存储方式;F、最后将用本发明所涉及的方法挖掘到的频繁项在系统平台得以展示。本发明采用了PrefixSpan方法的逻辑结构,保证轨迹模式中时空点的有序性。
【专利说明】一种时空轨迹的模式挖掘方法
【技术领域】
[0001]本发明涉及一种数据挖掘技术,更确切地说是一种在节点移动情况下对时空轨迹的模式挖掘方法。
[0002]背景介绍
[0003]所述的时空轨迹的模式挖掘,即对个人用户的大量历史轨迹进行挖掘,从而找出满足阈值要求(最小频繁度)的频繁时空序列。比如,当广告商想到一类用户进行广告投递,将广告牌放置在哪里被看到的可能性最大?而当得知当前时刻在路段A上的交通情况,如何综合路段A上所有用户的驾驶信息预测出下一时刻路段B的交通状况并对这些要进入拥堵路段B的用户进行提醒?事实上,还有许许多多类似的问题,但是综合起来就是:对于某个人来说,他/她走的最多的路线是哪条?或者,当确定了起点为A,终点为B时,已知他的历史信息,最可能会选择哪条路线?以上几种假设即是时空轨迹模式挖掘的最实际应用。
[0004]而时空关联点分析是侧重于时空点之间的连通性分析,它的实现基于已得到的频繁时空序列。然而现有的传统序列模式挖掘方法均不能满足要求。
[0005]例如,Apriori方法是一种最有影响的挖掘布尔关联规则频繁项集的方法。依据项集的两个基本性质,即:1)频繁项集的所有非空子集必然是频繁项集;2)任何非频繁项集的超集也是非频繁项集。这样,在挖掘过程中就产生了大量的候选项集,并且需要反复扫描相应存储数据的序列数据库。
[0006]在当前的大数据时代,当数据量不断增长时,就暴露出了一个巨大的缺点,由于候选项集巨大,需要存储的数据非常之多,使得数据库的存储量非常大,并且对存储在数据库中的信息进行查询时需要扫描很久,所以该方法的计算量将呈现指数级的爆炸性增长。这对于大批量的移动数据来说,无疑是一个不可能实现的任务。
[0007]又如,FP增长方法是一种试图通过不产生候选频繁项集的方法称为频繁模式增长,简称FP增长。它首先将提供频繁项的数据库压缩到一棵频繁模式树(或者FP树),但仍然保留项集关联信息。然后将压缩后的数据库划分成一组条件数据库(一种特殊的类型的投影数据库),每个关联一个频繁项,并分别挖掘每个条件数据库。
[0008]这个方法虽然效率提高了许多,但对于时空轨迹模式的挖掘却仍然不合适,因为在所述方法中所得到的模式内部,元素的顺序是没有严格规定的,它只是反映出了空间上的先后顺序,没有涉及时间元素,但是时空数据挖掘对这点要求很高。比如某人上午出现在A地,而下午出现在C地,晚上又出现在B地。在FP增长方法的存储中只有(ABC)这一种存储方式,而我们需要的是ACB这种存储方式,所以这是一个常识性的时空序列,也只有在时间和空间性的约束下才会有意义,所以由此看来这种方法也是不合适的。
[0009]从上述两种方法看出,一种基于目前数据量大的、能包括时间与空间的新型轨迹表示方法有待提出,基于模式增长的方法不但可以快速的挖掘出频繁序列模式,而且还能保证模式内部的有序性。基于模式增长的方法是首先找出各个频繁项,然后产生投影数据库的集合,每个投影数据库关联一个频繁项。每个数据库进行单独的挖掘。其中最好的就是PrefixSpan方法,即前缀投影序列模式增长。[0010]在所述的方法中本发明拟采用前缀模式,与后缀模式关联得到频繁模式,从而避免产生大量的候选集,防止因所需存储的数据量太大而无法实施或者扫描数据库时需要花费太多时间。所述的方法仅仅检测称为前缀的前段序列片,将数据库在这个前缀上投影,挖掘其中的频繁项,然后扩充到前缀中,继续发掘,直到挖掘出所有的频繁序列。相比于Apriori方法在时空效率上有了较大的提高。从而构筑成本发明的构思。

【发明内容】

[0011]本发明的目的在于提供一种时空轨迹的模式挖掘方法,本发明所述的一种时空轨迹的模式挖掘方法是利用了 PrefixSpan方法的优势,重新定义了时空相似性的度量方法,沿用PrefixSpan方法的优点,不产生候选序列,从而减少了需要存储的数据量并使得存储方式关联到时间元素和空间元素两大特性。这种方法能够在诸多的轨迹中判断出哪些轨迹是最相似的,随后根据这些轨迹生成用户最频繁移动的路线,随后应用于工业化中。
[0012]本发明所述的时空轨迹模式的挖掘方法,其特征在于:
[0013]A、时空轨迹的模式挖掘方法包括以下步骤:
[0014]I)根据现有的时空点进行数据统计,具体是根据原始信息进行数据预处理,包括数据集成、数据清理、数据变换,从而生成时空轨迹;
[0015]2)将生成的时空轨迹进行模式挖掘,所述的挖掘方法的创新之处在于重新定义了时空相似性的度量方法,将时空相似性演变为时空距离来进行计算;
[0016]3)重新定义时空相似度的特征集只包含时间和空间两个元素,从而给出时空相似性的方法;
[0017]4)根据本发明所描述的方法进行时空轨迹模式挖掘,沿用最新的PrefixSpan方法所描述的原理,使用步骤2)定义时空相似性,得到频繁项,即用户频繁走动的路线、地
占.[0018]5)将采集到的信息存储时采用了一种可变换的随机灵活的存储方式,即伪投影方法;
[0019]6)最后将用本发明所涉及的方法所挖掘到的频繁项在系统平台得以展示;
[0020]B、所述的方法利用了 PrefixSpan方法的优势,重新定义了时空相似性的度量方法,沿用PrefixSpan算法的优点,不产生候选序列;
[0021]C、所述的方法能够判断出哪些轨迹是最相似,随之综合这些轨迹得到最频繁的移动路线;
[0022]D、所述的频繁项即在本次挖掘中频繁被搜索出来的项。例如在超市中可以挖掘出某一种商品经常被购买,用户的走动路线中哪一条线路的车流量巨大等等。所谓频繁项集,即所有频繁项的集合,比如超市购买物品的频繁项集可以写为牛奶、面包或鸡蛋;
[0023]E、所述的方法其时空相相似度的特征集只有两个元素:时间和空间。
[0024]F、所述的方法相似性是时空距离的一种变换,所以时空相似性的计算方法为:
[0025]SpatiTemporalDistance(Pointl, Point2)=SpaceDistance (Pointl,Poin t2)*k+TimeDifference(Pointl, Point2)*(1-k), 0 ^ k ^ I ;
[0026] G、所述的PrefixSpan方法的核心在于以SDB划分搜索空间,分别挖掘含有这些频繁序列为前缀的长度为K+1的频繁序列,直到挖掘结果为空;[0027]H、所述的方法会产生许多投影数据库,每个频繁的前缀子序列对应一个。伪投影可以记录对应序列的索引(或标识符)以及序列中投影后缀的起始位置,而不是建立物理投影;
[0028]1、所述的序列的物理投影被记录序列的标识符和投影位置的索引点所取代;
[0029]J、所述的方法分为三个部分,第一部分为程序的入口,即声明并初始化序列标识符的进行,第二部分为递归调用的方法的主体,它主要是实现时空轨迹模式挖掘,第三部分为在系统平台的实现;
[0030]K、所述轨迹的生成方法为:
[0031]1)将已有的点进行数据统计,即发现频繁点;
[0032]2)把位置、时间相邻的点合并,产生进出时间序列;如,(Ai, Starttime1-Gndtimei);
[0033]3)按此分段规则,将起点和终点加入到轨迹中;
[0034]4)截断轨迹;
[0035]L、所述的方法中采用了 PrefixSpan方法的逻辑结构,所以可以保证轨迹模式中时空点的有序性。同时因为该算法带有Apriori性质,能够利用频繁度的一些基本性质对可能情况进行快速剪裁,且利用了新的自定义时空相似度测量方法,所以是正确且高效的。
[0036]通常所说的时空相似度是两个人或者两条轨迹都在确定的某一个时间点或者某个时间段都经过了 A点(这其中既包括了时间元素又包含空间元素),时空相似性的评价与数据挖掘的聚类分析中的特征集距离量化有些相似的,只不过时空相似度中特征集只有两个元素:时间和空间。所以在本发明中相似性也就是时空距离SpatiTemporalDistance的一种变换,所以时空距离Distance计算方法就是SpatiTemporalDistance (Pointl, Point2)=SpaceDistance(Pointl, Point2)*k+TimeDifference(Pointl, Point2)*(1-k), 0 ^ k^ 10在具体实例中,k可以调整。
[0037]设序列数据库为S,它是元组〈sequencelD, sequence〉的集合。其中sequence为一
个序列,sequencelD为其编号。而sequence又可以定义为一些事件的有序集G1, e2, e3......>,其中每一个ei (I ^ i ^n)代表的是一个事件序列中的一个事件。比如在购物的序列数据库中,S为用户所有的消费记录,sequencei为在第i条记录中购买行为的序列,e」为在第i条记录中的第j次消费行为。
[0038]首先来定义序列的包含关系,A是B的子序列,如果存在整数I ( J^j2……
<jm ( η,使得 aigbji,a2gbj2.,......, amQ5jm。 如 A=〈a, be, d>, B=sequence=<sd, abc, bcn,
f, sd>。而包含关系则是指在序列A满足上述的子序列定义的情况下,元组〈sequencelD,sequence)包含了序列A,或者说,序列A在序列数据库S中有一次出现。而序列A在序列数据库S中的频繁度为数据库中包含A的元组的个数。所以,如果某个序列sequencePattern是一个序列模式,即频繁序列,贝1J必须满足:在S中sequencePattern的频繁度大于最小频繁度阈值,即S中sequencePattern出现的次数会大于某个给定的最小值。
[0039]在得到了最初的原始数据以后对数据进行预处理,根据上述的序列模式生成符合要求的时空轨迹序列,生成时空轨迹的存储模式参照附图2。
[0040]a.对轨迹进行分段,定义轨迹的起点和终点。如果在某地的时间超过某段时间,则该点即为当前轨迹的终点,而如果该点与其下一个点的时间距离不超过某个阀值(Interval)时,贝U其也为下一条轨迹的起始点;
[0041]b.轨迹的重定义。不同于GPS的完整性,其侧重于起始点和终点的参与度;
[0042]c.根据起始点和终点相关的POI (Point of Interest兴趣点),关注并挖掘背景知识;
[0043]故定义轨迹T如下:
[0044](A1, Starttimerendtime1) (A2, starttime2-endtime2)...(An,starttimen_endtimen).[0045]然后我们沿用Prefix方法及上述的时空相似度的计算方法对上述形成的时空轨迹进行挖掘,以SDB划分搜索空间,分别挖掘含有这些频繁序列为前缀长度为K+1的频繁序列,直到挖掘结果为空。
[0046]在这个过程中,本发明所述的方法的特征在于在挖掘过程中不产生候选序列,然而可能生成许多投影数据库,每个频繁的前缀子序列对应一个。如果投影必须产生一个新的数据库,那随之而来会生成较多数量的数据库。
[0047]由此可见,本发明所述的时空轨迹本质是一个时空点的序列。对于时空轨迹模式,不但需要满足一般序列模式的要求,同时,还要满足以下特点:
[0048]I)序列中的每个点都带有严格的时间性质,如进入时间,离开时间,持续时间;
[0049]2)序列中的每个时空点就是一个独立的事件ei;
[0050]3)两个序列中的时空点ei,ej进行匹配时,传统的相似性度量标准已经不适用,所以必须定义新的测距方法;
[0051]4)与一般的序列模式不同,时空轨迹模式挖掘中必须依据背景信息,对所得到的模式进行过滤和筛选;
[0052]本发明所述的方法是在挖掘过程中不产生候选序列,然而可能生成许多投影数据库,每个频繁的前缀子序列对应一个。如果投影数据必须物理地产生,则递归构建了大量投影数据库就成了本发明所述的方法的主要开销。
[0053]所以本发明所述的方法中采用了一种称为伪投影的存储方式,所述伪投影是指序列的物理投影被记录序列的标识符和投影位置的索引点所取代。当伪投影可以在内存中实现,投影的开销显著降低,如果伪投影基于硬盘访问,就不那么有效了。如果原始轨迹数据库或者投影数据库太大,不能放到内存中,应使用物理投影,一旦投影数据库能放到内存中时,应该使用伪投影。
[0054]因为采用了 PrefixSpan方法的逻辑结构,所以可以保证轨迹模式中时间与空间元素结合的特性,保证了时空点的有序性。同时因为本发明所述的方法带有Apriori性质,能够利用频繁度的一些基本性质对可能情况进行快速剪裁,且利用了新的自定义时空相似度测量方法,所以是正确且高效的,这也正是这种方法的实用之处,如果采用原传统方法,首先由于数据存储量较大,所以实施起来是很困难的。其次传统方法不能保证时间元素和空间元素的共存性,常常顾此失彼,不能很好地展现用户移动的地点和路线。所以本发明所述的方法不仅实用而且高效,而非纯计算方法,虽本发明包含智力活动的规则和方法的内容,但又包含相应的技术特征。
【专利附图】

【附图说明】[0055]图1为时空轨迹模式挖掘在整个数据处理的过程;
[0056]图2为时空轨迹模式挖掘结果可视化;
[0057]图3时空轨迹模式挖掘运行过程。
[0058]具体实施方法
[0059]下面通过【专利附图】
附图
【附图说明】及【具体实施方式】进一步阐明本发明的实质性特点和显著的进步,但本发明决非仅局限于实施例。
[0060]图1展示了新型时空轨迹模式挖掘处理数据的过程,首先将收集到的原始数据(如手机位置数据、GPS信号数据等)进行数据预处理,这个过程包括数据集成、数据清理、数据变换,将所收集到的杂乱数据转化为整齐、统一的数据库存储格式,随后生成时空轨迹。利用新型时空轨迹挖掘方法挖掘出时空轨迹的频繁项(即个人经常走动的地点或者路线),并时行时空关联分析。根据这些信息进行情景感知和预测,并在系统中加以展示,将个人位置信息可视化(即在google地图上得以展示)。
[0061]依图1数据挖掘过程为:
[0062]I)、读入序列数据库SDB (SDB为此数据库名称)及最小频繁度阈值(一般从I开始);
[0063]2)、预设第一次序列长度K=I,从映射数据库中发现长度为K的频繁序列集SDBjB图所示首先挖掘频繁项为a或b或c的频繁项形成一个数据库,频繁序列是数据库中发生次数不小于阈值的序列;
[0064]3)、分别挖掘含有这些频繁序列为前缀的长度为K+1的频繁序列,即在形成的前缀为a的子数据库中再添加一个频繁项,即继续在子数据库中搜索前缀为ab的频繁项,如果挖掘结果为空,则停止;
[0065]4)、将序列长度K增加1,将3)所找到的L赋予SDB,再转到3);
[0066]5 )、记录并输出所有挖掘到的频繁序列。
[0067]图2显示了用户名为91961的用户在几个基站区域位置的时间次数,从他移动的路线可以看出他走动的范围。
[0068]图3展示了时空轨迹模式挖掘的过程。由该图可以看出,群体用户在h时刻(或时段)经过A地点4次,在t2时刻(或时段)经过B地点4次,在t3时刻(或时段)经过C地点4次。最终原始数据经过生成的时空轨迹如右侧框图中所示。
[0069]本发明所述的挖掘方法分为三个部分,第一部分为程序的入口,声明并初始化序列标识符的进行;第二部分为递归调用的方法主体,主要是实现时空轨迹模式挖掘,第三部分即与实际系统平台得以应用。
[0070]第一部分:初始化主调方法GetFrequentSet如下:
[0071]IGetFrequentSet(ChosenNumber, setlnterval)
[0072]2for i — Ito sequenceSet.Count// 初始化标识符数组,设为 03doinitiallndex.Add(O)
[0073]4ProcessProjectedDB(intialIndex, setFrequency)// 即将开始方法调用分析
[0074]本步骤是将所有的标识归置到原始位置,说明数组的初始状态,准备开始进行轨迹挖掘。
[0075]第二部分基于模式增长的时空数据挖掘方法的描述如下:[0076]ProcessProjectedDB (sequencelndex, frequency, preStr)
[0077]Ifor i — Ito sequencelndex.Count//首先统计每一类时空点出现的频率
[0078]2do if sequencelndex [i] <sequenceSet [i].Count// 如果标识符未超过该序列的长度
[0079]3then for j — IsequenceIndex[i] to sequenceSet [i].Count//统计投影数据库
[0080]4do Count the number of each space-time point as a Term.By comparing theSpatiTemporalDistance(Pointl, Point2)with a threshold to know if the two pointsare similar.[0081]5for each term in termCount
[0082]6do if number (term) >frequency
[0083]7then if frequentSet.ContainsKey (preStr+term) =FALSE//模式不存在时添加
[0084]8Then frequentPatternSet.Add (preStr+term,number (term))
[0085]9for k — Ito sequencelndex.Count//更新标识符数组
[0086]IOdo fori — sequencelndex [k] to sequenceSet [k].Count//寻找下一个索引
[0087]lido Find the index of current term in sequenceSet[k]
[0088]12and Get the new sequencelndex to newlndex
[0089]13ProcessPro jectedDB (newlndex, frequency, preStr) // 递归调用
[0090]本步骤首先统计了每一类时空点出现的频率,如果所统计的时空点标识符没有超过所规定的长度,则将标识符投影到数据库中进行存储,并进行数据预处理,即进行数据集成、数据清洗、数据变换。如果时空点标识符超过所规定的长度,则说明这个模式不存在,则继续寻找下一个标识符。最终结果保存于模式集合中,每个模式的形式如下:
[0091](Ci1, Ume1) (ci2,time2) (cia,timea)......(cinJ timen):Number
[0092]其中Cii表示所处基站的标号ID,timei为进入用户该基站的时间,而Number则表示该模式的频繁度(即此模式在此次挖掘中第几次出现)。
[0093]第三部分与实际系统平台结合的应用
[0094]本部分将所述的方法应用于一个实际系统平台。当有一份新数据到来时,可以通过数据预处理将其加入到一个数据库中进行统一管理。而后由新数据触发轨迹生成处理模块,得到最新的移动轨迹数据。数据挖掘模块可以作为单独的一个处理逻辑,它包含了各种挖掘处理所需要的算法与控制机制。同时为保证系统的高效性,也将该模块的一些挖掘结果存入数据库中,以便需要时直接访问。
【权利要求】
1.一种时空轨迹的模式挖掘方法,其特征在于包括以下步骤: A、根据现有的时空点进行数据统计,根据原始信息进行数据预处理,从而生成时空轨迹; B、将生成的时空轨迹进行模式挖掘,所述的挖掘方法在于重新定义了时空相似性的度量方法,将时空相似性演变为时空距离来进行计算; C、时空相似度的特征集只包含时间和空间两个元素; D、沿用PrefixSpan方法,使用步骤B定义的时空相似性,得到频繁项,即用户频繁走动的路线、地点; E、将采集到的信息存储时采用了一种可变换的随机灵活的存储方式,即伪投影的存储方式; F、最后将用本发明所涉及的方法挖掘到的频繁项在系统平台得以展示。
2.根据权利要求1所述的方法,其特征在于沿用PrefixSpan方法,不产生候选序列。
3.根据权利要求1所述的方法,其特征在于能够判断出哪些轨迹是最相似,随之都过综合这些轨迹得到最频繁的移动路线。
4.根据权利要求1所述的方法,其特征在于在所述的挖掘方法中频繁被搜索出的频繁项的集合,称之频繁项集。
5.根据权利要求1所述的方法,其特征在于所述的相似性是时空距离的一种变换,所以时空相似性的计算方法为 SpatiTemporalDistance (Pointl, Point2) =SpaceDistance (Pointi, Point2)*k+TimeDifference(Pointl, Point2)* (1-k), 0 ^ k ^ I。
6.根据权利要求1所述的方法,其特征在于所述伪投影是指序列的物理投影被记录序列的标识符和投影位置的索引点所取代。
【文档编号】G06F17/30GK103914563SQ201410157418
【公开日】2014年7月9日 申请日期:2014年4月18日 优先权日:2014年4月18日
【发明者】刘烨, 张帅, 赵鲁阳, 王金芳, 刘新, 吉艳冰 申请人:中国科学院上海微系统与信息技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1