一种相似性时间序列搜索的方法和装置制造方法

文档序号:6625137阅读:167来源:国知局
一种相似性时间序列搜索的方法和装置制造方法
【专利摘要】本发明提供一种相似性时间序列搜索的方法和装置,能够实现数据的宏观状态的比较并且有较高的计算效率。本发明的相似性时间序列搜索的方法包括:按预设的状态集,将多个对象的目标时间序列数据转换为目标状态序列数据;将状态描述序列与所述目标状态序列数据进行匹配,在所述目标状态序列数据中有连续的数据与所述状态描述序列中的全部描述项匹配成功的情况下,输出所述连续的数据所属的对象的标识。
【专利说明】一种相似性时间序列搜索的方法和装置

【技术领域】
[0001]本发明涉及一种相似性时间序列搜索的方法和装置。

【背景技术】
[0002]随着现代科技的发展,数据的存储能力飞速增强,使得更多的数据得以保存起来,在与人们生活息息相关的各行业中涌现出各类海量数据。时间序列数据就是这样的数据,按照固定的时间间隔收集并存储。比如股市数据、气温变化数据、心跳变化数据等。对这些数据进行分析,可揭示出事物变化、发展规律,为科学决策提供帮助。时间序列数据是数据挖掘的基础之一,相似性时间序列的搜索技术对于时间序列数据挖掘变得越来越重要。时间序列具有数据维度高的特性,使得时间序列的挖掘具有比较高的难度。时间序列的相似性搜索是时间序列数据挖掘的一种重要手段。
[0003]现有时间序列相似性技术,多采用形态学匹配计算欧式距离,S卩比对两个时间序列曲线的形状。欧式距离越小则越相似。这种技术着重于形态学上的匹配,局限于微观的数值比较,从而限制了现有时间序列相似性搜索的范畴。对于超越了形态学的相似性比较,特别是数据在一定程度的宏观的属性的比较,现有技术很难满足需求。另外,现有时间序列相似性搜索技术参与计算的维度很高,这会引入计算误差问题和计算量代价高的问题。


【发明内容】

[0004]有鉴于此,本发明提供一种相似性时间序列搜索的方法和装置,能够实现数据的宏观状态的比较并且有较高的计算效率。
[0005]为实现上述目的,根据本发明的一个方面,提供了一种相似性时间序列搜索的方法。
[0006]本发明的相似性时间序列搜索的方法包括:按预设的状态集,将多个对象的目标时间序列数据转换为目标状态序列数据;将状态描述序列与所述目标状态序列数据进行匹配,在所述目标状态序列数据中有连续的数据与所述状态描述序列中的全部描述项匹配成功的情况下,输出所述连续的数据所属的对象的标识。
[0007]可选地,所述状态描述序列中的各个描述项包括状态名、匹配方式、最小计数限制条件、以及最大限制计数条件,其中:所述状态名用于指定所在描述项涉及的状态,描述项中状态名为空表示任意状态;所述匹配方式用于指定在将本描述项中的状态名与所述目标状态序列数据进行匹配时的匹配方式,包括直接匹配和取非匹配,其中所述状态名与目标状态序列数据中的状态名一致时表示对状态名直接匹配成功,对所述状态名所表示的状态进行取非之后得到的状态包含了目标状态序列数据中的状态名时表示对状态名取非匹配成功;所述最小计数条件用于指定所在描述项涉及的状态的最短持续时间,在目标状态序列数据中的状态持续时长大于该最短持续时间的情况下表示最小计数条件匹配成功,所述最小计数条件为空表示目标状态序列数据中的状态持续时长为任意值时最小计数条件都匹配成功;所述最大计数条件用于指定所在描述项涉及的状态的最长持续时间,在目标状态序列数据中的状态持续时长小于该最短持续时间的情况下表示最大计数条件匹配成功,所述最大计数条件为空表示目标状态序列数据中的状态持续时长为任意值时最大计数条件都匹配成功。
[0008]可选地,所述对象是商品,所述时间序列数据是各种商品各自的日销量。
[0009]根据本发明的另一方面,提供了一种相似性时间序列搜索的装置。
[0010]本发明的相似性时间序列搜索的装置包括:数据转换模块,用于按预设的状态集,将多个对象的目标时间序列数据转换为目标状态序列数据;匹配输出模块,用于将状态描述序列与所述目标状态序列数据进行匹配,在所述目标状态序列数据中有连续的数据与所述状态描述序列中的全部描述项匹配的情况下,输出所述连续的数据所属的对象的标识。[0011 ] 可选地,所述状态描述序列中的各个描述项包括状态名、匹配方式、最小计数限制条件、以及最大限制计数条件,其中:所述状态名用于指定所在描述项涉及的状态,描述项中状态名为空表示任意状态;所述匹配方式用于指定在将本描述项中的状态名与所述目标状态序列数据进行匹配时的匹配方式,包括直接匹配和取非匹配,其中所述状态名与目标状态序列数据中的状态名一致时表示对状态名直接匹配成功,对所述状态名所表示的状态进行取非之后得到的状态包含了目标状态序列数据中的状态名时表示对状态名取非匹配成功;所述最小计数条件用于指定所在描述项涉及的状态的最短持续时间,在目标状态序列数据中的状态持续时长大于该最短持续时间的情况下表示最小计数条件匹配成功,所述最小计数条件为空表示目标状态序列数据中的状态持续时长为任意值时最小计数条件都匹配成功;所述最大计数条件用于指定所在描述项涉及的状态的最长持续时间,在目标状态序列数据中的状态持续时长小于该最短持续时间的情况下表示最大计数条件匹配成功,所述最大计数条件为空表示目标状态序列数据中的状态持续时长为任意值时最大计数条件都匹配成功。
[0012]可选地,所述对象是商品,所述时间序列数据是各种商品各自的日销量。
[0013]根据本发明的技术方案,将时间序列数据转换为状态序列数据,再用指定的状态描述序列与各个状态序列数据分别进行匹配,一方面能够从进行搜索的用户的实际需求出发,从宏观上以状态描述序列的方式准确提供用户的搜索条件,使搜索更加实用、准确;另一方面还有助于降低参与匹配的数据量,提高计算效率。

【专利附图】

【附图说明】
[0014]附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
[0015]图1是根据本发明实施例的相似性时间序列搜索的方法的基本流程的示意图;
[0016]图2是根据本发明实施例的相似性时间序列搜索的装置的基本结构的示意图。

【具体实施方式】
[0017]以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识至IJ,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0018]在本发明实施例中,主要以处理商品销量数据为例加以说明。这里的商品销量数据是多种商品各自的日销量数据,多日的日销量数据即构成时间序列数据,对于多种商品即相应有多项时间序列数据。搜索的任务就是要从作为目标时间序列数据的海量的商品的日销量数据中,确定哪些商品的销量特征符合我们预先指定的销量特征。可以看出每项时间序列数据包含大量数据,为了提高计算效率,本实施例中对于目标时间序列数据进行降维处理,将其转换为目标状态序列数据,从而将时间序列数据的搜索转换为对状态序列数据的搜索,搜索得到的状态序列数据所对应的商品即为需要确定的商品。
[0019]以下先对本实施例中涉及的状态的概念加以介绍。状态是时间序列数据在某一段范围内所表现出来的一种特征,在不同的时间,状态可能相同也可能不同,但状态的总数必须在两个以上,构成一个状态集。状态的定义遵循一个原则,即状态间是没有交集的、所有状态的概率之和是I。也就是说时间序列数据中的每个数据必然处于并且仅处于一种状态中。以商品销量数据为例,事先设定销量的高低两个阈值,则商品销量数据的状态集共有四种状态:断货、高销量、正常销量、低销量。其中日销量高于设定的高阈值则状态为高销量,日销量低于设定的低阈值则状态为低销量,日销量介于高低阈值之间则为正常销量,另外无货供应时销量为零,状态为断货,因为对于一般商品来说不会出现存在供货正常但一件也未卖出的情况。
[0020]在时间序列数据中,位于不同的时间段的数据属于不同的状态,变化的状态形成一个状态序列。本实施例中,将时间序列数据转换为状态序列数据,状态序列数据中的每个数据的结构为(s,num),其中s表示该数据的状态,num表示该状态的持续时间,如果时间序列数据是每天一个数据,例如商品的日销量,则该持续时间可以是天数。因为通常来说时间序列中一般是相邻多个数据属于同一状态,所以将时间序列数据转换为状态序列数据之后,该状态序列数据中的数据个数将显著减少,有助于提高后续计算的效率。
[0021]在将商品的日销量的时间序列数据转换为状态序列数据时,可以先计算该时间序列数据的平均值和标准差,将该平均值与标准差的和作设定为高阈值,二者之差设定为低阈值;然后遍历该时间序列数据,对于遍历到的当前数据,若大于该高阈值则作为高销量状态,若小于该低阈值则作为低销量状态,介于该高阈值和低阈值之间则作为正常销量状态,值为零则作为断货状态。一般来说在时间序列数据会存在连续若干个数值属于同一状态,此时将它们合并为状态序列数据中的一个数据,例如连续10天的销量属于高销量状态,第11天为断货状态,则这10天的时间序列数据被转换为状态序列数据中的I个数据,值为(高销量,10)。因此时间序列数据在转换得到状态序列数据之后,数据量有显著的减小。
[0022]以下再对本实施例中的状态描述序列做出说明。在将时间序列数据转换为状态序列数据的情况下,对于时间序列数据的搜索即转化成为对状态序列数据的搜索,相应地,搜索条件应当对指定的状态的组合进行描述,即给出一种状态描述序列。本实施例给出一种状态描述方式,有助于方便、清晰地形成状态描述序列。
[0023]本实施例中的状态描述序列由多个描述项构成,每个描述项包含状态名、匹配方式、最小计数限制条件、以及最大限制计数条件这四个参数。状态名用于指定所在描述项涉及的状态,描述项中状态名为空表示任意状态。匹配方式用于指定在将本描述项中的状态名与目标状态序列数据进行匹配时的匹配方式,包括直接匹配和取非匹配,其中状态名与目标状态序列数据中的状态名一致时表示对状态名直接匹配成功,对状态名所表示的状态进行取非之后得到的状态包含了目标状态序列数据中的状态名时表示对状态名取非匹配成功。最小计数条件用于指定所在描述项涉及的状态的最短持续时间,在目标状态序列数据中的状态持续时长大于该最短持续时间的情况下表示最小计数条件匹配成功,最小计数条件为空表示目标状态序列数据中的状态持续时长为任意值时最小计数条件都匹配成功。最大计数条件用于指定所在描述项涉及的状态的最长持续时间,在目标状态序列数据中的状态持续时长小于该最短持续时间的情况下表示最大计数条件匹配成功,最大计数条件为空表示目标状态序列数据中的状态持续时长为任意值时最大计数条件都匹配成功。
[0024]举例来说,一个状态描述序列包含四个描述项,分别如下(每个描述项中的参数分别为状态名、匹配方式、最小计数限制条件、以及最大限制计数条件):
[0025]描述项1:(高销量,直接匹配,5,空);
[0026]描述项2:(空,直接匹配,空,空);
[0027]描述项3:(断货,直接匹配,10,空);
[0028]描述项4:(断货,取非匹配,I,40)。
[0029]上述描述项I至4是按时间先后进行描述,这4个描述项合起来即表示如下含义:“近期(1-40天)商品供货正常(即非断货),在此之前出现过较为长期(10天以上)的断货,在断货之前曾经出现过5天以上的高销量”。按人们考察事物时在时间顺序上的思维习惯,一般是从近期向远期进行历史上溯,所以上述的含义也是先近期再远期的回顾描述。这里的用语“在断货之前曾经出现过”表示出现的高销量与发生断货之间存在或不存在时间间隔,但搜索时对此并不关心,因此在高销量状态(即描述项I)与断货状态(即描述项3)之间添加一个描述项2,在该描述项2中,状态为空,表示任意状态都匹配成功,即表达了不关心此时状态的意思。
[0030]以下再对本实施例中的将状态描述序列与目标状态序列数据的匹配加以说明。在提供了状态描述序列之后,就可以将其与目标状态序列数据进行匹配。匹配一般从目标状态序列数据的起始数据开始,将状态描述序列的描述项的第I项与目标状态序列数据的第I个数据进行匹配,若匹配成功,再将状态描述序列的描述项的第2项与目标状态序列数据的第2个数据进行匹配;若在一次匹配中不成功,例如将状态描述序列的描述项的第2项与目标状态序列数据的第2个数据进行匹配未成功,则需返回状态描述序列的描述项的第I项,将其与目标状态序列数据的第2个数据进行匹配。也就是说,在匹配时,需要从目标状态序列中找到连续的若干个目标状态数据,这些数据分别对应地与状态描述序列中的每个描述项匹配成功。举例来说,状态描述序列包含ABCD四个描述项,有一个目标状态序列包含100个数据,如果这ABCD四个描述项的匹配方式都为直接匹配,在该目标状态序列中有4个数据一一对应地与ABCD四个描述项匹配才算是匹配成功。
[0031]但是对于取非匹配的匹配方式,匹配操作时需考虑特殊情况。例如:状态描述序列ABCD四个描述项中,描述项C是(断货,取非匹配,7,空);描述项D是(高销量,直接匹配,10,空);另外在目标状态序列中,第35个数据是(低销量,10);第36个数据是(正常销量,20)。假设在该目标状态序列中,第33、34个数据分别与上述状态描述序列ABCD四个描述项中的描述项A、B匹配成功,接下来将描述项C与第35个数据进行匹配,可以看出匹配能够成功;然后再将描述项D与第36个数据时行匹配,可以看出匹配不成功,但注意到第36个数据与第35个数据合起来表达的状态的实际含义是非断货持续了 20天,这实际上与描述项C能够匹配成功,此时就应当认为描述项与第35、36个数据匹配成功,并且接下来应当是将描述项37与描述项D进行匹配,如匹配成功,则状态描述序列整体与第34至第37个数据匹配成功;如描述项37与描述项D匹配不成功,仍需返回去考察第35至第37个数据是否合起来与描述项C匹配成功,如成功则再将第38个数据与描述项D进行匹配,依此类推;如第35至第37个数据合起来与描述项C匹配不成功才算是状态描述序列ABCD未与第33至第37个数据匹配不成功。从上面的例子可以看出,对于取非匹配的描述项,它有可能与目标状态描述序列中的多个连续数据的合并状态匹配成功。
[0032]在状态描述序列与某个状态序列数据中的若干个连续的数据匹配成功的情况下,确定该连续的数据是属于哪个商品的,然后输出该商品的标识,例如其SKU(库存量单位)编号。此时意味着该商品的销量特征符合状态描述序列所指定的销量特征。实际上,提供的描述项一般能够与多个状态序列数据中的若干个连续的数据匹配成功,也就是说可以搜索出多个商品,这些商品的销量特征都符合状态描述序列所指定的销量特征。所以一般来说要对从商品销量数据库中数据得到的所有状态序列数据进行匹配处理。
[0033]综上,在从商品销量数据库中搜索具备指定销量特征的数据时,可采用图1所示的流程,图1是根据本发明实施例的相似性时间序列搜索的方法的基本流程的示意图。
[0034]步骤Sll:将多个商品的日销量数据转换为状态序列数据。这里的商品是以SKU作为区分。在转换之后商品的SKU与状态序列数据一一对应。
[0035]步骤S12:取I个状态序列数据,与状态描述序列进行匹配。从本步骤开始,对步骤Sll中得到的多个状态序列数据进行遍历并匹配。具体即按上文说明的方法进行。
[0036]步骤S13:判断匹配是否成功,若是,进入步骤S14 ;否则进入步骤S15。
[0037]步骤S14:输出参与匹配的状态序列数据对应的商品的标识。
[0038]步骤S15:判断遍历是否完成。这里的遍历是指步骤S12中开始的遍历。若完成则结束流程,否则返回步骤S12,取下一个状态序列数据进行匹配。
[0039]以上是以商品销量数据这种时间序列为例进行了说明,实际上本实施例的方法也适用于其他时间序列数据。另外,状态可由发起搜索的用户自己定义,以进行不同条件的搜索。需要注意的是定义的状态要满足前文所述的状态的定义所遵循的原则。
[0040]图2是根据本发明实施例的相似性时间序列搜索的装置的基本结构的示意图。如图2所示,相似性时间序列搜索的装置20主要包括数据转换模块21和匹配输出模块22。数据转换模块21用于按预设的状态集,将多个对象的目标时间序列数据转换为目标状态序列数据;匹配输出模块22用于将状态描述序列与上述目标状态序列数据进行匹配,在上述目标状态序列数据中有连续的数据与上述状态描述序列中的全部描述项匹配的情况下,输出上述连续的数据所属的对象的标识。
[0041]根据本发明实施例的技术方案,将时间序列数据转换为状态序列数据,再用指定的状态描述序列与各个状态序列数据分别进行匹配,一方面能够从进行搜索的用户的实际需求出发,从宏观上以状态描述序列的方式准确提供用户的搜索条件,使搜索更加实用、准确;另一方面还有助于降低参与匹配的数据量,提高计算效率。
[0042]以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和设备的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
[0043]因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来开发出的任何存储介质。
[0044]还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
[0045]上述【具体实施方式】,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
【权利要求】
1.一种相似性时间序列搜索的方法,其特征在于,包括: 按预设的状态集,将多个对象的目标时间序列数据转换为目标状态序列数据; 将状态描述序列与所述目标状态序列数据进行匹配,在所述目标状态序列数据中有连续的数据与所述状态描述序列中的全部描述项匹配成功的情况下,输出所述连续的数据所属的对象的标识。
2.根据权利要求1所述的方法,其特征在于,所述状态描述序列中的各个描述项包括状态名、匹配方式、最小计数限制条件、以及最大限制计数条件,其中: 所述状态名用于指定所在描述项涉及的状态,描述项中状态名为空表示任意状态; 所述匹配方式用于指定在将本描述项中的状态名与所述目标状态序列数据进行匹配时的匹配方式,包括直接匹配和取非匹配,其中所述状态名与目标状态序列数据中的状态名一致时表示对状态名直接匹配成功,对所述状态名所表示的状态进行取非之后得到的状态包含了目标状态序列数据中的状态名时表示对状态名取非匹配成功; 所述最小计数条件用于指定所在描述项涉及的状态的最短持续时间,在目标状态序列数据中的状态持续时长大于该最短持续时间的情况下表示最小计数条件匹配成功,所述最小计数条件为空表示目标状态序列数据中的状态持续时长为任意值时最小计数条件都匹配成功; 所述最大计数条件用于指定所在描述项涉及的状态的最长持续时间,在目标状态序列数据中的状态持续时长小于该最短持续时间的情况下表示最大计数条件匹配成功,所述最大计数条件为空表示目标状态序列数据中的状态持续时长为任意值时最大计数条件都匹配成功。
3.根据权利要求1或2所述的方法,其特征在于,所述对象是商品,所述时间序列数据是各种商品各自的日销量。
4.一种相似性时间序列搜索的装置,其特征在于,包括: 数据转换模块,用于按预设的状态集,将多个对象的目标时间序列数据转换为目标状态序列数据; 匹配输出模块,用于将状态描述序列与所述目标状态序列数据进行匹配,在所述目标状态序列数据中有连续的数据与所述状态描述序列中的全部描述项匹配的情况下,输出所述连续的数据所属的对象的标识。
5.根据权利要求4所述的装置,其特征在于,所述状态描述序列中的各个描述项包括状态名、匹配方式、最小计数限制条件、以及最大限制计数条件,其中: 所述状态名用于指定所在描述项涉及的状态,描述项中状态名为空表示任意状态; 所述匹配方式用于指定在将本描述项中的状态名与所述目标状态序列数据进行匹配时的匹配方式,包括直接匹配和取非匹配,其中所述状态名与目标状态序列数据中的状态名一致时表示对状态名直接匹配成功,对所述状态名所表示的状态进行取非之后得到的状态包含了目标状态序列数据中的状态名时表示对状态名取非匹配成功; 所述最小计数条件用于指定所在描述项涉及的状态的最短持续时间,在目标状态序列数据中的状态持续时长大于该最短持续时间的情况下表示最小计数条件匹配成功,所述最小计数条件为空表示目标状态序列数据中的状态持续时长为任意值时最小计数条件都匹配成功; 所述最大计数条件用于指定所在描述项涉及的状态的最长持续时间,在目标状态序列数据中的状态持续时长小于该最短持续时间的情况下表示最大计数条件匹配成功,所述最大计数条件为空表示目标状态序列数据中的状态持续时长为任意值时最大计数条件都匹配成功。
6.根据权利要求4或5所述的装置,其特征在于,所述对象是商品,所述时间序列数据是各种商品各自的日销量。
【文档编号】G06F17/30GK104166727SQ201410430784
【公开日】2014年11月26日 申请日期:2014年8月28日 优先权日:2014年8月28日
【发明者】周敏, 胡浩, 谢蔚, 刘绍敏, 陈鹏, 王文豹, 王媛, 倪华 申请人:北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1