APP下载

基于自编码器的大数据集局部异常挖掘仿真

2023-07-29陈滢生周宪章

计算机仿真 2023年6期
关键词:编码器准确率向量

陈滢生,周宪章

(1. 重庆人文科技学院计算机工程学院,重庆 401524;2. 西南大学计算机与信息科学学院,重庆 400715;3. 重庆市教育科学研究院,重庆 400015)

1 引言

随着科技技术的发展与网络的普及化,大数据技术逐渐成为热门领域,被广泛应用于互联网检测[1]、电子商务、经济学等领域。为了创造安全高效的运行环境,人们对大规模数据集中局部异常挖掘技术提出了更高的要求,不仅要求挖掘技术的效率高,还要求其具备较高的准确性,其关键就是对异常挖掘技术作出升级和改进[2]。通过上述分析可知大规模数据集中局部异常挖掘方法成为目前亟需解决的问题和人们研究的热点。

段晓萌[3]等人首先采集大规模数据集中的局部信息,然后采用机器学习算法提取局部信息的特征值,并推算出异常数据的判断阈值,最后采用关联规则算法将特征值与判断阈值相融合,得到局部异常的数据范围,完成大规模数据集中局部异常挖掘。该方法没有剔除大规模数据集中的噪声,导致方法的挖掘准确率较低。王晗[4]等人提出了一种基于小波-支持向量机的工业取水异常数据挖掘方法,将工业取水数据作为研究样本,采用小波变换和Fourier函数相结合的方式对异常数据进行识别,然后通过粒子群算法优化最小二乘支持向量机模型,通过优化后的模型实现异常数据挖掘。该方法没有提取大规模数据中的特征,导致方法的挖掘时间过长。严莉[5]等人根据大规模数据的分布情况构建出异构信息网络模型,然后在模型中引入矩阵分解算法,得到数据之间的相似性,最后采用注意力网络算法处理数据之间的相似性,得到数据之间的关联关系,完成数据检测,挖掘出数据中的异常部分。该方法没有剔除数据中的噪声,导致方法的异常挖掘准确率低、精度低。

为了解决上述方法中存在的问题,提出基于堆栈模型的大规模数据集中局部异常挖掘方法。

2 大规模数据预处理

2.1 数据降噪

首先采用离散小波变换剔除数据中的噪声数据[6],具体步骤如下:

大规模数据集中存在大量的离散型数据,首先通过引入的平方可积函数对大规模数据作傅里叶变换[7],得到具有线性组合的小波函数,公式如下所示

(1)

式中,α表示小波函数;w表示大规模数据中的任意数据点;c表示傅里叶变换参数,K表示平方可积函数。

离散小波变换降噪法利用收缩因子与移动因子对小波函数实行收缩[8]和移动处理,进而得到关于大规模数据的连续小波基函数,公式如下所示

(2)

式中,m、n分别表示收缩因子与移动因子。

通过收缩因子与移动因子的离散化计算,有效地降低了因小波变换引起的数据冗余度。然后将离散后的收缩因子与移动因子重新代入到式(2)中,得到更新后的小波基函数,公式如下所示

(3)

式中,m′、n′分别表示离散化计算后的收缩因子与移动因子。

利用更新后的小波基函数重构离散小波变换函数E(m′,n′),完成大规模数据的降噪处理,公式如下所示:

(4)

2.2 特征提取

将降噪后的大规模数据输入到堆栈模型中的自编码器中,完成数据的特征提取[9],具体步骤如下:

1)自编码器主要由编码器(输入层-隐藏层)与解码器(隐藏层-输出层)构成,结构如图1所示。

图1 自编码器结构

利用如下公式表示编码器与解码器的训练过程。

(5)

式中,b表示神经元;p、q分别表示堆栈模型中的神经元;V、V′分别表示训练前、后的数据中心值;a、a′分别表示输入向量与输出向量;z、z′分别表示编码、编码阶段的偏置参数;o表示向量的个数。

2)采用Sigmoid激活函数使大规模数据的输入向量可以完整的映射[10]在[0,1]区间中,保证输入向量之间的平行性。激活函数S公式如下所示

(6)

式中,d表示数据之间的映射距离。

3)编码器将大规模数据集转换成不同维度的输入向量,再经过解码器重新组成输出向量,计算出两者之间的重构误差[11],公式如下所示

(7)

式中,e表示重构误差。

4)堆栈模型中包含若干个自编码器,每个自编码器隐藏层的输出向量作为下一层的输入向量,通过自编码器之间的重复计算完成数据特征的渐进提取,当重构误差达到最小化时,此时的输出向量ao即为提取的大规模数据特征。公式如下所示

emin=p(s)[p(r)(…p(1)(ao))]

(8)

式中,s表示堆栈模型的最高层激活函数;r表示中层编码阶段。

3 局部异常挖掘

采用独立成分分析算法,对提取的大规模数据特征作投影分析,进而挖掘出数据中的异常值。

提取的大规模数据特征中,包含无限个数据变量,这些变量是由个体原信号与混合矩阵融合得到的。独立成分分析算法通过对个体原信号与混合矩阵之间的线性变化使数据彼此分离[12],公式如下所示

(9)

式中,Y表示个体原信号;t表示任意时刻;U表示分离矩阵;C表示混合矩阵;F表示数学期望;X表示观测信号;R表示转置处理。

个体原信号与分离矩阵作为不确定参数条件,无法同时被确定,所以需要通过先验知识[13]优化分离矩阵,保证矩阵中的分离信号之间保持最大的独立性。在独立成分分析过程中,异常数据可能出现在原信号或者待观察信号中,个体原信号的模型可用如下公式表示

(10)

式中,G表示数据中的随机异常值。

为了挖掘出大规模数据集中的异常数据,引入具有投影分析性质的影响函数,其定义公式如下所示

(11)

式中,I表示影响函数;v表示随机矢量;β表示多项式;D表示可逆矩阵;χ表示影响函数的一般参数;ho表示提取的大规模数据特征向量。

在影响函数中引入协方差矩阵,则由特征向量构成的矩阵中包含协方差矩阵。为了保证消除特征向量矩阵中数据的不必要关联性,采用主成分分析法得到精度较高的感知矩阵[14],公式如下所示

(12)

式中,W表示感知矩阵;A表示由特征向量构成的矩阵。

引入拉格朗日乘子[15]约束感知矩阵,并选择出合适的多项式函数,公式如下所示

(13)

式中,l表示拉格朗日乘子;δ表示约束项。

根据式(13)得到的多项式,确定出大规模数据集中异常数据的判断阈值,将大于阈值的数据视为异常数据,完成大规模数据集中局部异常挖掘。判断阈值ε公式如下所示

(14)

4 实验与分析

为了验证基于堆栈模型的大规模数据集中局部异常挖掘方法的整体有效性,对其做出如下测试。实验所用数据来自UCI KDD数据集,该数据集是数据挖掘和可视化的研究项目,专注于大型数据收集下载中的实体事件关系。在该数据集中抽取部分数据,相乘15个数据集。将挖掘时间、挖掘准确率和召回率作为评价指标,采用基于堆栈模型的大规模数据集中局部异常挖掘方法、文献[3]方法、文献[4]方法和文献[5]方法做出对比测试。

1)挖掘时间

采用所提方法、文献[3]方法和文献[4]方法检测15组大规模数据集,对比不同方法消耗的局部异常数据挖掘时间。挖掘时间越长,说明方法的效率越低,相反,挖掘时间越短,说明方法的效率越高。不同方法的测试结果用表1表示。

表1 不同方法的数据异常挖掘时间

分析表1中的数据可知,针对大规模数据集中局部异常挖掘,所提方法的挖掘时间在18s附近波动,文献[3]方法和文献[4]方法的挖掘时间分别在38s和49s附近波动。通过对比可以发现,针对不同的数据集,所提方法的挖掘时间均低于文献[3]方法和文献[4]方法的挖掘时间,表明文献[3]方法和文献[4]方法的挖掘效率远低于所提方法的挖掘效率。

2)挖掘准确率

设P表示数据异常挖掘准确率,其计算公式如下

(15)

式中,TP表示挖掘结果正常、实际为正常的数据数量;FP表示实际为异常但挖掘结果显示正常的数据数量。

利用所提方法、文献[3]方法和文献[5]方法检测数据集中的异常数据,将不同方法的异常数据挖掘准确率结果绘制成图,方便分析,结果如图2所示。

图2 不同方法的局部异常挖掘准确率

由图2可知,针对大规模数据集中局部异常挖掘,所提方法的异常挖掘准确率均高于文献[3]方法和文献[5]方法的异常挖掘准确率。并且随着实验次数的增加,所提方法的异常挖掘准确率没有发生明显波动,而文献[3]方法和文献[5]方法的异常挖掘准确率上下波动较大。说明所提方法的异常挖掘准确率稳定性强于文献[3]方法和文献[5]方法异常挖掘准确率的稳定性。由于所提方法采用离散小波变换算法剔除了大规模数据集中的噪声数据,预处理后的数据集消除了冗余部分,在异常挖掘过程中降低了噪声数据的影响,在一定程度上提高了异常挖掘的准确率。

3)召回率

召回率是评价异常数据挖掘精度的重要指标,代表的是在大规模数据集中局部异常挖掘结果中,挖掘出的异常数据量占整体异常数据量的比例,召回率越高,表明方法的挖掘精度越高;召回率越低,表明方法的挖掘精度越低。其计算公式如下所示

(16)

式中,Q表示召回率;FN表示实际为正常但挖掘结果为异常的数据数量。

将所提方法、文献[4]方法和文献[5]方法的挖掘召回率测试结果绘制成图,方便分析,结果如图3所示。

图3 不同方法的局部异常挖掘召回率

分析图3可知,所提方法的挖掘召回率高于文献[4]方法和文献[5]方法的挖掘召回率,说明针对大规模数据集中局部异常挖掘,所提方法的挖掘精度高于文献[4]方法和文献[5]方法的挖掘精度,其召回率最高值达到了97%,进一步验证了该方法的挖掘精度。

5 结束语

目前大规模数据集中局部异常挖掘方法存在挖掘时间长、挖掘准确率低、挖掘精度低的问题,因此提出基于堆栈模型的大规模数据集中局部异常挖掘方法。该方法的主要创新点如下:

1)利用离散小波变换算法剔除大规模数据中的噪声,避免噪声在异常挖掘过程中产生干扰,进而解决了传统方法中存在的问题。

2)采用堆栈模型中的自编码器提取数据的特征,最后采用独立成分分析算法得到数据中的异常数据,完成大规模数据集中局部异常挖掘,提高了挖掘准确率和挖掘精度的同时,在一定程度上也降低了方法的挖掘时间,为大规模数据的异常挖掘技术奠定了基础。

猜你喜欢

编码器准确率向量
向量的分解
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
聚焦“向量与三角”创新题
基于FPGA的同步机轴角编码器
高速公路车牌识别标识站准确率验证法
基于PRBS检测的8B/IOB编码器设计
向量垂直在解析几何中的应用
JESD204B接口协议中的8B10B编码器设计