基于网格过滤的局部线性嵌入法在商业大数据高维离群点检测中的应用研究
作者: 叶晟
关键词:商业大数据;网格过滤;高维数据;离群点;局部线性嵌入法
中图分类号:TP391 文献标识码:A
文章编号:1009-3044(2024)26-0067-04 开放科学(资源服务)标识码(OSID) :
0 引言
在目前的信息新时代,大数据是生产要素,也是国家的基础性战略资源。商业大数据以海量的数据集合为特征,它在商业营销、决策等方面有着广泛的用途。根据相关数据及其预测,从2015年至2025年,中国企业级的数据量将得到大幅度的增长。伴随着信息技术的发展,企业数量的增加以及应用场景的不断丰富,商业大数据将会有一个大幅度的增长。
商业大数据应用主要是指相关数据服务组织将采集到的原始数据经过专业的数据分析工具的清洗、修剪、整理及分类后变为结构化的信息。然后专业技术人员又将这些结构化的信息经过数据挖掘转变为相关的专业数据集,形成专业数据集后,专业技术人员将这些数据集根据不同的应用进行数学建模。相关的数学模型建立了以后,也就意味着某种具体的商业应用形成了相关的数据资产。专业技术人员通过挖掘数据资产背后所隐藏的价值,赋能给各行各业,为信用评级、风险管理、营销决策等提供附加价值。
商业大数据的应用根据客户类型及使用形式,可以分为企业端基础数据服务、企业端标准数据服务、企业端场景化数据服务等形式。
目前,商业大数据的应用主要是集中在电信、金融等领域。但是随着技术的发展及商业大数据应用的普及,政务、工业、公检法等领域也逐渐越来越适应利用大数据进行相关业务的管理及决策。另外,在一些传统行业,比如电力、铁路、石化等,这些行业中的一些龙头企业也不断地利用其自身雄厚的经济实力,不断完善自身的大数据的建设、管理和应用的能力。商业大数据的应用越来越向实体行业渗透已经是一个不争的事实。
1 商业大数据中高维数据离群点检测的必要性
随着大数据技术在商业应用上的成熟,需要对大量商业应用的相关数据进行卓有成效的采集。因为高维数据往往更能准确地反映商业应用中不同数据单元的相互联系,所以对高维数据的数据挖掘则显得尤其具有重要意义。而在对高维数据的挖掘中,离群点的检测对于数据异常的判断具有重要的参考作用[1-2]。离群点检测的主要内容就是通过数据挖掘发现与正常数据维度偏差比较大的数据点,从而进行相应的降噪处理从而达到将采集的数据恢复正常的目的。离群点产生的原因有很多,譬如随着商业应用的深入, 商业应用中所采集用户的大数据的维度变得越来越高阶,相关的数据结构也变得越来越复杂。所以若要对这些由相关应用所产生的大数据进行有效的利用,那么对数据中离群点的检测则变得至关重要了起来。
国内现有很多专家对高位数据离群点的检测进行了很多卓有成效的研究。杨晓玲[3]等利用对象区域密度和临近区域间的相互关系,通过计算得到两者间的相对距离,然后对应最小生成树结构,将离群簇和离群点进行一个分割,从而实现对离群点的检测。但这种方法的缺点是对机器内存的占用跟数据维度的增加成正比,所以应用的实践性不强。邱华[4]等则预先对已产生的海量数据进行处理,然后对这些处理过的数据利用极限学习机进行训练,经过训练之后会得到一个对于局部离群因子阈值的预测,之后再利用WLOF 阈值对数据进行聚类处理,从而检测出离群点。但这种方法效率比较低,同样应用的实践性不强。
针对以上问题,提出面向高维数据检测的局部线性嵌入法。通过划分网格对高维数据进行预处理。然后将预处理过的数据中的高维离群点,利用角度方差进行一个自动化的检测。经过实验测试表明,在实践中这种方法不仅可以大幅提高内存的使用率,还可以极大地减少检测的时间,并且还能保证检测结果的精度。
2 局部线性嵌入法对高维数据的检测
2.1 划分网格
为了实现对高维数据离群点的检测,首先要进行网格划分的处理,而处理的依据则来自这些高维数据的空间维度。对应的维数空间可以表示为公式(1) :
2.2 处理高维数据集
在检测离群点的过程中,对于高维数据集的处理是关键的步骤,为了准确地描述它的数据结构,我们采用局部线性嵌入法对它来进行处理,通过分析数据点的不同组合的特性后,从而得出高维数据的数据结构。处理高维数据集的流程图如图1所示:
(1) 输入高维数据集,然后利用相关算法获取最近邻点。
(2) 通过重构误差获取高维数据点及其邻近的数据点的权值。
(3) 通过相关公式获得邻近的数据点经过变换后的重构权值,同时将高维数据集进行降维处理。
(4) 将降维后的数据集重新通过公式进行计算,得到一系列具有相关特性的数据点。
(5) 将这一系列的数据点根据权值特性划分成符合要求的数据聚类,输出相关结果,完成高维数据集的处理。
2.3 高维数据离群点的采集
在高维数据集离群点的采集过程中,真正能对商业应用提供重要意义的数据点实际只占全部数据集合的一小部分,大部分数据点的信息对于数据挖掘的过程起到的只是干扰作用,并且这部分信息的存在还会影响到处理结果的准确性。
前后文信息是数据离群点的重要组成部分。它不仅可以体现离群数据和其他数据的一致性关系,除此以外,它还可以提供更具参考意义的信息,比如离群数据的具体含义和不同之处。
在这里,我们可以利用MapReducc模型来进行高维数据离群点的采集。MapReducc模型是一个广泛应用于不同领域的大数据模型。MapReducc模型的数据逻辑在于可以将一个大的编程任务划分成不同的,然后进行分布式处理,这样不仅执行效率高,而且对于硬件资源的占用也会比其他数据模型低得多。MapReducc模型在处理数据的过程中主要分成以下几个步骤,分别为:
(1) 切割数据:根据不同应用的不同需求,将高维数据进行切割,得到对应的待处理的输入数据。
(2) 负载均衡:通过集群聚类计算不同节点的处理效率,然后再根据计算结果从宏观上来分配不同节点的计算资源,使之得到最佳的调度处理。
(3) 处理错误信息:对不同节点计算后的结果进行核对处理和统计,统计它们的错误情况,并将全部节点的错误信息进行收集,并根据具体情况作出是否要发出警告信息的判断。
(4) 通信处理:对于高维数据集当中需要通信的全部节点进行高效的管理,确保每个数据节点间都能正常通信,而且在通信过程中保证数据的有效性、可靠性和安全性。
通过如上所述分析,可以得出高维数据离群点采集的详细流程如下:
(1) 输入经过处理的高维数据集。
(2) 经过分布式运算处理,得出不同子空间的离散程度。
(3) 通过分布式计算得出不同数据子集的维度信息,从而得出不同数据对象的离散程度。
(4) 根据不同的离散程度形成不同的稀疏矩阵。
(5) 根据不同的离散程度通过运算得出具有特异性的因子,然后将这些因子按照从小到大的顺序排列,然后从这些顺序排列中得出我们想要的关于高位数据离群点的采集结果。
2.4 检测高维数据离群点
在高维数据集中,正常数据和离群数据的比值如果比较悬殊,而在维度比较低的空间中又存在分布比较密集的区域,则我们对于差异因子的取值利用密度分布来进行描述则显得比较适宜。
对于网格化后的数据集,我们选取其中体积最大的网格来作为我们的标准网格。其中我们可以利用数据点和邻近对象之间的矢量距离来作为测量半径,根据半径的大小来作为划分网格的依据,以效避免过度稀疏情况的产生。
由于分布稀疏是高维数据集的分布特性,所以划分网格时,有可能会产生不包含任何数据的空白网格单元。因此在对网格划分的前期,在进行类型判断时,应先采用方法将这些空白的网格单元予以过滤,这样既可以节省空间资源,对时间复杂度又能进行有效降低。
另外,对于算法复杂度影响比较大的因素还有网格的存储结构。因此,针对高维大数据的稀疏特点,我们可以利用哈希表来完成网格单元的存储工作。利用哈希表的既有优点,我们可以在大大节省系统存储资源的同时,还可以有提高查询和遍历的效率。网格单元信息利用哈希表来进行存储,利用网格及其相邻的网格关系,对不同子空间进行划分映射处理后,可以形成一张数据表。
如上所述,利用角度方差来对高位数据离群点进行数据检测,步骤如图2所示。
(1) 通过密度分布矩阵来对相关属性进行相应的处理,构建形成不同的数据子空间,从而完成对高维数据集的预处理。
(2) 确定标准网络,然后确定数据子空间内进行测量的矢量维度半径。对于前期已经完成处理的网格,需要先删除其中已经确定的空白网格,然后将剩余部分利用哈希表进行存储,并进行遍历计算。另外,已经确定好的标准网络即作为中心网络,以此作为依托对邻近网络进行数据处理。同时,利用稀疏矩阵选择网格,并经过一定的数据处理后得到正常运行的网络。
(3) 经过网格划分后形成候选网格,然后利用角度方差因子进行分布式计算。其中,将网格密度设为重要指标,分别对比不同子空间的角度方差因子和离群度,经过降序排列后,输出排名高的数据对象将其作为离群点,从而完成对高维数据离群点的检测。
3 仿真实验
为了验证所提面向高维数据离群点检测的局部线性嵌入法的有效性,我们需要进行仿真实验以进行验证。
(1) 测试环境:实验所使用的计算机操作系统为Windows 11,配置Intel i5处理器和128GB运行内存,同时使用Matlab软件作为验证平台。
(2) 测试结果:实验分别对本文所提方法以及文献[3]方法展开高维数据离群点的相关检测,根据测试需要,先假定好空间维数,然后根据不同的数据密度阈值分别进行数据训练,然后得到不同情况下的时间执行效率。
从得出的实验结果进行分析可知,在密度阈值发生变化的情况下,两种方法的执行效率产生了明显的差异。本文所提方法的执行效率会随着数据密度阈值的增加而提升,而文献 [3]方法对于数据的执行效率则基本保持不变。由此可以看出,在限定时间的情况下,本文所提方法的执行效率会比较高。
我们进一步通过实验分析在不同数据集下,这两种方法在执行时间上的变化。由实验结果可知,随着测试数据集变得越来越复杂,这两种方法的执行时间也会变得越来越长。但是对比另外一种方法,本文所提方法明显执行时间更短,所以这也可以证明本文所提方法的执行效率更高。
其次,为了检测对于高维数据离群点的检测准确性,我们将检测精度作为检测指标,通过不同数据集进行相关的数据训练,实验结果的准确性越高,说明所用方法的检测精度越高。
从实验数据可知,本文所提方法在不同的数据集下的输出精度一直都保持稳定,且精度均值也比较高。而文献[3]的方法在同样的条件下进行数据训练,输出结果精度明显偏低,同时该方法的输出结果明显还会受到数据集复杂度的影响。因此,本文所提方法对于检测高维数据离群点的准确性而言具有明显的优势。
最后,我们再来分析一下在进行不同数据集训练时,不同检测方法对于系统内存资源的占用情况。由实验得出的实验数据结果可知,随着所采用的实验数据集的维数增高,不同检测方法对于内存资源的占用也会随之升高。在进行对比的两种检测方法中,本文所提方法对于内存的占用一直比较低,而文献[3]的方法对于内存的占用情况则明显偏高。据此,本文所提方法在进行高维数据离群点的检测时能有效降低内存资源的占用情况。
4 结论
针对商业大数据的数据挖掘中高维数据离群点的检测,提出了基于网格过滤的局部线性嵌入方法。在进行网格维度划分时,我们利用数据子空间的概念,先利用相关算法将子空间进行划分,然后使用局部线性嵌入法进行检测。局部线性嵌入法在保证商业数据精度的同时,还能够大幅地降低系统资源及数据检测的执行时间,这一点已经在实践中得到了证明。