主成分分析(PCA)原理总结

PCA介绍

用途

        主要用法就是数据降维,对于一组不同维度之间可能存在线性相关关系的数据,PCA能够把这组数据通过正交(即内积为0,或者说相互垂直)变换变成各个维度之间线性无关的数据,经过PCA处理的数据中的各个样本之间的关系往往更直观,所以它是一种非常常用的数据分析和预处理工具。

        PCA处理之后的数据各个维度之间是线性无关的,通过剔除方差较小的那些维度上的数据,我们可以达到数据降维的目的。但数据降维就意味着会有数据损耗,所以要尽可能选择方差大的。方差大代表数据分散且丰富。

        主成分分析(PCA)是一种基于变量协方差矩阵对数据进行压缩降维,去噪的有效方法。

算法思想

        将数据坐标系旋转使其达到降低维度的目的,例如三维要降到二维,三维坐标轴为(x,y,z),将x轴旋转到y轴,这样就变成一个二维数组,变成(x',y),如果想变回原来的表达方式,需要将这两个坐标之间的变换矩阵存下来。

        主成分分析(PCA)是一种基于变量协方差矩阵对数据进行压缩降维,去噪的有效方法,PCA的思想是将n维特征映射到k维上(k<n),这k维特征称为主元(主成分),是旧特征的线性组合,这些线性组合最大化样本方差,尽量使用新的k个特征互不相关。这k维是全新的正交特征,是重新构造出来的k维特征,而不是简单地从n维特征中取出其余n-k维特征。

PCA数学原理

中心化:

例如有:

 第一行平均值为2,第二行平均值为3,第一行的每一个数字减去平均值,第二行同理,得到

这样子中心化就做好了(也就是字段均值化为0)。

方差:

上面我们已经将每个字段的均值都化0 了,因此方差可以直接用每个元素的平方和除以元素个数表示:

协方差:

在字段均值为0的情况下,两个字段的协方差简洁的表示为其内积除以元素数m。

降维问题的优化目标:将一组N维向量降维k维(K大于0,小于N),其目标是选择K个单位(模为1)正交基,使得原始数据变换到这组基上后,各字段两两间协方差为0,而字段的方差则尽可能大(在正交的约束下,取最大的k个方差)。

协方差矩阵对角化:

即除对角线外的其他元素化为0,并且在对角线上将元素按照大小从上到下排列

协方差矩阵又称为对称矩阵,在线性代数上,对称矩阵有一系列非常好的性质:

1.对称矩阵不同特征值对应的特征向量必然正交。

2.设特征向量 λ 重数为r,则必然存在r个线性无关的特征向量对应于 λ,因此可以将这r个特征向量单位正交化。

算法步骤

PCA从原始变量出发,通过坐标旋转变化(即原始变量的线性组合)构建出一组新的,互不相关的新变量,这些变量尽可能多的解释原始数据之间的差异性(即数据内在的结构),他们就成为原始数据的主成分。由于这些变量不相关,因此他们无重叠的各自解释一部分差异性。依照每个变量解释时差异性大小排序,他们成为第一主成分,第二主成分,以此类推。

        1.将原始数据按列组成n行m列矩阵X

        2.将X的每一行(代表一个属性字段)进行零均值化(去平均值),即减去这一行的平均值。

        3.求出协方差矩阵C=1/m*X*XT

        4.求出协方差矩阵的特征值和对应的特征向量

        5.将特征向量按照对应特征值大小从上到下按行排列成矩阵,取k行组成矩阵P

        6.Y=PX为降维到k维后的数据。

核主成分分析KPCA介绍

        上面介绍的都是假设存在一个线性的超平面,可以让我们对数据进行投影。但是有些时候,数据不是线性的,不能直接进行PCA降维。这里就需要用到和支持向量机一样的核函数的思想,先把数据集从n维映射到线性可分的高维N>n,然后再从N维降维到一个低维度n', 这里的维度之间满足n'<n<N。

        使用了核函数的主成分分析一般称之为核主成分分析(Kernelized PCA, 以下简称KPCA。假设高维空间的数据是由n维空间的数据通过映射ϕ产生。

则对于 n 维空间的特征分解:

映射为:

        通过在高维空间进行协方差矩阵的特征值分解,然后用和PCA一样的方法进行降维。一般来说,映射 Φ 不用显式的计算,而是在需要计算的时候通过核函数完成。由于KPCA需要核函数的运算,因此它的计算量要比PCA大很多。 

常用PCA类介绍

        IncrementalPCA类:它主要是为了解决单机内存限制的,IncrementalPCA先将数据分成多个batch,然后对每个batch依次递增调用partial_fit函数,这样一步步的得到最终的样本最优降维。

        KernelPCA类:主要用于非线性数据的降维,需要用到核技巧。

参考文章:

http://t.csdnimg.cn/eMF1O

https://www.cnblogs.com/pinard/p/6239403.html

https://www.cnblogs.com/pinard/p/6243025.html

  • 30
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值