System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于信息处理,特别涉及基于gpu的在趋势数据中挖掘变长模体方法。
技术介绍
1、时间序列模体挖掘能够以无监督的方式从时间序列中寻找重复出现的相似片段,寻找数据中有意义的、新颖的、未知的知识,从而发现时间序列中的潜在规则和特定事件。多维模体分析可以从多维时间序列数据中挖掘信息,发现不同维度时序序列之间的关系。例如,对空气质量监测数据进行模体挖掘,可以发现不同污染物之间的相互关系,从而为空气污染治理提供决策支持。因此,在环境管理、医疗健康、基因工程等领域,进行多维模体挖掘具有重要意义。
2、模体被定义为重复的模式、频繁的趋势、或者近似重复的序列、形状、片段、子序列等。从模体挖掘方法来看,模体可分为两类:基于相似度的时间序列模体和基于支持度的时间序列模体。
3、(1)基于相似性的模体是给定时间序列中相似度最高、不重叠的、距离最小的一对子序列。
4、(2)基于支持度的时间序列模体,即给定时间序列t,子序列长度w和距离阈值ε,时间序列模体是指在给定的距离阈值ε内,相似序列个数大于支持度的子序列。其中,支持度是用户设置的阈值,体现模体出现的频繁程度。
5、目前大多数变长模体挖掘方法所识别的子序列对内的长度相等,在长度方面灵活性较差。然而,在很多的实际场景下,挖掘出长度不一致但具有相似特征的模体是有意义的,主流的变长模体挖掘方法往往挖掘不到这样的模体。
6、同时随着大数据时代的来临,传统算法面对在海量数据中挖掘有用数据的需求时力有不逮,各类并行化方法应运而生来解决模体发现方
技术实现思路
1、专利技术目的:为了克服现有技术中存在的不足,本专利技术提供基于gpu的在趋势数据中挖掘变长模体方法。通过原始数据预处理、基于gpu计算左和右matrix profile和挖掘变长趋势模体三个步骤高效地发现多维时间序列中的模体。
2、技术方案:为实现上述目的,本专利技术提供基于gpu的在趋势数据中挖掘变长模体方法,包括如下步骤:
3、(1)sax离散化处理。使用sax表示,根据设置的sax的段长和字典长度,求出每个子序列均值及其在符号字典对应的符号,代替原始时序参与计算。利用sax表示良好的离散化性质,将相同大小范围内的值用同一个符号表示,便于mdl压缩。
4、(2)mdl压缩处理。使用mdl技术,将连续相同的sax表示段压缩为一个sax表示,并维护该sax表示段的长度以及在sax时序中初始的位置信息。压缩处理完成后的sax表示用于计算左和右matrix profile,维护的信息用于定位模体在原始时序的位置与长度。
5、(3)基于gpu计算左和右matrix profile。本专利技术使用gpu并行策略加速lrstomp算法计算左和右matrix profile。对于一个子序列,原始的cpu串行算法需要依次计算该子序列与所有子序列的距离,该线程计算了子序列个数w次,gpu算法可以一次性启动上万个线程并行计算该子序列与所有子序列的距离,大大减少了每个线程计算的次数。尤其的,本专利技术根据距离矩阵对称的性质,提供了进一步减少gpu计算量的策略,进一步加速计算左和右matrix profile。
6、(4)挖掘时间序列模体链。根据左和右matrix profile挖掘出以每个子序列作为链头的的时间序列模体链。
7、(5)挖掘变长趋势模体。根据最长模体链中每个模体的位置,结合mdl维护的长度和位置信息定位到在原始时序中的真实位置和真实长度。
8、进一步的,所述步骤(1)中sax处理,是为了便于mdl压缩,利用sax表示良好的离散化性质,将相同大小范围内的值用同一个符号表示。具体步骤如下:
9、(1.1)将原始时间序列划分为固定长度segment的子序列段,对于每个段,计算其平均值,将其作为一个数值符号来表示,segment是用户指定的子序列段的段长。
10、(1.2)构建一个符号字典,其中包含一组代表不同数值范围的符号。符号的数量由用户设置的参数alphabet_size定义。
11、(1.3)通过将每个段的平均值与其在字符字典上所属子区间的中心点进行比较,选择距离最近的中心点作为表示该段的符号。最终得到的符号序列即为原始时间序列的sax表示。
12、进一步的,所述步骤(2)中mdl压缩处理,是在sax的表示基础上压缩相同sax表示,处理的具体步骤如下:
13、(2.1)使用sax算法转换后的时间序列数据进一步处理,得到其mdl表示形式。首先创建三个空的一维数据框sax_mdl_l,sax_mdl_i和sax_mdl,分别用于存储每个相同sax值的连续出现次数,在sax表示对应的起始索引和该sax的值。
14、(2.2)初始化相同sax值连续出现的次数为1,起始索引为0,再遍历sax表示的每个元素,从第二个元素开始,比较当前元素和前一个元素的大小,若相等,则次数加1,否则将次数,起始索引和sax表示分别存储在sax_mdl_l,sax_mdl_i和sax_mdl中,并将次数重置为1,起始索引更新为当前位置。
15、进一步的,所述步骤(3)中结合gpu在sax_mdl中计算左和右matrix profile,使用gpu的具体步骤如下:
16、(3.1)在cpu主机端,使用滑动窗口的方式,从sax_mdl中的每个位置向后选择一个长度为m的数据子序列,计算每个子序列的均值和标准差,并统计子序列的数量,最后使用fft卷积来计算第一个子序列和所有子序列的点积qt_first。
17、(3.2)在gpu设备端,结合点积复用原理迭代执行gpu核函数计算剩余子序列与其他所有子序列之间的点积,根据qti,j与qti-1,j-1的关系,直观的gpu策略是每一次迭代计算一个子序列与所有子序列的点积,并行启动子序列数量个线程执行gpu核函数,复用前一个子序列迭代的点积结果快速计算,每个线程并行计算两个子序列的点积,再计算这两个子序列的距离di,j。最后每个线程根据di,j更新左和右matrix profile的对应位置。本专利技术根据距离矩阵的对称性,即di,j=dj,i,进一步减少计算量,优化gpu策略如下:每次迭代gpu核函数只开启当前子序列的右边子序列数量个线程,计算当前子序列与其右所有子序列的距离,再结合归约算法更新左和右matrix profile的对应位置。
18、进一步的,所述步骤(3.2)中,利用gpu加速,结合点积复用原理迭代执行gpu核函数更新左和右matrix profile,具体处理具体步骤如下:
19、(3.2.1)准备本文档来自技高网...
【技术保护点】
1.基于GPU的在趋势数据中挖掘变长模体方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的基于GPU的在趋势数据中挖掘变长模体方法,其特征在于,所述步骤(1)包括如下步骤:
3.根据权利要求1所述的基于GPU的在趋势数据中挖掘变长模体方法,其特征在于,所述步骤(2)包括如下步骤:
4.根据权利要求1所述的基于GPU的在趋势数据中挖掘变长模体方法,其特征在于,所述步骤(3)中,使用GPU对SAX_MDL计算左和右Matrix Profile,处理的包括如下步骤:
5.根据权利要求4所述的基于GPU的在趋势数据中挖掘变长模体方法,其特征在于,所述步骤(3.2)中,迭代执行GPU核函数更新左和右Matrix Profile,具体包含如下步骤:
6.根据权利要求所述的基于GPU的在趋势数据中挖掘变长模体方法,其特征在于,所述步骤(4)中挖掘时间序列模体链,具体包含如下步骤:
7.根据权利要求所述的基于GPU的在趋势数据中挖掘变长模体方法,其特征在于,所述步骤(5)中挖掘变长趋势模体,具体包含如下步骤:
【技术特征摘要】
1.基于gpu的在趋势数据中挖掘变长模体方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的基于gpu的在趋势数据中挖掘变长模体方法,其特征在于,所述步骤(1)包括如下步骤:
3.根据权利要求1所述的基于gpu的在趋势数据中挖掘变长模体方法,其特征在于,所述步骤(2)包括如下步骤:
4.根据权利要求1所述的基于gpu的在趋势数据中挖掘变长模体方法,其特征在于,所述步骤(3)中,使用gpu对sax_mdl计算左和右matrix profile,处理的...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。