一种基于分段权重的时间序列相似性搜索方法与流程

文档序号:16918842发布日期:2019-02-19 19:11阅读:256来源:国知局
一种基于分段权重的时间序列相似性搜索方法与流程
本发明属于信息处理
技术领域
,特别涉及一种基于分段权重的时间序列相似性搜索方法。
背景技术
:数据挖掘就是从大型数据库的数据中提取人们感兴趣的、隐含的和事先未知的知识。在许多现实数据库中,数据常常是按时间顺序记录的一系列观测值,对象的属性值可能会随时间而变化。因此,从时间序列数据中挖掘潜在的有用知识具有重要的理论和实践意义。针对时间序列数据模式挖掘的研究,主要集中于时间序列数据相似性模式挖掘。时间序列数据相似性模式挖掘就是在数据库中发现与给定时间序列数据模式很相似的时间序列序列。它具有广泛的实用价值,例如:对观测的空间数据库记录的恒星和行星的时间序列数据进行相似性分析,能帮助天文学家发现新的星星;根据各种商品的销售记录,找出具有相似的商品销售模式,根据相似产品的销售模式来制定相似的销售策略等;找出自然灾害发生的相同前兆,从而对预报自然灾害进行决策研究等。相似性搜索在1993年由r.agrawal首次提出,他是时间序列预测、分类、聚类以及序列模式挖掘等等的重要基础。时间序列相似性查找与传统的精确查询不同,由于时间序列在数值上具有连续性以及有不同的噪声影响,因此,大部分情况下不需要时间序列很精确匹配。另一方面是时间序列相似性查询不是针对时间序列中的某个具体的数值,而根据给定的查询序列在所给的时间序列数据集来找查找是在一段时间内具有相似形态特征和变化趋势的时间序列。在时间序列相似性搜索中,需解决的问题包括时间序列特征提取、时间序列索引以及相似度量等。针对相似度量,研究人员提出了各种度量方法,如欧氏距离及其基于lp准则的变种、动态时间弯曲距离(dynamictimewarping,dtw)、编辑距离(editdistance,ed)、模式距离(patterndistance,pd)、以及最长公共子串(longestcommonsubsequence,lcss)等。在实际应用中,很多时候用户对每条相关序列的感兴趣程度并不是一样,甚至对一条时间序列不同分段的感兴趣程度也不一样。如在水文序列中,用户更关注洪水峰值附近的序列。目前的时间序列数据相似性模式挖掘算法缺乏有效手段进一步获得使用户满意的结果,而且在上述算法中,用户难以有效地参与时间序列数据相似性模式的挖掘过程。相关反馈技术(relevancefeedback)可以让用户与查询系统进行交互,用户对查询结果进行标注(指出结果中相似和不相似的部分),查询系统根据用户的反馈重新组织查询,以提高用户的满意度。技术实现要素:发明目的:为了克服现有技术中存在的不足,本发明提供一种查询效率高,查询结果精准,满意度高的基于分段权重的时间序列相似性搜索方法。技术方案:为实现上述目的,本发明提供一种基于分段权重的时间序列相似性搜索方法,包括如下步骤:(1)采用时间序列重要转折点对查询序q进行分段;(2)建立带权重的分段欧式距离作为时间序列相似度量;(3)对q进行k-近邻相似查询,检索查询序列q的k个最相似的序列;(4)如果用户对步骤(3)得出的查询结果满意,则查询结束;若用户对步骤(3)得出的查询结果不满意,则对结果进行标记并进入步骤(5);(5)系统利用用户标记的序列对分段的权重进行更新,并返回步骤(2)。进一步的,所述步骤(1)中采用时间序列重要转折点对时间序列分段的具体步骤如下:序列转折点定义为:对时间序列x={x1,x2,...,xi,...,xm},当xi满足下述公式中的任意一个,那么xi则称为序列转折点;{(xi≥xi-1)(xi>xi+1)}{(xi>xi-1)(xi≥xi+1)}{(xi≤xi-1)(xi<xi+1)}{(xi<xi-1)(xi≤xi+1)}对原始序列提取转折点得到的转折序列对转折点序列xt中,三个连续转折点构成的序列中,当到和区域的距离大于阈值ε时,则称为重要转折点;数据点xj=(vj,tj)到点xj-1=(vj-1,tj-1)和xj+1=(vj+1,tj+1)之间的距离其中,vj是数据点xj的取值,tj是数据点xj的时间下标。进一步的,所述步骤(2)中采用带权重的分段欧式距离建立时间序列相似性度量的具体步骤如下:查询序列q被重要转折点拆分成n段{q1,q2,…,qn},每段权重分别为w1,w2,…,wn,待查序列t在同样下标位置被分割成n段,则带分段权重的欧式距离如下:dist(q,t)=w1×d(q1,t1)+w2×d(q2,t2)+...+wn×d(qn,tn)每段的初始权重都相同,为1/n;其中,d(qi,ti)表示q,t第i段之间的欧式距离。进一步的,所述步骤(4)中进行相似查询,检索查询序列q的k-近邻,的并以距离作为相似度评价标准,距离越远,相似度越低,距离越近,相似度越高,将查询结果按照从距离最近到最远展示给用户;用户若对查询结果满意,则结束查询;若对查询结果不满意,则对查询结果进行标注,用户标注出所有和查询序列相似的序列。进一步的,所述步骤(5)中利用用户标注的相似序列对分段权重进行更新的具体步骤如下:针对第i段,计算所有相似序列第i段到查询序列第i段的距离,并计算所有距离的标准差和均值,然后采用下述公式进行权重更新;其中wi表示第i段序列段的在整条时间序列中所占的比重,σi和μi是所有第i段序列的相似距离的标准差和平均差;然后采用下述公式对权重进行标准化;有益效果:本发明与现有技术相比具有以下优点:本发明所提供的一种基于分段权重的时间序列相似性搜索方法,考虑到实际应用中,用户可能对序列各部分的兴趣程度并不同,如在水文序列中,用户更关注洪水峰值附近的序列。本发明首先将查询序列基于重要转折点进行分段表示,与之相匹配,在计算序列相似性时采用分段带有权重的方式计算。在初始查询中每一段的权重一样,在反馈过程中利用用户反馈自适应地学习用户对不同段的关注程度,更新每段权重,以提高相似性度量的准确度,进而提高查询的准确率。附图说明图1是本发明的流程图;图2;(a)为具体实施例中adiac数据集中一条查询序列图;(b)为具体实施例中阈值0.5的分割图;图3;为具体实施例中初次查询结果图;图4;为具体实施例中权重更新后查询结果图;图5为具体实施例中数据集adiac中的某个查询序列的分割图;图6为具体实施例中数据集cricket_x中的某个查询序列的分割图;图7为具体实施例中数据集50words中的某个查询序列的分割图;图8为具体实施例中adaic、cricket_x以及50words数据集中某次查询序列在不同阈值的查准率;图9为具体实施例中adaic数据集中不同阈值下的p-r曲线图;图10为具体实施例中cricket_x数据集中不同阈值下的p-r曲线图;图11为具体实施例中50words数据集中不同阈值下的p-r曲线图。具体实施方式下面结合附图对本发明作更进一步的说明。如图1所示,本发明的一种基于分段权重的时间序列相似性搜索方法的流程图,步骤如下:步骤1:读取查询序列q以及时间序列数据集s;步骤3:采用重要转折点对查询序列q进行分段得到q={q1,q2,...,qn},并记录相应的分段点位置,具体算法如下。提取序列重要转折点算法的具体流程见算法1。步骤4:采用分段权重的相似性度量方法计算数据集中所有待查序列t与查询序列q的相似度。公式如下:dist(q,t)=w1×d(q1,t1)+w2×d(q2,t2)+...+wn×d(qn,tn)其中dist(q,t)表示时间序列t和查询序列q之间的相似度,d(qn,tn)表示tn和qn之间的相似度,其度量函数度量包括欧氏距离及其基于lp准则的变种、动态时间弯曲距离(dynamictimewarping,dtw)、编辑距离(editdistance,ed)、模式距离(patterndistance,pd)、以及最长公共子串(longestcommonsubsequence,lcss)等。w1,w2,…,wn为每段权重。将所有的权重wn初始化为w0,w0是一个无偏权重,使得每一分段具有等同的权重。权重更新算法具体流程如下算法1描述。步骤5:并采用topk方法返回排序靠前的n个序列给用户。以分段欧式距离作为相似度评价标准,距离越远,相似度越低,距离越近,相似度越高。查询相似序列,并展示距离最近的k个相似序列。步骤:6:进行用户交互,用户若对查询结果满意则结束查询,若不满意则进入步骤6。步骤7:根据查询结果标注出相关序列即用户满意的时间序列。步骤8:计算每条相关序列与查询序列的每段之间距离,可以是欧式距离、dtw距离等。步骤9:计算第i段的距离的标准差和平均值,更新权重:并归一化权重,其中wi表示第i段序列段的在整条时间序列中所占的比重,σi和μi是所有第i段序列的相似距离的标准差和平均差。公式(4.16)则是对各分段权重进行归一化处理。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。实施例本实施例采用ucr数据集中的adiac数据集为例做详细步骤介绍,分段阈值大小仅选择0.5作示范,在实际应用中分段阈值的大小可以通过实验调试的方法或对凭经验来确定。分段距离的计算以欧式距离为例。(1)选择adiac数据集中的一条数据作为查询序列,如图2(a)所示;(2)选择一个阈值,并利用重要转折点对查询序列进行分段,如图2(b)所示,分段阈值为0.5时提取出6个分割点。(3)初始化各段权重为1/6,采分段权重的相似性度量方法进行度量,计算各待查序列与查询序列之间的分段欧式距离,采用topk方法得到前3个查询结果。如图3所示。(4)用户对查询结果进行标注,并反馈给系统,对各段权重进行更新,更新各段权重如表2所示,(5)采用新的分段权重计算距离,采用topk方法得到前3个查询结果,如图4所示。从图3和图4的对比中可以明显看出图4中的3条结果序列和查询序列更加相似,明显优于图3中的结果序列。因此可以说本发明的方法能够有效的提高查询的准确率。实验与分析采用ucr数据集中21组数据集进行实验,每个子数据集都含有训练集和测试集,在训练集中每个数据集中所有序列都已经被标注类别,且各数据集中时间序列等长。ucr数据集中标注的类别是分类得来的,而分类的依据则是它们的相似程度,因此,同一个类别的序列是具有一定相似性的。在实验中,为了简化用户反馈这一行为,采用训练集数据作为实验数据,以时间序列的类别作为用户反馈的依据,当时间序列类别和查询时间序列类别一致时,则认为该条时间序列为正相关序列,反之则为负相关序列。当数据集类别较单一时,较容易出现搜索结果的序列类别与查询序列均一致,影响实验效果,所以采用数据集类别数均大于2的数据集进行实验。所用数据集的基本信息如下表1所示,其中包含了数据集的长度、大小以及类别数。表1各子数据集基本信息(1)重要转折点分段方法有效性的验证首先为验证基于重要转折点分段方法是否能有效识别出序列的重要转折点进行了以下实验:对不同数据集中的某次查询序列进行了不同阈值下的分段点提取。图5至图7分别是数据集adiac、cricket_x以及50words中的某个查询序列的分割图。从图5中可以发现分段阈值为0.3时提取出10个分割点;分段阈值为0.5时提取出6个分割点,相对减少了4个;分段阈值为0.7时提取出4个分割点,相对减少了2个。从图6中可以发现分段阈值为0.3时提取出10个分割点;分段阈值为0.5时提取出7个分割点,相对减少了3个;分段阈值为0.7时提取出6个分割点,相对减少了1个。从图7中可以发现分段阈值为0.3时提取出9个分割点;分段阈值为0.5时提取出7个分割点,相对减少了2个;分段阈值为0.7时提取出4个分割点,相对减少了3个。从这些分割图中可以发现当阈值越大,重要转折点提取的越少,分段数也越少。如果直接将这些分割点连成一条序列,则发现当阈值越大时,连接成的序列和原序列拟合误差较大。(2)分段阈值大小对搜索精度的影响为验证分段阈值大小对搜索精度的影响,进行了不同阈值下的实验。图8是adaic、cricket_x以及50words数据集中某次查询序列在不同阈值的查准率,从图中可以清晰地看到阈值0.5的查准率明显高于阈值0.3的查准率,而阈值为0.7时,这3组数据集中只有一组是保持上升趋势,其他2组则有下降的趋势。图9至图11则是adaic、cricket_x以及50words数据集中不同阈值下的p-r曲线,从图中可以观察到这几组数据集均是阈值0.3的p-r曲线最低,阈值0.5的p-r曲线和阈值0.7的p-r曲线相差无几,难以判断谁更好。综上所述,可以得出以下结论:当分段阈值越大时,查准率也会随之变大,但到达一定程度时,变大的幅度就会减小,甚至出现下降的趋势;p-r曲线也是如此。为进一步弄清楚阈值的大小为何会影响搜索的查准率以及p-r曲线,详细记录了图5中的查询序列在对应阈值分段情况下的权重更新。表2adiac阈值0.3的权重更新表初始权重更新1次更新2次w10.083330.073460.07023w20.083330.090140.09361w30.083330.082840.08125w40.083330.075190.07412w50.083330.102380.09621w60.083330.091930.09245w70.083330.085490.08249w80.083330.082630.08765w90.083330.090430.09215w100.083330.075270.07524w110.083330.080490.08326w120.083330.070840.07145从表2可以发现在权重更新时,第一次权重更新时,权重极差为0.03,第二次权重更新时,权重极差为0.02,和第一次权重更新相比,变化的幅度略小。表3adiac阈值0.5时权重更新表w1w2w3w4w5w6w7初始权重0.142850.142850.142850.142850.142850.142850.14285更新1次0.100260.171350.127760.175630.192160.132850.09988更新2次0.091430.179470.130540.163250.189730.148860.09549从表3中可以发现在权重更新时,第一次权重更新时,权重极差为0.1,第二次权重更新时,权重极差为0.09,和阈值为0.3的权重更新相比,本表的权重整体更新的幅度较大。表4adiac阈值0.7的权重更新表w1w2w3w4w5初始权重0.200000.200000.200000.200000.20000更新1次0.180260.257130.264760.145630.14216更新2次0.164320.268470.258540.155630.15463从表4可以发现在权重更新时,第一次权重更新时,权重极差为0.12,第二次权重更新时,权重极差为0.11。和阈值为0.3的权重更新相比,本表的权重整体更新的幅度较大。和阈值为0.5的权重更新相比,本表的权重整体更新的幅度略大。由此可见,当分段数过多或过少都会导致最终的权重更新幅度不明显,从而导致最终的搜索结果没有达到预期的效果。通过多组实验表明,当阈值在0.5左右时,大多数数据集实验效果达到最佳因此在下面的实验当中选取阈值为0.5的结果进行比较。(3)反馈对搜索查准率的影响为验证方法中反馈是否能优化搜索精度,实验中共做了2轮的权重更新反馈查询,并详细记录了每一轮的查准率,如表5所示。从表5第1轮反馈查询和初始查询的查准率对比中,可以看出在第1轮反馈查询中,所有数据集的查准率均有不同程度的上升,平均上升约0.2;在第2轮反馈查询和第1轮反馈查询的查准率对比中,可以发现大部分数据集查准率同样有不同程度的上升,平均上升约0.02。只有inlineskate、cricket_z等少部分数据集在第2轮反馈查询中查准率有轻微下降,平均下降约0.01。总体来说,基于分段权重的相似性搜索方法是可以在不断的反馈中提高序列相似性搜索的查准率。表5基于分段权重的查准率序号数据集名初始查询第1轮反馈第2轮反馈1chlorineconcentration0.6922450.8831500.9002182starlightcurves0.8613140.9415480.9579813two_patterns0.8891600.9686500.9958904trace0.5560000.7381970.7444385oliveoil0.7100000.8666670.8766676haptics0.3691140.5757940.5935427beef0.3816670.5466670.5646678osuleaf0.4839370.7298850.7451369synthetic_control0.8445000.9323670.95335710inlineskate0.2987690.5081540.48714811fish0.6820000.8693150.88576412lighting70.4839160.7013680.71352113medicalimages0.6359330.8267670.84286614cricket_x0.4235900.6223080.64107015cricket_y0.4620510.6961540.72012816cricket_z0.4288460.6612640.65532817facesucr0.8411560.9435610.94638418swedishleaf0.6677330.8546850.86975419wordssynonyms0.5511600.7121680.74320420adiac0.4727270.6584230.6578152150words0.5311600.6416570.661549以上所述仅是本发明的优选实施方式,应当指出:对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1