掌桥专利:专业的专利平台
掌桥专利
首页

一种数据异常点检测方法、装置、系统、以及存储介质

文献发布时间:2023-06-19 12:13:22


一种数据异常点检测方法、装置、系统、以及存储介质

技术领域

本发明涉及数据检测技术领域,特别涉及一种数据异常点检测方法、装置、系统以及存储介质。

背景技术

随着商业航天产业的不断发展,在轨卫星的安全有效运行是技术关注的重点。通过技术手段及时的从卫星遥测时序数据(卫星遥测参数)中发现异常变化的数据点,能够提高卫星故障的主动检测与识别能力,可对卫星的安全稳定运行提供可靠的决策支持。现有技术中,对卫星遥测时序数据中异常点的检测通常采用先预测其“正常值”,再通过预测值与真实值之间的对比来实现异常点检测。然而,该类方法却存在预测算法单一、异常的定义单一以及流程不够灵活、检测结果不够准确的问题。

发明内容

鉴于此,本发明提供了一种数据异常点检测方法、装置、系统以及存储介质。

第一方面,本发明提供了一种数据异常点检测方法,所述方法包括以下步骤:

S1:接收待检测数据,并对该待检测数据进行预处理;

S2:根据选定的预测算法对预处理后的待检测数据进行拆分,得到训练样本集和测试样本集;

S3:将所述训练样本集输入选定的预测算法进行迭代训练,得到训练后的算法模型;

S4:将所述测试样本集输入训练后的算法模型,得到所述测试样本集的预测初始值,对该预测初始值进行所述预处理的逆向运算,得到所述测试样本集的预测正常值;

S5:将所述测试样本集和所述预测正常值输入至预先设定的多种异常定义中,分别使用所述多种异常定义进行异常点检测,并输出所述多种异常定义下检测到的异常点;及

S6:将所述多种异常定义下检测到的异常点进行联合投票,确定最终异常点。

优选地,所述步骤S1包括:

S1.1:进行程序的初始化设置;

S1.2:对接收的待检测数据进行剔除野点的操作;

S1.3:使用剔除点前后两个数据的均值对剔除位置进行填充,所述均值是指在待检测数据中,剔除点位置的前一个时间点处数值以及后一个时间点处数值的平均值;

S1.4:对填充后的待检测数据进行归一化处理,将其数值范围转换到0-1范围之内。

优选地,所述步骤S2包括:

S2.1:根据选定的预测算法对预处理后的待检测数据进行预测,生成该预测算法对应结构的数据样本集;

S2.2:对该数据样本集进行拆分,得到训练样本集和测试样本集。

优选地,所述步骤S2.1包括:

S2.1.1:设定预处理后的待检测数据长度为n,对应的输入时间序列的索引表达形式为x(0),x(1),...,x(n);

S2.1.2:设定该预测算法对应的递归神经网络的输入时序长度以及输出时序长度分别为L

S2.1.3:将预处理后的待检测数据的时间序列提前L

优选地,所述步骤S2.2包括:根据预先设定的拆分比例,将该数据样本集中位于该拆分比例前的数据作为训练样本集,剩余的数据作为测试样本集。

优选地,所述预处理的逆向运算包括:对所述预测初始值进行反归一化,将所述预测初始值对应的归一化数据值域转换成初始状态。

优选地,所述联合投票包括:

针对某一待判决数据点,获取所述多种异常定义下的多种异常检测结果;

如果该待判决数据点被所述多种异常定义标记为异常点的次数超出预设阈值,则确定该待判决数据点为最终异常点;

如果该待判决数据点被所述多种异常定义标记为异常点的次数没有超出预设阈值,则确定该待判决数据点为正常点。

第二方面,本发明提供了一种装置,所述装置包括存储器、与所述存储器耦接的处理器,其中:

所述存储器存储有用于实现上述数据异常点检测方法的程序指令;

所述处理器用于执行所述存储器存储的所述程序指令以控制所述数据异常点检测方法的执行。

第三方面,本发明提供了一种数据异常点检测系统,包括:

数据预处理模块,用于接收待检测数据,并对该待检测数据进行预处理;

算法预测模块,用于根据选定的预测算法对预处理后的待检测数据进行拆分,得到训练样本集和测试样本集;

所述算法预测模块,还用于将所述训练样本集输入选定的预测算法进行迭代训练,得到训练后的算法模型;

所述算法预测模块,还用于将所述测试样本集输入训练后的算法模型,得到所述测试样本集的预测初始值,对该预测初始值进行所述预处理的逆向运算,得到所述测试样本集的预测正常值;

异常点检测模块,用于将所述测试样本集和所述预测正常值输入至预先设定的多种异常定义中,分别使用所述多种异常定义进行异常点检测,并输出所述多种异常定义下检测到的异常点;及

所述异常点检测模块,还用于将所述多种异常定义下检测到的异常点进行联合投票,确定最终异常点。

第四方面,本发明提供了一种存储介质,存储有处理器可运行的程序指令,所述程序指令用于执行上述数据异常点检测方法。

相较于现有技术,本发明实施例提供的一种数据异常点检测方法、装置、系统及存储介质,通过设定不同的预测算法以及多种异常定义,联合投票确定时序数据中的异常点,解决了时序数据异常检测流程不够灵活、检测结果准确性不够高的技术问题。与现有技术相比,本发明实施例产生的有益效果在于:(1)提供兼容多种预测算法和多种异常定义协调工作的处理流程,增加了异常检测的灵活性;(2)通过多种异常定义下的投票机制确定待检测数据中的异常点,提升了异常检测的准确性。

附图说明

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

图1为本发明实施例1提供的数据异常点检测方法的流程图;

图2为根据选定的预测算法生成数据样本集的示意图;

图3为本发明实施例2提供的装置结构示意图;

图4为本发明实施例3提供的数据异常点检测系统的结构示意图;

图5为本发明实施例4提供的存储介质的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

进一步需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。

请参阅图1,为本发明实施例1提供的数据异常点检测方法的流程图。在本实施例中,根据不同的需求,图1所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。

步骤S1:接收待检测数据,并对该待检测数据进行预处理。在其中一些实施例中,所述待检测数据为卫星遥测时序数据或其他类型的时序数据。

进一步地,在其中一些实施例中,所述步骤S1包括如下步骤。

步骤S1.1:进行程序的初始化设置,如读取配置文件等。

步骤S1.2:对接收的待检测数据进行剔除野点的操作,例如,对于超过正常工作范围指定幅度(如20%)的数据点进行剔除。

步骤S1.3:使用剔除点前后两个数据的均值对剔除位置进行填充。在其中一些实施例中,所述均值是指:在待检测数据中,剔除点位置(已剔除的野点位置)的前一个时间点处数值以及后一个时间点处数值的平均值。

步骤S1.4:对填充后的待检测数据进行归一化处理,将其数值范围转换到0-1范围之内。

步骤S2:根据选定的预测算法对预处理后的待检测数据进行拆分,得到训练样本集和测试样本集。在其中一些实施例中,所述预测算法包含多种,如LSTM(Long Short-TermMemory,长短期记忆人工神经网络)算法、滑动窗口算法、自动编解码器神经网络算法、以及ARIMA(Autoregressive Integrated Moving Average Model,差分自回归移动平均模型)算法等。

如果选定的预测算法为LSTM算法或其他类型的深度学习算法,则步骤S2包括:

步骤S2.1:根据选定的LSTM算法对预处理后的待检测数据进行预测,生成该LSTM算法对应结构的数据样本集;

步骤S2.2:对该数据样本集进行拆分,得到训练样本集和测试样本集。

进一步地,在其中一些实施例中,所述步骤S2.1包括如下步骤。

步骤S2.1.1:设定预处理后的待检测数据长度为n,对应的输入时间序列的索引表达形式为x(0),x(1),...,x(n)。

步骤S2.1.2:设定该LSTM算法对应的LSTM网络(递归神经网络)的输入时序长度以及输出时序长度分别为L

步骤S2.1.3:将预处理后的待检测数据的时间序列(参阅图2中的时间序列t)提前L

其中,所述输入矩阵X可以表达为:

所述输出矩阵Y可以表达为:

进一步地,在其中一些实施例中,所述步骤S2.2包括:根据预先设定的拆分比例(如50%),将该数据样本集中位于该拆分比例前的数据作为训练样本集,剩余的数据作为测试样本集。例如,将该数据样本集的前50%作为训练样本集,剩余的样本集作为测试样本集。

如果选定的预测算法为滑动窗口算法、自动编解码器神经网络算法、或者ARIMA算法,则步骤S2包括:直接根据选定的预测算法对预处理后的待检测数据进行拆分,得到训练样本集和测试样本集。

步骤S3:将所述训练样本集输入选定的预测算法进行迭代训练,得到训练后的算法模型。进一步地,在其中一些实施例中,所述步骤S3还包括:当选定的预测算法在所述训练样本集中完成迭代训练后,将得到的算法模型进行保存。

步骤S4:将所述测试样本集输入训练后的算法模型,得到所述测试样本集的预测初始值,对该预测初始值进行所述预处理的逆向运算,得到所述测试样本集的预测正常值。

在其中一些实施例中,所述预处理的逆向运算包括:对所述预测初始值进行反归一化,将所述预测初始值对应的归一化数据(0-1的数据)值域转换成初始状态。

步骤S5:将所述测试样本集(代表所述待检测数据的真实值)和所述预测正常值输入至预先设定的多种异常定义中,分别使用多种异常定义进行异常点检测,并输出多种异常定义下检测到的异常点。

在其中一些实施例中,所述多种异常定义包括,但不限于,测试数据均值的标准差定义、预测数据均值的标准差定义、以及非参数动态阈值定义。

进一步地,使用测试数据均值的标准差定义,进行异常点检测的算法流程如下所示。

输入:测试样本集(真实时序)TS,预测正常值(预测时序)Y,倍数N;

输出:带有是否为异常点标记的检测结果数据(时序数据)TS'。

Step 1:function 标记异常点(TS, Y, N)

Step 2: σ←计算标准差(TS)

Step 3: for t in timestamps of TS do

Step 4: obs←TS[t]

Step 5: y←Y[t]

Step 6: error←|y-obs|

Step 7: if error > Nⅹσ

Step 8:

Step 9: else

Step 10:

Step 11: return TS'

进一步地,使用预测数据均值的标准差定义,进行异常点检测的算法流程如下所示。

输入:测试样本集(真实时序)TS,预测正常值(预测时序)Y,倍数N;

输出:带有是否为异常点标记的检测结果数据(时序数据)TS'。

Step 1:function 标记异常点(TS, Y, N)

Step 2: σ←计算标准差(TS)

Step 3: μ←计算均值(TS)

Step 4: τ←μ+Nⅹσ

Step 5: for t in timestamps of TS do

Step 6: obs←TS[t]

Step 7: y←Y[t]

Step 8: if y >τ

Step 9:

Step 10: else

Step 11:

Step 12: return TS'

进一步地,使用非参数动态阈值定义,进行异常点检测的算法流程如下所示。

输入:测试样本集(真实时序)TS,预测正常值(预测时序)Y;

输出:带有是否为异常点标记的检测结果数据(时序数据)TS'。

Step 1:function 标记异常点(TS, Y)

Step 2: errors←计算误差值(TS,Y)

Step 3: E

//E

Step 4: for anomaly in E

Step 5: start←anomaly[0]

Step 6: end←anomaly[1]

Step 7: for t in start-end do //从起始索引位置至结束索引位置

Step 8:

Step 9: return TS'

步骤S6:将多种异常定义下检测到的异常点进行联合投票,确定最终异常点。

在其中一些实施例中,所述联合投票包括:针对某一待判决数据点,获取所述多种异常定义下的多种异常检测结果;如果该待判决数据点被所述多种异常定义标记为异常点的次数超出预设阈值,则确定该待判决数据点为最终异常点;如果该待判决数据点被所述多种异常定义标记为异常点的次数没有超出预设阈值,则确定该待判决数据点为正常点。

需要说明的是,所述预设阈值可以根据异常定义的数量进行动态确定,例如,如果多种异常定义数量为3种,则预设阈值可以设定为2。此时,只有当两种以上的异常定义同时标记某数据点为异常时,该数据点才被最终确定为异常点,否则判定为正常点。

请参阅图3,为本发明实施例2提供的装置结构示意图。

在其中一些实施例中,所述装置2可包括但不限于,存储器21、与所述存储器21耦接的处理器22,所述存储器21和处理器22可通过系统总线相互通信连接。需要指出的是,图3仅示出了具有组件21和22的装置2,但是应理解的是,实施例2并没有示出装置2的所有组件,装置2具有可以替代实施的更多或者更少的组件。其中,所述装置2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,该装置2可以是独立的服务器,也可以是多个服务器所组成的服务器集群。

所述存储器21存储有用于实现上述数据异常点检测方法的程序指令。所述存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述装置2的内部存储单元,例如该装置2的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述装置2的外部存储设备,例如该装置2上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括所述装置2的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述装置2的操作系统、各类应用软件、和系统代码等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。

所述处理器22用于执行存储器21存储的程序指令以控制数据异常点检测方法的执行。其中,处理器22还可以称为CPU(Central Processing Unit,中央处理单元)。处理器22可能是一种集成电路芯片,具有信号的处理能力。处理器22还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。该处理器22通常用于控制所述装置2的总体操作,例如执行与所述装置2进行数据交互或者通信相关的控制和处理等。本实施例2中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据等。

在其中一些实施例中,所述装置2还包括网络接口(如无线网络接口或有线网络接口),该网络接口通常用于在所述装置2与其他电子设备(如手机)之间建立通信连接。例如,所述网络接口用于通过网络将所述装置2与外部数据平台相连,在所述装置2与外部数据平台之间的建立数据传输通道和通信连接。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。

请参阅图4,为本发明实施例3提供的数据异常点检测系统的结构示意图。

本实施例中,所述的数据异常点检测系统3可以被分割成一个或多个程序模块,所述一个或者多个程序模块被存储于所述存储器21中,并由一个或多个处理器(如处理器22)所执行,以完成本发明。例如,在图4中,所述的数据异常点检测系统3可以被分割成数据预处理模块31、算法预测模块32、以及异常点检测模块33。本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述数据异常点检测系统3在所述装置2中的执行过程。以下将就各程序模块31-33的功能进行详细描述。

所述数据预处理模块31,用于接收待检测数据,并对该待检测数据进行预处理。具体方法参见实施例1中步骤S1的描述,在此不再赘述。

所述算法预测模块32,用于根据选定的预测算法对预处理后的待检测数据进行拆分,得到训练样本集和测试样本集。具体方法参见实施例1中步骤S2的描述,在此不再赘述。

所述算法预测模块32,还用于将所述训练样本集输入选定的预测算法进行迭代训练,得到训练后的算法模型。具体方法参见实施例1中步骤S3的描述,在此不再赘述。

所述算法预测模块32,还用于将所述测试样本集输入训练后的算法模型,得到所述测试样本集的预测初始值,对该预测初始值进行所述预处理的逆向运算,得到所述测试样本集的预测正常值。具体方法参见实施例1中步骤S4的描述,在此不再赘述。

所述异常点检测模块33,用于将所述测试样本集和所述预测正常值输入至预先设定的多种异常定义中,分别使用所述多种异常定义进行异常点检测,并输出所述多种异常定义下检测到的异常点。具体方法参见实施例1中步骤S5的描述,在此不再赘述。

所述异常点检测模块33,还用于将所述多种异常定义下检测到的异常点进行联合投票,确定最终异常点。具体方法参见实施例1中步骤S6的描述,在此不再赘述。

请参阅图5,为本发明实施例4提供的存储介质的结构示意图。

在其中一些实施例中,所述存储介质4存储有能够实现上述所有方法的程序文件41,其中,该程序文件41可以以软件产品的形式存储在上述存储介质4中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。

本发明实施例的一种数据异常点检测方法、装置、系统及存储介质,通过设定不同的预测算法以及多种异常定义,联合投票确定时序数据中的异常点,解决了时序数据异常检测流程不够灵活、检测结果准确性不够高的技术问题。与现有技术相比,本发明实施例至少具有以下有益效果:(1)提供兼容多种预测算法和多种异常定义协调工作的处理流程,增加了异常检测的灵活性;(2)通过多种异常定义下的投票机制确定待检测数据中的异常点,提升了异常检测的准确性。

以上仅为本发明的较佳实施例而已,仅具体描述了本发明的技术原理,这些描述只是为了解释本发明的原理,不能以任何方式解释为对本发明保护范围的限制。基于此处解释,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进,及本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其他具体实施方式,均应包含在本发明的保护范围之内。

相关技术
  • 一种数据异常点检测方法、装置、系统、以及存储介质
  • 一种时间序列数据异常点检测方法及系统
技术分类

06120113211337