论文网
首页 理科毕业科技创新正文

改进主成分分柝(PCA)鲁棒性的算法比较

  • 投稿李小
  • 更新时间2015-09-24
  • 阅读量616次
  • 评分4
  • 13
  • 0

叶明喜,黄 钰,蒋 昊

(兰州商学院,甘肃 兰州 730101)

摘 要:与传统的PCA算法相比较,基于分布特征算法的主成分分析,由于量测的不精确使特性或参数的实际值会偏离它标称值,另一个是受环境因素影响而引起特性或参数的缓慢漂移,这样得到的分析结果在很大程度上受到异常值的干扰.本文通过对比几种算法,提出改善主成分分析(PCA)算法鲁棒性的一种实现途径,去除或者减少异常点影响,以提高PCA的精度.

教育期刊网 http://www.jyqkw.com
关键词 :主成分分析;PCA鲁棒性;标称值;异常点;马氏距离

中图分类号:TP391文献标识码:A文章编号:1673-260X(2015)07-0017-03

1 PCA的原理和鲁棒性

传统PCA算法是一种基于空间坐标的降维技术,将高维数据按照线性投影的方式投影到低维空间,在保留过程变量间关系结构的同时,去除了噪声以及变量之间的相关性,但传统主成分基于特征值分解的PCA方法存在严重鲁棒性问题,这大大影响了PCA的运算精度.如PCA算法给出ai在随机向量x的第i主方向,根据尽可能地靠近原始数据x,则所有的ai都应该调整大道MSE,则有下列公式:

协方差矩阵:

矩阵A为构造的正交阵,传统PCA算法是对随机向量x的协方差阵进行特征值分解来获得x的协方差矩阵var(F),其为一对角矩阵,而对角元素恰好是原始数据集相关矩阵的特征值.其中样本数据集协方差阵的估计值:

但现在从主成分分析数学模型需要满足的条件出发(Fi,Fj互不相关),为了改善PCA算法精度,对PCA鲁棒性改善需要从两个角度出发:一是如何能够达到输出的各主成分之间互不相关,上面的PCA算法获得的各主成分互不相关当且仅当输入x服从零均值、协方差为n维高斯分布,当不服从此条件下高斯分布,相关文献提出了独立成分分析(ICA)来解决此问题[1].

另外,传统PCA算法基于协方差阵的二阶方面考虑,因此得到的主成分只能做到互不相关,而不能做到相互独立.为提高PCA算法的鲁棒性,必须去除或者减少异常点样本污染对算法的影响.异常点的产生原因是多方面的,例如突发的随机噪声,测量或者记录的偶尔出错等等.很自然地要考虑如何找出样本集中的异常点样本,在求解协方差矩阵时将其排除在外.因此首先需要确定异常点样本的判据,下文的三种算法判别异常点样本将作比较介绍.

算法一:计算原始数据在每个高维空间中的马氏(Mahalanobis)距离.给出马氏距离计算公式为:dij=,Q-1是协方差的逆矩阵.马氏距离的优点是考虑到各变量之间相关性,并且与各变量的单位无关.对数据点的马氏距离设定一个标称值?着,对原始数据与马氏距离进行排序,对与该标称值的点进行不同大小比较并进行标记剔除,从而使这些异常点不会被选入进行成分分析,从而做到将异常点样本剔除目的.

算法二:是开始设定一个可能的参考异常值,初始化时将第一个点和第二点之间的马氏距离作为标称值,将所有点计算出到均值点的马氏距离,计算出样本点中大于参考标称值点所占的比例,如果大于参考标称值的比例比初设异常值在样本数据中比例大,则需要将标称值减少一个比例系数,最终使得在一个事先设置的的精度范围内.则让程序对较大数据点进行排序,剔除较大的数据点之后,同时重新计算协方差阵和新的样本容量,使得留下的点都是非离群点,如果剔除的比例和自设的初识异常值比例近似相等,则中止该过程.然而,经过模拟之后发现算法二比算法一改进很多,但仍不理想,表现出算法对于异常值样本比较敏感.

算法三:是引入参数作为统计距离的测度,而该参数取自相关系数Rij,它度量变量之间的线性相关性.这样通过对原始数据的标准化处理后,相关系数阵的变换使得在不同维度之间变量大小具有了可比性,经过这样一个过程处理,最终还原为原始的变量.算法三比起算法二在鲁棒性上有改进.

2 改进鲁棒性PCA算法

2.1 判别异常点样本的理论基础

基于误差最小准则是判别异常点样本的理论基础,在剔除异常点样本中应用较为广泛.故令e=x-u为误差,定义误差平和函数的估计表达式:

||e||2最小所对应的矩阵A就是输入随机向量x的m维PCA子空间,即A各列向量构成的子空间的就是x的前m个主方向所组成的子空间.为给定的标称值,一个实际样本xi称为异常点样本.若就可以对原PCA算法进行修正,提出新的鲁棒的PCA算法.下文三种算法也是基于此原理,对重构的?着方法不同,则PCA算法鲁棒性就不一样.

2.2 鲁棒PCA算法描述

PCA算法是主分量按顺序一个个以连续提取方式从降级退化的输入中被提取,它适用于提取出全部的特征空间.例如对一样本进行计算,计算出均值E、协方差Q,并计算每个样本点距离中心的马氏距离,对样本点和马氏距离进行排序筛选,根据所选择的标称值,排除大于标称值的样本点.

期初给出W的估计值就是因为实际很难做到精确,以估计值来剔除异常点,从而达到精确W估计值,再剔除异常点,这样循环下去.

初始化迭代步数k=0,设定样本集中异常点样本数L(k)=0;利用得到样本估计矩阵.

根据上面得到的PCA变换矩阵,利用式(3)计算原始样本集E中每个样本xi在本步k的误差,迭代步数k+1,设样本集中异常点样本数L(k+1)=L(k)+1,也就是从样本集中删除上一步重构误差最大的L(k+1)个样本,并由剩下的样本构成新的待处理样本集;判断w(k+1)是否满足收敛条件,若满足则迭代结束,否则转第2步.使得所有的样本点马氏距离都在给定的标称值?着范围内,并且无论怎样循环下去,现有的样本点不再被剔除,则中止循环.

算法二,主要针对的是在算法一中需要初识需要设置一个距离标称值,在实践中操作极为不方便,因此引入了一个可能性的坏点的比例,具体算法如下,计算出初识两个点之间的统计距离作为参考的标称值距离,初识输入参数猜测的异常值数据的比例,计算出每个样本点到均值点的距离,如果大于标称值距离,那么就对该样本点作一个标记,计算出所有标记的点在样本点中所占的比例?渍,如果计算出的比例值大于需要修正参考的标称.给出循环条件是,根据修正后剔除了大于标称值的数据点,最后得到的是理想的没有异常值点的新的样本数据,我们根据这个样本数据,完成普通的主成分分析.算法三与算法二之间,算法三是以相关系数矩阵作为统计距离的空间度量.

3 仿真实验和结果分析

3.1 仿真实验

传统PCA算法和修正后的鲁棒PCA算法,对不含异常点和包含异常点的样本集进行主成分分析.在这里考虑输入为2维样本,提取其最大主成分,即n=2,m=1.随机均匀产生500个含有异常点的二维样本集,记为样本集x(如下图所示);传统的PCA算法对样本集x分别进行统计主成分分析,得到的主方向为Fx=[0.9020,0.4317]T.可以看出传统PCA对于无异常点的样本集计算精度还是很高的,Fx基本等于实际主方向.但是鲁棒性很差,只要样本集中存在少量的异常点样本,主方向计算结果误差非常大.

以下三个算法基于R软件绘制如下,具体为算法一:是在我们会发现,如果d太小,变换后的信息有所失,如果d太大,变换后的数据收到异常点改变其稳定的与坐标轴平行垂直椭圆形状.旋转角度后在5~7范围内较为稳定(如图1).

算法二:取异常值的比例为0.1~0.9变化后绘制其主成分变换后的图像,发现不是一个与坐标轴垂直平行的椭球体,因为使用的是数据集的协方差阵,没有采用相关系数阵(如图2).

算法三:剔除了较多的异常点数据点后,使得数据具有较强的鲁棒性,具备改善PCA算法鲁棒性和高效的数据压缩特性,使得算法三在与以上两种算法上比较上,采取相关系数构造标称值,较为理想(如图3).

3.2 结论分析

理想的PCA算法,应先计算相关系数矩阵,而不是协方差阵进行统计距离度量.单从数据的鲁棒性角度出发,可以采用相关系数矩阵进行统计距离度量作PCA,然而考虑到数据点异常点的去除,采用算法三的算法可以对原始数据的特征进行高效的转换,且PCA鲁棒性也比其他两种算法较好,另外该算法对于初始的异常点比例的预测也无联系.但PCA鲁棒性改善不仅仅是单纯从剔除数据异常点一种方式而得到改善,本文仅从算法上比较得出改善之举,难免有不妥之处.

教育期刊网 http://www.jyqkw.com
参考文献:

(1)ComonP. Independent component analysis,a new concept?.Signal Processing,1994,36(3):287-314.

(2)张媛.一种PCA算法及其应用.2005,15-2.

(3)孙文荣.基于直方图均衡化PCA和SVM算法的人脸识别.2014,38(8).

(4)傅德印.Excel与多元统计分析[M].北京:中国统计出版社,2007.