一种时间序列的检索方法、装置及系统与流程

文档序号:13472319阅读:354来源:国知局
一种时间序列的检索方法、装置及系统与流程

本发明涉及数据分析技术领域,特别涉及一种时间序列的检索方法、装置及系统。



背景技术:

时间序列是指将某种现象某一个统计指标在不同时间上的各个数值,按时间先后顺序排列而形成的序列,其中各个数值即为时间序列的各个节点数据。时间序列分析(timeseriesanalysis)是一种动态数据处理的统计方法,研究随机时间序列所遵从的统计规律,在统计学中作为一种常用的预测手段被广泛应用。

时间序列为典型的高维海量数据,如何从高维海量的时间序列数据流中,检索到目标时间序列的相似时间序列,是目前被广泛研究的问题。通常的检索方法是,将目标时间序列与所有的时间序列逐一进行相似性运算,将最相似的一个或多个时间序列作为检索的结果。

然而,由于时间序列是高维海量数据,针对海量数据进行相似性运算,必然需要占用大量的时间,导致检索效率不高。



技术实现要素:

本发明实施例的目的在于提供一种时间序列的检索方法、装置及系统,以提高检索效率。

为达到上述目的,本发明实施例公开了一种时间序列的检索方法,包括:

获取待检索的目标时间序列;

获取用于检索的数据段中的候选时间序列;

按照预设过滤算法,计算每个候选时间序列与所述目标时间序列之间的边界距离;

滤除所述与所述目标时间序列之间的边界距离不满足第一预设规则的候选时间序列,获得剩余候选时间序列;

计算所述目标时间序列中的节点数据与每个所述剩余候选时间序列中节点数据的节点距离,并判断所述节点距离是否满足第二预设规则;

将节点距离满足第二预设规则的剩余候选时间序列确定为检索到的相似时间序列。

可选的,所述获取用于检索的数据段中所有的候选时间序列,可以包括:

对用于检索的数据流进行分段,得到多个数据段;

从所述多个数据段中,获取候选时间序列。

可选的,所述目标时间序列中包括第一数量个节点数据;

所述从所述多个数据段中,获取候选时间序列,可以包括:

针对每个数据段,从所述数据段中获取预设第二数量个节点数据,将所述第二数量个节点数据组合为循环队列,其中,所述第二数量大于所述第一数量;

按照第一预设顺序,在所述循环队列中获取所述第一数量个节点数据,将所获取的节点数据按照所述第一预设顺序组合为候选时间序列;

将所述循环队列队头位置的预设第三数量个节点数据删除;

从所述数据段中获取所述第三数量个节点数据补充到所述队头位置,形成新的循环队列,并继续执行所述按照第一预设顺序,在所述循环队列中获取所述第一数量个节点数据,将所获取的节点数据按照所述第一预设顺序组合为候选时间序列的步骤。

可选的,在所述获取用于检索的数据段中的候选时间序列之后,还可以包括:

利用预设标准化算法,对所述目标时间序列及所述候选时间序列进行标准化处理;

所述按照预设过滤算法,计算每个候选时间序列与所述目标时间序列之间的边界距离;滤除所述与所述目标时间序列之间的边界距离不满足第一预设规则的候选时间序列,获得剩余候选时间序列,为:

按照预设过滤算法,计算每个标准化后的候选时间序列与标准化后的目标时间序列之间的边界距离;

滤除所述与标准化后的目标时间序列之间的边界距离不满足第一预设规则的标准化后的候选时间序列,获得剩余候选时间序列。

可选的,所述预设过滤算法可以包括:第一级过滤算法和第二级过滤算法;所述第一预设规则包括:与所述第一级过滤算法对应的第一预设子规则和与所述第二级过滤算法对应的第二预设子规则;

所述按照预设过滤算法,计算每个候选时间序列与所述目标时间序列之间的边界距离;滤除所述与所述目标时间序列之间的边界距离不满足第一预设规则的候选时间序列,可以包括:

针对每个候选时间序列,利用所述第一级过滤算法,对所述候选时间序列进行过滤处理:

提取所述候选时间序列的第一特征值及所述目标时间序列的第二特征值;

根据所述第一特征值与所述第二特征值之间的特征值距离,计算所述候选时间序列与所述目标时间序列的之间的边界距离;

判断所述边界距离是否满足所述第一预设子规则,如果否,将所述候选时间序列滤除;

在所述边界距离满足所述第一预设子规则的情况下,利用所述第二级过滤算法对所述候选时间序列进行过滤处理:

计算所述目标时间序列的第一上边界值及第一下边界值,将所述第一上边界值与所述第一下边界值中较小的数值确定为第一目标边界值;

计算所述候选时间序列与所述第一目标边界值的欧式距离,判断所述欧式距离是否满足所述第二预设子规则,如果否,将所述候选时间序列滤除;

所述获得剩余候选时间序列,为:将满足所述第二预设子规则的所述候选时间序列确定为未被滤除的剩余候选时间序列。

可选的,所述第一预设规则还包括与所述第二级过滤算法对应的第三预设子规则;

在判断所述欧式距离满足第二预设子规则的情况下,还可以包括:

计算所述候选时间序列的第二上边界值及第二下边界值,将所述第二上边界值与所述第二下边界值中较小的数值确定为第二目标边界值;

计算所述目标时间序列与所述第二目标边界值的欧式距离,判断所述欧式距离是否满足所述第三预设子规则,如果否,将所述候选时间序列滤除;

所述获得剩余候选时间序列,为:将满足所述第三预设子规则的所述候选时间序列确定为未被滤除的剩余时间序列。

可选的,所述计算所述目标时间序列中的节点数据与每个所述剩余候选时间序列中节点数据的节点距离,并判断所述节点距离是否满足第二预设规则,可以包括:

针对每个剩余候选时间序列,计算所述剩余候选时间序列中的每个节点数据与其对应的所述目标时间序列中节点数据的节点距离之和,并判断所述节点距离之和是否小于第一预设阈值。

可选的,所述计算所述目标时间序列中的节点数据与每个所述剩余候选时间序列中节点数据的节点距离,并判断所述节点距离是否满足第二预设规则,可以包括:

针对每个所述剩余候选时间序列,按照第二预设顺序,在所述剩余候选时间序列中确定目标节点数据;

计算所述目标节点数据与其对应的所述目标时间序列中节点数据的节点距离,并更新所述剩余候选时间序列对应的节点距离之和;

判断所述节点距离之和是否小于当前阈值;如果否,则表示不满足所述第二预设规则,并停止后续步骤;

如果是,返回执行所述按照第二预设顺序,在所述剩余候选时间序列中确定目标节点数据的步骤;

直至按照第二预设顺序,在所述剩余候选时间序列中确定最后一个目标节点数据,计算所述最后一个目标节点数据与其对应的所述目标时间序列中节点数据的节点距离,并更新所述剩余候选时间序列对应的节点距离之和,得到最终节点距离之和;

判断所述最终节点距离之和是否小于所述当前阈值,如果是,表示满足所述第二预设规则,将所述最终节点距离之和确定为当前阈值。

可选的,所述更新所述剩余候选时间序列对应的节点距离之和,可以包括:

当所述目标节点数据为所述第二预设顺序下所述剩余候选时间序列中的第一个节点数据时,将所述第一个节点数据与其对应的所述目标时间序列中节点数据的节点距离记录为所述标准时间序列对应的节点距离之和;

当所述目标节点数据不为所述第二预设顺序下所述剩余候选时间序列中的第一个节点数据时,将所述目标节点数据与其对应的所述目标时间序列中节点数据的节点距离与记录的所述剩余候选时间序列对应的节点距离之和相加,得到最新的所述剩余候选时间序列对应的节点距离之和。

可选的,在所述按照第二预设顺序,在所述剩余候选时间序列中确定目标节点数据之前,还可以包括:

判断所述剩余候选时间序列是否为第一条剩余候选时间序列;

如果否,执行所述按照第二预设顺序,在所述剩余候选时间序列中确定目标节点数据的步骤;

如果是,按照所述第二预设顺序,在所述剩余候选时间序列中确定目标节点数据;计算所述目标节点数据与其对应的所述目标时间序列中节点数据的节点距离,并更新所述剩余候选时间序列对应的节点距离之和;

直至按照所述第二预设顺序,在所述剩余候选时间序列中确定最后一个目标节点数据,计算所述最后一个目标节点数据与其对应的所述目标时间序列中节点数据的节点距离,并更新所述标准时间序列对应的节点距离之和,得到最终节点距离之和;

将所述最终节点距离之和确定为所述当前阈值。

可选的,当所述剩余候选序列为第一条剩余候选时间序列时,所述当前阈值可以为第二预设阈值。

为达到上述目的,本发明实施例还公开了一种时间序列的检索装置,包括:

第一获取模块,用于获取待检索的目标时间序列;

第二获取模块,用于获取用于检索的数据段中的候选时间序列;

过滤模块,用于按照预设过滤算法,计算每个候选时间序列与所述目标时间序列之间的边界距离;滤除所述与所述目标时间序列之间的边界距离不满足第一预设规则的候选时间序列,获得剩余候选时间序列;

计算模块,计算所述目标时间序列中的节点数据与每个所述剩余候选时间序列中节点数据的节点距离;

第一判断模块,用于判断所述节点距离是否满足第二预设规则;

确定模块,用于将节点距离满足第二预设规则的剩余候选时间序列确定为检索到的相似时间序列。

可选的,所述第二获取模块,可以包括:

分段子模块,用于对用于检索的数据流进行分段,得到多个数据段;

获取子模块,用于从所述多个数据段中,获取候选时间序列。

可选的,所述目标时间序列中包括第一数量个节点数据;所述获取子模块,可以包括:

第一获取组合单元,用于针对每个数据段,从所述数据段中获取预设第二数量个节点数据,将所述第二数量个节点数据组合为循环队列,其中,所述第二数量大于所述第一数量;

第二获取组合单元,用于按照第一预设顺序,在所述循环队列中获取所述第一数量个节点数据,将所获取的节点数据按照所述第一预设顺序组合为候选时间序列;

删除单元,用于将所述循环队列队头位置的预设第三数量个节点数据删除;

补充单元,用于从所述数据段中获取所述第三数量个节点数据补充到所述队头位置,形成新的循环队列,并继续触发所述第二获取组合单元。

可选的,所述装置还可以包括:

标准化模块,用于利用预设标准化算法,对所述目标时间序列及所述候选时间序列进行标准化处理;

所述过滤模块,具体可以用于:

按照预设过滤算法,计算每个标准化后的候选时间序列与标准化后的目标时间序列之间的边界距离;

滤除所述与标准化后的目标时间序列之间的边界距离不满足第一预设规则的标准化后的候选时间序列,获得剩余候选时间序列。

可选的,所述预设过滤算法可以包括:第一级过滤算法和第二级过滤算法;所述第一预设规则包括:与所述第一级过滤算法对应的第一预设子规则和与所述第二级过滤算法对应的第二预设子规则;

所述过滤模块,可以包括:

第一级过滤子模块,用于针对每个候选时间序列,利用所述第一级过滤算法,对所述候选时间序列进行过滤处理:

提取所述候选时间序列的第一特征值及所述目标时间序列的第二特征值;

根据所述第一特征值与所述第二特征值之间的特征值距离,计算所述候选时间序列与所述目标时间序列的之间的边界距离;

判断所述边界距离是否满足所述第一预设子规则,如果否,将所述候选时间序列滤除;

第二级过滤子模块,用于在所述边界距离满足所述第一预设子规则的情况下,利用所述第二级过滤算法对所述候选时间序列进行过滤处理:

计算所述目标时间序列的第一上边界值及第一下边界值,将所述第一上边界值与所述第一下边界值中较小的数值确定为第一目标边界值;

计算所述候选时间序列与所述第一目标边界值的欧式距离,判断所述欧式距离是否满足所述第二预设子规则,如果否,将所述候选时间序列滤除;

第一确定子模块,用于将满足所述第二预设子规则的所述候选时间序列确定为未被滤除的剩余时间序列。

可选的,所述第一预设规则还可以包括与所述第二级过滤算法对应的第三预设子规则;

所述第二级过滤子模块,还用于在判断所述欧式距离满足第二预设子规则的情况下,计算所述候选时间序列的第二上边界值及第二下边界值,将所述第二上边界值与所述第二下边界值中较小的数值确定为第二目标边界值;

计算所述目标时间序列与所述第二目标边界值的欧式距离,判断所述欧式距离是否满足所述第三预设子规则,如果否,将所述候选时间序列滤除;

所述第一确定子模块,用于将满足所述第三预设子规则的所述候选时间序列确定为未被滤除的剩余时间序列。

可选的,所述计算模块,具体可以用于:

针对每个剩余候选时间序列,计算所述剩余候选时间序列中的每个节点数据与其对应的所述目标时间序列中节点数据的节点距离之和;

所述第一判断模块,用于判断所述节点距离之和是否小于第一预设阈值。

可选的,所述计算模块,可以包括:第二确定子模块、第一计算子模块、更新子模块,第三确定子模块,其中,

所述第二确定子模块,用于针对每个所述剩余候选时间序列,按照第二预设顺序,在所述剩余候选时间序列中确定目标节点数据;

所述第一计算子模块,用于计算所述目标节点数据与其对应的所述目标时间序列中节点数据的节点距离;

所述更新子模块,用于更新所述剩余候选时间序列对应的节点距离之和;

所述第一判断模块,还用于判断所述节点距离之和是否小于当前阈值;如果否,则表示不满足所述第二预设规则,并停止后续步骤;如果是,触发所述第二确定子模块,直至按照第二预设顺序,在所述剩余候选时间序列中确定最后一个目标节点数据,计算所述最后一个目标节点数据与其对应的所述目标时间序列中节点数据的节点距离,并更新所述剩余候选时间序列对应的节点距离之和,得到最终节点距离之和;

所述第一判断模块,还用于判断所述最终节点距离之和是否小于所述当前阈值,如果是,表示满足所述第二预设规则,触发所述第三确定子模块;

所述第三确定子模块,用于将所述最终节点距离之和确定为当前阈值。

可选的,所述更新子模块,具体可以用于:

当所述目标节点数据为所述第二预设顺序下所述剩余候选时间序列中的第一个节点数据时,将所述第一个节点数据与其对应的所述目标时间序列中节点数据的节点距离记录为所述标准时间序列对应的节点距离之和;

当所述目标节点数据不为所述第二预设顺序下所述剩余候选时间序列中的第一个节点数据时,将所述目标节点数据与其对应的所述目标时间序列中节点数据的节点距离与记录的所述剩余候选时间序列对应的节点距离之和相加,得到最新的所述剩余候选时间序列对应的节点距离之和。

可选的,所述装置还可以包括:

第二判断模块,用于判断所述剩余候选时间序列是否为第一条剩余候选时间序列;如果否,触发所述第二确定子模块,如果是,触发确定计算更新模块;

所述确定计算更新模块,用于按照所述第二预设顺序,在所述剩余候选时间序列中确定目标节点数据;计算所述目标节点数据与其对应的所述目标时间序列中节点数据的节点距离,并更新所述剩余候选时间序列对应的节点距离之和;

直至按照所述第二预设顺序,在所述剩余候选时间序列中确定最后一个目标节点数据,计算所述最后一个目标节点数据与其对应的所述目标时间序列中节点数据的节点距离,并更新所述标准时间序列对应的节点距离之和,得到最终节点距离之和;

将所述最终节点距离之和确定为所述当前阈值。

可选的,当所述剩余候选序列为第一条剩余候选时间序列时,所述当前阈值为第二预设阈值。

为达到上述目的,本发明实施例还公开了一种时间序列的检索系统,包括:至少一个数据转换器、与数据转换器数量相同的数据过滤器和相似序列计算器,以及一个检索结果缓存器;其中,

所述每个数据转换器,用于接收用于检索的数据段,获取所述数据段中的候选时间序列,并发送所述候选时间序列至与所述数据转换器相连的数据过滤器;

所述每个数据过滤器,用于按照预设过滤算法,计算接收到的每个候选时间序列与预设目标时间序列之间的边界距离;滤除所述与所述目标时间序列之间的边界距离不满足第一预设规则的候选时间序列,获得剩余候选时间序列,并发送所述剩余候选时间序列至与所述数据过滤器相连的相似序列计算器;

所述每个相似序列计算器,用于计算所述目标时间序列中的节点数据与接收的每个所述剩余候选时间序列中节点数据的节点距离,并判断所述节点距离是否满足第二预设规则;将节点距离满足第二预设规则的剩余候选时间序列确定为检索到的相似时间序列,并发送所述相似序列至所述检索结果缓存器;

所述检索结果缓存器,用于缓存每个相似序列计算器发送的相似时间序列。

可选的,还可以包括:数据分段器;

所述数据分段器,用于获得用于检索的数据流,并对所述数据流进行分段,得到多个数据段,按预设方式,将所述多个数据段分别发送至各个数据转换器。

可选的,所述每个数据转换器,具体可以用于:

接收用于检索的数据段,获取所述数据段中的候选时间序列;

利用预设标准化算法,对预设目标时间序列及所述候选时间序列进行标准化处理;

将标准化后的候选时间序列及标准化后的目标时间序列发送至与所述数据转换器相连的数据过滤器。

由上述技术方案可见,应用本发明实施例,在海量数据中检索目标时间序列的相似时间序列时,先对海量数据进行过滤处理,滤除很大一部分时间序列,再针对未被滤除的剩余时间序列,计算剩余时间序列中的节点数据与其对应的目标时间序列中节点数据的距离,并判断该距离是否满足预设规则,如果是,则将该剩余时间序列确定为检索结果。由此可见,相比于针对海量数据进行相似性运算的方案,减少了时间成本,提高了检索效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种时间序列的检索方法的流程示意图;

图2为未进行标准化处理的序列对比示意图;

图3为进行标准化处理后的序列对比示意图;

图4为本发明实施例提供的滤除候选时间序列的流程示意图;

图5为本发明实施例提供的一种时间序列的检索装置的结构示意图;

图6为本发明实施例提供的一种时间序列的检索系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了解决上述技术问题,本发明实施例提供了一种时间序列的检索方法、装置及系统,下面首先对本发明实施例提供的时间序列的检索方法进行详细说明。该检索方法可以由平板电脑、计算机、服务器等执行。

图1为本发明实施例提供的一种时间序列的检索方法的流程示意图,包括:

s101:获取待检索的目标时间序列。

本方案的目的是要从高维海量的时间序列数据流中,检索到目标时间序列的相似时间序列,因此,首先要获取目标时间序列。作为一种实施方式,可以设置一个用户输入界面,以使用户输入时间序列,这样便获取到了待检索的目标时间序列。当然,也可以通过其他方式获取待检索的目标时间序列,比如通过远程传输,接收其他设备发送的待检索的目标时间序列等等,在此不做限制。

s102:获取用于检索的数据段中的候选时间序列。

候选时间序列可以理解为与目标时间序列规格相同的时间序列,规格相同,才能对两者进行比较。简单来说,假设目标时间序列中包含5个数值,那么候选时间序列也要包含5个数值。因此,需要对高维海量的时间序列数据流中的数据进行分割处理,以得到候选时间序列。

作为本发明的一种实施方式,可以对用于检索的数据流进行分段,得到多个数据段;从所述多个数据段中,获取候选时间序列。

具体来说,可以按照统一的规格大小,利用数据分割器将亿万级数据流按照指定的顺序分割成各个数据段;再从各个数据段中获取候选时间序列。

需要说明的是,在对数据流进行分割时,为了保证数据流中数据的完整性,通常情况下,各数据段之间保留部分重叠节点数据。举个简单的例子,数据流为12313123141231312314456……,则将其分割为数据段1231312314123和1231312314456,前一个数据段最后三个节点数据“123”与后一个数据段前三个节点数据“123”重合。这样可以避免分割过程中出现异常丢失部分数据的情况。另外,数据段只是对数据流进行初级分割后获得的,数据段中的数据量仍大于目标时间序列中的数据量,因此,还需要从数据段中获取候选时间序列。

作为本发明的一种实施方式,可以采用循环队列的方式,从数据段中获取候选时间序列。

本领域技术人员可以理解的是,通常从数据段中获取候选时间序列,是利用滑动窗口的方式。滑动窗口是基于向量实现的,在每次更新数据时都移出旧节点数据,移入新节点数据,这样的移入移出方式通过后面的节点数据前移覆盖前面的节点数据而实现。也就是说,在滑动窗口中更新数据时,滑动窗口中的每个节点数据都会移动,这种更新方式效率较低。

鉴于此,本实施例中提出了一种循环队列的方式:

目标时间序列中包括第一数量个节点数据,假设第一数量为5。

针对每个数据段,从所述数据段中获取预设第二数量个节点数据,将所述第二数量个节点数据组合为循环队列,其中,所述第二数量大于所述第一数量。

假设预设第二数量为10,针对每个数据段来说,从一个数据段中获取10个节点数据,将这10个节点数据组合为循环队列。假设该数据段中的节点数据包括:3、4、5、8、9、6、3、2、1、8、7、3……;获取前10个节点数据组合为循环列:3、4、5、8、9、6、3、2、1、8。

按照第一预设顺序,在所述循环队列中获取所述第一数量个节点数据,将所获取的节点数据按照所述第一预设顺序组合为候选时间序列。

循环队列可以理解成将各个节点数据排列成一个圆。按照第一预设顺序,在循环队列中获取第一数量个节点数据,是指从该圆中指定位置处截取5个连续的节点数据,假设截取的5个连续的节点数据为3、4、5、8、9。将所获取的节点数据按照第一预设顺序组合为候选时间序列,第一预设顺序即为这5个数据在上述圆中的顺序,仍为3、4、5、8、9,也就是说组合成的候选时间序列为3、4、5、8、9。这样便获取到一个候选时间序列。

将所述循环队列队头位置的预设第三数量个节点数据删除;

从所述数据段中获取所述第三数量个节点数据补充到所述队头位置,形成新的循环队列,并继续执行所述按照第一预设顺序,在所述循环队列中获取所述第一数量个节点数据,将所获取的节点数据按照所述第一预设顺序组合为候选时间序列的步骤。

接下来还要继续获取候选时间序列。这里,第三数量要小于第一数量,假设第三数量为1,将上述循环队列队头位置的1个节点数据删除,再从上述数据段中获取1个节点数据补充到队头位置,也就是说,将循环队列中的第一个数值3删除,从上述数据段中获取上述10个节点数据之后的数值7,将“7”补充到原来“3”的位置,形成的新的循环队列为7、4、5、8、9、6、3、2、1、8。由上面描述可知,循环队列可以理解成将各个节点数据排列成一个圆,因此,新的循环队列的队头位置的“7”跟队尾位置的“8”仍是相邻的,也就是说循环队列中各节点数据之间的顺序与数据段中各节点数据之间的顺序相同。

应用循环队列的方式获取候选时间序列,只需要将新的节点数据覆盖队头位置的节点数据即可,不需要移动队列中的每个节点数据,提高了更新数据及获取候选时间序列的效率。

s103:按照预设过滤算法,计算每个候选时间序列与所述目标时间序列之间的边界距离;滤除所述与所述目标时间序列之间的边界距离不满足第一预设规则的候选时间序列,获得剩余候选时间序列。

预设过滤算法可以为下界函数(lb)算法,当然也可以为其他过滤算法,在此不做限制。在本发明所示实施例中,预设过滤算法可以为多级过滤算法。

需要说明的是,在s103之前,可以先利用预设标准化算法,对所述目标时间序列及所述候选时间序列进行标准化处理;再按照预设过滤算法,计算每个标准化后的候选时间序列与标准化后的目标时间序列之间的边界距离;滤除所述与标准化后的目标时间序列之间的边界距离不满足第一预设规则的标准化后的候选时间序列,获得剩余候选时间序列。

时间序列数据具有趋势性特点,在对历史数据进行分析的过程中发现,随着时间变化的积累,间隔时间较长的数据间往往会出现整体放大或是整体缩小的现象,从全局来看,由于有趋势变化因素的影响,这都属于正常现象,但在对时间序列的相似性分析过程中,此现象会导致原本相似的时间序列由于绝对数值偏差而变的不相似。另外,如果突然出现一个外部因素短期的持续作用,也会有导致数据整体上浮或整体下浮的可能性。比如,声音数据中:相同的一段声音,但由于采样距离不同可能导致采集到的数据不相似;再如气象数据中气温短期升高对空气湿度的影响:高温时空气湿度变化和低温时空气湿度变化可能十分相似,但由于湿度值的偏差会影响两个时间序列相似性计算结果。

举例来说,假设有序列a(10,15,25,30,10,15,25),序列b(19,25,35,41,20,25,35),两个序列放到同一坐标下对比情况如图2所示,两段序列的形状是十分相似的,但是由于各个节点数据的绝对值偏差,序列a与序列b之间的距离很大。

为了解决这种问题,在本发明所示实施例中,在计算目标时间序列与候选时间序列的边界距离之前,先对二者进行标准化处理。作为一种实施方式,可以采用标准差标准化算法对目标时间序列及候选时间序列进行标准化处理。

该算法是将时间序列中的各节点数据减去该时间序列中各节点数据的平均值,再除以该时间序列中各节点数据的标准差。也就是说,经过标准差标准化算法处理后的时间序列中的各节点数据,将有大约一半的值小于0,而另一半的值大于0,序列的平均值为0,标准差为1,符合正态分布。

利用标准差标准化算法,对上述序列a及序列b进行标准化处理后,得到:序列a(-1.1547,-0.4811,0.8660,1.5396,-1.1547,-0.4811,0.866),序列b(-1.2245,-0.4569,0.8224,1.59,-1.0966,-0.4569,0.8224)。如图3所示,两个序列基本重合。也就是说,对两序列进行标准化处理后,序列a与序列b之间的距离变得很小。因此,对时间序列进行标准化处理,可以消除上述采样距离或其他因素突变对时间序列中的数据造成的影响,同时保持时间序列本身的特征。

s104:计算所述目标时间序列中的节点数据与每个所述剩余候选时间序列中节点数据的节点距离,并判断所述节点距离是否满足第二预设规则,如果是,执行s105。

s104可以理解为计算目标时间序列与剩余候选时间序列的相似度,并判断计算得到的相似度是否满足要求。

作为本发明的一种实施方式,可以针对每个剩余候选时间序列,计算所述剩余候选时间序列中的每个节点数据与其对应的所述目标时间序列中节点数据的节点距离之和,并判断所述节点距离之和是否小于第一预设阈值。

假设目标时间序列a为1,2,3,4,5,6,7,8,剩余候选时间序列b2:1,3,3,3,3,4,7,8。计算a与b2中每对节点数据间的节点距离之和,这里的节点距离可以为欧氏距离、马氏距离等等,在此不做限制。本实施例中,以欧氏距离为例进行说明。

也就是说计算a中第一个节点数据“1”与b2中第一个节点数据“1”的节点距离之和为0,计算a中第二个节点数据“2”与b2中第一个节点数据“3”的节点距离之和为1……以此类推,计算完两个时间序列中所有节点数据的节点距离之和,然后判断得到的节点距离之各是否小于预设阈值,如果是,则说明剩余候选时间序列b2满足相似度要求,满足第二预设规则。

需要说明的是,确定剩余候选时间序列中的每个节点数据对应的目标时间序列中的节点数据时,并不局限于上述例子中剩余候选时间序列中的第n个节点数据对应目标时间序列中第n个节点数据的方式,还可以采用如下方式:

以剩余候选时间序列中第n个节点数据为例进行说明,该第n个节点数据可以在目标时间序列中第n个节点数据及其之前的预设数量个节点数据以及之后的预设数量个节点数据中,确定距离最小的节点数据为自身对应的节点数据。

本实施方式中,第二预设规则很简单,只包括一个固定的预设阈值。在本发明的其他实施方式中,第二预设规则可以包括动态的当前阈值。

作为本发明的另一种实施方式,s104可以包括:针对每个所述剩余候选时间序列,按照第二预设顺序,在所述剩余候选时间序列中确定目标节点数据。

还以上述目标时间序列a与剩余候选时间序列b2为例进行说明。第二预设顺序可以为时间上从前至后的顺序,也可以为由后至前的顺序,也可以为其他预设的顺序,在此不做限制。下面以从前至后的顺序进行说明。

按照从前至后的顺序,首先将剩余候选时间序列b2中的第一个节点数据“1”确定为目标节点数据。

计算所述目标节点数据与其对应的所述目标时间序列中节点数据的节点距离,并更新所述剩余候选时间序列对应的节点距离之和。

计算b2中的第一个节点数据“1”与其对应的目标时间序列a中的第一个节点数据“1”的节点距离。该距离为欧氏距离,值为0。

剩余候选时间序列对应的节点距离之和为各对节点距离值的累加,由于刚计算完第一对节点数据之间的距离,剩余候选时间序列对应的节点距离之和即为此次计算得到的距离0。

判断所述节点距离之和是否小于当前阈值。

在本实施方式中,当前阈值是个动态值。如果剩余候选时间序列为第一条剩余候选时间序列,则可以将第一条剩余候选时间序列中的全部节点数据与其对应的目标时间序列中节点数据的节点距离之和确定为当前阈值。

当然,还可以预先设定一个阈值,如果第一条剩余候选时间序列中的全部节点数据与其对应的目标时间序列中节点数据的节点距离之和小于该阈值,则将小于该阈值的节点距离之和确定为当前阈值,如果大于该阈值,则当前阈值仍为该设定的阈值,直至计算得到其他剩余候选时间序列中的全部节点数据与其对应的目标时间序列中节点数据的节点距离之和小于该设定的阈值时,将小于该设定的阈值的节点距离之和确定为当前阈值。

也就是说,可以在剩余候选时间序列中确定目标节点数据之前,先判断剩余候选时间序列是否为第一条剩余候选时间序列,如果是,则按照所述第二预设顺序,在所述剩余候选时间序列中确定目标节点数据;计算所述目标节点数据与其对应的所述目标时间序列中节点数据的节点距离,并更新所述剩余候选时间序列对应的节点距离之和;直至按照所述第二预设顺序,在所述剩余候选时间序列中确定最后一个目标节点数据,计算所述最后一个目标节点数据与其对应的所述目标时间序列中节点数据的节点距离,并更新所述标准时间序列对应的节点距离之和,得到最终节点距离之和;将所述最终节点距离之和确定为所述当前阈值。

如上所述,如果剩余候选时间序列为第一条剩余候选时间序列,则可以计算第一条剩余候选时间序列中的全部节点数据与其对应的目标时间序列中节点数据的节点距离之和。具体计算过程可以包括:

假设第一条剩余候选时间序列为b0:8,7,6,6,6,6,6,5,按照从前至后的顺序,首先将剩余候选时间序列b0中的第一个节点数据“8”确定为目标节点数据。计算b0中的第一个节点数据“8”与其对应的目标时间序列a中的第一个节点数据“1”的节点距离。该距离为欧氏距离,值为7。然后更新剩余候选时间序列b0对应的节点距离之和。

如上所述,剩余候选时间序列对应的节点距离之和为各对节点距离值的累加:

当所述目标节点数据为所述第二预设顺序下所述剩余候选时间序列中的第一个节点数据时,将所述第一个节点数据与其对应的所述目标时间序列中节点数据的节点距离记录为所述标准时间序列对应的节点距离之和;

当所述目标节点数据不为所述第二预设顺序下所述剩余候选时间序列中的第一个节点数据时,将所述目标节点数据与其对应的所述目标时间序列中节点数据的节点距离与记录的所述剩余候选时间序列对应的节点距离之和相加,得到最新的所述剩余候选时间序列对应的节点距离之和。

也就是说,计算完第一对节点数据之间的距离后,剩余候选时间序列b0对应的节点距离之和为计算得到的该第一对节点数据之间的距离。

之后,每次计算完一对节点数据之间的距离后,将新计算得到的数值与之前记录的距离之和再相加,也就是说,每计算完一对节点数据之间的距离后,对记录的节点数据的距离之和进行更新。

在上述例子中,当计算完第一对节点数据之间的距离后,记录剩余候选时间序列b1对应的节点距离之和为7。

然后将剩余候选时间序列b0中的第二个节点数据“7”确定为目标节点数据。计算b0中的第二个节点数据“7”与其对应的目标时间序列a中的第二个节点数据“2”的节点距离,值为5。然后将剩余候选时间序列b0对应的节点距离之和更新为7+5=12。

以此类推,直至计算完剩余候选时间序列b0中的全部节点数据与其对应的目标时间序列中节点数据的节点距离,并得到最终节点距离之和。在上述例子中,最终节点距离之和为:|8-1|+|7-2|+|6-3|+|6-4|+|6-5|+|6-6|+|6-7|+|5-8|=22。

根据上面两种情况,可以将22作为当前阈值;还可预设一个阈值,假设为10,22大于10,当前阈值仍为10,直至计算得到其他剩余候选时间序列中的全部节点数据与其对应的目标时间序列中节点数据的节点距离之和小于10时,将该小于10的节点距离之和确定为当前阈值;假设设定的阈值为25,22小于25,则将22确定为当前阈值。

上述剩余候选时间序列b2不为第一条剩余候选时间序列,且假设当前阈值为22,则判断上述第一对节点距离|1-1|=0小于当前阈值22。

判断结果为是,返回执行所述按照第二预设顺序,在所述剩余候选时间序列中确定目标节点数据的步骤。

在上述例子中,当计算完第一对节点数据之间的距离后,记录剩余候选时间序列b2对应的节点距离之和为0。

然后将剩余候选时间序列b2中的第二个节点数据“3”确定为目标节点数据。计算b2中的第二个节点数据“3”与其对应的目标时间序列a中的第二个节点数据“2”的节点距离,值为1。然后将剩余候选时间序列b2对应的节点距离之和更新为0+1=1。

直至按照第二预设顺序,在所述剩余候选时间序列中确定最后一个目标节点数据,计算所述最后一个目标节点数据与其对应的所述目标时间序列中节点数据的节点距离,并更新所述剩余候选时间序列对应的节点距离之和,得到最终节点距离之和。

以此类推,直至计算完剩余候选时间序列b2中的全部节点数据与其对应的目标时间序列中节点数据的节点距离,并得到最终节点距离之和。在上述例子中,最终节点距离之和为:|1-1|+|3-2|+|3-3|+|3-4|+|3-5|+|4-6|+|7-7|+|8-8|=6。

判断所述最终节点距离之和是否小于所述当前阈值,如果是,表示满足所述第二预设规则,将所述最终节点距离之和确定为当前阈值。

判断最终节点距离之和6小于当前阈值22,表示满足第二预设规则,将最终节点距离之和6确定为当前阈值。

在上述过程中,如果还未计算完剩余候选时间序列中全部节点数据与其对应的目标时间序列中节点数据的节点距离,记录的节点距离之和便大超过了当前阈值,则表示该剩余时间序列不满足第二预设规则,提前终止对该剩余时间序列的计算。减少了不必要的计算过程,缩短了计算相似度过程的时间,提高了检索效率。

s105:将节点距离满足第二预设规则的剩余候选时间序列确定为检索到的相似时间序列。

根据上述描述,针对每个剩余候选时间序列,计算其与目标时间序列的相似度,并判断计算得到的相似度是否满足第二预设规则,如果满足,则将该剩余候选时间序列确定为检索到的所述目标时间序列的相似时间序列。由此,便检索到了目标时间序列的相似时间序列。

应用本发明图1所示实施例,在海量数据中检索目标时间序列的相似时间序列时,先对海量数据进行过滤处理,滤除很大一部分时间序列,再针对未被滤除的剩余时间序列,计算剩余时间序列中的节点数据与其对应的目标时间序列中节点数据的距离,并判断该距离是否满足预设规则,如果是,则将该剩余时间序列确定为检索结果。由此可见,相比于针对海量数据进行相似性运算的方案,减少了时间成本,提高了检索效率。

图4为本发明实施例提供的滤除候选时间序列的流程示意图,也就是本发明图1所示实施例中s103的一种实施方式。在图4所示实施例中,预设过滤算法可以包括:第一级过滤算法和第二级过滤算法;所述第一预设规则包括:与所述第一级过滤算法对应的第一预设子规则和与所述第二级过滤算法对应的第二预设子规则。

s103可以包括如下步骤:

s103a:针对每个候选时间序列,利用所述第一级过滤算法,对所述候选时间序列进行过滤处理:

s103a1:提取所述候选时间序列的第一特征值及所述目标时间序列的第二特征值;

s103a2:根据所述第一特征值与所述第二特征值之间的特征值距离,计算所述候选时间序列与所述目标时间序列的之间的边界距离;

s103a3:判断所述边界距离是否满足所述第一预设子规则,如果否,执行s103c:将所述候选时间序列滤除。

举例来说,假设目标时间序列a为1,2,3,4,5,6,7,8,获取到候选时间序列b1:8,7,6,6,6,6,6,6。假设特征值分别为时间序列的第一个元素值、最后一个元素值、最大值以及最小值,当然也可以按照其他规则确定特征值,在此不做限制。提取目标时间序列a的第二特征值为:8,6,8,6;提取候选时间序列b1的第一特征值:8,6,8,6。计算a与b1之间的低边界距离(a,b1)=|1-8|+|8-6|+|8-8|+|1-6|=14。

假设获取到另一候选时间序列b2:1,3,3,3,3,4,7,8,提取b2的第一特征值:1,8,8,1。计算a与b2之间低边界距离(a,b2)=0。也就是说,相较于b1,b2与a更相似,因此候选时间序列b1滤除。

上述第一预设子规则可以理解为,记录当前低边界距离最小值,将计算得到的候选时间序列与目标时间序列之间的低边界距离值与该当前低边界距离最小值进行比较,如果上述计算得到的值比当前低边界距离最小值大,则该候选时间序列滤除;如果上述计算得到的值比当前低边界距离最小值小,则将当前低边界距离最小值更新为该计算得到的值。

当然上述第一预设子规则还可以理解为,预先设定一个阈值,如果计算得到的候选时间序列与目标时间序列之间的低边界距离值大于该阈值,则滤除该候选时间序列,如果小于该阈值,则表示满足该第一预设子规则。

第一预设子规则的设定方式还可以有多种,在此不一一列举。

在所述边界距离满足所述第一预设子规则的情况下,继续执行s103b:利用所述第二级过滤算法对所述候选时间序列进行过滤处理:

s103b1:计算所述目标时间序列的第一上边界值及第一下边界值,将所述第一上边界值与所述第一下边界值中较小的数值确定为第一目标边界值。

为了方便描述,假设目标时间序列为qm={q1,q2……qm},候选序列为cm={c1,c2……cm}。计算目标时间序列的第一上边界值u(q)i=maxi{qk∣|k-i|<ω}和第一下边界值l(q)i=mini{qk∣|k-i|<ω}。将第一上边界值u(q)i及第一下边界值l(q)i中较小的数值确定为第一目标边界值。

s103b2:计算候选时间序列cm与第一目标边界值的欧式距离,判断所述欧式距离是否满足所述第二预设子规则,如果否,执行s103c:将所述候选时间序列滤除。

第二预设子规则可以理解为,记录当前欧式距离最小值,将计算得到的候选时间序列与第一目标边界值之间的欧式距离值与该当前欧式距离最小值进行比较,如果上述计算得到的值比当前欧式距离最小值大,则该候选时间序列滤除;如果上述计算得到的值比当前欧式距离最小值小,则将当前欧式距离最小值更新为该计算得到的值。

当然第二预设子规则还可以理解为,预先设定一个阈值,如果计算得到的候选时间序列与第一目标边界值的欧式距离值大于该阈值,则滤除该候选时间序列,如果小于该阈值,则表示满足该第二预设子规则。

第二预设子规则的设定方式还可以有多种,在此不一一列举。

在本实施方式中,所述获得剩余候选时间序列,可以为:将满足所述第二预设子规则的所述候选时间序列确定为未被滤除的剩余时间序列。

经过上述两级过滤,过滤掉很大一部分候选时间序列,剩余的候选时间序列可以认为是与目标时间序列较为相似的时间序列。另外,需要说明的是,当采用多级过滤算法对候选时间序列进行过滤时,先使用的第一级过滤算法的计算复杂度可以小于后使用的第二级过滤算法的计算复杂度。可以理解的是,先针对较多的数据采用较粗糙的算法过滤掉一部分数据,再针对剩余的较小的数据采用较精细的算法,比较合理,能够减少过滤时间,提高过滤效率。

另外,作为本发明的另一种实施方式,第一预设规则还可以包括与所述第二级过滤算法对应的第三预设子规则;

在判断所述欧式距离满足第二预设子规则的情况下,还可以包括(也就是说,在对候选时间序列进行完上面两次过滤后,再针对未被滤除的候选时间序列进行进一步的过滤):

s103b3:计算所述候选时间序列的第二上边界值及第二下边界值,将所述第二上边界值与所述第二下边界值中较小的数值确定为第二目标边界值;

s103b4:计算所述目标时间序列与所述第二目标边界值的欧式距离,判断所述欧式距离是否满足所述第三预设子规则,如果否,执行s103c:将所述候选时间序列滤除。

举例来说,本实施方式中的进一步过滤可以理解为,假设目标时间序列为qm={q1,q2……qm},候选序列为cm={c1,c2……cm}。计算候选时间序列的第二上边界值u(c)i=maxi{ck∣|k-i|<ω}和第二下边界值l(c)i=mini{ck∣|k-i|<ω}。将第二上边界值u(c)i及第二下边界值l(c)i中较小的数值确定为第二目标边界值。

计算目标时间序列qm与第二目标边界值的欧式距离,判断所述欧式距离是否满足所述第三预设子规则,如果否,将所述候选时间序列滤除。

第三预设子规则可以理解为,记录当前欧式距离最小值,将计算得到的候选时间序列与第二目标边界值之间的欧式距离值与该当前欧式距离最小值进行比较,如果上述计算得到的值比当前欧式距离最小值大,则该候选时间序列滤除;如果上述计算得到的值比当前欧式距离最小值小,则将当前欧式距离最小值更新为该计算得到的值。

当然第三预设子规则还可以理解为,预先设定一个阈值,如果计算得到的候选时间序列与第二目标边界值的欧式距离值大于该阈值,则滤除该候选时间序列,如果小于该阈值,则表示满足该第三预设子规则。

第三预设子规则的设定方式还可以有多种,在此不一一列举。

在本实施方式中,所述获得剩余候选时间序列,可以为s103d:将满足所述第三预设子规则的所述候选时间序列确定为未被滤除的剩余时间序列。

应用本发明图4所示实施例,针对候选时间序列进行了三次过滤(利用第一级过滤算法进行了一次过滤,利用第二级过滤算法进行了两次过滤),过滤掉了更多的时间序列,被滤除掉的时间序列不再与目标时间序列进行相似度比较,因此,缩短了进行相似度比较的时长,提高了检索效率。

本发明所示实施例提供的时间序列的检索方法可以由多台计算机同时并行处理,也就是说,当获取到待检索的目标时间序列后,将海量数据分配给多台计算机,由这多台计算机执行上述方案,分别确定出一个或多个该目标时间序列的相似时间序列。

可以将对每台计算机确定出的相似时间序列都作为检索结果,也可以针对每台计算机确定出的相似时间序列再次进行相似度计算,即计算该目标时间序列中的节点数据与上述每台计算机确定出的时间序列中节点数据的节点距离之和,将计算得到的节点距离之和的最小值对应的时间序列确定为最终的检索到的目标时间序列的相似时间序列。

应用上述方案,多台计算机并行处理,同时执行时间序列的检索方法,进一步地缩短了检索耗费的时间,提高了检索效率。

与上述的方法实施例相对应,本发明实施例还提供一种时间序列的检索装置。

图5为本发明实施例提供的一种时间序列的检索装置的结构示意图,包括:

第一获取模块501,用于获取待检索的目标时间序列;

第二获取模块502,用于获取用于检索的数据段中的候选时间序列;

过滤模块503,用于按照预设过滤算法,计算每个候选时间序列与所述目标时间序列之间的边界距离;滤除所述与所述目标时间序列之间的边界距离不满足第一预设规则的候选时间序列,获得剩余候选时间序列;

计算模块504,计算所述目标时间序列中的节点数据与每个所述剩余候选时间序列中节点数据的节点距离;

第一判断模块505,用于判断所述节点距离是否满足第二预设规则;

确定模块506,用于将节点距离满足第二预设规则的剩余候选时间序列确定为检索到的相似时间序列。

在本实施例中,第二获取模块502,可以包括:分段子模块和获取子模块(图中未示出),其中,

分段子模块,用于对用于检索的数据流进行分段,得到多个数据段;

获取子模块,用于从所述多个数据段中,获取候选时间序列。

在本实施例中,所述目标时间序列中包括第一数量个节点数据;所述获取子模块,可以包括:

第一获取组合单元,用于针对每个数据段,从所述数据段中获取预设第二数量个节点数据,将所述第二数量个节点数据组合为循环队列,其中,所述第二数量大于所述第一数量;

第二获取组合单元,用于按照第一预设顺序,在所述循环队列中获取所述第一数量个节点数据,将所获取的节点数据按照所述第一预设顺序组合为候选时间序列;

删除单元,用于将所述循环队列队头位置的预设第三数量个节点数据删除;

补充单元,用于从所述数据段中获取所述第三数量个节点数据补充到所述队头位置,形成新的循环队列,并继续触发所述第二获取组合单元。

在本实施例中,所述装置还可以包括:标准化模块(图中未示出),用于利用预设标准化算法,对所述目标时间序列及所述候选时间序列进行标准化处理;

过滤模块503,具体可以用于:

按照预设过滤算法,计算每个标准化后的候选时间序列与标准化后的目标时间序列之间的边界距离;

滤除所述与标准化后的目标时间序列之间的边界距离不满足第一预设规则的标准化后的候选时间序列,获得剩余候选时间序列。

在本实施例中,所述预设过滤算法可以包括:第一级过滤算法和第二级过滤算法;所述第一预设规则包括:与所述第一级过滤算法对应的第一预设子规则和与所述第二级过滤算法对应的第二预设子规则;

过滤模块503,可以包括:第一级过滤子模块、第二级过滤子模块和第一确定子模块(图中未示出),其中,

第一级过滤子模块,用于针对每个候选时间序列,利用所述第一级过滤算法,对所述候选时间序列进行过滤处理:

提取所述候选时间序列的第一特征值及所述目标时间序列的第二特征值;

根据所述第一特征值与所述第二特征值之间的特征值距离,计算所述候选时间序列与所述目标时间序列的之间的边界距离;

判断所述边界距离是否满足所述第一预设子规则,如果否,将所述候选时间序列滤除;

第二级过滤子模块,用于在所述边界距离满足所述第一预设子规则的情况下,利用所述第二级过滤算法对所述候选时间序列进行过滤处理:

计算所述目标时间序列的第一上边界值及第一下边界值,将所述第一上边界值与所述第一下边界值中较小的数值确定为第一目标边界值;

计算所述候选时间序列与所述第一目标边界值的欧式距离,判断所述欧式距离是否满足所述第二预设子规则,如果否,将所述候选时间序列滤除;

第一确定子模块,用于将满足所述第二预设子规则的所述候选时间序列确定为未被滤除的剩余时间序列。

在本实施例中,所述第一预设规则还可以包括与所述第二级过滤算法对应的第三预设子规则;

所述第二级过滤子模块,还用于在判断所述欧式距离满足第二预设子规则的情况下,计算所述候选时间序列的第二上边界值及第二下边界值,将所述第二上边界值与所述第二下边界值中较小的数值确定为第二目标边界值;

计算所述目标时间序列与所述第二目标边界值的欧式距离,判断所述欧式距离是否满足所述第三预设子规则,如果否,将所述候选时间序列滤除;

所述第一确定子模块,用于将满足所述第三预设子规则的所述候选时间序列确定为未被滤除的剩余时间序列。

在本实施例中,计算模块504,具体可以用于:

针对每个剩余候选时间序列,计算所述剩余候选时间序列中的每个节点数据与其对应的所述目标时间序列中节点数据的节点距离之和;

所述第一判断模块,用于判断所述节点距离之和是否小于第一预设阈值。

在本实施例中,计算模块504,可以包括:第二确定子模块、第一计算子模块、更新子模块,第三确定子模块(图中未示出),其中,

所述第二确定子模块,用于针对每个所述剩余候选时间序列,按照第二预设顺序,在所述剩余候选时间序列中确定目标节点数据;

所述第一计算子模块,用于计算所述目标节点数据与其对应的所述目标时间序列中节点数据的节点距离;

所述更新子模块,用于更新所述剩余候选时间序列对应的节点距离之和;

所述第一判断模块,还用于判断所述节点距离之和是否小于当前阈值;如果否,则表示不满足所述第二预设规则,并停止后续步骤;如果是,触发所述第二确定子模块,直至按照第二预设顺序,在所述剩余候选时间序列中确定最后一个目标节点数据,计算所述最后一个目标节点数据与其对应的所述目标时间序列中节点数据的节点距离,并更新所述剩余候选时间序列对应的节点距离之和,得到最终节点距离之和;

所述第一判断模块,还用于判断所述最终节点距离之和是否小于所述当前阈值,如果是,表示满足所述第二预设规则,触发所述第三确定子模块;

所述第三确定子模块,用于将所述最终节点距离之和确定为当前阈值。

在本实施例中,所述更新子模块,具体可以用于:

当所述目标节点数据为所述第二预设顺序下所述剩余候选时间序列中的第一个节点数据时,将所述第一个节点数据与其对应的所述目标时间序列中节点数据的节点距离记录为所述标准时间序列对应的节点距离之和;

当所述目标节点数据不为所述第二预设顺序下所述剩余候选时间序列中的第一个节点数据时,将所述目标节点数据与其对应的所述目标时间序列中节点数据的节点距离与记录的所述剩余候选时间序列对应的节点距离之和相加,得到最新的所述剩余候选时间序列对应的节点距离之和。

在本实施例中,所述装置还可以包括:第二判断模块和确定计算更新模块(图中未示出),其中,

第二判断模块,用于判断所述剩余候选时间序列是否为第一条剩余候选时间序列;如果否,触发所述第二确定子模块,如果是,触发确定计算更新模块;

所述确定计算更新模块,用于按照所述第二预设顺序,在所述剩余候选时间序列中确定目标节点数据;计算所述目标节点数据与其对应的所述目标时间序列中节点数据的节点距离,并更新所述剩余候选时间序列对应的节点距离之和;

直至按照所述第二预设顺序,在所述剩余候选时间序列中确定最后一个目标节点数据,计算所述最后一个目标节点数据与其对应的所述目标时间序列中节点数据的节点距离,并更新所述标准时间序列对应的节点距离之和,得到最终节点距离之和;

将所述最终节点距离之和确定为所述当前阈值。

在本实施例中,当所述剩余候选序列为第一条剩余候选时间序列时,所述当前阈值为第二预设阈值。

应用本发明图5所示实施例,在海量数据中检索目标时间序列的相似时间序列时,先对海量数据进行过滤处理,滤除很大一部分时间序列,再针对未被滤除的剩余时间序列,计算剩余时间序列中的节点数据与其对应的目标时间序列中节点数据的距离,并判断该距离是否满足预设规则,如果是,则将该剩余时间序列确定为检索结果。由此可见,相比于针对海量数据进行相似性运算的方案,减少了时间成本,提高了检索效率。

图6为本发明实施例提供的一种时间序列的检索系统的结构示意图,包括:至少一个数据转换器(数据转换器1、数据转换器2……数据转换器n)、与数据转换器数量相同的数据过滤器(数据过滤器1、数据过滤器2……数据过滤器n)和相似序列计算器(相似序列计算器1、相似序列计算器2……相似序列计算器n),以及一个检索结果缓存器;其中,

所述每个数据转换器,用于接收用于检索的数据段,获取所述数据段中的候选时间序列,并发送所述候选时间序列至与所述数据转换器相连的数据过滤器;

所述每个数据过滤器,用于按照预设过滤算法,计算接收到的每个候选时间序列与预设目标时间序列之间的边界距离;滤除所述与所述目标时间序列之间的边界距离不满足第一预设规则的候选时间序列,获得剩余候选时间序列,并发送所述剩余候选时间序列至与所述数据过滤器相连的相似序列计算器;

所述每个相似序列计算器,用于计算所述目标时间序列中的节点数据与接收的每个所述剩余候选时间序列中节点数据的节点距离,并判断所述节点距离是否满足第二预设规则;将节点距离满足第二预设规则的剩余候选时间序列确定为检索到的相似时间序列,并发送所述相似序列至所述检索结果缓存器;

所述检索结果缓存器,用于缓存每个相似序列计算器发送的相似时间序列。

在图6所示的系统中,数据转换器、数据过滤器、相似序列计算器均可以有多个。也就是说,当获取到待检索的目标时间序列后,将海量数据分配给多个数据转换器进行并行处理;每个数据转换器分别将经自身处理得到的候选时间序列发送给与自身连接的数据过滤器,每个数据转换器可以连接一个数据过滤器;每个数据过滤器对接收到的候选时间序列进行过滤处理,并将剩余候选时间序列发送给与自身连接的相似序列计算器,每个数据过滤器可以连接一个相似序列计算器;每个相似序列计算器针对接收到的剩余候选时间序列,计算剩余候选时间序列与目标时间序列的相似度,确定目标时间序列的相似时间序列,将所确定的相似时间序列作为检索结果发送至检索结果缓存器。

当然,系统中还可以包括检索结果显示器(图中未示出),检索结果缓存器可以将接收到的检索结果发送至检索结果显示器,检索结果显示器将接收到的检索结果展示给用户。

也就是说,可以将海量数据分为n份,将这n份数据分配给n个数据转换器、n个数据过滤器、n个相似序列计算器并行处理,进一步地缩短了检索耗费的时间,提高了检索效率。

在本实施例中,还可以包括:数据分段器;

所述数据分段器,用于获得用于检索的数据流,并对所述数据流进行分段,得到多个数据段,按预设方式,将所述多个数据段分别发送至各个数据转换器。

在本实施例中,所述每个数据转换器,具体可以用于:

接收用于检索的数据段,获取所述数据段中的候选时间序列;

利用预设标准化算法,对预设目标时间序列及所述候选时间序列进行标准化处理;

将标准化后的候选时间序列及标准化后的目标时间序列发送至与所述数据转换器相连的数据过滤器。

应用本发明图6所示实施例,在海量数据中检索目标时间序列的相似时间序列时,先对海量数据进行过滤处理,滤除很大一部分时间序列,再针对未被滤除的剩余时间序列,计算剩余时间序列中的节点数据与其对应的目标时间序列中节点数据的距离,并判断该距离是否满足预设规则,如果是,则将该剩余时间序列确定为检索结果。由此可见,相比于针对海量数据进行相似性运算的方案,减少了时间成本,提高了检索效率。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:rom/ram、磁碟、光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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