一种数据多维异常的检测方法和系统

文档序号:36387453发布日期:2023-12-15 02:29阅读:52来源:国知局
一种数据多维异常的检测方法和系统

本发明涉及数据异常检测,尤其是指一种数据多维异常的检测方法和系统。


背景技术:

1、异常检测是指识别出明显偏离于正常数据的数据点。截至目前,异常检测已广泛应用于科学技术的各个领域,如信用卡欺诈检测、入侵检测以及文本异常检测。常用异常检测方案有以下几种:

2、(1)传统统计学异常检测方案:常见的统计学异常检测方案如“3σ原则”和箱型图等,通常根据数据单个维度上的数值进行异常检测。当数据单个维度上的数值较大或较小时,将数据识别为异常。当数据维数较高时,该方案的效率较低。此外,该方案在异常检测的过程中忽略了数据不同维度之间的内在关系。

3、(2)k近邻异常检测算法(knn):knn算法的思想是异常点一定是跟大部分的样本点都距离很远。基于这个思想,需要依次计算每个样本点与它最近的k个样本的平均距离,再利用计算的距离与阈值进行比较,如果大于阈值,则认为是异常点。该方案需要大量计算不同样本点之间的距离,因此对于高维数据的检测效率较低。

4、(3)局部离群因子异常检测算法(lof):lof算法的基本思想是根据数据点周围的数据密集情况,首先计算每个数据点的一个局部可达密度,然后通过局部可达密度进一步计算得到每个数据点的一个离群因子,该离群因子即标识了一个数据点的离群程度,因子值越大,表示离群程度越高,因子值越小,表示离群程度越低。最后,输出离群程度最大的前n个点作为异常点。该方案需要计算每个数据点的局部可达密度,当数据量较大或数据维数较高时,该方案的时效性较低。

5、(4)自编码器方法:自编码器作为一种神经网络模型,由于其在处理高维和非线性数据集时具有明显的优势,现已被广泛应用于异常检测。自编码器首先将输入数据压缩到低维空间中,然后再将压缩后的数据重构到原始空间。经过自编码器重构之后的各个数据点与其对应的原始数据的差被称为重构误差。在自编码器异常检测过程中,首先使用训练集的数据训练自编码器,通过最小化损失函数可以驱使自编码器学习到数据集主要的内在信息。然后,再将测试集的数据用训练好的自编码器进行重构,根据每个数据点的重构误差可以判断其异常程度。自编码器对数据集的强影响点(influential points,通常指破坏某些维度间内在关系的点)有天然的识别能力,但是对高杠杆点(high leverage points,通常指远离均值的点)的检测结果具有很多不确定性。

6、对于多维表格数据进行异常检测时,传统统计学异常检测方案对于单个维度上异常的数据点具有较好的检测效果,然而对于单个维度正常但多个维度联合异常的数据点检测结果存在不确定性。knn和lof算法分别是基于距离和密度来判断数据点的异常程度,当数据集的维数较高时,这两个算法的时效性较低。此外,knn和lof算法对于强影响点的检测结果也存在不确定性。自编码器算法处理高维和非线性数据集时具有明显的优势,但现有自编码器算法通常使用mse、mae等损失函数,对于多维联合异常的高杠杆点的检测结果具有很多不确定性:

7、(1)对于每个输入数据点,如果其在某一个维度上的数值超出正常范围,则会被识别为异常点。然而,这种识别方法,更接近于每一维度独立检测而非多维联合检测异常。如图2所示,对于二元正态分布的数据集用常规自编码器算法进行异常检测,当隐藏层维数设置为2且异常比例设置为5%时,白圈(白圈是为了观察方便,人为自行添加的)以外的数据点为识别出的异常点。可以看出,所有被标记为异常的高杠杆点都是由于其某个单一维度上的数值超出正常范围,构成方形的外部边缘。实际上,联合分布的异常点应该在圆形、椭圆形外部一圈边缘,而不是如图2所示的方形外部。所以,现有自编码器方法缺乏检测多维联合异常的能力。

8、(2)如果数据集的每个主成分方向重构效果不同,则重构较差的主成分方向上会检测出更多高杠杆点,而重构较好的主成分方向上的高杠杆点甚至无法检测出。如图3所示,用常规自编码器算法对二元正态分布的数据集进行异常检测。其中两条互相垂直的线所在方向分别为数据集的两个主成分方向。图4和图5分别为数据集在两个主成分方向上的重构误差分布情况。可以看出,“parameter2”方向上的重构结果好于“parameter1”方向上的重构结果。当隐藏层维数设置为2且异常比例设为5%时,从图3中可以发现,所检测出的高杠杆点大多数位于“parameter1”方向上。所以,现有自编码器方法检测异常有维度上的偏好,会忽略其他维度的异常。

9、图6和图7为另外两种正态分布数据集。图6数据集的两个维度间相关系数较大,图7是本征维数为2的3维数据集,并且数据集的每个维度都服从正态分布。用常规自编码器异常检测方案对两个数据集进行异常检测,将隐藏层维数设置为2且异常比例设为5%,可以看出检测的结果同样存在上述两种问题。


技术实现思路

1、为此,本发明所要解决的技术问题在于克服现有技术中异常检测算法对于多维度数据检测效果不佳的问题。

2、为解决上述技术问题,本发明提供了一种数据多维异常的检测方法,包括:

3、步骤s1:获取原始数据,判断所述原始数据是否为表格数据,若不是表格数据,则将所述原始数据转换为表格数据;

4、步骤s2:将所述表格数据分为训练集和测试集并分别进行预处理;

5、步骤s3:构建自编码器,并对所述自编码器的损失函数进行改进,实现将自编码器对输入数据由完全重构转换为适度重构;

6、步骤s4:基于改进后的损失函数,通过预处理后的训练集对自编码器进行训练,得到训练好的自编码器;

7、步骤s5:将预处理后的测试集输入训练好的自编码器,实现对多维表格数据中的异常点进行检测。

8、在本发明的一个实施例中,所述步骤s2中的预处理为归一化处理,公式为:

9、

10、其中,xij表示归一化处理后表格中第j个维度上的第i个数据,表示原始表格中第j个维度上的第i个数据,m为数据的总维数,n为数据点的总个数。

11、在本发明的一个实施例中,所述步骤s3中的自编码器为全连接自编码器,所述全连接自编码器包括编码器和解码器,所述编码器包括依次连接的输入层、编码层和隐藏层,所述解码器包括依次连接的隐藏层、解码层和输出层,全连接自编码器中每个层包括若干神经元,相邻层之间的神经元互相连接,输入层和输出层之间的神经元数量相等;其中,所述编码器用于对输入数据进行压缩,学习数据集内部的信息特征;所述解码器用于将压缩后的数据解码到输入数据的原始维度。

12、在本发明的一个实施例中,所述编码层的数量为若干层,所述解码层的数量为若干层,且编码层的数量和解码层的数量相等,所述编码层与解码层使用的激活函数为relu函数。

13、在本发明的一个实施例中,所述步骤s3中对所述自编码器的损失函数进行改进,公式为:

14、

15、其中,ω表示自编码器每一层之间的连接权重,b表示偏置值,xi=(xi1,xi2,...,xim)t表示第i个输入数据,其对应的输出数据为λi表示输入数据集的特征值从大到小排序后的第i个,为其对应的重构结果;l表示数据集的本征维数;损失函数中的为重构误差项mse,损失函数中的为重构抑制项;θ1,θ2>0为重构误差项和重构抑制项在损失函数中的权重,β>0用于限制自编码器对于数据集的重构程度。

16、在本发明的一个实施例中,所述步骤s4中通过预处理后的训练集对自编码器进行训练,方法包括:

17、自编码器以最小化损失函数的重构误差项mse为目标来驱使自编码器学习到数据内部的主要信息并将输入数据进行重构,并通过所述重构抑制项限制自编码器对于输入数据的完全重构;在损失函数的重构误差项mse以及重构抑制项的联合作用下,自编码器通过反复迭代训练更新网络中的连接权重ω和偏置值b,最终通过适度重构输入数据集以确保数据集中的高杠杆点和强影响点的重构误差都大于预设值,其中,高杠杆点为远离均值的点,强影响点为破坏维度间内在关系的点。

18、在本发明的一个实施例中,所述步骤s1中判断所述原始数据是否为表格数据,若不是表格数据,则将所述原始数据转换为表格数据,方法包括:

19、若所述原始数据为表格数据,则对其进行数据清洗,并筛选所需要的数据整理成表格数据;

20、若所述原始数据为时间序列数据,则对所述时间序列数据进行特征提取,获取数据的时域特征或频域特征,具体为:通过数据特征值分析数据的时域特征,其中,所述数据特征值包括周期性数据的相位、振幅以及非周期性数据的均值、方差;或通过数据处理方法提取数据的频域特征,其中,所述数据处理方法包括傅里叶变换、小波变换和拉普拉斯变换;最后将每个提取到的时域或频域特征作为表格数据的每个属性并整理成表格数据。

21、为解决上述技术问题,本发明提供了一种数据多维异常的检测系统,包括:

22、获取与处理模块:用于获取原始数据,判断所述原始数据是否为表格数据,若不是表格数据,则将所述原始数据转换为表格数据;

23、预处理模块:用于将所述表格数据分为训练集和测试集并分别进行预处理;

24、改进模块:用于构建自编码器,并对所述自编码器的损失函数进行改进,实现将自编码器对输入数据由完全重构转换为适度重构;

25、训练模块:用于基于改进后的损失函数,通过预处理后的训练集对自编码器进行训练,得到训练好的自编码器;

26、检测模块:用于将预处理后的测试集输入训练好的自编码器,实现对多维表格数据中的异常点进行检测。

27、为解决上述技术问题,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述数据多维异常的检测方法的步骤。

28、为解决上述技术问题,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述数据多维异常的检测方法的步骤。

29、本发明的上述技术方案相比现有技术具有以下优点:

30、本发明通过对自编码器的损失函数进行改进,具体在损失函数中添加了重构抑制项,实现将自编码器对输入数据由完全重构转换为适度重构,使得改进后的自编码器不仅对强影响点检测效果好,还对高杠杆点的检测效果好;

31、本发明的自编码器具有检测多维数据异常的能力。

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