时间序列中频繁序列模式挖掘方法技术

技术编号:14745768 阅读:59 留言:0更新日期:2017-03-01 22:05
本发明专利技术涉及时间序列挖掘技术领域,适用于金融、营销、生物医疗等领域,用于挖掘海量时间序列中连续出现的频繁序列模式。本发明专利技术提供一种快速、可并行的频繁时序序列挖掘方法,在此过程中,提出一种“区段频次索引”的结构用来辅助快速定位关键元素的“下一个元素”,以一种主动的方式由较短的频繁序列逐步增长为更长的频繁序列。更进一步地,考虑到频繁序列可能存在重复或包含,提出一种新的搜索策略:将所有频繁序列连接为一个较长的序列,通过查询各个序列的次数决定是否是包含或重复的。此方法较好地保持了频繁序列的最简性。

【技术实现步骤摘要】

本专利技术涉及时间序列挖掘
,适用于金融、营销、生物医疗等领域,用于挖掘海量时间序列中连续出现的频繁序列模式。
技术介绍
时间序列(TimeSeries)泛指那些随时间或空间有序变化的数据集合,这些数据集合往往采用等时间或空间间隔的方法进行度量,如金融股票价格、商品销售数据、气象数据以及生物医疗的电图过程监控数据等,时间序列挖掘在这些领域有着巨大的应用和研究价值。以金融领域举例来说,金融市场的海量时间序列挖掘,在客户分析、欺诈检测、金融投资组合研究、股票趋势预测以及证券投资公司分析导向等方向有着指导性的意义。时间序列数据挖掘的目的就是从时间序列中检测出用户感兴趣或者具有潜在知识的模式,这些模式可以帮我们更好的发现到其中蕴含的规律,进而为创造更大价值提供支持。近年来,随着存储技术和互联网的发展,各个行业的时间序列数据有着海量、密集的发展趋势,目前经典的频繁模式挖掘方法有Apriori算法和FP-Growth算法、以及基于它们的一些变种算法,都存在运行时间长、内存使用量大的问题,无法满足日益增长的数据处理要求。针对以上传统方法的不足,实现对海量时间序列中频繁序列地高效挖掘,包括较少的运行时间和内存占用,而且方法必须支持弹性的扩展,如分布式扩展等,本专利技术提出一种新型的时间序列挖掘方法。
技术实现思路
本专利技术要解决的技术问题是:从海量的时间序列中挖掘频繁出现的序列,这些序列是最简表示模式:不相互包含、重复。为此,提出一种针对时间序列的频繁序列挖掘方法,实现时间序列中高效的模式发现。为达到上述目的,本专利技术采用如下的技术方案:步骤a:将长度为n时间序列依次左移n次,每移动一次形成一个序列,按顺序垂直排列,构成n阶矩阵M1;步骤b:将步骤a得到的这n个序列,按照字典顺序依次垂直排列,构成输出矩阵M2,使相似的前缀序列在矩阵中相邻,并且定义M2第1列为F,最后一列为L;步骤c:对步骤b得到的输出矩阵M2的L列建立区段频次索引,区段频次索引是为了快速地定位F中元素的下一个元素,并将得到索引信息写入区段频次索引文件中去,从而能够很快定位L中某元素的位置;步骤d:对F列中的元素依次进行FN操作(即快速找到某元素在原时间序列中的下一元素以及该元素在F列中的位置),将得到的元素集合按照元素值进行分组,相同值的元素被分到同一组;步骤e:若某个组内的元素个数大于或等于频繁支持度(人为规定的频繁序列必须达到的次数),则对该组元素递归地进行步骤d操作,直到组内元素个数小于频繁支持度为止;步骤f:对步骤e得到的频繁序列进行去重操作,即判断由步骤c得出的序列之间是否存在包含与被包含的关系,若存在,则将被包含的元素去掉即可。基于上述技术方案,更进一步,对时间序列中的频繁序列挖掘的详细步骤描述如下:步骤a详细说明如下:第一步、先对要转换的序列(即原本的时间序列,记为S)进行循环移动(Rotate),每次循环左移一位,每左移1位可生成一个长度为n的序列,循环n次后,得到n个长度为n的序列;第二步、将每个序列当做矩阵的一行,依先后顺序可以构成一个n阶矩阵,记为M1。步骤b详细说明如下:第一步、将第一步得到的这n个长度为n的序列按字典顺序进行排序(Sort),即将这n个序列按首字符字典顺序排序,首字符相同的按第二个字符字典顺序排列,以此类推。再将每个序列当做矩阵的一行,依先后顺序构成一个n阶输出矩阵记为M2;第二步、记矩阵M2的第一列为F列,最后一列为L列,形成的n阶矩阵M2有如下性质,1)任意查找的序列T在原时间序列中出现的个数为:以T为前缀出现在M2方阵中的行数;2)在M2中出现相同前缀的两行必然是上下相邻的;3)在M2中F列的相同的元素间次序在L列中保持不变;4)在M2中F列元素是同行L列元素在原时间序列中的下一个元素。由上述4条性质可以得出F列中任意元素x在原时间序列中的下一个元素y在F中的位置,其中x,y的位置关系如附图2所示。步骤c详细说明如下:第一步、对步骤b得到的矩阵M2的L列分段,段大小固定,记每一个区段为BLOCK;第二步、假设待操作序列被分成s段BLOCK,从待操作序列首部开始,统计第1个到第i(1≤i≤s)个BLOCK组成的子序列中各元素出现的次数,以此类推,直到序列结束,最后得到s个元素频次的统计结果(如附图4所示),并保存到区段索引文件中;第三步、这样通过第一步和第二步,当我们查找M2方阵的L列中某元素时,会方便很多,索引的用处就体现在这里,减少了从头查找的时间。步骤d详细说明如下:第一步、依次遍历矩阵M2中的F列的元素,首先查看该元素(如m)在F列中的个数是否达到频繁支持度,若达不到,则遍历F列中的下一元素;若达到,由区段频次索引文件快速判断出m元素在L的位置,继而找到同行的F元素m’以及m’在F中的位置,将上述由元素m快速查找到元素m’的过程称之为FN操作;第二步、若m’元素在F列的若m’次数达不到,则遍历F列中的下一元素;若m’次数大于或等于支持度,则递归地对m’运用FN操作,找到m’在原序列中的下一元素的元素m’’以及m’’在F中的位置。以此类推,直到遍历完F中所有字典元素为止。步骤e详细说明如下:针对步骤d的第二步,由m,m’,m’’...(假设m,m’,m’’...达到支持度)所构成了频繁序列。步骤f详细说明如下:第一步、将所有待选频繁序列使用一个特殊字符(如#)连接成一个长的新序列,记为P。如步骤C得到的频繁序列有ab,b,则P为ab#b;第二步、再次将新序列进行如上的a,b,c,d,e步骤,得到频繁序列的频繁次数,在如序列P(ab#b)中,ab的频繁次数为1,b的频繁次数为2,大于1,则b在其他序列中出现过是重复序列,应去除b,得到ab为最终频繁序列。本专利技术具有以下优点和积极效果:a)弥补了频繁模式挖掘上的空白:频繁序列模式挖掘。b)本专利技术的方法时间效率和内存使用效率高,对于亿级别长度的时间序列,能够在分布式环境下,可以在1~2s内处理完毕,且内存使用量大约为3.5G左右。c)本专利技术的方法是完全可并行的,分布式可扩展性好。附图说明图1.babcab的矩阵变换结果。图2.F与L列中元素的对应关系。图3.寻找以a开头的频繁序列。图4.区段频次索引。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合附图并举实施实例,对本专利技术中所用到的方法及算法进一步详细说明。,设时间序列为babcab,设置频繁支持度为2。步骤a:1)依次左移1位,移动6次,得到6个序列,依次为:abcabb,bcabba,cabbab,abbabc,bbabca,babcab;2)将这6个序列依照形成的先后顺序,构成矩阵M1(如附图1所示)。步骤b:1)将步骤a得到的6个序列按照字典顺序构成矩阵M2(如附图1所示);2)得到矩阵M2的F列和L列,即F:aabbbc,L:cbbaab(如附图1所示);步骤c:1)对M2的L列进行分段,设置BLOCK的大小为3;2)可知第1段BLOCK(0-2)内各字典元素为a:0,b:2,c:1;第2段BLOCK(3-5)的内各字典元素为a:2,b:1,c:0;则第1段计数为a:0,b:2,c:1;第2段计数为a:2,b:3,c:1;3)这样我们就可以快速确定第几个元素的位置,如确本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201510511829.html" title="时间序列中频繁序列模式挖掘方法原文来自X技术">时间序列中频繁序列模式挖掘方法</a>

【技术保护点】
一种在海量时间序列中挖掘频繁序列模式的方法,其特征在于如下步骤:a.将长度为n的时间序列循环左移n次,每次移动1位,在每次移位后生成一个新的长度为n的序列,最终得到n个序列,将每个序列当做矩阵的一行,按照先后顺序构成一个n阶矩阵,记为M1;b.将步骤a得到的n个序列按首字符字典顺序排序,首字符相同的按第二个字符字典顺序排列,以此类推,再将每个序列当做矩阵的一行,按照先后顺序构成一个n阶输出矩阵记为M2,将M2第一列标识为F列,最后一列标识为L列;c.针对M2矩阵的L列,构建区段频次索引;d.对F列中的元素依次进行FN操作,将得到的元素集合C按照元素值进行分组,相同值的元素被分到同一组;e.若某个组内的元素个数大于或等于频繁支持度(人为规定的频繁序列必须达到的次数),则对该组元素递归地进行步骤d操作,直到组内元素个数小于频繁支持度为止;f.对步骤e得到的频繁序列进行去重操作,即若某个频繁序列A包含频繁序列B,则认为B是重复序列,将B删除,最终得到无包含、无重复的频繁序列集合。

【技术特征摘要】
1.一种在海量时间序列中挖掘频繁序列模式的方法,其特征在于如下步骤:a.将长度为n的时间序列循环左移n次,每次移动1位,在每次移位后生成一个新的长度为n的序列,最终得到n个序列,将每个序列当做矩阵的一行,按照先后顺序构成一个n阶矩阵,记为M1;b.将步骤a得到的n个序列按首字符字典顺序排序,首字符相同的按第二个字符字典顺序排列,以此类推,再将每个序列当做矩阵的一行,按照先后顺序构成一个n阶输出矩阵记为M2,将M2第一列标识为F列,最后一列标识为L列;c.针对M2矩阵的L列,构建区段频次索引;d.对F列中的元素依次进行FN操作,将得到的元素集合C按照元素值进行分组,相同值的元素被分到同一组;e.若某个组内的元素个数大于或等于频繁支持度(人为规定的频繁序列必须达到的次数),则对该组元素递归地进行步骤d操作,直到组内元素个数小于频繁支持度为止;f.对步骤e得到的频繁序列进行去重操作,即若某个频繁序列A包含频繁序列B,则认为B是重复序列,将B删除,最...

【专利技术属性】
技术研发人员:曾承李志浩隗佳
申请(专利权)人:武汉泰乐奇信息科技有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1