机器学习(十三)PCA降维原理

review点:特征值分解需要是方阵,

SVD奇异值分解不需要是方阵:

 

 

 

如要熟悉特征值分解 、奇异值分解  参考以下链接:

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

最近突然看到一个问题,PCA和SVD有什么关系?隐约记得自己照猫画虎实现的时候PCA的时候明明用到了SVD啊,但SVD(奇异值分解)和PCA的(特征值分解)貌似差得相当远,由此钻下去搜集了一些资料,把我的一些收获总结一下,以免以后再忘记。

参考:https://blog.csdn.net/dark_scope/article/details/53150883

PCA的简单推导

PCA有两种通俗易懂的解释,1)是最大化投影后数据的方差(让数据更分散)2)是最小化投影造成的损失。这两个思路最后都能推导出同样的结果。 

下图应该是对PCA第二种解释展示得最好的一张图片了(ref:svd,pca,relation

 

向量

设两个非零向量ab夹角为θ,则将|b|·cosθ 叫做向量b在向量a方向上的投影或称标投影(scalar projection)

在式中引入a的单位矢量a(A),可以定义b在a上的矢投影(vector projection)


此处输入图片的描述
图示的数据都已经去中心化了(中心点为原点),这一步操作可以简单地通过xi=xi−x¯xi=xi−x¯ 来达到,其中x¯x¯是样本的均值,为方便表示,后文的xx都是去中心化后的结果。 
可以看到PCA所谓的降维操作就是找到一个新的坐标系(旋转的两条直线式垂直的,我们可以用一组标准正交基{uj},j=1,...,n{uj},j=1,...,n来指示),然后减掉其中一些维度,使误差足够小。 
假设我们要找的投影方向是ujuj (ujuj是单位向量,即uTjuj=1ujTuj=1) ,点xixi在该方向上的投影就是(xTiuj)uj

 

所以要使J最小,就去掉变换后维度中最小的t个特征值对应的维度就好了。 
现在,我们再回过头看PCA的流程,就会发现一切都对应上了:

 

矩阵A乘以x表示,对向量x进行一次转换(旋转或拉伸)(是一种线性转换),而该转换的效果为常数c乘以向量x(即只进行拉伸)。

我们通常求特征值和特征向量即为求出该矩阵能使哪些向量(当然是特征向量)只发生拉伸,使其发生拉伸的程度如何(特征值大小)。这样做的意义在于,看清一个矩阵在那些方面能产生最大的效果(power),并根据所产生的每个特征向量(一般研究特征值最大的那几个)进行分类讨论与研究。



作者:Rex
链接:https://www.zhihu.com/question/20507061/answer/16610027
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  1. 对数据去中心化
  2. 计算XXTXXT,注:这里除或不除样本数量MM或M−1M−1其实对求出的特征向量没影响
  3. 对XXTXXT进行特征分解
  4. 选取特征值最大的几个维度进行数据映射。(去掉较小的维度)

遗留问题

看到这有人要问了,我咋记得标准流程是计算矩阵的协方差矩阵呢? 
我们来看协方差矩阵的计算公式: 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值