主成分分析PCA

什么是PCA?

PCA,Principle Component Analysis,即主成分分析法,是特征降维的最常用手段。顾名思义,PCA能从冗余特征中提取主要成分,在不太损失模型质量的情况下,提升了模型训练速度。通常用于高维数据集的探索与可视化。PCA可以把具有相关性的高维变量合成为线性无关的低维变量,称为主成分。主成分能够尽可能保留原始数据的信息。

 

举个例子,球和圆。一个三维空间的球,往坐标轴方向投影,变成了一个圆。球是3维的,圆是2维的。在球变成圆的这个投影过程中,丢失了原来物体的一部分"性质" --- 圆不是球了,只有面积没有体积了;也保留了原来物体的一部分性质 --- 圆和球还是很像的

 

PCA是一种无监督特征表达,是一种线性变换。所以PCA并不是选出一些特征,然后丢掉另外的特征。事实上,他找出了一些新的特征,而且这些新特征可以很好的描述咱们的酒。PCA做的就是找出最有用的那些组合。

 

PCA是一种有损的压缩方式。

 

那么如何做到特征数目变少而最多的保留原特征的信息呢?

原理

方差最大而误差最小

方差最大是为了区分特征,误差最小是为了最大程度上保存原特征的信息。

在信号处理中认为信号具有较大的方差,噪声具有较小的方差,噪声比就是信号与噪声的方差比,越大越好。

相关术语:

方差、协方差、协方差矩阵、特征向量和特征值

主成分分析的算法过程

特征分解又称谱分解,是将矩阵分解为由其特征值和特征向量表示的矩阵之积的方法。需要注意,只有对可对角化矩阵才可以施以特征分解。

 

具体的证明过程就不贴了

给个示意图

事实上,通过计算数据矩阵的协方差矩阵,然后得到协方差矩阵的特征值特征向量,选择特征值最大(即方差最大)的k个特征所对应的特征向量组成的矩阵。这样就可以将数据矩阵转换到新的空间当中,实现数据特征的降维。

 

还有一种是基于SVD分解协方差矩阵的pca算法,大致方法都是一样的。就是使用了另一种方式来计算协方差矩阵的特征值与特征向量。sklearn的pca算法背后实现就是用的svd,而不是特征值分解。这种方法在样本量很大的时候很有效。

 

特征值分解和奇异值分解的区别

特征值分解是一个提取矩阵特征很不错的方法,但是它只是对方阵而言的,在现实的世界中,我们看到的大部分矩阵都不是方阵。

分解形式:

其中,Q是这个矩阵A的特征向量组成的矩阵,Σ是一个对角矩阵,每一个对角线元素的就是一个特征值,里面的特征值是由大到小排列的,这些特征值所对应的特征向量就是描述这个矩阵变化方向(主要的变化到次要的变化排列)。也就是说矩阵A的信息可以由其特征值和特征向量表示。

 

奇异值分解是一个能适用于任意的矩阵的一种分解方法。

分解形式:

假设A是一个M*N的矩阵,那么得到的U是一个M*M的方阵(成为左奇异向量),Σ是一个M*N的矩阵(除了对角线的元素都是0,对角线上的元素称为奇异值),V^T(V的转置)是一个N*N的矩阵(称为右奇异向量)。

 

使用

不要提前优化。由于PCA减小了特征维度,因而也有可能带来过拟合的问题。PCA不是必须的,在机器学习中,一定谨记不要提前优化,只有当算法运行效率不尽如人意时,再考虑使用PCA或者其他特征将为手段来提升训练速度。

 

不只是加速学习。降低特征维度不只能加速模型的训练速度,还能帮我们在低维空间分析数据,例如,一个在三维空间完成的聚类问题,我们可以通过PCA将特征降低到二维平面进行可视化分析。

 

参考

主成分分析(PCA)及Demo最大方差解释和最小平方误差解释:https://blog.csdn.net/hit1524468/article/details/60323173

通俗理解PCA:https://www.cnblogs.com/hfdkd/articles/8283399.html

Hinton是如何理解PCA:https://www.jianshu.com/p/76c64cd0b5ad

scikit-learn中PCA的使用方法:https://blog.csdn.net/u012162613/article/details/42192293

pca方法及其应用:https://www.jianshu.com/p/c2acbcb54478

主成分分析(PCA)原理详解https://zhuanlan.zhihu.com/p/37777074

特征值分解、奇异值分解、PCA概念整理:https://blog.csdn.net/jinshengtao/article/details/18448355

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值