多元异常数据的三种典型检测方法对比*

2021-12-22 06:28集美大学诚毅学院江晓露
数字技术与应用 2021年11期
关键词:马氏协方差编码器

集美大学诚毅学院 江晓露

异常检测在医疗、金融等领域有着广泛的应用,其中尤以多元无监督数据的异常检测比一元数据更普遍存在,且更为复杂。本文从三种典型检测方法入手,针对一组多元无监督数据集进行了异常检测的实验。三种方法分别是基于统计的马氏距离、基于划分思想的孤立森林、以及基于深度学习的自编码器,它们代表了异常检测方法的三个大的领域。文章在同一个数据集使用这三种方法,探索和讨论了三种方法实验过程和实验结果的异同。

0 引言

可疑故障的检测,又称为异常检测。异常检测在医疗、金融、网络安全、银行、网络服务、交通运输和制造业等领域有着非常广泛的应用。数据的异常值[1]在统计上指的是与给定样本的其余部分不一致的一小部分观测值,一般来说异常值的界定与对总体数据选择何种模型有关。异常检测中多元数据的情况更为复杂一些,多元数据中的异常值往往在其分量中并非异常,而在对数据结构建模后,才能发现它们的存在。现实中的异常检测通常是多元的,且很多时候是没有标签的,对于无监督的多元数据,异常检测方法常见有以下几种典型:

(1)基于统计距离。多元统计学异常检测方法常见的是使用马氏距离(Mahalanobis Distance)。它通过样本协方差矩阵标准化数据,测量了标准化后的多变量观测值到数据集样本平均值的距离。利用正态分布数据的马氏距离服从卡方分布这一性质,根据需要的异常比例我们可以找到马氏距离的阈值,从而找到可疑的多元观测值。2005年王斌会[2]和陈一非提出基于文件马氏距离的多元异常检测,2018年张红飞[3]等提出了基于改进马氏距离的空压机健康状态评估。

(2)基于划分思想。除了传统的统计方法外,在高维数据集中实现异常检测的一种有效方法是使用孤立森林(Isolation Forest)。孤立森林[4]通过递归地随机分割数据集,一直往复,直到所有的样本点都是孤立的。在这种随机分割的策略下,异常点通常具有较短的路径。2020年,陈佳等[5]提出基于边缘计算框架的孤立森林网络异常检测方法进行DoS的异常检测,李倩等[6]采用基于模糊孤立森林算法的多维数据异常检测方法有效解决了样本数据对于每一属性的异常程度不同的问题。

(3)基于深度学习。深度学习是机器学习领域中一个新的研究方向,在搜索技术、数据挖掘、机器翻译等相关领域取得了很多成果。自编码器作为常见的深度学习去噪工具,也常被用于进行多元数据的异常识别。自编码器先将高维数据压缩降维,再将低维数据扩展到原来的维度,这样就重新构造了原始输入。在这个过程中,由于少部分异常数据不能很好地学习到数据的模型,重新构造后与原始数据有较大的差异。通过对比重构数据与原始数据的差异的大小,可以识别出异常数据。2019年马波等[7]探索了变分自编码器在机械故障预警中的应用。2020年张常华等[8]在自编码器异常检测中结合了主成分分析方法。

本文将使用以上三种方法探索异常检测,尝试找到多元数据异常检测的三种代表性方法的各自优劣之处,也作为其他领域多元数据异常检测的参考。

1 数据介绍

本次实验的多元数据是某商业银行分行在某年1-4月的ATM机交易统计数据,观测值共131013个,无标签。为直观起见,我们只选择两个特征,分别是每分钟总共发生的交易总笔数、每分钟交易成功笔数和业务量的比率,简称交易量和成功率。实验将在所有的观测值上建立模型检测异常值,但为了清晰直观的显示效果,三种检测的结果最后会在图上的125个随机抽取的样本上标注出正常和异常标签。

2 利用马氏距离进行异常检测

马氏距离,又称统计距离,样本观测值x到样本中心μ的马氏距离被定义为:

其中μ和Σ是总体数据的均值和协方差。在实践中,μ和Σ常用估计值替代。标准的协方差估计方法是协方差最大似然估计,但这种估计方法对数据集中是否存在异常值非常敏感。最小协方差行列式估计器(Minimum Covariance Determinant),简称MCD,是PJ Rousseeuw在1984年引入的数据集协方差的稳健估计器[9]。MCD找到一个样本量为h的子集IMCD使得在所有大小为h的子集中,该子集的协方差矩阵的行列式是最小的,我们利用这个子集计算均值和协方差的估计量:

其中MCDk是一个比例常数,保证了协方差估计量的一致性和无偏性。

根据MCD估计出的均值和协方差可以计算每个观测值的马氏距离。马氏距离越大观测值异常的概率越大。正态总体的马氏距离服从自由度为p的卡方分布,其中p为样本观测值的维度。实验中p为2。取显著性水平 0.1α=,利用卡方分布的分位点获得马氏距离的阈值。鉴于成功率偏高的数据不会是异常值这一基本事实,将实验判别出的成功率偏高的异常值给予正常的标签,后面两个异常检验方法也是一样,不再赘述。在此基础上,共找到13152个异常点。在抽样的125个样本中,识别为异常值的样本点有13个。

3 利用孤立森林进行异常检测

孤立森林(Isolation Forest)由周志华教授等人于2008年在第八届IEEE数据挖掘国际会议上提出。它是一种无监督的方法,通过从训练集中随机选取一个特征,在该特征的最大值最小值之间随机选取一个分界点,将训练集进行划分;不断重复上述过程,直到只剩一个样本或相同样本或达到树的深度限制。图1展示了正常点xi和异常点xo被孤立的过程。正常的样本点需要分割多次才会被孤立,异常点则需要更少的次数。

图1 孤立森林的模型演示Fig.1 Model demonstration of isolated forest

通过被孤立的路径长度来表示一个样本点被孤立的程度,路径长度h(x)的计算公式为

其中e表示样本观测值x从字数的根节点到叶节点过程中经过的边的数目,C(T.size)表示在一棵用T.size条样本数据构建的二叉树的平均路径长度。样本的“孤立”程度可以通过分值

来判断,其中 ()()Ehx表示样本点x在孤立森林中所有孤立树的路径长度的平均值,表示单棵孤立树的训练样本数。

Sklearn中将异常分数添加负号并减去适当偏移量,使异常分数越小异常程度越大,且默认零为正常和异常的分界点。本次实验设置0.1为孤立森林的异常比例进行孤立森林建模,计算出的样本的异常分数图如图2。在所有数据中被检测为异常的有8291个。在抽样的125个样本中,识别为异常值的样本点有6个。

图2 数据点平均路径长度频次图Fig.2 Frequency chart of average path length of data points

4 利用自编码器进行异常检测

1986年Rumelhart提出自编码器的概念[10],并将其用于高维复杂数据处理,促进了神经网络的发展。自编码器是神经网络的一种,经过训练后能尝试将输入复制到输出。在输入到输出的过程中,数据会有所偏移。模型学习到了大部分好的特征,使得异常点相比正常点偏离原数据更远。

最简单的自编码器由一个隐藏层产生编码,再由输出层产生解码。自编码器在大于5维的数据上表现更好,本次实验的数据只用到2维,为使自编码器能够取得较好的效果,实验先将2维扩展成6维,再对6维的数据进行编码和解码,最后将6维数据重新降维成2维,输出和输入都设定为ATM数据,图3显示了数据的转换过程。训练的过程中随机选取了5%的数据作为验证集,自编码器的训练结果如图4所示有稳定的收敛效果。计算出输入和输出的差距,设定输入输出差的阈值为0.11,得到检测出的异常值。共检测出13655个异常点,在抽取的125个样本中,异常点有11个。

图3 自编码器的神经网络结构Fig.3 Neural network structure of self encoder

图4 自编码器的收敛过程Fig.4 Convergence process of self encoder

5 实验结果

在随机抽取的125个样本中三种方法检测出的异常点如图5,孤立森林和马氏距离选择的异常点比较相似,大部分选择的是成功率偏低的数据。自编码器与前二者比较,综合了两个维度,更多分布在了数据集的外围。运行时间来看,马氏距离的检测费时最少,孤立森林其次,自编码器费时最多。在训练完的模型上,如果想对新的样本进行判别,三种方法都可以直接判断,无需重新建模。

图5 利用三种方法的异常检测Fig.5 Anomaly detection using three methods

马氏距离的判别是基于统计分布的,在大部分的统计推断中,我们常把数据的分布假设为正态分布,这样的假设与许多实际应用中的数据不符,比如本次实验采用的ATM机数据,当数据与正态分布偏离较多的时候,许多的正常点不会集中在数据中心附近,这样的检测容易导致误判率的上升。

孤立森林是利用划分进行判别的,选取随机的分界点的思路也使得适用的数据可以不限数据分布。孤立森林的方法的算法并不复杂,具有线性的时间复杂度,在处理大数据时速度快,且精准度较高,在工业界应用范围比较广。

自编码器在本次实验中更贴合数据的分布。4层的神经网络虽未消耗很多的时间,但在精度上并未体现出绝对的优势。深度学习的学习效果很大程度上依赖于数据量和模型的复杂度,数据量指的是样本点的数量及维度。在数据量未达到要求时使用深度学习,将无法体现深度学习的优势。

6 结语

综合来说,马氏距离不适合普通的多元数据单独使用,更适合用于对其他方法的检测结果进行参照,如本次实验中孤立森林和自编码器的检测结果在马氏距离的度量下更易看出检出数据是否合理。自编码器在低维数据上使用效果不佳,可以使用先扩维再降维的方式对维度不高的数据进行转换,但效果不如直接使用高维数据好。在中小型数据中,孤立森林将是更优的选择,可以快速准确地达到检测的要求。

猜你喜欢
马氏协方差编码器
一类时间变换的强马氏过程
有环的可逆马氏链的统计确认
关于树指标非齐次马氏链的广义熵遍历定理
基于FPGA的同步机轴角编码器
一致可数可加马氏链不变测度的存在性
多元线性模型中回归系数矩阵的可估函数和协方差阵的同时Bayes估计及优良性
基于PRBS检测的8B/IOB编码器设计
二维随机变量边缘分布函数的教学探索
不确定系统改进的鲁棒协方差交叉融合稳态Kalman预报器
JESD204B接口协议中的8B10B编码器设计