CN104809134B - 检测数据序列中的异常子序列的方法和设备 - Google Patents

检测数据序列中的异常子序列的方法和设备 Download PDF

Info

Publication number
CN104809134B
CN104809134B CN201410040085.6A CN201410040085A CN104809134B CN 104809134 B CN104809134 B CN 104809134B CN 201410040085 A CN201410040085 A CN 201410040085A CN 104809134 B CN104809134 B CN 104809134B
Authority
CN
China
Prior art keywords
subsequence
target subsequences
neighbours
target
subsequences
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201410040085.6A
Other languages
English (en)
Other versions
CN104809134A (zh
Inventor
刘凯
陈垚亮
陈晓艳
黄胜
王晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201410040085.6A priority Critical patent/CN104809134B/zh
Priority to US14/598,843 priority patent/US9552243B2/en
Priority to US14/741,819 priority patent/US9547543B2/en
Publication of CN104809134A publication Critical patent/CN104809134A/zh
Application granted granted Critical
Publication of CN104809134B publication Critical patent/CN104809134B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0218Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults
    • G05B23/0224Process history based detection method, e.g. whereby history implies the availability of large amounts of data
    • G05B23/0227Qualitative history assessment, whereby the type of data acted upon, e.g. waveforms, images or patterns, is not relevant, e.g. rule based assessment; if-then decisions
    • G05B23/0232Qualitative history assessment, whereby the type of data acted upon, e.g. waveforms, images or patterns, is not relevant, e.g. rule based assessment; if-then decisions based on qualitative trend analysis, e.g. system evolution

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

公开了一种检测数据序列中的异常子序列的方法和设备。该方法包括:构造目标子序列的分层数据结构;基于目标子序列的分层数据结构以及预先构造的第一数量的参考子序列的分层数据结构,确定目标子序列的第二数量的邻居,即,所述第一数量的参考子序列中、与目标子序列的欧几里德距离最小的第二数量的参考子序列;确定所述第二数量的参考子序列中的每个参考子序列的第三数量的邻居,即,所述数据序列中、与所述每个参考子序列的欧几里德距离最小的第三数量的子序列;以及根据目标子序列的第二数量的邻居、以及所述第二数量的参考子序列中以所述目标子序列为其邻居的参考子序列的第三数量的邻居,确定所述目标子序列是否为异常子序列。

Description

检测数据序列中的异常子序列的方法和设备
技术领域
本发明涉及异常数据检测,并且更具体地涉及一种检测数据序列中的异常子序列的方法和设备。
背景技术
在物联网(IOT)或智慧地球等的场景中,通过某种数据产生机制,可以随着时间不断地产生数据,从而形成时间数据序列。例如,在使用检测器检测大气污染物的场景中,检测器随着时间不断地输出数据,从而形成反映各个时刻的大气污染水平的时间数据序列。在时间数据序列中,可能有某些数据与其他数据偏离得很大,这样的数据可以称为异常数据。由于异常数据能够反映数据产生机制存在的某种问题或者与该数据相关联的对象的某些重要状态,因此,检测时间数据序列中的异常数据非常重要。
目前,已经提出了多种方法来检测时间数据序列中的异常数据。在这些传统方法中,在检测时间数据序列中的某些数据是否异常时,需要使用该序列的全部数据,并且在检测期间需要多次扫描整个时间数据序列,使得检测操作的计算量非常大,并且需要花费很长的时间。此外,由于时间数据序列(特别是在较长的时间段内产生的时间数据序列)的全部数据在映射空间内的分布密度往往差异较大,因此如果基于全部数据的分布密度来检测某些数据是否异常,可能会将分布密度与其他数据差异较大的正常数据认定为异常数据,使得结果不准确。而且,传统方法只能对时间序列数据进行离线(非实时)检测,而非在线(实时)检测,这对于某些希望尽快获得检测结果的场景来说是不可接受的。
发明内容
本发明的目的是提供一种检测数据序列中的异常子序列的方法和设备,其能够实时且准确地检测数据序列中的异常子序列,从而实时且准确地检测数据序列中的异常数据。
根据本发明的一个方面,提供了一种检测数据序列中的异常子序列的方法,所述数据序列包括要检测的目标子序列和第一数量的参考子序列,所述方法包括:构造目标子序列的分层数据结构,所述分层数据结构的最底层的每个节点存储目标子序列的对应数据,最底层之上的层的每个节点存储基于在本层的下一层的对应节点中存储的数据导出的值;基于所述目标子序列的分层数据结构以及预先构造的所述第一数量的参考子序列的分层数据结构,确定目标子序列的第二数量的邻居,所述目标子序列的第二数量的邻居是所述第一数量的参考子序列中、与目标子序列的欧几里德距离最小的第二数量的参考子序列;确定所述第二数量的参考子序列中的每个参考子序列的第三数量的邻居,其中所述第三数量的邻居是所述数据序列中、与所述每个参考子序列的欧几里德距离最小的第三数量的子序列;以及根据目标子序列的第二数量的邻居、以及所述第二数量的参考子序列中以所述目标子序列为其邻居的参考子序列的第三数量的邻居,确定所述目标子序列是否为异常子序列。
根据本发明的另一方面,提供了一种检测数据序列中的异常子序列的设备,所述数据序列包括要检测的目标子序列和第一数量的参考子序列,所述设备包括:构造装置,被配置为构造目标子序列的分层数据结构,所述分层数据结构的最底层的每个节点存储目标子序列的对应数据,最底层之上的层的每个节点存储基于在本层的下一层的对应节点中存储的数据导出的值;目标邻居确定装置,被配置为基于所述目标子序列的分层数据结构以及预先构造的所述第一数量的参考子序列的分层数据结构,确定目标子序列的第二数量的邻居,所述目标子序列的第二数量的邻居是所述第一数量的参考子序列中、与目标子序列的欧几里德距离最小的第二数量的参考子序列;参考邻居确定装置,被配置为确定所述第二数量的参考子序列中的每个参考子序列的第三数量的邻居,其中所述第三数量的邻居是所述数据序列中、与所述每个参考子序列的欧几里德距离最小的第三数量的子序列;以及异常检测装置,被配置为根据目标子序列的第二数量的邻居、以及所述第二数量的参考子序列中以所述目标子序列为其邻居的参考子序列的第三数量的邻居,确定所述目标子序列是否为异常子序列。
利用根据本发明上述方面的方法和设备,基于数据序列中受到目标子序列影响的参考子序列的数据,而不是基于数据序列的全部数据,来检测目标子序列是否是异常子序列,从而可以减小检测的计算量和所需时间,并且提高检测的准确性。此外,对于随着时间不断产生的数据形成的时间数据序列,每当产生一个新的子序列时,就可以利用上述方法和设备检测该子序列是否是异常子序列,从而可以实现在线(实时)检测。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。
图2是示意性地示出本发明实施例的将时间数据序列划分为多个子序列的方法的图。
图3是示出根据本发明实施例的检测数据序列中的异常子序列的方法的流程图。
图4示出根据本发明实施例的为目标子序列构造的二叉树的示例。
图5示出根据本发明实施例的为目标子序列构造的二叉树的另一示例。
图6示出了目标子序列和参考子序列的二叉树的示例。
图7是示出图3所示的步骤S302的详细操作的流程图。
图8是示出根据本发明实施例的检测数据序列中的异常子序列的设备的框图。
图9是示出根据本发明实施例的分层数据结构的示例的图。
具体实施方式
在附图中显示了本公开的一些优选实施方式,下面将参照附图更详细地描述这些优选实施方式。然而,可以以各种形式实现本公开,其不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
下面,将描述根据本发明实施例的检测数据序列中的异常子序列的方法和设备。
所述数据序列可以是上文所述的时间数据序列。在这种情况下,由于数据是随着时间不断地产生的,因此,可以设置预定长度的时间窗口,并且提取在该时间窗口内产生的所有数据,作为所述时间数据序列。可替换地,所述数据序列可以是以其他方式产生的数据形成的数据序列。在下文中,以所述数据序列是时间数据序列为例来描述本发明的实施例,该描述同样适用于其他类型的数据序列。
可以将时间数据序列划分为多个子序列(例如多个长度相同的子序列),可以通过检测所述多个子序列中的异常子序列,并且将异常子序列中的数据认定为异常数据,来检测时间数据序列中的异常数据。图2示意性地示出了将时间数据序列划分为多个子序列的方法。在图2所示的示例性时间数据序列中,假设右侧的数据为先产生的数据,左侧的数据为后产生的数据。可以设置预定宽度w(以数据的数量为单位)的滑动窗口,该宽度w可以根据需要灵活地预先确定。然后,可以使用该滑动窗口,从时间数据序列的第一个数据开始截取落入该滑动窗口内的数据(w个),作为第一子序列。然后,可以将该滑动窗口向左滑动距离d(以数据的数量为单位),然后再次截取落入该滑动窗口内的数据,作为第二子序列。接下来,可以继续将该滑动窗口向左滑动距离d,并且以相同的方式截取第三子序列。以此类推,可以利用该滑动窗口将时间数据序列划分为多个子序列。可以选择距离d,使得在滑动前后获得的两个子序列中的重合数据(即在同一时刻产生的数据)占在滑动前获得的子序列的比例不超过预定值(例如70%、50%或其他值),使得这两个子序列成为彼此的“非自(non-self)”子序列。此外,滑动窗口每次滑动的距离d可以相同,也可以不同。
可以按照时间顺序检测时间数据序列中的每个子序列是否异常。例如,由于数据是随着时间不断产生的,因此,每当新产生预定数量的(w个)数据,从而产生一个新子序列时,可以基于该新子序列和在该新子序列之前产生的一个或多个子序列来检测该新子序列是否异常。这样,可以随着数据(子序列)的产生实时地检测异常数据(子序列)。可替换地,可以不按照时间顺序,而是按照根据实际需要确定的其他顺序来检测时间数据序列中的某个子序列是否是异常子序列。在下文中,以按照时间顺序检测异常子序列为例来描述本发明的实施例。为了便于描述,将要检测其是否是异常子序列的、新产生的子序列称为目标子序列,并且将在目标子序列之前产生的一个或多个子序列称为参考子序列。如稍后描述的,参考子序列的数量由二叉树队列的长度决定。
下面,参照图3来描述根据本发明实施例的检测数据序列中的异常子序列的方法。
如图3所示,在步骤S301中,可以构造目标子序列的分层数据结构,所述分层数据结构的最底层的每个节点存储目标子序列的对应数据,最底层之上的层的每个节点存储基于在该本层的下一层的对应节点中存储的数据导出的平均值、最大值和最小值。在本发明的实施例中,所述最底层之上的层的每个节点存储的、基于在本层的下一层的对应节点中存储的数据导出的值是所述对应节点中存储的数据的平均值、最大值和最小值。
所述分层数据结构可以是树,例如二叉树、三叉树或四叉树等,或者可以是非树分层数据结构。在下文中,以二叉树为例来描述本发明的实施例,该描述同样适用于其他形式的分层数据结构。
在目标子序列的二叉树中,最底层的每个节点可以存储目标子序列的对应数据,在最底层之上的层的每个节点可以存储基于在该层的下一层的对应节点(即,该节点在下一层中的子节点)中存储的数据导出的值。所述导出的值可以是平均值、最大值和最小值。这样,目标子序列的最上层(即,根节点所在的层)的节点(即,根节点)可以存储目标子序列的全部数据的平均值、最大值和最小值。二叉树的层数取决于目标子序列的长度,即目标子序列包含的数据数量。例如,当目标子序列包含的数据数量Num满足2n-1<Num≤2n(n为正整数)时,可以构造n+1层的二叉树。换言之,在本发明的实施例中,n+1层的二叉树可以适用于数据数量Num满足2n-1<Num≤2n的目标子序列。为了便于描述,在下文中,也可以将二叉树的最底层称为第一层,并且按照从下到上的顺序将二叉树的各层编号,应当认识到,这一编号方式只是说明性的,而不应限制本发明的范围。
具体地,当目标子序列的数据数量Num为2n时,该目标子序列的二叉树可以是完全满二叉树,其最底层的2n个节点中的每个节点可以存储目标子序列的对应数据,其次底层的每个节点可以存储该节点的两个子节点中存储的两个数据的平均值以及这两个数据中的最大值和最小值,其余层(如果存在的话)的每个节点可以存储该节点的在比该层低一层的层中的两个子节点中存储的两个平均值之间的平均值以及这两个子节点中存储的两个最大值中的最大值和两个最小值中的最小值。图4示出了在这种情况下构造的目标子序列的二叉树的示例。在该示例中,假设目标子序列包括8个数据S1、S2、S3、…、S8,即n=3,因此二叉树包括4层。在该二叉树的第一层中,8个节点N41-N48分别存储这8个数据。在该二叉树的第二层中,节点N31存储其两个子节点N41和N42中存储的两个数据的平均值以及这两个数据中的最大值和最小值,节点N32存储其两个子节点N43和N44中存储的两个数据的平均值以及这两个数据中的最大值和最小值,节点N33存储其两个子节点N45和N46中存储的两个数据的平均值以及这两个数据中的最大值和最小值,节点N34存储其两个子节点N47和N48中存储的两个数据的平均值以及这两个数据中的最大值和最小值。在该二叉树的第三层中,节点N21存储其两个子节点N31和N32中存储的两个平均值的平均值、以及这两个子节点中存储的两个最大值中的最大值和两个最小值中的最小值,节点N22存储其两个子节点N33和N34中存储的两个平均值的平均值、以及这两个子节点中存储的两个最大值中的最大值和两个最小值中的最小值。在该二叉树的第四层中,节点N11存储其两个子节点N21和N22中存储的两个平均值的平均值、以及这两个子节点中存储的两个最大值中的最大值和两个最小值中的最小值。
另一方面,当目标子序列包含的数据数量Num满足2n-1<Num<2n时,该目标子序列的二叉树可以是完全不满二叉树,其最底层包括Num个节点,每个节点可以存储目标子序列的对应数据,其次底层的每个节点可以存储该节点的各个(一个或两个)子节点中存储的数据的平均值以及最大值和最小值,其余层(如果存在的话)的每个节点可以存该节点的在比该层低一层的层中的各个(一个或两个)子节点中存储的平均值的平均值、以及所述各个节点中存储的最大值和最小值中的最大值和最小值。图5示出了在这种情况下构造的目标子序列的二叉树的另一示例。在该示例中,假设目标子序列包括5个数据S1、S2、…、S5,即n=3,因此二叉树包括4层。在该二叉树的第一层中,5个节点N41-N45分别存储这5个数据。在该二叉树的第二层中,节点N31存储其两个子节点N41和N42中存储的两个数据的平均值以及这两个数据中的最大值和最小值,节点N32存储其两个子节点N43和N44中存储的两个数据的平均值以及这两个数据中的最大值和最小值,节点N33存储其子节点N45中存储的数据的平均值、最大值和最小值(即所述数据本身)。在该二叉树的第三层中,节点N21存储其两个子节点N31和N32中存储的两个平均值的平均值、以及这两个子节点中存储的两个最大值中的最大值和两个最小值中的最小值,节点N22存储其子节点N33中存储的平均值的平均值(即,子节点N33中存储的平均值本身)、以及其子节点N33中存储的最大值中的最大值(即,子节点N33中存储的最大值本身)和最小值中的最小值(即,子节点N33中存储的最小值本身)。在该二叉树的第四层中,节点N11存储其两个子节点N21和N22中存储的两个平均值的平均值、以及这两个子节点中存储的两个最大值中的最大值和两个最小值中的最小值。
可以预先建立二叉树队列,并且可以在构造目标子序列的二叉树之后将该目标子序列的二叉树存储在该二叉树队列中。该二叉树队列的长度M(即,该二叉树队列能够存储的二叉树的数量M)可以根据实际需要而灵活地确定,并且该二叉树队列可以遵循先进先出的规则。由于在本实施例中按照时间的顺序检测时间数据序列中的每个子序列是否异常,从而按照时间的顺序构造各个子序列的二叉树,因此,在步骤S301中构造目标子序列的二叉树之前,已经预先构造了在该目标子序列之前产生的一个或多个子序列的二叉树,其中,构造所述一个或多个子序列的二叉树的方法与在上文中针对目标子序列描述的方法相同,并且,所述一个或多个子序列的二叉树全部被存储在二叉树队列中(这对应于所述一个或多个子序列的数量不超过二叉树队列长度的情况),或者所述一个或多个子序列的二叉树的一部分被存储在二叉树队列中(这对应于所述一个或多个子序列的数量超过二叉树队列长度的情况)。当在步骤S301中构造目标子序列的二叉树并且随后将该二叉树存储在二叉树队列中时,如果该二叉树队列未满,则可以将目标子序列的二叉树存储在该二叉树队列中,反之,如果该二叉树队列已满,则可以将该队列中最早存储的二叉树弹出,然后将目标子序列的二叉树存储在该二叉树队列中。在下文中,假设在将目标子序列的二叉树存储在二叉树队列中时该二叉树队列已满,因此,在将目标子序列的二叉树存储在二叉树队列中之后,该二叉树队列将存储目标子序列的二叉树以及在该目标子序列之前产生的M-1个(即,第一数量)子序列的二叉树。
返回图3,在步骤S302中,可以基于目标子序列的二叉树以及预先构造的所述M-1个参考子序列的二叉树,确定目标子序列的K个(即,第二数量,其中K≥1)邻居,所述目标子序列的K个邻居是所述M-1个参考子序列中、与目标子序列的欧几里德距离最小的K个参考子序列。
在本发明的实施例中,在基于所述二叉树确定目标子序列的K个邻居时,利用双重边界剪除技术来减小计算量。简单地说,基于所述二叉树,分层地确定目标子序列与各个参考子序列之间的欧几里德距离的上限值和下限值,并且根据该上限值和下限值确定目标子序列的一个或多个最近邻居,而不是直接通过计算目标子序列与每个参考子序列的欧几里德距离来确定该目标子序列的最近邻居。
上述双重边界剪除技术基于以下引理和定理。为了便于描述所述引理和定理,将目标子序列表示为T,将所述M-1个参考子序列表示为Ri(1≤i≤M-1)。此外,将目标子序列T和参考子序列Ri之间的欧几里德距离表示为Dist(T,Ri),并且假设这两个子序列的二叉树分别包含L层,其中L≥1。图6示出了目标子序列T和参考子序列Ri的二叉树的示例,其中,左侧的树为目标子序列T的二叉树,右侧的树为参考子序列Ri的二叉树。
引理1:目标子序列T和参考子序列Ri的、基于其二叉树的第t(1≤t≤L)层的平均值的欧几里德距离LBi,t是目标子序列T和参考子序列Ri之间的欧几里德距离Dist(T,Ri)的下限值,并且以下不等式(1)成立:
LBi,L≤L≤LBi,t≤L≤LBi,1≤Dist(T,Ri) (1)
也就是说,目标子序列T和参考子序列Ri的、基于其二叉树的下层的平均值的欧几里德距离(即,与其二叉树的下层对应的、目标子序列T和参考子序列Ri之间的欧几里德距离Dist(T,Ri)的下限值)小于目标子序列T和参考子序列Ri的、基于其二叉树的上层的平均值的欧几里德距离(即,与其二叉树的上层对应的、目标子序列T和参考子序列Ri之间的欧几里德距离Dist(T,Ri)的下限值)。在这里,目标子序列T和参考子序列Ri的、基于其二叉树的第t(1≤t≤L)层的平均值的欧几里德距离LBi,t是指根据这两个子序列的二叉树的第t层上的对应节点(即,相同位置的节点)中存储的平均值计算的、这两个子序列之间的欧几里德距离。例如,在图6所示的二叉树中,目标子序列T和参考子序列Ri的、基于其二叉树的第3层的平均值的欧几里德距离LBi,3可以通过下式(2)计算:
其中avg21和avg21’分别为目标子序列T的二叉树的第3层的第一个节点N21中存储的平均值以及参考子序列Ri的二叉树的第3层的对应节点(即,第一个节点)N21’中存储的平均值,avg22和avg22’分别为目标子序列T的二叉树的第3层的第二个节点N22中存储的平均值以及参考子序列Ri的二叉树的第3层的对应节点(即,第二个节点)N22’中存储的平均值。
引理2:目标子序列T和参考子序列Ri的、基于其二叉树的第t(1≤t≤L)层的最大值与最小值之差的欧几里德距离UBi,t是目标子序列T和参考子序列Ri之间的欧几里德距离Dist(T,Ri)的上限值,并且以下不等式(3)成立:
Dist(T,Ri)≤UBi,1≤L≤UBi,t≤L≤UBi,L (3)
也就是说,目标子序列T和参考子序列Ri的、基于其二叉树的下层的最大值与最小值之差的欧几里德距离(即,与其二叉树的下层对应的、目标子序列T和参考子序列Ri之间的欧几里德距离Dist(T,Ri)的上限值)小于目标子序列T和参考子序列Ri的、基于其二叉树的上层的最大值与最小值之差的欧几里德距离(即,与其二叉树的上层对应的、目标子序列T和参考子序列Ri之间的欧几里德距离Dist(T,Ri)的上限值)。在这里,目标子序列T和参考子序列Ri的、基于其二叉树的第t(1≤t≤L)层的最大值与最小值之差的欧几里德距离UBi,t是指根据这两个子序列的二叉树的第t层上的对应节点(即,相同位置的节点)中存储的最大值与最小值之差计算的、这两个子序列之间的欧几里德距离。例如,在图6所示的二叉树中,假设目标子序列T的二叉树的第3层的节点N21中存储了最大值Max21和最小值Min21,节点N22中存储了最大值Max22和最小值Min22,在参考子序列Ri的二叉树的第3层的节点N21’中存储了最大值Max21’和最小值Min21’,节点N22’中存储了最大值Max22’和最小值Min22’,则目标子序列T和参考子序列Ri的、基于二叉树的第3层的最大值与最小值之差的欧几里德距离UBi,3可以通过下式(4)计算:
引理3:对于目标子序列T和两个参考子序列Ri和Rj(1≤j≤M-1,j≠i),如果与其二叉树的第t层对应的、目标子序列T和参考子序列Ri之间的欧几里德距离Dist(T,Ri)的上限值UBi,t小于或等于与其二叉树的第t层对应的、目标子序列T和参考子序列Rj之间的欧几里德距离Dist(T,Rj)的下限值LBj,t,则Dist(T,Ri)小于或等于Dist(T,Rj),即:
如果UBi,t≤LBj,t,则Dist(T,Ri)≤Dist(T,Rj) (5)
根据上述引理1-3,可以导出以下定理1。
定理1:对于目标子序列T和两个参考子序列Ri和Rj(1≤j≤M-1,j≠i),如果与其二叉树的第t层对应的、目标子序列T和参考子序列Ri之间的欧几里德距离Dist(T,Ri)的上限值UBi,t小于或等于与其二叉树的第h(1≤h≤L)层对应的、目标子序列T和参考子序列Rj之间的欧几里德距离Dist(T,Rj)的下限值LBj,h,则Dist(T,Ri)小于或等于Dist(T,Rj),即:
如果UBi,t≤LBj,h,则Dist(T,Ri)≤Dist(T,Rj) (6)
根据定理1可知,如果与二叉树的任一层对应的、目标子序列T和参考子序列Ri之间的欧几里德距离的上限值小于或等于与二叉树的任一层对应的、目标子序列T和参考子序列Rj之间的欧几里德距离的下限值,则目标子序列T和参考子序列Ri之间的欧几里德距离必然小于或等于目标子序列T和参考子序列Rj之间的欧几里德距离。因此,可以通过目标子序列与各个参考子序列之间的欧几里德的距离的上限值和下限值(即,双重边界)来找出所述M-1个参考子序列中距目标子序列最近的K个邻居。由于与二叉树的各层对应的所述上限值和下限值的计算只需要使用相应层的节点中存储的数据或值,而这些数据或值的数量显著少于所述子序列包含的数据数量,因此,这可以显著减小用于确定目标子序列的K个邻居的计算量,并且缩短所需的时间。此外,考虑到二叉树的分层特点,可以从最上层(即根节点所在的层)起按照从上层到下层的顺序计算所述上限值和下限值,以用于确定目标子序列的邻居。
也就是说,在步骤S302中,可以从目标子序列和所述M-1个参考子序列的二叉树的最上层开始,分别基于所述分层数据结构的一层或多层上的节点中存储的数据或值,计算与所述一层或多层对应的、目标子序列与各个参考子序列之间的欧几里德距离的上限值和下限值,并且基于目标子序列与各个参考子序列之间的欧几里德距离的上限值和下限值确定目标子序列的邻居,直到确定目标子序列的第二数量的邻居为止。具体地,如果目标子序列与所述M-1个参考子序列中的一个参考子序列之间的欧几里德距离的上限值小于目标子序列与所述M-1个参考子序列中的其他参考子序列之间的欧几里德距离的下限值,则可以将所述一个参考子序列确定为目标子序列的邻居。
下面,参照图7来描述步骤S302的详细操作。
如图7所示,在步骤S701中,可以分别计算与二叉树的最上层对应的、目标子序列和所述M-1个参考子序列之间的欧几里德距离的上限值和下限值。所述上限值和下限值的计算方法与在上文中描述的方法相同,在这里不再赘述。
在步骤S702中,将与二叉树的最上层对应的、目标子序列和所述M-1个参考子序列之间的欧几里德距离的上限值和下限值分别存储到上限值队列和下限值队列中。在上限值队列中,各个上限值可以按照从大到小的顺序排序,在下限值队列中,各个下限值也可以按照从大到小的顺序排序。
在步骤S703中,找出存储在下限值队列中的最小的下限值对应的参考子序列(为便于描述,以下称为候选参考子序列),并且确定与二叉树的最上层对应的、目标子序列和该候选参考子序列之间的欧几里德距离的上限值是否是下限值队列中存储的各个下限值中的最小值。
如果在步骤S703中得到肯定的确定结果,则根据上述定理1,可以确定所述候选参考子序列是与目标子序列的欧几里德距离最小的参考子序列,因此,在步骤S704中,从上限值队列和下限值队列中分别删除与该候选参考子序列对应的上限值和下限值,并且在步骤S705中,输出该候选参考子序列,作为目标子序列的K个邻居(最近邻居)之一。
反之,如果在步骤S703中得到否定的确定结果,则不能根据上述定理1确定目标子序列的邻居,因此,在步骤S706中,计算与二叉树的下一层对应的、目标子序列与该候选参考子序列之间的欧几里德距离的上限值和下限值,并且在步骤S707中,将所述上限值和下限值分别存储在上限值队列和下限值队列中以更新这两个队列,其中,在每个队列中仍然按照从大到小的顺序将上限值或下限值排序。
然后,在步骤S708中,在除了候选参考子序列以外的参考子序列中找出与目标子序列之间的欧几里德距离最小的一个参考子序列。可以使用本领域公知的任何方法来找出该参考子序列,在这里省略其详细描述。
接下来,在步骤S709中,从上限值队列和下限值队列中去除与在步骤S708中找出的参考子序列对应的上限值和下限值,然后在步骤S710中,输出所找出的参考子序列,作为目标子序列的K个最近邻居之一。
然后,在步骤S711中,确定是否已经找到了目标子序列的K个最近邻居。如果是,则步骤S302的操作结束。反之,如果尚未找到目标子序列的K个最近邻居,则该过程返回步骤S703,并且基于当前的下限值队列和上限值队列重复上述的操作,直到找出目标子序列的K个最近邻居为止。
返回图3,在步骤S303中,可以确定所述K个参考子序列中的每个参考子序列的第三数量的邻居(即,最近邻居),其中所述K个参考子序列中的每个参考子序列的第三数量的邻居是所述数据序列中、与该参考子序列的欧几里德距离最小的第三数量的子序列。所述第三数量可以等于第二数量,因此在下文中,将第三数量也设置为K。
具体地,由于按照时间顺序来检测异常子序列,因此,在检测当前的目标子序列是否异常之前,已经确定了在该目标子序列之前产生的每个参考子序列的K个最近邻居。然而,在目标子序列产生之后,之前产生的每个参考子序列的K个最近邻居可能会发生变化,因此,需要重新确定(即,更新)这些参考子序列的K个最近邻居。在本发明的实施例中,在确定目标子序列是否异常时,与考虑整个时间数据序列的数据或子序列的传统方法不同,可以只考虑数据序列中受到目标子序列影响的局部参考子序列的数据(参见下文所述的步骤S304),所述受到目标子序列影响的局部参考子序列是指与目标子序列互为K个最近邻居之一的参考子序列。因此,在步骤S303中,可以只对属于在步骤S302确定的目标子序列的最近邻居的K个参考子序列确定其K个最近邻居。可以按照上文所述的确定目标子序列的K个最近邻居的方法或者本领域公知的其他方法来确定各个参考子序列的K个最近邻居,在这里省略其详细描述。
接下来,在步骤S304中,根据目标子序列的K个最近邻居、以及所述K个最近邻居(参考子序列)中以所述目标子序列为其邻居的参考子序列的K个(第三数量)最近邻居,确定所述目标子序列是否为异常子序列。
如上文所述,在确定目标子序列是否异常时,可以只考虑数据序列中受到目标子序列影响的局部参考子序列,即,属于目标子序列的K个最近邻居之一、并且自己的K个最近邻居包括所述目标子序列的参考子序列。因此,在步骤S303中确定所述K个参考子序列中的每个参考子序列的K个邻居之后,可以找出所述K个参考子序列中以目标子序列作为其K个邻居之一的参考子序列,作为所述受到目标子序列影响的局部参考子序列,然后,可以基于目标子序列的K个最近邻居、以及所述局部参考子序列的K个邻居,确定所述目标子序列是否为异常子序列。简单地说,可以根据目标子序列与其K个邻居之间的接近程度、以及所述局部参考子序列与其K个邻居之间的接近程度,确定所述目标子序列是否为异常子序列。如果目标子序列与其K个邻居之间的接近程度和所述局部参考子序列与其K个邻居之间的接近程度相差很大,则可以认为目标子序列是异常子序列。
具体地,首先,可以计算所述目标子序列与K个邻居(即,最近邻居)之间的欧几里德距离的平均值的倒数。所述平均值的倒数可以表示当将目标子序列与其K个邻居映射为二维空间中的点时,目标子序列及其K个邻居在该二维空间中的分布密度,即,可以表示目标子序列与其K个邻居之间的接近程度。
接下来,可以计算所述K个参考子序列中以所述目标子序列为其邻居的每个参考子序列(即,局部参考子序列)与其K个邻居之间的欧几里德距离的平均值的倒数。然后,可以计算各个局部参考子序列对应的所述平均值的倒数的平均值,该平均值可以表示各个局部参考子序列与其K个邻居在所述二维空间中的分布密度,即,可以表示各个局部参考子序列与其K个邻居之间的接近程度。
然后,可以基于所述目标子序列与其K个邻居之间的欧几里德距离的平均值的倒数、以及与各个局部参考子序列对应的平均值的倒数的平均值,确定所述目标子序列是否为异常子序列。具体地,可以计算与各个局部参考子序列对应的平均值的倒数的平均值和所述目标子序列与其K个邻居之间的欧几里德距离的平均值的倒数之间的比率,并且当该比率大于预定阈值时,确定所述目标子序列为异常子序列。所述阈值可以根据实际需要和/或检测精度灵活地设定。也就是说,当各个局部参考子序列及其K个邻居在二维空间中的分布密度与目标子序列及其K个邻居在该二维空间中的分布密度差异很大时,可以认为目标子序列是异常的。
可以看到,在根据本发明实施例的上述方法中,基于数据序列中受到目标子序列影响的参考子序列的数据,而不是基于数据序列的全部数据,来检测目标子序列是否是异常子序列,从而可以减小检测的计算量和所需时间,并且提高检测的准确性。此外,对于随着时间不断产生的数据形成的时间数据序列,每当产生一个新的子序列时,就可以利用上述方法检测该子序列是否是异常子序列,从而可以实现实时检测。
前面已经参考附图描述了实现本发明的方法的各个实施例。本领域技术人员可以理解的是,上述方法既可以以软件方式实现,也可以以硬件方式实现,或者通过软件与硬件相结合的方式实现。并且,本领域技术人员可以理解,通过以软件、硬件或者软硬件相结合的方式实现上述方法中的各个步骤,可以提供一种基于相同发明构思的检测数据序列中的异常子序列的设备。即使该设备在硬件结构上与通用处理设备相同,由于其中所包含的软件的作用,使得该设备表现出区别于通用处理设备的特性,从而形成本发明的各个实施例的设备。本发明中所述设备包括若干单元或模块,所述单元或模块被配置为执行相应步骤。本领域的所述技术人员通过阅读本说明书可以理解如何编写程序实现所述单元或模块执行的动作。
下面将参考附图8具体描述根据本发明的各个实施例的检测数据序列中的异常子序列的设备。由于所述设备与方法基于相同的发明构思,因此其中相同或相应的实现细节同样适用于与上述方法对应的设备,由于其在上文中已经进行了详细和完整的描述,因此在下文中可能不再进行赘述。
如上文所述,所述数据序列可以是时间数据序列,也可以是其他形式的数据序列,在这里,以时间数据序列为例来描述所述设备。可以按照上文所述的方法,利用滑动窗口将所述时间数据序列划分为多个子序列,在这里不再赘述。此外,可以按照时间的顺序检测每个子序列是否是异常子序列,在这种情况下,为了便于描述,将要检测其是否是异常子序列的、新产生的子序列称为目标子序列,并且将在目标子序列之前产生的一个或多个子序列称为参考子序列。
如图8所示,根据本发明实施例的检测数据序列中的异常子序列的设备(以下称为检测设备)800包括构造装置801、存储装置802、目标邻居确定装置803、参考邻居确定装置804和检测装置805。
构造装置801可以构造目标子序列的分层数据结构,所述分层数据结构的最底层的每个节点存储目标子序列的对应数据,最底层之上的层的每个节点存储基于在本层的下一层的对应节点中存储的数据导出的值。如上文所述,所述最底层之上的层的每个节点存储的、基于在本层的下一层的对应节点中存储的数据导出的值可以是所述对应节点中存储的数据的平均值、最大值和最小值,并且,所述分层数据结构可以是诸如二叉树之类的树、或者其他非树分层数据结构。在这里,以二叉树作为分层数据结构的示例。在这种情况下,构造装置801可以按照在上文中参照图3-5描述的方式来构造目标子序列的二叉树。然后,构造装置801可以将目标子序列的二叉树存储在二叉树队列中。该二叉树队列可以存储在存储装置802中。
目标邻居确定装置803可以基于目标子序列的二叉树以及预先构造的第一数量的参考子序列的二叉树,确定目标子序列的K个(即,第二数量)邻居(即,最近邻居),所述目标子序列的K个邻居是所述M-1个参考子序列中、与目标子序列的欧几里德距离最小的K个参考子序列。
具体地,如上文所述,目标邻居确定装置803可以从目标子序列和所述M-1个参考子序列的二叉树的最上层开始,分别基于所述分层数据结构的一层或多层上的节点中存储的数据或值,计算与所述一层或多层对应的、目标子序列与各个参考子序列之间的欧几里德距离的上限值和下限值,并且基于目标子序列与各个参考子序列之间的欧几里德距离的上限值和下限值确定目标子序列的邻居,直到确定目标子序列的第二数量的邻居为止。更具体地,如果目标子序列与所述M-1个参考子序列中的一个参考子序列之间的欧几里德距离的上限值小于目标子序列与所述M-1个参考子序列中的其他参考子序列之间的欧几里德距离的下限值,则可以将所述一个参考子序列确定为目标子序列的邻居。目标邻居确定装置803可以按照在上文中参照图7描述的方式来确定目标子序列的K个邻居,在这里不再赘述。
参考邻居确定装置804可以确定(即,更新)所述K个参考子序列中的每个参考子序列的第三数量的邻居(最近邻居),其中所述第三数量的邻居是所述数据序列中、与所述每个参考子序列的欧几里德距离最小的第三数量的子序列。所述第三数量可以与第二数量相同,因此在下文中,将所述第三数量也设置为K。
检测装置805可以根据目标子序列的K个最近邻居、以及所述K个参考子序列中以所述目标子序列为其邻居的参考子序列(即,上文所述的局部参考子序列)的K个邻居,确定所述目标子序列是否为异常子序列。简单地说,检测装置805可以根据目标子序列与其K个最近邻居之间的接近程度、以及所述局部参考子序列与其K个最近邻居之间的接近程度,确定所述目标子序列是否为异常子序列。具体地,首先,检测装置805可以计算所述目标子序列与K个邻居(即,最近邻居)之间的欧几里德距离的平均值的倒数,以确定目标子序列与其K个最近邻居之间的接近程度。接下来,对于每个局部参考子序列,检测装置805可以计算该局部参考子序列与其K个邻居之间的欧几里德距离的平均值的倒数,然后可以计算各个局部参考子序列对应的所述平均值的倒数的平均值,以确定所述局部参考子序列与其K个最近邻居之间的接近程度。接下来,检测装置805可以基于所述目标子序列与其K个邻居之间的欧几里德距离的平均值的倒数、以及与各个局部参考子序列对应的平均值的倒数的平均值,确定所述目标子序列是否为异常子序列。具体地,检测装置805可以计算与各个局部参考子序列对应的平均值的倒数的平均值和所述目标子序列与其K个邻居之间的欧几里德距离的平均值的倒数之间的比率,并且当该比率大于预定阈值时,确定所述目标子序列为异常子序列。
这样,利用根据本发明上述实施例的设备,可以简单准确地检测数据序列中的异常子序列,从而检测该数据序列中的异常数据。此外,每当产生一个新的子序列时,就可以利用上述设备检测该子序列是否是异常子序列,从而可以实现实时检测。
在上文中描述了本发明的各种实施例。应当认识到,上述描述只是说明性的,而非限制性的,本领域技术人员可以在其中做出适当的修改和改变,而不背离本发明的范围。例如,尽管在上文中以二叉树为了描述了本发明的实施例,但是本发明的实施例也适用于其他分层数据结构。例如,在上文所述的目标子序列包括8个数据S1、S2、S3、…、S8的示例中,可以构造如图9所示的分层数据结构,其包括与图4所示的二叉树相同的第一至第三层,但不包括图4所示的二叉树的第四层。在这种情况下,仍然可以利用在上文中描述的方法和设备以相同的方式检测异常子序列。此外,尽管在上文中提到检测设备中包括存储装置,但是在某些实施例中,也可以省略该存储装置。此外,尽管在上文中根据与各个局部参考子序列对应的平均值的倒数的平均值和所述目标子序列与其K个邻居之间的欧几里德距离的平均值的倒数之间的比率来检测目标子序列是否是异常子序列,但这不是限制性的,也可以采用其他方式来检测目标子序列是否是异常子序列。例如,可以计算与各个局部参考子序列对应的平均值的倒数的平均值和所述目标子序列与其K个邻居之间的欧几里德距离的平均值的倒数之间的差,并且当所述差大于阈值时,将目标子序列确定为异常子序列。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (14)

1.一种检测数据序列中的异常子序列的方法,所述数据序列包括要检测的目标子序列和第一数量的参考子序列,所述方法包括:
构造目标子序列的分层数据结构,所述分层数据结构的最底层的每个节点存储目标子序列的对应数据,最底层之上的层的每个节点存储基于在本层的下一层的对应节点中存储的数据导出的值;
基于所述目标子序列的分层数据结构以及预先构造的所述第一数量的参考子序列的分层数据结构,确定目标子序列的第二数量的邻居,所述目标子序列的第二数量的邻居是所述第一数量的参考子序列中、与目标子序列的欧几里德距离最小的第二数量的参考子序列;
确定所述第二数量的参考子序列中的每个参考子序列的第三数量的邻居,其中所述第三数量的邻居是所述数据序列中、与所述每个参考子序列的欧几里德距离最小的第三数量的子序列;以及
根据目标子序列的第二数量的邻居、以及所述第二数量的参考子序列中以所述目标子序列为其邻居的参考子序列的第三数量的邻居,确定所述目标子序列是否为异常子序列。
2.如权利要求1所述的方法,其中,所述分层数据结构是二叉树。
3.如权利要求1或2所述的方法,其中,所述最底层之上的层的每个节点存储的、基于在本层的下一层的对应节点中存储的数据导出的值是所述对应节点中存储的数据的平均值、最大值和最小值,并且其中,所述基于目标子序列的分层数据结构以及预先构造的所述第一数量的参考子序列的分层数据结构,确定目标子序列的第二数量的邻居包括:
从目标子序列和所述第一数量的参考子序列的分层数据结构的最上层开始,分别基于所述分层数据结构的一层或多层上的节点中存储的数据或值,计算与所述一层或多层对应的、目标子序列与各个参考子序列之间的欧几里德距离的上限值和下限值,并且基于所述上限值和下限值确定目标子序列的邻居,直到确定目标子序列的第二数量的邻居为止。
4.如权利要求3所述的方法,其中,所述基于所述上限值和下限值确定目标子序列的邻居包括:
响应于目标子序列与所述第一数量的参考子序列中的一个参考子序列之间的欧几里德距离的上限值小于目标子序列与所述第一数量的参考子序列中的其他参考子序列之间的欧几里德距离的下限值,将所述一个参考子序列确定为目标子序列的邻居。
5.如权利要求4所述的方法,其中,所述第三数量与所述第二数量相同,并且其中,根据目标子序列的第二数量的邻居、以及所述第二数量的参考子序列中以所述目标子序列为其邻居的参考子序列的第三数量的邻居,确定所述目标子序列是否为异常子序列包括:
根据目标子序列与其第二数量的邻居之间的接近程度、以及所述第二数量的参考子序列中以所述目标子序列为其邻居的参考子序列与其第三数量的邻居之间的接近程度,确定所述目标子序列是否为异常子序列。
6.如权利要求5所述的方法,其中,所述根据目标子序列与其第二数量的邻居的接近程度、以及所述第二数量的参考子序列中以所述目标子序列为其邻居的参考子序列与其第三数量的邻居的接近程度,确定所述目标子序列是否为异常子序列包括:
计算所述目标子序列与其第二数量的邻居之间的欧几里德距离的平均值的倒数,以确定目标子序列与该目标子序列的第二数量的邻居的接近程度;
计算所述第二数量的参考子序列中以所述目标子序列为其邻居的每个参考子序列与其第三数量的邻居之间的欧几里德距离的平均值的倒数;
计算与所述第二数量的参考子序列中以所述目标子序列为其邻居的各个参考子序列对应的平均值的倒数的平均值,以确定所述第二数量的参考子序列中以所述目标子序列为其邻居的参考子序列与其第三数量的邻居的接近程度;以及
基于所述目标子序列与其第二数量的邻居之间的欧几里德距离的平均值的倒数、以及与所述第二数量的参考子序列中以所述目标子序列为其邻居的各个参考子序列对应的平均值的倒数的平均值,确定所述目标子序列是否为异常子序列。
7.如权利要求6所述的方法,其中,所述基于所述目标子序列与其第二数量的邻居之间的欧几里德距离的平均值的倒数、以及与所述第二数量的参考子序列中以所述目标子序列为其邻居的各个参考子序列对应的平均值的倒数的平均值,确定所述目标子序列是否为异常子序列包括:
计算与所述第二数量的参考子序列中以所述目标子序列为其邻居的各个参考子序列对应的平均值的倒数的平均值和所述目标子序列与其第二数量的邻居之间的欧几里德距离的平均值的倒数之间的比率;
响应于所述比率大于预定阈值,确定所述目标子序列为异常子序列。
8.一种检测数据序列中的异常子序列的设备,所述数据序列包括要检测的目标子序列和第一数量的参考子序列,所述设备包括:
构造装置,被配置为构造目标子序列的分层数据结构,所述分层数据结构的最底层的每个节点存储目标子序列的对应数据,最底层之上的层的每个节点存储基于在本层的下一层的对应节点中存储的数据导出的值;
目标邻居确定装置,被配置为基于所述目标子序列的分层数据结构以及预先构造的所述第一数量的参考子序列的分层数据结构,确定目标子序列的第二数量的邻居,所述目标子序列的第二数量的邻居是所述第一数量的参考子序列中、与目标子序列的欧几里德距离最小的第二数量的参考子序列;
参考邻居确定装置,被配置为确定所述第二数量的参考子序列中的每个参考子序列的第三数量的邻居,其中所述第三数量的邻居是所述数据序列中、与所述每个参考子序列的欧几里德距离最小的第三数量的子序列;以及
异常检测装置,被配置为根据目标子序列的第二数量的邻居、以及所述第二数量的参考子序列中以所述目标子序列为其邻居的参考子序列的第三数量的邻居,确定所述目标子序列是否为异常子序列。
9.如权利要求8所述的设备,其中,所述分层数据结构是二叉树。
10.如权利要求8或9所述的设备,其中,所述最底层之上的层的每个节点存储的、基于在本层的下一层的对应节点中存储的数据导出的值是所述对应节点中存储的数据的平均值、最大值和最小值,并且其中,所述目标邻居确定装置被配置为按照以下方式确定目标子序列的第二数量的邻居:从目标子序列和所述第一数量的参考子序列的分层数据结构的最上层开始,分别基于所述分层数据结构的一层或多层上的节点中存储的数据或值,计算与所述一层或多层对应的、目标子序列与各个参考子序列之间的欧几里德距离的上限值和下限值,并且基于所述上限值和下限值确定目标子序列的邻居,直到确定目标子序列的第二数量的邻居为止。
11.如权利要求10所述的设备,其中,所述目标邻居确定装置被配置为响应于目标子序列与所述第一数量的参考子序列中的一个参考子序列之间的欧几里德距离的上限值小于目标子序列与所述第一数量的参考子序列中的其他参考子序列之间的欧几里德距离的下限值,将所述一个参考子序列确定为目标子序列的邻居。
12.如权利要求11所述的设备,其中,所述第三数量与所述第二数量相同,并且其中,所述异常检测装置被配置为根据目标子序列与其第二数量的邻居之间的接近程度、以及所述第二数量的参考子序列中以所述目标子序列为其邻居的参考子序列与其第三数量的邻居之间的接近程度,确定所述目标子序列是否为异常子序列。
13.如权利要求12所述的设备,其中,所述异常检测装置被配置为按照以下方式,根据所述接近程度确定所述目标子序列是否为异常子序列:计算所述目标子序列与其第二数量的邻居之间的欧几里德距离的平均值的倒数,以确定目标子序列与其第二数量的邻居之间的接近程度;计算所述第二数量的参考子序列中以所述目标子序列为其邻居的每个参考子序列与其第三数量的邻居之间的欧几里德距离的平均值的倒数;计算与所述第二数量的参考子序列中以所述目标子序列为其邻居的各个参考子序列对应的平均值的倒数的平均值,以确定所述第二数量的参考子序列中以所述目标子序列为其邻居的参考子序列与其第三数量的邻居之间的接近程度;以及基于所述目标子序列与其第二数量的邻居之间的欧几里德距离的平均值的倒数、以及与所述第二数量的参考子序列中以所述目标子序列为其邻居的各个参考子序列对应的平均值的倒数的平均值,确定所述目标子序列是否为异常子序列。
14.如权利要求13所述的设备,其中,所述异常检测装置被配置为计算与所述第二数量的参考子序列中以所述目标子序列为其邻居的各个参考子序列对应的平均值的倒数的平均值和所述目标子序列与其第二数量的邻居之间的欧几里德距离的平均值的倒数之间的比率,并且响应于所述比率大于预定阈值,确定所述目标子序列为异常子序列。
CN201410040085.6A 2014-01-27 2014-01-27 检测数据序列中的异常子序列的方法和设备 Expired - Fee Related CN104809134B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201410040085.6A CN104809134B (zh) 2014-01-27 2014-01-27 检测数据序列中的异常子序列的方法和设备
US14/598,843 US9552243B2 (en) 2014-01-27 2015-01-16 Detecting an abnormal subsequence in a data sequence
US14/741,819 US9547543B2 (en) 2014-01-27 2015-06-17 Detecting an abnormal subsequence in a data sequence

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410040085.6A CN104809134B (zh) 2014-01-27 2014-01-27 检测数据序列中的异常子序列的方法和设备

Publications (2)

Publication Number Publication Date
CN104809134A CN104809134A (zh) 2015-07-29
CN104809134B true CN104809134B (zh) 2018-03-09

Family

ID=53679148

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410040085.6A Expired - Fee Related CN104809134B (zh) 2014-01-27 2014-01-27 检测数据序列中的异常子序列的方法和设备

Country Status (2)

Country Link
US (2) US9552243B2 (zh)
CN (1) CN104809134B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10216776B2 (en) 2015-07-09 2019-02-26 Entit Software Llc Variance based time series dataset alignment
CN105302657B (zh) * 2015-11-05 2020-12-15 网易宝有限公司 一种异常情况分析方法和装置
US10866939B2 (en) 2015-11-30 2020-12-15 Micro Focus Llc Alignment and deduplication of time-series datasets
CN105808923A (zh) * 2016-02-29 2016-07-27 北京航空航天大学 一种数据序列的异常检测方法和装置
CN107612765B (zh) 2016-07-12 2020-12-25 华为技术有限公司 数据处理的方法及装置
CN107086944B (zh) * 2017-06-22 2020-04-21 北京奇艺世纪科技有限公司 一种异常检测方法和装置
CN108664702B (zh) * 2018-04-10 2022-07-05 中国计量大学 提升多级离心凝结水泵设计点扬程的方法
EP3582050B1 (de) * 2018-06-12 2021-04-28 Siemens Aktiengesellschaft Verfahren zum analysieren einer ursache mindestens einer abweichung
US10621106B1 (en) 2018-12-05 2020-04-14 International Business Machines Corporation Methods and systems for incorporating non-tree based address translation into a hierarchical translation lookaside buffer (TLB)
CN109684118B (zh) * 2018-12-10 2022-04-26 深圳前海微众银行股份有限公司 异常数据的检测方法、装置、设备及计算机可读存储介质
JP7204584B2 (ja) * 2019-06-14 2023-01-16 ルネサスエレクトロニクス株式会社 異常検知システム、異常検知装置および異常検知方法
CN110825924B (zh) * 2019-11-01 2022-12-06 深圳市卡牛科技有限公司 一种数据检测方法、装置及存储介质
CN111400314B (zh) * 2020-03-02 2023-10-27 支付宝(杭州)信息技术有限公司 利用向量图索引从数据库中检索节点向量的方法及装置
CN112667771A (zh) * 2020-12-22 2021-04-16 深圳壹账通智能科技有限公司 答案序列的确定方法及装置
CN113048807B (zh) * 2021-03-15 2022-07-26 太原理工大学 一种空冷机组背压异常检测方法
CN113420070B (zh) * 2021-06-24 2023-06-30 平安国际智慧城市科技股份有限公司 排污监测数据处理方法、装置、电子设备及存储介质
CN113780417A (zh) * 2021-09-10 2021-12-10 泰康保险集团股份有限公司 医保数据检测方法和装置
CN117314020B (zh) * 2023-11-28 2024-02-27 生态环境部华南环境科学研究所(生态环境部生态环境应急研究所) 一种浮游生物的湿地碳汇数据监测系统
CN117556108B (zh) * 2024-01-12 2024-03-26 泰安金冠宏食品科技有限公司 一种基于数据分析的油渣分离效率异常检测方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102184208A (zh) * 2011-04-29 2011-09-14 武汉慧人信息科技有限公司 一种基于多维数据异常簇挖掘的垃圾网页检测方法
CN102880621A (zh) * 2011-07-14 2013-01-16 富士通株式会社 提取相似子时间序列的方法和装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020123987A1 (en) * 2001-01-18 2002-09-05 Cox James A. Nearest neighbor data method and system
JP5333815B2 (ja) * 2008-02-19 2013-11-06 株式会社日立製作所 k最近傍検索方法、k最近傍検索プログラム及びk最近傍検索装置
JP5301310B2 (ja) 2009-02-17 2013-09-25 株式会社日立製作所 異常検知方法及び異常検知システム
US20120137367A1 (en) 2009-11-06 2012-05-31 Cataphora, Inc. Continuous anomaly detection based on behavior modeling and heterogeneous information analysis
US8688620B2 (en) 2011-09-23 2014-04-01 Hewlett-Packard Development Company, L.P. Anomaly detection in data centers
US20130191052A1 (en) 2012-01-23 2013-07-25 Steven J. Fernandez Real-time simulation of power grid disruption

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102184208A (zh) * 2011-04-29 2011-09-14 武汉慧人信息科技有限公司 一种基于多维数据异常簇挖掘的垃圾网页检测方法
CN102880621A (zh) * 2011-07-14 2013-01-16 富士通株式会社 提取相似子时间序列的方法和装置

Also Published As

Publication number Publication date
US9552243B2 (en) 2017-01-24
CN104809134A (zh) 2015-07-29
US9547543B2 (en) 2017-01-17
US20150212868A1 (en) 2015-07-30
US20150286516A1 (en) 2015-10-08

Similar Documents

Publication Publication Date Title
CN104809134B (zh) 检测数据序列中的异常子序列的方法和设备
CN110991311B (zh) 一种基于密集连接深度网络的目标检测方法
WO2018227800A1 (zh) 一种神经网络训练方法及装置
US20190095818A1 (en) Gradient-based auto-tuning for machine learning and deep learning models
US10621027B2 (en) IT system fault analysis technique based on configuration management database
CN102915347B (zh) 一种分布式数据流聚类方法及系统
WO2019201081A1 (zh) 用于估计观测变量之间的因果关系的方法、装置和系统
CN105765609B (zh) 使用有向无环图的存储器促进
US8091073B2 (en) Scaling instruction intervals to identify collection points for representative instruction traces
BR112021009042A2 (pt) geração automatizada de modelos de aprendizagem por máquina
US20180330187A1 (en) Shape-based segmentation using hierarchical image representations for automatic training data generation and search space specification for machine learning algorithms
WO2018171412A1 (zh) 一种行人检索方法及装置
US10032115B2 (en) Estimating file level input/output operations per second (IOPS)
US11775610B2 (en) Flexible imputation of missing data
CN107766573B (zh) 基于数据处理的商品推荐方法、装置、设备和存储介质
US20140149430A1 (en) Method of detecting overlapping community in network
KR20190105147A (ko) 반딧불 알고리즘을 이용한 데이터 클러스터링 방법 및 시스템
US10320636B2 (en) State information completion using context graphs
CN116433050B (zh) 应用于农业大数据管理系统的异常报警方法及系统
Dash DECPNN: A hybrid stock predictor model using Differential Evolution and Chebyshev Polynomial neural network
US20210209190A1 (en) Method and apparatus for processing matrix data through relaxed pruning
KR102242042B1 (ko) 데이터 라벨링 방법, 시스템 및 컴퓨터 프로그램
KR20200063904A (ko) 다중 간선 라벨 그래프의 정점들 간 관련도를 측정하는 방법 및 장치
CN116753561B (zh) 供热控制方法、控制装置和供热系统
US11775871B1 (en) Optimizing machine learning based on embedding smart data drift

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180309

CF01 Termination of patent right due to non-payment of annual fee