检测数据状态的方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种检测数据状态的方法、装置、计算机设备和存储介质。
背景技术
时间序列数据的无监督异常检测算法。存在大量的时间序列数据,诸如集群使用量,商城访问量,某商城常用特征值的平均值,某特定用户群行为打分平均值等。以某模型(以下简称模型)在某特定人群上的打分的时间序列数据为例(以下简称打分时间序列数据),目前,对这些打分时间序列数据的监控主要基于经验,通过绘制该打分随着时间变化的曲线,打分的实际使用方可以发现某些时间段打分存在异常,之后反馈给模型的制作者,进行修复。此过程速度较慢,且强烈依赖业务经验,不利于模型的快速迭代。
发明内容
为了解决上述技术问题,本申请提供了一种检测数据状态的方法、装置、计算机设备和存储介质。
第一方面,本申请提供了一种检测数据状态的方法,包括:
获取预设时间段内的时间序列数据;
按照预设特征提取规则提取所述时间序列数据中的特征,得到目标特征;
通过多个不同的异常数据检测模型对目标特征进行检测,输出时间序列数据在各个异常数据检测模型中的异常概率;
输入时间序列数据在各个异常数据检测模型的异常概率至投票器,通过比较投票器中各个异常数据检测模型对应的异常概率阈值和异常概率,得到比较结果,根据比较结果投票决定时间序列数据的数据状态。
第二方面,本申请提供了一种检测数据状态的装置,包括:
数据获取模块,用于获取预设时间段内的时间序列数据;
特征提取模块,用于按照预设特征提取规则提取时间序列数据中的特征,得到目标特征;
异常检测模块,用于通过多个不同的异常数据检测模型对目标特征进行检测,输出时间序列数据在各个异常数据检测模型中的异常概率;
数据状态确定模块,用于输入时间序列数据在各个异常数据检测模型的异常概率至投票器,通过比较投票器中各个异常数据检测模型对应的异常概率阈值和异常概率,得到比较结果,根据比较结果投票决定时间序列数据的数据状态。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取预设时间段内的时间序列数据;
按照预设特征提取规则提取所述时间序列数据中的特征,得到目标特征;
通过多个不同的异常数据检测模型对目标特征进行检测,输出时间序列数据在各个异常数据检测模型中的异常概率;
输入时间序列数据在各个异常数据检测模型的异常概率至投票器,通过比较投票器中各个异常数据检测模型对应的异常概率阈值和异常概率,得到比较结果,根据比较结果投票决定时间序列数据的数据状态。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取预设时间段内的时间序列数据;
按照预设特征提取规则提取所述时间序列数据中的特征,得到目标特征;
通过多个不同的异常数据检测模型对目标特征进行检测,输出时间序列数据在各个异常数据检测模型中的异常概率;
输入时间序列数据在各个异常数据检测模型的异常概率至投票器,通过比较投票器中各个异常数据检测模型对应的异常概率阈值和异常概率,得到比较结果,根据比较结果投票决定时间序列数据的数据状态。
上述检测数据状态的方法、装置、计算机设备和存储介质,所述方法包括:获取预设时间段内的时间序列数据;按照预设特征提取规则提取所述时间序列数据中的特征,得到目标特征;通过多个不同的异常数据检测模型对目标特征进行检测,输出时间序列数据在各个异常数据检测模型中的异常概率;输入时间序列数据在各个异常数据检测模型的异常概率至投票器,通过比较投票器中各个异常数据检测模型对应的异常概率阈值和异常概率,得到比较结果,根据比较结果投票决定时间序列数据的数据状态。采用投票器的方式对多个异常数据检测模型的检测结果进行投票表决的方式简单高效,数据的监测过程变得简单高效。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中检测数据状态的方法的应用环境图;
图2为一个实施例中检测数据状态的方法的流程示意图;
图3为一个实施例中检测数据状态的方法的模块示意图;
图4为一个实施例中检测数据状态的装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为一个实施例中检测数据状态的方法的应用环境图。参照图1,该检测数据状态的方法应用于检测数据状态的系统。该检测数据状态的系统包括终端110和服务器120。终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,在一个实施例中,提供了一种检测数据状态的方法。本实施例主要以该方法应用于上述图1中的终端110(或服务器120)来举例说明。参照图2,该检测数据状态的方法具体包括如下步骤:
步骤S201,获取预设时间段内的时间序列数据。
具体地,预设时间段是预先定义的一段时间,该预设时间段可以是用户自定义的,也可以是预先配置的时间。时间序列数据是指与时间先后顺序有关的数据,如商城访问量,商城常用特征值的平均值,特定用户群行为打分平均值等。
步骤S202,按照预设特征提取规则提取时间序列数据中的特征,得到目标特征。
具体地,目标特征是指通过对时间序列数据按照一定的数据处理规则进行处理后得到的数据特征。目标特征包括但不限于历史表现特征、历史变化率特征、布林带特征和动量特征。其中历史表现特征是指历史数据在一定时间内的状态值和平均值等等。历史变化率时用于衡量一段时间内的数据变化量。布林带特征是至计算一段时间内的均值、标准差,通过标准差和均值,以及标准差和均值组成的值衡量数据的稳定性。动量特征是用于表征同一特征在不同时刻的差异性,即相邻时刻之间的状态的变化,根据同一特征在计算公式为
其中,对于一个时间序列中的每个时间点,su'表示用户当前时点特征与前一时点的特征的差,Su=∑max(Su',0),Sd=-∑max(Su',0),B为常数,该常数值可以根据需求自定义,如定义B=50或100等。在常见的历史表现特征和历史变化率特征等等特征中引入布林带特征和动量特征,由于布林带特征和动量特征可以较好的刻画数据的稳定性,故引入特征可以提高异常数据的检测准确度。其中同一特征可以对应不同时间长度的值,如历史变化率特征可以求取一个天、一个星期或一个月等等的变化率,同理,历史表现特征可以可以求取一个天、一个星期或一个月等等特征。布林带特征可以选择一个月的状态值和当前值之间的变化,也可以是一个星期之间的变化等。每个特征对应的时间长度可以根据需求定义。
步骤S203,通过多个不同的异常数据检测模型对目标特征进行检测,输出时间序列数据在各个异常数据检测模型中的异常概率。
具体地,异常数据检测模型包含多个,每个异常数据检测模型不相同。异常数据检测模型的为常见的异常数据检测模型,如随机森林、孤立森林模型、变分自编码器模型和一类支持向量机模型等等,还可以是自定义的异常数据检测模型。孤立森林是基于树算法的异常检测,孤立森林是一个基于Ensemble的快速异常检测方法,具有线性时间复杂度和高精准度,是符合大数据处理要求的state-of-the-art算法。变分自编码器是一个基于深度学习的异常检测算法,一类支持向量机是一个基于支持向量机的异常检测算法孤立森林是基于树算法的异常检测,变分自编码器是一个基于深度学习的异常检测算法,一类支持向量机是在统计学习的理论基础上提出的一种无监督学习方法,其目的是将目标类样本与其他样本进行有效区分,具有无需先验知识和结构风险最小化等优点,因此被广泛应用于异常检测和故障诊断中。通过每个异常数据检测模型对输入的目标特征进行检测,得到对应的检测结果,检测结果为检测该数据是否异常的概率,即得到各个数据到异常概率。
在一个实施例中,异常数据检测模型包括:孤立森林模型、变分自编码器模型和一类支持向量机模型三个模型。这三种算法原理互不相同,具有很强的互补性,非常适于组合成集成学习,用来进行无监督异常检测工作。进一步,为了提高上述三种异常检测模型的检测准确性,本发明实施例可事先利用样本数据,对上述三种异常检测模型分别进行训练、优化参数,使上述三种异常检测模型具备可观的异常检测精度,然后,将训练后的三种异常检测模型用于对各待检测告警元数据的异常检测。
在另一个实施例中,异常数据检测模型包括:随机森林模型、变分自编码器模型和一类支持向量机模型三个模型。同理对上述三种异常检测模型分别进行训练、优化参数,使上述三种异常检测模型具备可观的异常检测精度。
步骤S204,输入时间序列数据在各个异常数据检测模型的异常概率至投票器,通过比较投票器中各个异常数据检测模型对应的异常概率阈值和异常概率,得到比较结果,根据比较结果投票决定时间序列数据的数据状态。
具体地,投票器是用于投票表决的数学模型。投票器中的投票规则是预先设定的,根据投票器中各个异常数据检测模型的异常概率和对应的异常概率阈值,确定每个异常数据检测模型的比较结果为异常还是正常,统计异常的数量,当异常的数量大于预设数量时,表示时间序列数据的数据状态为异常,反之则表示正常。其中各个异常数据检测模型对应的异常概率阈值是通过机器学习训练得到的,也可以是人为规定的。根据机器学习得到的可以是对当个异常数据检测模型单独训练得到,与可以是通过多个异常数据检测模型和投票器共同训练得到的,即在单独确定每个异常数据检测模型的参数后,对投票器中的参数进行训练,其中投票器中的参数包括异常概率阈值。
在一个实施例中,异常数据检测模型包括:孤立森林模型、变分自编码器模型和一类支持向量机模型三个模型。当其中的任意两个异常数据检测模型的检测结果为异常时,则时间序列数据的数据状态为异常反之,则表示异常。
上述检测数据状态的方法,包括:获取预设时间段内的时间序列数据;按照预设特征提取规则提取所述时间序列数据中的特征,得到目标特征;通过多个不同的异常数据检测模型对目标特征进行检测,输出时间序列数据在各个异常数据检测模型中的异常概率;输入时间序列数据在各个异常数据检测模型的异常概率至投票器,通过比较投票器中各个异常数据检测模型对应的异常概率阈值和异常概率,得到比较结果,根据比较结果投票决定时间序列数据的数据状态。引入的布林带特征和动量特征可以较好的表征一段时间内的时间序列数据的稳定性,提高模型检测准确度,采用投票器的方式对多个异常数据检测模型的检测结果进行投票表决的方式简单高效,数据的监测过程变得简单高效。
在一个实施例中,上述检测数据状态的方法,还包括:生成投票器。其中生成投票器,包括:
步骤S301,获取多个训练数据对应的目标特征。
在本具体实施例中,训练数据包括多个时间段的时间序列数据,所述训练数据携带数据标准状态。
步骤S302,输入各个训练数据对应的目标特征至各个异常数据检测模型,得到各个训练数据在各个异常数据检测模型的异常概率。
步骤S303,通过初始投票器中的各个异常数据检测模型的初始异常概率阈值和对应的异常概率的比较结果,对各个训练数据进行投票表决,得到对应的数据预测状态。
步骤S304,输入各个训练数据的数据预测状态和对应的数据标准状态至优化函数,得到对应的优化值。
步骤S305,当优化值满足预设优化条件时,得到投票器。
具体地,训练数据是用于训练数学模型的数据,该数学模型可以投票器、异常数据监测模型等等。多个时间段的时间序列数据是指某些特征场合产生的与时间有关的数据。如评价数据、集群使用量,商城访问量等等。数据标准状态是指数据的真实状态,该真实状态可以是人为定义的状态,数据标准状态包括正常和异常两种。不同的应用场景下的训练数据不同。
特征提取是指按照预先设置的特征提取算法进行特征提取的过程,提取的特征包括:均值、方法、标准差等等。目标特征包括历史表现特征、历史变化率特征、布林带特征和动量特征。目标特征中的各个特征与步骤S202中的一致,再此不在赘述。
初始投票器是根据需求构建的数学模型,该数据模型中包含各个异常数据检测模型的初始异常概率阈值,初始异常概率阈值可以随机赋值,也可以根据技术人员的经验赋值。数据预测状态是指采用初始投票器进行投票后表决后得到各个训练数据的状态。优化函数是用于判断投票器是否收敛的函数,优化值是指优化函数对应的值,预设优化条件是指预先设置的用于判断投票器是否收敛的限制条件。当优化值满足预设优化条件时,表示初始投票器收敛,将初始投票器对应的各个异常数据检测模型的初始异常概率阈值,作为各个异常数据检测模型的异常概率阈值,得到投票器。采用有监督的方式训练投票器,且投票器的输入为各个异常数据检测模型的输出结果。无监督异常检测模型输出的结果是某一个时间点的值是否是正常的概率,为了实现自动告警,还需要提供一个阈值,用来判断某时间点的值是否为异常。基于此,设计了有监督阈值选择模块,来提供阈值,通过机器学习得到的阈值对数据状态的检测更为准确。
在一个实施例中,生成投票器,还包括:
步骤S306,当优化值未满足预设优化条件时,根据预设优化条件和优化值更新初始投票器中的各个异常数据检测模型的初始异常概率阈值,得到中间投票器;执行输入各个训练数据在各个异常数据检测模型的异常概率至中间投票器,直至中间投票器的优化值满足预设优化条件时,得到投票器。
具体地,当优化值未满足预设优化条件时,表示初始投票器未收敛,根据优化值和预设优化条件更新初始投票器的模型参数,模型参数的更新采用常见的机器学习的参数更新方法,如方向传播的方法。采用方向传播的方法更新投票器的模型参数,如更新各个异常数据检测模型的初始异常概率阈值,得到中间投票器,输入各个训练数据在各个异常数据检测模型的异常概率至中间投票器,采用中间投票器进行数据检测,得到对应的预测结果,判断预测结果与真实结果之间的差异度,确定中间投票器是否收敛,收敛,将中间投票器作为投票器,反之,继续更新中间投票器的模型参数,直至更了模型参数的中间投票器的优化值满足预设优化条件时,得到投票器。
在一个实施例中,优化函数为:
其中,max表示求最大值,Yi为第i条训练Xi的数据标准状态,F(Xi/ti,...,tk)为第i条训练数据Xi的数据预测状态,Yi为0或1,F(Xi/ti,...,tk)为0或1,为0表示数据状态为正常,为1表示数据状态为异常,F表示投票器的投票函数,tk表示第k个异常数据检测模型的异常概率阈值,a为权重系数,a为常数。
在一个实施例中,a大于1,相比于让模型能识别非异常数据,模型能识别异常数据更为重要,故设置a大于1,如设置a=5或10等等。
在一个实施例中,F表示投票器的投票函数具体如下:
F(X)=if(sum(if(f1(X))≥t1,1,0),...,if(fm(X))≥tm,1,0)..,if(fn(X))≥tn,1,0))≥m,1,0)其中n>m/2,n表示异常数据检测模型的数量,if(A,1,0)表示若条件A成立,则取值1,否则取值0,sum表示求和,即统计各个异常数据检测模型的检测结果中表示时间序列数据的数据状态为异常的数量。如异常数据检测模型包含5个,得到的统计结果为3,则表示其中有三个异常数据检测模型输出的结果为异常,两个输出的结果为正常。
在一个实施例中,数据检测模型为多个不同的异常数据检测模型中的任意一个,生成数据检测模型,包括:
步骤S401,输入各个训练数据的目标特征至初始数据检测模型,得到各个训练数据的初始预测状态。
步骤S402,计算各个训练数据的初始预测状态和对应的数据标准状态的差异度。
步骤S403,当差异度小于或等于预设差异度时,得到数据检测模型。
具体地,数据检测模型可以多个不同的异常数据检测模型的任意一个模型,因为各个异常数据检测模型的训练思路一致,不同的异常数据检测模型中采用不同的算法,且模型的收敛条件可以根据不同的算法定义对应的收敛条件,与可以采用通用的机器学习的收敛条件。输入各个训练数据的目标特征至初始数据检测模型,通过初始数据检测模型对各个训练数据进行状态预测,得到对应的初始预测状态。计算初始预测状态和对应的数据标准状态的差异度,其中差异度可以为直接为差值、比值、差值的指数或对数,以及差值的平均值等等。预设差异度为预先设置的临界值,该临界值可以人为设定,也可以根据数据分析自动得出等等。当差异度小于或等于预设差异度时,表示初始数据检测模型收敛,得到数据检测模型。
在一个实施例中,生成数据检测模型,还包括:
步骤S404,当差异度大于预设差异度时,根据差异度更新初始数据检测模型的模型参数,得到中间数据检测模型,执行各个训练数据的目标特征至初始数据检测模型,得到各个训练数据的中间预测状态,直至中间数据检测模型的中间预测状态与对应的数据标准状态的差异度,小于或等于预设差异度时,得到数据检测模型。
具体地,当差异度大于预设差异度时,表示初始数据检测模型未收敛,根据差异度更新初始数据检测模型的模型参数,得到中间数据检测模型。其中更新初始数据检测模型的模型参数为机器学习的常见的模型参数更新方法。采用中间数据检测模型对训练数据进行数据检测,得到对应的检测结果,当中间数据检测模型的中间预测状态与对应的数据标准状态的差异度,小于或等于预设差异度时,得到数据检测模型。反之,则更新中间数据检测模型的模型参数,直至更新了模型参数的中间数据检测模型的中间预测状态与对应的数据标准状态的差异度,小于或等于预设差异度时,得到数据检测模型。
在一个具体的实施例中,参照图3,上述检测数据状态的方法,包括:
特征加工模块501,无监督异常检测模块502和有监督阈值选取模块503。模型的总体结果如图3所示。特征加工模块501中包括历史表现特征、历史变化率特征、布林带特征和动量特征的特征加过。无监督异常检测模块502包括孤立森林、深度学习自编码器和一类支持向量机三个异常数据监测模型。有监督阈值选取模块503采用人工标注的数据标注状态输入有监督阈值选择模型(投票器),并采用方向传播算法对投票器进行训练。
时序特征加工模块。首先根据当前模型的历史表现,尤其是近期历史表现设计出一系列的特征。模型中使用到的特征包括但不限于如表1所示的特征。
表1特征表
模型中使用到的特征,如历史表现特征,历史变化率特征(即近1天/7天等等的特征与当前特征的变化率),布林带特征(即固定时间窗口长度为X天,计算用户的时间序列上,在第y天到第y+x天内的特征均值,标准差和均值标准差),动量特征即相邻时刻之间的状态的变化,根据同一特征在计算公式为
其中,对于一个时间序列中的每个时间点,Su'表示用户当前时点特征与前一时点的特征的差,Su=∑max(Su',0),Sd=-∑max(Su',0),B为常数,该常数值可以根据需求自定义,如定义B=50或100等。上述特征均作为模型输入,直接入模进行建模。对于非变化率类的统计性变量,我们用对每一个特征列做高斯归一化(如
其中μ
k是时间序列数据X的均值,δ
k是时间序列数据X的标准差,ε是一个极小的正常数,用以防止除零异常,而变化率类的变量已经是0-1的一个数值,无需进一步处理。
当前模型采用3个子模型进行异常检测。当前模型包括:孤立森林模型、变分自编码器模型和一类支持向量机模型。这三种算法原理互不相同,具有很强的互补性,非常适于组合成集成学习,用来进行无监督异常检测工作。
3个模型的结合方法为投票法。先通过卡阈值的方式,获取每一个子模型的判断(是否是异常),之后只要3个模型投票中有大于等于2个子模型判定结果为异常值,则认为该值为异常。
无监督异常检测模型输出的结果是某一个时间点的值是否是正常的概率,为了实现自动告警,还需要提供一个阈值,用来判断某时间点的值是否为异常。基于此,设计了有监督阈值选择模块来提供阈值。
通过上文第2小节训练得到的三个无监督异常检测模型,每个模型我们都可以为一个用户数据都输出一个是否是异常数据的概率值,取值0-1,即一个数据对应了三个模型预测分。最终该条数据是否是异常数据,是通过模型集成投票所得到,即需要用下式来判断,其中表示若条件A成立,则取值1,否则取值0,
F(X)=if(sum(if(f1(X))≥t1,1,0),if(f2(X))≥t2,1,0),if(f3(X))≥t3,1,0))≥2,1,0)
其中2表示异常数据检测模型的数量,t1,t2,t3分别表示第1个至第3个异常数据检测模型的异常概率阈值,if(A,1,0)表示若条件A成立,则取值1,否则取值0。
然而,每个无监督模型对应的判断阈值是不确定的。需要构建一个监督模型,学习出该三个阈值。可以构造下面的优化函数,以求得阈值,优化函数如下:
其中,Yi为第i条训练数据Xi的数据标准状态,F(Xi/ti,...,tk)为第i条训练数据Xi的数据预测状态,F表示投票器的投票函数,t1,...,tk分别表示第1个至第k个异常数据检测模型的异常概率阈值,k表示异常数据检测模型的个数,a为权重系数,且a大于1。
上述检测数据状态的方法,通过引入钱德动量摆动特征和布林带特征到无监督异常检测领域,提高预测异常值的检测效率和准确度。引入了集成学习算法,用来准确的预测异常值的出现,引入单纯形算法,用来寻找最优阈值,从而提高异常数据的检测精准度。
图2为一个实施例中检测数据状态的方法的流程示意图。应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种检测数据状态的装置200,包括:
数据获取模块201,用于获取预设时间段内的时间序列数据。
特征提取模块202,用于按照预设特征提取规则提取时间序列数据中的特征,得到目标特征。
异常检测模块203,用于通过多个不同的异常数据检测模型对目标特征进行检测,输出时间序列数据在各个异常数据检测模型中的异常概率。
数据状态确定模块204,用于输入时间序列数据在各个异常数据检测模型的异常概率至投票器,通过比较投票器中各个异常数据检测模型对应的异常概率阈值和异常概率,得到比较结果,根据比较结果投票决定时间序列数据的数据状态。
在一个实施例中,上述检测数据状态的装置200,还包括:
投票器生成模块,用于生成投票器。其中投票器生成模块,包括:
训练数据特征获取单元,用于获取多个训练数据对应的目标特征,训练数据包括多个时间段的时间序列数据,训练数据携带数据标准状态。
检测单元,用于输入各个训练数据的目标特征至各个异常数据检测模型,得到各个训练数据在各个异常数据检测模型的异常概率。
预测单元,用于输入各个训练数据在各个异常数据检测模型的异常概率至初始投票器,通过初始投票器中的各个所述异常数据检测模型的初始异常概率阈值和对应的异常概率的比较结果,对各个训练数据的比较结果进行投票表决,得到对应的数据预测状态。
优化单元,用于输入输入各个训练数据的数据预测状态和对应的数据标准状态至优化函数,得到对应的优化值。
投票器生成单元,用于当优化值满足预设优化条件时,得到投票器。
在一个实施例中,投票器生成单元还用于当优化值未满足预设优化条件时,根据预设优化条件和优化值更新初始投票器中的各个异常数据检测模型的初始异常概率阈值,得到中间投票器;执行输入各个训练数据在各个异常数据检测模型的异常概率至中间投票器,直至中间投票器的优化值满足预设优化条件时,得到投票器。
在一个实施例中,优化单元中的优化函数为:
优化单元中的
其中,Y
i为第i条训练数据X
i的数据标准状态,F(X
i/t
i,...,t
k)为第i条训练数据X
i的数据预测状态,F表示投票器的投票函数,t
1,...,t
k分别表示第1个至第k个异常数据检测模型的异常概率阈值,k表示异常数据检测模型的个数,a为权重系数。
在一个实施例中,优化单元中的优化函数中的a大于1。
在一个实施例中,优化单元中的投票器F如下:
F(X)=if(sum(if(f1(X))≥t1,1,0),...,if(fm(X))≥tm,1,0)..,if(fn(X))≥tn,1,0))≥m,1,0)其中n>m/2,n表示异常数据检测模型的数量,if(A,1,0)表示若条件A成立,则取值1,否则取值0。
在一个实施例中,上述检测数据状态的装置200,还包括:
数据检测模型生成模块,用于生成数据检测模型,其中数据检测模型为多个不同的异常数据检测模型中的任意一个。数据检测模型生成模块,包括:
数据检测模型的预测单元,用于输入各个训练数据的目标特征至初始数据检测模型,得到各个训练数据的初始预测状态。
差异度计算单元,用于计算各个训练数据的初始预测状态和对应的数据标准状态的差异度。
数据检测模型生成单元,用于当差异度小于或等于预设差异度时,得到数据检测模型。
在一个实施例中,上述数据检测模型生成单元还用于当差异度大于预设差异度时,根据差异度更新初始数据检测模型的模型参数,得到中间数据检测模型,执行各个训练数据的目标特征至初始数据检测模型,得到各个训练数据的中间预测状态,直至中间数据检测模型的中间预测状态与对应的数据标准状态的差异度,小于或等于预设差异度时,得到数据检测模型。
图5示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110(或服务器120)。如图5所示,该计算机设备通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现检测数据状态的方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行检测数据状态的方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的检测数据状态的装置可以实现为一种计算机程序的形式,计算机程序可在如图5所示的计算机设备上运行。计算机设备的存储器中可存储组成该检测数据状态的装置的各个程序模块,比如,图4所示的数据获取模块201、特征提取模块202、异常检测模块203和数据状态确定模块204。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的检测数据状态的方法中的步骤。
例如,图5所示的计算机设备可以通过如图4所示的检测数据状态的装置中的数据获取模块201执行用于获取预设时间段内的时间序列数据。计算机设备可以通过特征提取模块202执行按照预设特征提取规则提取时间序列数据中的特征,得到目标特征。计算机设备可以通过异常检测模块203执行通过多个不同的异常数据检测模型对目标特征进行检测,输出时间序列数据在各个异常数据检测模型中的异常概率。计算机设备可以通过数据状态确定模块204执行输入时间序列数据在各个异常数据检测模型的异常概率至投票器,通过比较投票器中各个异常数据检测模型对应的异常概率阈值和异常概率,得到比较结果,根据比较结果投票决定时间序列数据的数据状态。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取预设时间段内的时间序列数据;按照预设特征提取规则提取时间序列数据中的特征,得到目标特征;通过多个不同的异常数据检测模型对目标特征进行检测,输出时间序列数据在各个异常数据检测模型中的异常概率;输入时间序列数据在各个异常数据检测模型的异常概率至投票器,通过比较投票器中各个异常数据检测模型对应的异常概率阈值和异常概率,得到比较结果,根据比较结果投票决定时间序列数据的数据状态。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:生成投票器,包括:获取多个训练数据对应的目标特征,训练数据包括多个时间段的时间序列数据,训练数据携带数据标准状态;输入各个训练数据对应的目标特征至各个异常数据检测模型,得到各个训练数据在各个异常数据检测模型的异常概率;通过初始投票器中的各个异常数据检测模型的初始异常概率阈值和对应的异常概率的比较结果,对各个训练数据的比较结果进行投票表决,得到对应的数据预测状态;输入各个训练数据的数据预测状态和对应的数据标准状态至优化函数,得到对应的优化值;当优化值满足预设优化条件时,得到所述投票器。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当优化值未满足预设优化条件时,根据预设优化条件和优化值更新初始投票器中的各个异常数据检测模型的初始异常概率阈值,得到中间投票器;执行输入各个训练数据在各个异常数据检测模型的异常概率至中间投票器,直至中间投票器的优化值满足预设优化条件时,得到投票器。
在一个实施例中,优化函数为:
其中,Yi为第i条训练数据Xi的数据标准状态,F(Xi/ti,...,tk)为第i条训练数据Xi的数据预测状态,F表示投票器的投票函数,t1,...,tk分别表示第1个至第k个异常数据检测模型的异常概率阈值,k表示异常数据检测模型的个数,a为权重系数。
在一个实施例中,a大于1。
在一个实施例中,F表示投票器的投票函数具体为:F(X)=if(sum(if(f1(X))≥t1,1,0),...,if(fm(X))≥tm,1,0)..,if(fn(X))≥tn,1,0))≥m,1,0)其中n>m/2,n表示异常数据检测模型的数量,if(A,1,0)表示若条件A成立,则取值1,否则取值0。
在一个实施例中,数据检测模型为多个不同的异常数据检测模型中的任意一个,生成数据检测模型,包括:输入各个训练数据的目标特征至初始数据检测模型,得到各个训练数据的初始预测状态;计算各个训练数据的初始预测状态和对应的数据标准状态的差异度;当差异度小于或等于预设差异度时,得到数据检测模型。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当差异度大于预设差异度时,根据差异度更新初始数据检测模型的模型参数,得到中间数据检测模型,执行各个训练数据的目标特征至初始数据检测模型,得到各个训练数据的中间预测状态,直至中间数据检测模型的中间预测状态与对应的数据标准状态的差异度,小于或等于预设差异度时,得到数据检测模型。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取预设时间段内的时间序列数据;按照预设特征提取规则提取时间序列数据中的特征,得到目标特征;通过多个不同的异常数据检测模型对目标特征进行检测,输出时间序列数据在各个异常数据检测模型中的异常概率;输入时间序列数据在各个异常数据检测模型的异常概率至投票器,通过比较投票器中各个异常数据检测模型对应的异常概率阈值和异常概率,得到比较结果,根据比较结果投票决定时间序列数据的数据状态。
在一个实施例中,计算机程序被处理器执行时实现以下步骤:生成投票器,包括获取多个训练数据对应的目标特征,训练数据包括多个时间段的时间序列数据,训练数据携带数据标准状态;输入各个训练数据对应的目标特征至各个异常数据检测模型,得到各个训练数据在各个异常数据检测模型的异常概率;通过初始投票器中的各个异常数据检测模型的初始异常概率阈值和对应的异常概率的比较结果,对各个训练数据的比较结果进行投票表决,得到对应的数据预测状态;输入各个训练数据的数据预测状态和对应的数据标准状态至优化函数,得到对应的优化值;当优化值满足预设优化条件时,得到投票器。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当优化值未满足预设优化条件时,根据预设优化条件和优化值更新初始投票器中的各个异常数据检测模型的初始异常概率阈值,得到中间投票器;执行输入各个训练数据在各个异常数据检测模型的异常概率至中间投票器,直至中间投票器的优化值满足预设优化条件时,得到投票器。
在一个实施例中,优化函数为:
其中,Yi为第i条训练数据Xi的数据标准状态,F(Xi/ti,...,tk)为第i条训练数据Xi的数据预测状态,F表示投票器的投票函数,t1,...,tk分别表示第1个至第k个异常数据检测模型的异常概率阈值,k表示异常数据检测模型的个数,a为权重系数。
在一个实施例中,a大于1。
在一个实施例中,F表示投票器的投票函数具体为:F(X)=if(sum(if(f1(X))≥t1,1,0),...,if(fm(X))≥tm,1,0)..,if(fn(X))≥tn,1,0))≥m,1,0)其中n>m/2,n表示异常数据检测模型的数量,if(A,1,0)表示若条件A成立,则取值1,否则取值0。
在一个实施例中,数据检测模型为多个不同的异常数据检测模型中的任意一个,生成数据检测模型,包括:输入各个训练数据的目标特征至初始数据检测模型,得到各个训练数据的初始预测状态;计算各个训练数据的初始预测状态和对应的数据标准状态的差异度;当差异度小于或等于预设差异度时,得到数据检测模型。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当差异度大于预设差异度时,根据差异度更新初始数据检测模型的模型参数,得到中间数据检测模型,执行各个训练数据的目标特征至初始数据检测模型,得到各个训练数据的中间预测状态,直至中间数据检测模型的中间预测状态与对应的数据标准状态的差异度,小于或等于预设差异度时,得到数据检测模型。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。