一种基于数据特征的时间序列流数据快速搜索方法与流程

文档序号:16855666发布日期:2019-02-12 23:15阅读:267来源:国知局
一种基于数据特征的时间序列流数据快速搜索方法与流程

本发明涉及一种基于数据特征的时间序列流数据快速搜索方法,尤其涉及了一种基于数据特征的时间序列流数据高效相似性搜索方法,属于大数据分析与数据挖掘的技术领域。



背景技术:

时间序列是指一种随着时间变化而形成的有序数据序列,简称时序。它反映了某个事务或事件随着时间变化的状态。通常提到的时序是指通过等间隔时间取样形成的具有实数值的有序数据序列。而其中有些时序信息不仅与某一时刻密切相关,从整体上看数据信息随时间连续性不断的产生,具有流的特点,因此被称为时间序列流数据,例如卫星在轨时间序列流数据、制造业传感数据,在线交易数据等等。

近年来,对时间序列流数据的管理成为了一个研究热点,因为时间序列流数据的应用范围十分广泛,传感器网络监测,移动对象搜索和追踪,网络交通分析等都需要持续监测时间序列流。面对海量、高维的时序数据,对其进行数据挖掘,获取数据背后相应的知识,是一个具有挑战性的问题。对时间序列流数据进行相似性搜索,是在时间序列流数据中找出所有与查询时序q距离不超过用户定义阈值的时间序列片段。作为一个数据挖掘中的基础问题,相似性搜索是对时序数据进行分析的一项基本技术,也是为后续分类、聚类、模式匹配等数据挖掘方法提供帮助的一个基本工作。

目前对时间序列进行的相似性搜索大多应用于时间序列数据库文件,在其中寻找与查询时序q最具有相似特征的时序r。采取的搜索技术为,首先对时间序列进行降维表示,降维后的时序数据需满足下界定理(降维空间中两条时序的距离小于等于其真实距离)。然后将降维后的时序数据插入到已知的索引结构中,通过索引进行相似性搜索。降维方法包括dft、dwt、paa、apca等,索引结构有r树及其变种等。对时间序列的相似度度量函数则主要包括lp-norms、dtw、最长公共子串lcss等。

然而,相比于传统的时间序列数据库数据,时间序列流数据具有连续和更新频繁的特点,使得维护索引的代价变大,因此之前应用于传统时序数据库的相似性搜索方法,不能直接应用于时序流数据。因为更新频繁,时间序列流数据不能全部存储于内存或硬盘,而是源源不断的到来,因此对时序流数据的处理提出了“一遍式扫描”和实时响应的要求。



技术实现要素:

针对现有技术的不足,本发明提供了一种基于数据特征的时间序列流数据快速搜索方法;在满足时间序列流数据“一遍式扫描”处理的基础上,采用相应的优化策略,大幅度减少搜索时间,以达到实时响应的要求。

本发明所要解决的技术问题是:如何随着时间序列流数据源源不断的到来,找出其中与查询时序q相似的子序列,即满足与查询时序q的距离在用户定义阈值范围内的时序片段。在处理过程中,对不相似的片段忽略,相似的片段标记。

本发明以滑动窗口思想为基本框架,将查询时序q在时间序列流数据中的搜索分割为q与每个滑动窗口内子序列的比较,满足了时间序列流数据“一遍式扫描”的处理特点,并将子序列匹配转换为全序列匹配。结合cstp线性分割方法,找出时序分割点,并对分割点按照其对时序波动影响程度的大小来赋予权值。将分割点扩展为局部特征,按照分割点权值由大到小的顺序,用局部特征对时序进行表示,并计算相应局部特征的下界距离,满足非漏报要求,保证结果准确。对距离进行累加和判断,及早终止计算,缩减搜索空间,减少计算代价,从而达到减少搜索时间的目的。考虑到应用的广泛性,本发明选择欧氏距离作为时序相似度度量函数。

本方法对时间序列流数据进行相似性搜索的效率较高,满足了对时间序列流数据处理的“一遍式扫描”和实时响应要求。本方法中的下界距离计算和局部特征分级计算有效缩减了搜索空间,减小了计算代价,使搜索时间大大降低。且满足非漏报原则的下界距离使得搜索结果准确,不会产生漏报现象,达到了精确搜索的目的。

术语解释:

1、距离阈值(distancethreshold,dt),是指满足相似定义的搜索时序与查询时序之间距离的最大值。

2、cstp,一种基于转折点的在线连续分割算法,在时间序列中找出分割点,将其用于时间序列的分段线性表示,以达到降维和简化时间序列的目的。

3、下界距离(lowerbounding),是指满足下界定理的一种近似距离计算方式。两条时间序列之间的下界距离一定满足小于等于其真实距离。于是若满足下界距离小于dt,则可保证真实距离也一定小于dt。本文采取的下界距离计算公式在下文技术方案中进行详细解释。

4、结果集,是指保存从时间序列流数据中筛选出的与查询序列相似的时序片段的结果的集合。

5、堆排序算法,是指利用堆这种数据结构所设计的一种现有的排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素,最终将一组序列根据需要按照增序或降序输出。本发明所采用最终输出次序为降序。

本发明的技术方案为:

一种基于数据特征的时间序列流数据快速搜索方法,包括步骤如下:

s1,参数预设,包括范围搜索用到的距离阈值dt、对时序进行cstp分割所用到的参数;

对时序进行cstp分割所用到的参数包括:单点最大数据拟合误差me_sp、分段最大数据拟合误差me_es、转折点斜率变化参数μ、数据趋势点时间范围参数ρ;

单点最大数据拟合误差me_sp是指在某一数据段的所有数据点中与拟合直线的垂直距离最大的数据点;分段最大数据拟合误差me_es是指所有数据段中的拟合误差最大的数据段;转折点斜率变化参数μ是指在筛选数据趋势点时所指定的斜率变化门限值;数据趋势点时间范围参数ρ是指在筛选数据趋势点时所指定的时间范围门限值;

距离阈值dt由用户指定,是判定两条时序是否相似的标准依据。当两条序列的距离小于等于dt时,判定为相似,否则,则不相似。dt越大,相似搜索的范围越广。用户可以通过调节dt控制搜索的精度。单点最大数据拟合误差me_sp、分段最大数据拟合误差me_es是用户预先指定的优化参数,通过最大单点误差me_sp和最大段误差me_es,可以对数据表示的精度进行限制并优化,可以实现以用户指定的数据精度,进行相应的数据简化表示。数据趋势斜率度量参数(μ)和时间范围度量参数(ρ),是筛选数据趋势点的重要参数,他们可以根据数据趋势的不同进行灵活的设定,以满足相应的数据表达要求。根据用户对数据表达所反映的数据变化趋势详尽程度的要求,将参数从小到大进行调节;

s2,对查询序列q进行cstp分割,并进行多级局部特征表示;

所述步骤s2,包括步骤如下:

a.使用现有技术cstp算法,对查询序列q进行分割,找出并标记查询序列q的分割点,获得的分割点将查询序列q分为长度不等的若干段,利用所述若干段的相关信息对该查询序列q进行降维近似表示,具体的表示方式为:把每一段用两个值来表示,第一个值是这一段所包含的原始数据点值的平均值,第二个值是这一段包含的最后一个数据点在查询序列q中的位置下标;如假设查询序列q原本是一条具有100个点的时间序列,经过cstp分割后,得到了11个分割点。11个分割点包含起始点和终止点,将q分成了10段。每段用上述两个值来表示,则可以用这10段表示q这条序列;

b.对查询序列q进行多级局部特征表示,衡量分割点对时间序列波动程度的影响,衡量的方式为:该分割点所对应的原始数据点的值与查询序列q所包含的所有数据点值的平均值的差的绝对值;绝对值越大,影响程度越大。该绝对值即为该分割点对应数据点与查询序列q的平均值所在水平线的竖直距离;以此作为分割点的权值,并对分割点按照其权值由大到小的顺序进行排序;依次取出排序后的分割点,假设当前取出的分割点为a,则a跟查询序列q的分割点中,与a左邻的分割点构成前一段,跟与a右邻的分割点构成后一段,由分割点a划分的前一分段和后一分段组成了该分割点的一个局部特征,以此类推,用所有分割点对应的局部特征表示查询序列q;

s3,对时间序列流数据以滑动窗口的方式进行数据扫描,扫描数据的同时,将滑动窗口内的子序列w进行多级局部特征表示,当前滑动窗口内包含的数据点序列为窗口子序列w;

s4,对多级局部特征表示后的查询序列q和窗口子序列w进行下界距离计算,若下界距离大于距离阈值dt,则忽略该片段,窗口继续滑动,否则,进入步骤s5;

s5,计算查询序列q和窗口子序列w的实际距离,若实际距离大于距离阈值dt,则判定为不相似,否则,则判定为相似,将窗口子序列w添加到结果集中。

根据本发明优选的,所述步骤a中,使用cstp算法,对查询序列q进行分割,包括步骤如下:

假设查询序列q=(q0,q1,q2,…,qi,…,qn),qi表示时间序列流数据中某一时刻的时间序列数据点;假设经过cstp算法对查询序列q进行分割后,得到分割点为(cr0,cr1,cr2,…,cri,…,crm),cri是某分割点对应的数据点在原始时间序列中的位置下标,cr0=0,crm=n,如若cr1对应q5,则cr1=5。查询序列q被m+1个分割点分为m段,第i段表示为<cvi,cri>,cri是第i个分割点,cvi为第i段中包含的时间序列数据点值的平均值,第i段包含的时间序列数据点包括:从第i-1个分割点之后的第一个数据点到第i个分割点mean()是对括号中的参数求平均值的函数。(序列的起始点a0包含在第一段内)。

此处设计的优势在于,对查询序列q进行了精确高效的分割,既高效地对查询序列q进行了压缩和降维,又能保持原始时间序列的相关信息。

根据本发明优选的,所述步骤b,对分割点按照其权值由大到小的顺序进行排序,是指:按照每个分割点的权值,用堆排序算法对分割点进行了排序(排序时,去除了时间序列的起始点和终止点);依次取出排序后的分割点。假设cri为分割点按权重排序后取出的第i个分割点,则cri跟原始序列q的分割点中与cri左邻的分割点之间的数据点构成前一段<cvi,cri>,跟与cri右邻的分割点之间的数据点构成后一段<cvi+1,cri+1>。由其所连接的前后两个分段是时间序列的一个局部特征,即第i个局部特征为:({<cvi,cri>,<cvi+1,cri+1>}),用所有分割点对应的局部特征表示查询序列q。

在判断两条时序是否相似时,对本身形状影响大的分割点,其形成的局部特征在组成时序的形状中越重要,对判断结果产生的影响也较大,所以把这距离作为权值对分割点进行排序,得到影响因子由大到小的分割点序列,进而得到由重要性由大到小的全部局部特征组成的对查询序列q的表示。此处设计的优势在于,利用了分割点对整条序列形状造成影响的大小不同的这一信息,得到了组成时序的形状中重要性由大到小的局部特征序列,为之后的多级表示和相似性判断的提早终止计算奠定了基础。

根据本发明优选的,所述步骤s3,对时间序列流数据以滑动窗口的方式进行数据扫描,扫描数据的同时,将滑动窗口内的子序列w进行多级局部特征表示,包括步骤如下:

d、将滑动窗口的大小设定为与查询序列q的长度相等,即w的序列长度与q的序列长度相等。逐个匹配查询序列q与时序流数据上的窗口子序列w;

e、将窗口子序列w按照查询序列q的表示方式进行相应的映射,即按照查询序列q排序后的分割点及相应下标,将窗口子序列w表示为由多个局部特征组成的分段表示,具体是指:设定查询序列q=(q0,q1,q2,…,qi,…,qn),窗口子序列w=(w0,w1,w2,…,wi,…,wn),经过cstp算法分割表示后,q=(cr0,cr1,cr2,cr3,cr4)=(q0,q5,q12,q20,qn),则w根据q的分割点直接映射为:w=(cr0,cr1,cr2,cr3,cr4)=(w0,w5,w12,w20,wn);假设按照权重排序后的分割点顺序为:(cr2,cr3,cr1),cr2分割点对应的局部特征为:{<qv2,cr2>,<qv3,cr3>},cr3分割点对应的局部特征为:{<qv3,cr3>,<qv4,cr4>},cr1分割点对应的局部特征为:{<qv1,cr1>,<qv2,cr2>},则q的多级局部特征表示为:q={<qv2,cr2>,<qv3,cr3>,<qv3,cr3>,<qv4,cr4>,<qv1,cr1>,<qv2,cr2>},w根据q的表示映射为w={<wv2,cr2>,<wv3,wr3>,<wv3,cr3>,<wv4,wr4>,<wv1,cr1>,<wv2,wr2>}。此处为了区分q和w,分别把每一段的段表示方法<cvi,cri>中的cvi表示成了qvi和wvi。

此处设计的优势在于,利用滑动窗口,满足了对时间序列流数据“一遍式”扫描的处理方式,实现了将长度不相等的子序列匹配转换为长度相等的全序列匹配。只对查询序列进行一次多级局部特征表示即可,时间序列流数据上的窗口子序列全都省去了时序分割和分割点排序的步骤。

根据本发明优选的,所述步骤s4,依次取出查询时序q和窗口子序列w按重要性排序后的局部特征,计算局部特征的下界距离,包括步骤如下:

f、假设查询时序q的局部特征为:qi:{<qvi,cri>,<qvi+1,cri+1>},窗口子序列w对应的局部特征为:wi:{<wvi,cri>,<wvi+1,cri+1>},则查询时序q的局部特征qi与窗口子序列w对应的局部特征wi的下界距离如式(ⅰ)所示:

lowerbound(qi,wi)=(qvi-wvi)2*(cri-cri-1+1)+(qvi+1-wvi+1)2(cri+1-cri+1)(i)

g、在计算每个局部特征的下界距离时,对下界距离进行累加和判断,是指:若累加后的下界距离超过距离阈值,即则无需计算剩余的局部特征的下界距离,判定窗口子序列w与查询时序q不相似,窗口继续滑动;若计算完全部的局部特征之后,累加距离仍小于等于距离阈值,则进入步骤h;

h、将该窗口序列标记为“候选序列”,进一步计算窗口子序列w与查询时序q的实际距离,窗口子序列w与查询时序q的实际距离计算公式如式(ii)所示:

若实际距离大于距离阈值dt,则判定为不相似,若距离小于等于距离阈值,则判定为相似,将窗口子序列w添加到结果集中,窗口继续滑动。

此处设计的优势在于,对时序降维后的表示,数据量远小于原始序列,对降维后的表示计算下界距离,相较于计算原始数据的实际距离,计算量大大减少。下界距离小于等于真实距离,则保证了搜索结果的非漏报原则,使搜索结果精确无误。逐步按照重要性排序后的每个局部特征来计算距离累积和,可以无需计算整条序列的下界距离而提早终止计算,减小计算代价。

本发明的有益效果为:

1、本发明以滑动窗口的思想满足了对时间序列流数据的“一遍式”扫描处理,以适应时间序列流更新频繁的特点。

2、本发明对时间序列流数据进行了cstp线性分割的降维表示方式,并在此基础上运用了下界距离的计算,缩减了搜索空间,结合对分割点按权值排序策略,逐步计算局部特征累计距离的距离计算方式,可以提早终止距离计算,大大减少了相似性搜索的计算代价。从而减少相似性搜索的计算时间,以达到时间序列流数据实时响应的要求。

3、下界距离的计算满足非漏报原则,在缩减计算量的同时,也保证了搜索结果的准确性。经过以上搜索步骤,可在源源不断到来的时间序列流数据中实时检索到与查询序列相似的序列片段,且结果准确。因此本方法可用于对时间序列流数据的基础数据分析——相似性搜索,也可为后续的时间序列流数据的分类、聚类、预测、模式匹配等数据挖掘工作提供帮助,奠定基础。

附图说明

图1(a)为查询时间序列q原始数据示意图;

图1(b)为查询时间序列q的分割点的示意图;

图1(c)为每个分割点与均值的竖直距离计算示意图;

图1(d)为第一个分割点对应的局部特征示意图;

图2(a)为对查询时间序列q多级局部特征表示的示意图;

图2(b)为对时间序列流数据以滑动窗口的方式进行数据扫描的示意图;

图2(c)为将w1表示为由多个局部特征组成的分段表示的示意图;

图2(d)为计算局部特征的下界距离的示意图;

图2(e)为计算局部特征的真实距离的示意图;

图3为本发明的一种时间序列流数据相似性搜索方法流程图;

图4为本发明的一种时间序列流数据相似性搜索方法的数据处理标准化运行时间对比图;

具体实施方式

下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。

实施例

一种基于数据特征的时间序列流数据快速搜索方法,如图2所示,包括步骤如下:

s1,参数预设,包括范围搜索用到的距离阈值dt、对时序进行cstp分割所用到的参数;

对时序进行cstp分割所用到的参数包括:单点最大数据拟合误差me_sp、分段最大数据拟合误差me_es、转折点斜率变化参数μ、数据趋势点时间范围参数ρ;

单点最大数据拟合误差me_sp是指在某一数据段的所有数据点中与拟合直线的垂直距离最大的数据点;分段最大数据拟合误差me_es是指所有数据段中的拟合误差最大的数据段;转折点斜率变化参数μ是指在筛选数据趋势点时所指定的斜率变化门限值;数据趋势点时间范围参数ρ是指在筛选数据趋势点时所指定的时间范围门限值;

距离阈值dt由用户指定,是判定两条时序是否相似的标准依据。当两条序列的距离小于等于dt时,判定为相似,否则,则不相似。dt越大,相似搜索的范围越广。用户可以通过调节dt控制搜索的精度。单点最大数据拟合误差me_sp、分段最大数据拟合误差me_es是用户预先指定的优化参数,通过最大单点误差me_sp和最大段误差me_es,可以对数据表示的精度进行限制并优化,可以实现以用户指定的数据精度,进行相应的数据简化表示。数据趋势斜率度量参数(μ)和时间范围度量参数(ρ),是筛选数据趋势点的重要参数,他们可以根据数据趋势的不同进行灵活的设定,以满足相应的数据表达要求。根据用户对数据表达所反映的数据变化趋势详尽程度的要求,将参数从小到大进行调节;

s2,对查询序列q进行cstp分割并进行多级表示;查询时间序列q原始数据如图1(a)所示;

a.使用现有技术cstp算法,对查询序列q进行分割。找出并标记查询时间序列q的分割点,找出分割点后的q如图1(b)所示。7个分割点将q分为6段,每段用该段对应时间序列原始数据的均值及段的右端点表示;假设查询序列q=(a0,a1,a2,…,ai,…,an),长度为n,ai表示时间序列流数据中某一时刻的时间序列数据点;假设经过cstp分割后,得到分割点:(cr0,cr1,cr2,…,cri,…,cr7),cri是分割点对应的时间序列数据点的下标,cr0=0,crm=n,图中查询序列q被7个分割点分为6段,第i段可以表示为<cvi,cri>,cvi为第i段对应时间序列数据点的均值,(序列的起始点a0即包含在第一段内)。

此处设计的优势在于,对时间序列q进行了精确高效的分割,既高效的对q进行了压缩和降维,又能保持原始时间序列的相关信息。

b.对查询序列q进行多级局部特征表示。如图1(c)所示,计算每个分割点与均值的竖直距离,以此作为每个分割点的权值。对分割点按照权值由大到小进行排序(对分割点排序时,去除了时间序列的起始点和终止点),根据分割点与时间序列均值的竖直距离,可以判断该分割点对整条序列形状造成影响的大小。竖直距离越大,则影响越大。依次取出排序后的分割点,cri为分割点按权重排序后的第i个分割点,由其所连接的前后两个分段可以看作是时间序列的一个局部特征(第i个局部特征:{<cvi,cri>,<cvi,cri+1>})。用所有分割点对应的局部特征表示查询序列q,图1(d)只表示了第一个局部特征,其他局部特征同理表示;在判断两条时序是否相似时,对本身形状影响大的分割点,其形成的局部特征在组成时序的形状中越重要,对判断结果产生的影响也较大,所以把这距离作为权值对分割点进行排序,得到影响因子由大到小的分割点序列,进而得到由重要性由大到小的全部局部特征组成的对查询序列q的表示。

此处设计的优势在于,利用了分割点对整条序列形状造成影响的大小不同的这一信息,得到了组成时序的形状中重要性由大到小的局部特征序列,为之后的多级表示和相似性判断的提早终止计算奠定了基础。

s3,如图2(a)已经完成对q的表示,图2(b)是对时间序列流数据以滑动窗口的方式进行数据扫描。窗口的大小设定为与查询序列q的长度相等。将窗口中的子序列w按照q的表示方式进行相应的映射。即按照q排序后的分割点及相应下标,将w也表示为由多个局部特征组成的分段表示,如图2(c)所示。

此处设计的优势在于,利用滑动窗口,满足了对时间序列流数据”一遍式”扫描的处理方式,实现了将长度不相等的子序列匹配转换为长度相等的全序列匹配。只对查询序列进行一次多级局部特征表示即可,时间序列流数据上的窗口子序列全都省去了时序分割和分割点排序的步骤。

s4,对分段表示后的查询序列q和窗口子序列w进行下界距离计算。依次取出查询时序q和窗口子序列w按重要性排序后的局部特征,计算局部特征的下界距离。如图2(d)。(以下距离计算均采用欧氏距离计算去除二次方根步骤,目的是在不影响搜索结果的前提下,减少计算时间)

下界距离计算方式如下:假设q的局部特征为q:{<qvi,cri>,<qvi+1,cri+1>},w对应的局部特征为:{<wvi,cri>,<wvi+1,cri+1>},则两个局部特征的下界距离为:lowerbound(qi,wi)=(qvi-wvi)2*(cri-cri-1+1)+(qvi+1-wvi+1)2(cri+1-cri+1)

在计算每个局部特征的距离时对距离进行累加和判断。

若累加后的距离超过距离阈值,则无需计算之后的特征距离,判断q与w不相似,窗口继续滑动。

若计算完全部的局部特征之后,累加距离仍小于等于距离阈值,则将该窗口序列标记为”候选序列”,进一步计算w与q的实际距离。如图2(e)所示,q与w的真是距离计算公式为:

若实际距离大于距离阈值,则判定为不相似,若距离小于等于距离阈值,则判定为相似,将窗口w中的子序列添加到结果集中。

此处设计的优势在于,对时序降维后的表示,数据量远小于原始序列,对降维后的表示计算下界距离,相较于计算原始数据的实际距离,计算量大大减少。下界距离小于等于真实距离,则保证了搜索结果的非漏报原则,使搜索结果精确无误。逐步按照重要性排序后的每个局部特征来计算距离累积和,可以无需计算整条序列的下界距离而提早终止计算,减小计算代价。

本发明所提出的一种时间序列流数据相似性搜索方法,简称为qsmatch,与传统的顺序搜索方法(basicmatch)和经过apca、paa降维的顺序搜索方法(apcamatch,paamatch),在9个全世界公认的标准时间序列数据集上,分别采用相同的查询序列q,进行最近邻(1nn)搜索所得到的的运行时间的比较。为了更加清晰的比较相关方法的优劣,我们以basicmatch的数据表示结果为标准值1,在相同的范围搜索距离阈值dt下,所获得的搜索时间,运行时间比对搜索结果如下表1所示(搜索结果为时间序列流数据中与查询时序q最相似的片段标记)。表1中时间单位为秒(s)。

表1

表1中,electricdevices:电表读数的时间序列数据,shapesall:形状轨迹变化的时间序列数据,car:汽车发动机噪声测量时间序列数据,forda:手机信号时间序列数据,cincecgtorso:心电图时间序列数据,ecg5000:心电图时间序列数据,worms:蠕虫运动轨迹时间序列数据,haptics:屏幕解锁图像手势移动时间序列数据,inlineskate:滑冰测试中移动对象时间序列数据。

根据表1所示结果,qsmatch的与其他几种方法(basicmatch、apcamatch、paamatch)相比,在搜索结果相同的情况下,时间大大减少。比basicmatch方法提高大约90%,比apcamatch的方法时间提高50%。三种方法的搜索时间对比如图4所示。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1