PCA算法 汉语版

PCA算法汉语版

一.数据降维
在实际生产生活中,我们所获得的数据集在特征上往往具有很高的维度,对高维度的数据进行处理时消耗的时间很大,资源很多,并且过多的特征变量也会妨碍查找规律的建立。如何在最大程度上保留数据集的信息量的前提下进行数据维度的降低,是我们需要解决的问题。
*降维技术主要有以下几种:主成分分析(Principal Component AnalysisPCA)、因子分析(Factor Analysis),以及独立成分分析(Independent Component Analysis, ICA),奇异值分解(SVD)。本文将详细介绍PCA。
二、PCA算法优化目标
将一组 n维向量降为 k维 (0<k<=n),其目标是选择k个单位正交基,使得原始数据变换到该组基上后,各特征两两之间的协方差为0.
而特征的方差则尽可能大,当在正交的约束下取最大的k个方差。
在这里插入图片描述
三、PCA原理
1.用方差来定义样本的间距,方差越大表示样本分布越稀疏,方差越小表示样本分布越密集。
2.在求解最大方差前,为了方便计算,可以先对样本进行demean(去均值)处理,即减去每个特征的均值,这种处理方式不会改变样本的相对分布(效果就像坐标轴进行了移动)。去均值后,样本x每个特征维度上的均值都是0.
3.对于二维降成一维的问题来说,找到那个使得方差最大的方向就可以了。不过对于更高维,还有一个问题需要解决。考虑三维降到二维问题。与之前相同,首先我们希望找到一个方向使得投影后方差最大,这样就完成了第一个方向的选择,继而我们选择第二个投影方向。如果我们还是单纯只选择方差最大的方向,很明显,这个方向与第一个方向应该是“几乎重合在一起”,显然这样的维度是没有用的,因此,应该有其他约束条件。从直观上说,让两个字段尽可能表示更多的原始信息,我们是不希望它们之间存在(线性)相关性的,因为相关性意味着两个字段不是完全独立,必然存在重复表示的信息。
数学上可以用两个字段的协方差表示其相关性,由于已经让每个字段均值为0,则:
在这里插入图片描述
可以看到,在字段均值为0的情况下,两个字段的协方差简洁的表示为其内积除以元素数m。
当协方差为0时,表示两个字段完全独立。为了让协方差为0,我们选择第二个基时只能在与第一个基正交的方向上选择。因此最终选择的两个方向一定是正交 的。
4.协方差矩阵对角化:设原始数据矩阵X对应的协方差矩阵为C,而P是一组基按行组成的矩阵,设Y=PX,则Y为X对P做基变换后的数据。设
Y的协方差矩阵为D
,我们推导一下D与C的关系:

因此优化目标变成了寻找一个矩阵P,满足PCPT是一个对角矩阵,并且对角元素按从大到小依次排列,那么P的前K行就是要寻找的基,用P的前K行组成的矩阵乘以X就使得X从N维降到了K维并满足上述优化条件。
四、PCA 算法流程
1.demean
2.计算cov矩阵
3.求出协方差矩阵的特征值及对应的特征向量
4.对特征值从大到小排序
5.将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P
6.Y=PX即为降维到k维后的数据
五、PCA算法应用
(1)高维数据集的探索与可视化。
(2)数据压缩。
(3)数据预处理。
(4)图象、语音、通信的分析处理。
(5)降维(最主要),去除数据冗余与噪声。
六、PCA算法优缺点
PCA本质上是将方差最大的方向作为主要特征,并且在各个正交方向上将数据“离相关”,也就是让它们在不同正交方向上没有相关性。因此,PCA也存在一些限制,例如它可以很好的解除线性相关,但是对于非线性的依赖关系不能得到很好结果。
如果用户对数据有一定的经验,掌握了一些特征,却无法通过参数化等方法对处理过程进行干预,可能得不到预期的效果(即对优点无参数限制的补充)。
七、参考博客
https://blog.csdn.net/u010376788/article/details/46957957

发布了19 篇原创文章 · 获赞 0 · 访问量 738

猜你喜欢

转载自blog.csdn.net/hahadelaochao/article/details/105529220