APP下载

基于低方差滤波算法的改进降维算法

2021-08-23乔铭宇陈旻杰张琳那

现代计算机 2021年20期
关键词:降维方差滤波

乔铭宇,陈旻杰,张琳那

(北方工业大学,北京100144)

0 引言

如今,机器学习被广泛应用到各个领域,如人工智能、专家系统、数据挖掘、图像处理[1]等。而随着互联网的兴起和大数据技术的发展深度学习的越来越受欢迎。数据仓库[2]和大数据技术为深度学习提供了可观的数据集。而数据预处理则成为深度学习的不可或缺的重要流程。随着数据记录和属性规模的急剧增长,大数据处理平台和并行数据分析算法也随之出现。于此同时,这也推动了数据降维处理的应用。对于高维度数据,并不便于输入神经网络直接进行处理,所以需要提前对高位数据进行降维操作,由此,降维工作显得格外重要。而对于大规模数据,降维速度的快慢则直接影响后续工作的进程。而越来越多的降维技术被陆续提出并使用。如主成分分析(PCA)[3]、低方差滤波(Low Variance Filter)、高相关滤波(High Correlation Filter)、随机森林/组合树(Random Forests)、反向特征消除(Backward Feature Elimination)、前向特征构造(Forward Feature Construction)、局部线性潜入(LLE)[4]等降维算法。这些算法各有千秋,而本文为了进一步提高降维的运算速度,提出了一种改进的降维算法。

1 降维

在现实世界中,数据多是冗余的,即存在数据相关。高维空间可以用低维空间的联合分布形式表示。例如,MNIST手写数字数据集[5]中的数据,本是高维特征,却可以用低维空间表示。我们很容易得知高维数据的优点,数据维度高,则其所包含的信息量就大。但是数据当然不是维度越高越好,因为还需要考虑实际的计算能力。对于数据而言,维度越高,则所消耗的计算时间越长,对计算设备的要求越高,由此,在计算上所消耗的资金数额也就越大。这就是高维度数据的缺点,消耗计算资源,计算时间大,甚至造成“维度灾难”。所以为了适应需要,降维算法随之诞生。降维,顾名思义,其目的就是降低数据的维度。很明显的,降低维度会损失原数据的一些信息,如果是损失冗余信息,倒也无伤大雅,但如果是损失了关键信息,那势必会对之后的工作产生严重的影响。数据的好坏决定着模型的训练结果,而深度学习中更是对数据集的质量提出了更高的要求。所以,不能盲目地降低数据维度,而忽略特征的损失。但上文提到。高维数据的各个维度之间,存在着数据相关,而这些高相关的维度,通俗地讲,就是比较像的维度。就好比一家公司只招收一名会计,那么两名会计来应聘,就会录取一名,而淘汰一名,因为这两个人的技能太相似了。所以对于高相关的维度信息,我们选择保留其中一个维度即可,因为保留的这个维度,就可以近似代表与其高相关的维度信息。对于维度之间的相关性,本文在此简单介绍一下。可以把每一个维度特征抽象成一个向量,然后不同维度之间的相关性就可以转化为不同向量间的相似度度量,向量之间的相似度度量又可以进一步转化为向量之间的距离度量,而向量之间的距离度量方法又有很多,简单且比较实用的方法有:余弦相似度度量、欧几里德距离、曼哈顿距离等。易知,向量间的距离越近,则相似程度越到。那么这些向量所代表的维度特征之间的相关程度则越强。以上高相关滤波降维算法的概述。而另一种常见且实用的降维算法是低方差滤波降维算法。其核心思想是该方法假设数据列变化非常小的列包含的信息量少。因此,所有的数据列方差小的列被移除。但有一件事必须注意:方差与数据范围相关的,所以在采用该方法前需要对数据做归一化处理。从思想上来看,低方差滤波降维算法无疑是一个好算法,但在降维前对数目如此之多,维度如此之高的数据全部进行归一化操作,这无疑又是一个消耗计算能力,需要大量计算时间的操作。所以,本文对低方差滤波降维算法进行改进,目的是消除归一化操作所带来的时间损耗,以更快地实现降维操作。

2 改进降维算法

针对低方差滤波降维算法的利与弊,我们对该算法进行改进,在保留该算法的优点的基础上,对它的缺点进行优化处理。上文提到,低方差滤波降维需要在降维前对所有数据进行归一化处理,而我们追根溯源,该方法是所以要用到归一化是因为方差计算与数据范围有关。那么,我们只需用一种与方差计算相似,但与数据范围无关的计算代替方差计算,且确保可以达到降维效果即可。由方差公式可知:

此处O表示大O渐进符号。

然后再分别对这两组数据的方差取算数平方根,即标准差,依次为σ1、σ2,则不妨设:

此处O表示大O渐进符号。

那么在对σ1、σ2依次除以各组数据的均值mean1、mean2,记为f1、f2,则不妨设:

此处O表示大O渐进符号。

由此我们发现,通过对方差采用如下公式转换:

max|ai|为该组数据对每个值取绝对值后的最大值,这里之所以用绝对值最大值做分母而不用均值做分母,是通过实验证实,用绝对值最大值做分母比用均值做分母,对于计算结果更加稳定。

本文将f成为该数据集的正态方差因子。

其中,σ2为数据的方差,mean代表数据的均值。这里之所以将公式(9)中的无关因子N一起取算数平方根,是因为考虑到数据可能存在缺省项,由此不从维度的数据总数N可能会有些许区别,从而产生误差,而对N取算数平方根,则可以弱化这种误差的影响。

特别的,为了试验中,方便比较实验结果,我们规定:

g的分母是均值,是为了和公式(9)中的f做对比,所以在本文中称g为伪正态方差因子,简称为正态因子。

整体上,通过这种方式,我们即可无需再对降维前的数据进行归一化处理,从而大大节约了计算时间和计算成本。

接下来本文将通过实验证明上面的假设。

3 实验

本题采用2021年美国大学生数学建模大赛D题的数据集full_music_data.csv进行实验。

首先将该数据集中的如表1所示的14列进行处理,将每列数据视为一个属性集合,并分别在各自集合内部计算每组属性的方差σ2和正态方差因子f(该数据集无缺省项)。

表1

计算结果可视化如图1-图3所示。

由图1和图2对比分析得:虽然各属性的方差值和正态方差因子值不相等,但各属性间的方差值的大小顺序与正态方差因子值的大小顺序是完全一致的。

图2 各属性的正态方差因子比较

由图1和图3对比分析得:各属性的方差的大小关系与各属性的伪正态因子的大小关系差别很大,所以证实了公式(9)的分母需要取该组数据中的绝对值最大值,而不是取该组数据的均值。所以公式(9)的正确性和科学性得到了证实。

图1 各属性的方差比较

图3 各属性的伪正态因子比较

由此我们得出结论,原低方滤波降维算法中的方差可以用本文中的正态方差因子代替。由此省略了降维前归一化操作的时间。所以,实验证实了本文改进降维算法的正确性和可行性。

4 结语

为适应深度学习快速发展的趋势,大数据集高维数据的预处理显得格外重要。而降维是减轻计算压力的一种有效方式。降维算法层出不穷,如高相关滤波降维、低方差降维等,但这两者都需要在降维前提前进行数据的归一化处理,而对高维数据进行归一化处理无疑是又增加了计算时间和计算耗费。为了进一步减少计算时间,减轻计算资源的损耗,本文实现了一种基于低方差波算法的改进降维算法。通过实验证明,本文的改进降维算法确实比原本的低方差滤波降维算法所需时间更短,且与低方差滤波降维算法相比,本文的改进算法对于降维后对原数据集特征损失的影响并没有明显增加。但本文的改进降维算法仍然需要对降维前的各组数据分别计算方差,这仍然会对计算时间延长造成一定的影响。所以,在后续的研究中,将会进一步考虑对降维算法的计算时间进行优化。

猜你喜欢

降维方差滤波
基于HP滤波与ARIMA-GARCH模型的柱塞泵泄漏量预测
基于改进自适应中值滤波的图像降噪方法*
基于数据降维与聚类的车联网数据分析应用
降维打击
方差生活秀
基于非下采样剪切波变换与引导滤波结合的遥感图像增强
揭秘平均数和方差的变化规律
方差越小越好?
方差在“三数两差”问题中的妙用
几种降维算法的研究及应用