System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于编辑距离和后缀数组的时间序列变长模体挖掘方法技术_技高网
当前位置: 首页 > 专利查询>河海大学专利>正文

一种基于编辑距离和后缀数组的时间序列变长模体挖掘方法技术

技术编号:42675485 阅读:10 留言:0更新日期:2024-09-10 12:27
本发明专利技术公开了一种基于编辑距离和后缀数组的时间序列变长模体挖掘方法,步骤为:(1)对时间序列按照窗口长度和步长提取子序列;(2)对提取出的子序列经过SAX符号表示将子序列变成符号序列;(3)选择DC3后缀数组算法对符号序列进行处理,获得后缀数组;(4)使用基于索引提取匹配前缀的方法,按照原始索引顺序在后缀数组中进行匹配前缀的搜索。(5)基于编辑距离的容错匹配,设置一个基于编辑距离的容错参数,进行容错匹配,减小字符串匹配的难度,便于找到更长且完整的变长模体。

【技术实现步骤摘要】

本专利技术涉及信息处理,具体涉及时间序列模体挖掘。


技术介绍

1、模体被定义为重复的模式、频繁的趋势、或者近似重复的序列、形状、片段、子序列等。mueen给出了其对模体的定义:模体是一段长时间序列中,一对彼此最相似的时间序列子序列。时间序列模体挖掘是在不需要任何有关其位置或形状的先验信息的条件下,寻找时间序列中重复出现的未知模式。此外,时间序列模体挖掘不仅适用于一维或多维数据,同样能够适用于不同类型的序列数据,例如空间序列数据,时间序列数据以及流数据。并且时间序列模体挖掘技术在遗传学、医学、数学、音乐等诸多领域也得到应用。

2、目前大致可以将模体的定义可分为两类:k-motif和最近邻模体。

3、k-motif,给定一个时间序列t,一个子序列长度m和一个范围r,t中最重要的模体(此后称为1-motif)是子序列c1,它具有最多的非平凡匹配计数。在t中,第k个最重要的模体是子序列ck(此后称为k-motif),它具有第k多的非平凡匹配计数,并且当1≤i≤k时,d(ck,ci)>2r。

4、最近邻模体,在长度为n的时间序列t中,长度为m的最近邻居模体是子序列si(1≤i≤n-m+1)与它的非平凡最近邻si(1≤j≤n-m+1),它们之间的距离最小。

5、这两个定义的主要区别在于,最近邻模体指的是距离最小即最相似的一对子序列,而不是拥有最多非平凡匹配的子序列,拥有最多非平凡匹配数的子序列即为1-motif。

6、然而,现有的模体发现算法仍存在一些不足。固定时间窗口模体算法要求对模体的长度有先验知识,难以适应很多实用场景。主流的变长模体发现方法,一般是将子序列符号化,然后通过符号串进行子序列匹配以发现模体,随着符号的长度变长,字符间极小的偏差可能导致模体不匹配,从而导致无法找到更长的模体。字符数参数的增加在一定程度上可以提高发现模体的相似度,主流变长模体发现方法,随着字符数参数的增加,也很难匹配到更长的模体,要发现较长的模体就得牺牲所发现模体的相似度。


技术实现思路

1、专利技术目的:为了克服现有技术的不足,本专利技术提供一种基于编辑距离和后缀数组的时间序列变长模体挖掘方法,通过提取子序列、构建子序列sax符号表示、基于dc3算法构建后缀数组、通过索引提取匹配前缀、通过编辑距离提高匹配公共前缀的容错度,从而匹配到更长、更完整的模体等几个步骤,可以高效地发现时间序列中的较长的模体。

2、技术方案:本专利技术的一种基于编辑距离和后缀数组的时间序列变长模体挖掘方法,基本思路是通过基于索引匹配前缀可以挖掘不同后缀的尽可能长的匹配前缀,通过编辑距离可以发现更长、更完整的模体,对一个长度为n的时间序列进行变长模体挖掘,包括以下步骤:

3、(1)提取子序列。设挖掘的时间序列是长度为n的序列t=[t1,t2,t3,t4,..,tn],设置窗口长度m。以时间序列第一个数据为起始点,连续提取m个相邻的数据,并以步长1向后滑动提取子序列,最终提取到n-m+1个子序列,每个子序列为si=[ti,ti+1,ti+2,...,ti+m-1],其中i∈[1,n-m+1]。

4、(2)构建子序列sax符号表示。对提取出的子序列经过sax符号表示将子序列变成符号序列。首先进行paa分段聚合近似,设置分段数w,然后计算各段的均值,用均值来表示段,子序列变成w个元素的序列;然后将各个均值映射到事先划分好的值域区间中,使用自定义的字母对归属同一区间的均值进行表示,可以得到子序列的符号序列,即子序列的sax符号表示。

5、(3)构建后缀数组。字符串后缀是指从某个位置i开始到整个串末尾结束的一个特殊子串。字符串s的从第i个字符开始的后缀表示为suffix(i)。后缀数组sa是一个一维数组,它将字符串的后缀集合suffix,按照字典序从小到大进行排序之后,把排好序的后缀在字符串中的原索引位置依次放入sa中。选择dc3后缀数组算法对符号序列cs进行处理,首先将符号序列cs中的字符下标以模3的方式分为三类,c0,c1,c2。后缀集合suffix中的suffix(i),i模3结果为0的后缀是c0类,结果为1的是c1类,结果为2的是c2类。先将属于c1和c2类的后缀挑选出来,经过字典排序得到排名。然后将属于c0类后缀的首个字符拼接上,下一个相邻字符的后缀在c1和c2类中的排名,将拼接后的字符串进行字典排序,确定属于c0类的后缀排名。最后再通过字典序,比较c1、c2类和c0类中的后缀,获得后缀数组sa。

6、(4)基于索引提取匹配前缀。匹配前缀prefix(p1,p2,l)表示的是符号序列c-s下标为p1的后缀suffix(p1)和下标为p2的后缀suffix(p2),前l个字符相同。rank数组是后缀集合suffix中suffix(i)排名的集合。候选模体集合ms,保存的是符号序列cs中的匹配前缀prefix的集合。首先,判断符号序列cs的当前索引i,是否被包含在候选模体集ms中。如果被包含,则跳过当前匹配前缀的搜索,否则再进行邻近后缀间的字符的相似性比较,减少多余前缀的匹配,提高时间效率。然后,通过rank数组确定当前suffix(i)的排名rank(i),通过后缀数组s-a找到当前后缀suffix(i)邻近的二个后缀suffix(sa(rank(i)-1))和suffix(sa(ran k(i)+1)),进行匹配前缀prefix的搜索。最后,将搜索到的匹配前缀prefix放入候选模体集ms中。

7、(5)基于编辑距离的容错匹配。设置编辑距离参数1d,在寻找最长公共前缀的匹配过程中,如果按照字符串严格相等去取公共前缀,会增加匹配的难度,特别是对于长模体,模体实例之间可能只有一些个别字符的差异,但是由于这种严格相等的比较方式,会导致模体分割为局部的模体,本方法设置一个基于编辑距离的容错参数,进行容错匹配,减小字符串匹配的难度,便于找到更长且完整的变长模体。

8、进一步的,所述步骤(4)基于索引提取匹配前缀的具体步骤如下:

9、(4.1)去除平凡匹配。首先,按索引顺序遍历符号序列cs=[c1,c2,…,cn],寻找当前索引i,在后缀数组中的前后邻近后缀,计算匹配前缀prefix,并判断前缀prefix是否存在平凡匹配,即两个前缀的起始终止索引是否有重叠部分,例如suffix(i)=[ci,ci+1,…,cn]和suffix(j)=[cj,cj+1,…,cn]匹配前缀pre fix的长度为k,则匹配前缀表示为prefix(ci,cj,k),但是k>|i-j|,说明匹配前缀中存在重叠的部分为平凡匹配,所以要去掉重叠的部分,只取满足条件的前缀,假设重叠字符的个数是m,则去除重叠部分后的匹配前缀prefix(ci,ci,k-m),并匹配前缀存入候选模体集ms中。

10、(4.2)根据索引顺序寻找匹配前缀

11、每次根据索引顺序寻找匹配的前缀,首先将当前索引i与候选模体集ms中匹配前缀prefix的匹配范围进行比较,假设本文档来自技高网...

【技术保护点】

1.一种基于编辑距离和后缀数组的时间序列变长模体挖掘方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种基于编辑距离和后缀数组的时间序列变长模体挖掘方法,其特征在于,所述步骤(4)基于索引提取匹配前缀的具体步骤如下:

3.根据权利要求1所述的一种基于编辑距离和后缀数组的时间序列变长模体挖掘方法,其特征在于,所述步骤(5)基于编辑距离的容错匹配的具体步骤如下:

【技术特征摘要】

1.一种基于编辑距离和后缀数组的时间序列变长模体挖掘方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种基于编辑距离和后缀数组的时间序列变长模体挖掘方法,其特征在于,所述步骤(...

【专利技术属性】
技术研发人员:王继民王涛孙家豪朱滢
申请(专利权)人:河海大学
类型:发明
国别省市:

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

1