matlab pca求曲率和法向量_PCA的四种推导方法

PCA

总述

我们假设把原数据中心化处理之后为

,总共有m个样本,每个样本有n个特征。每一个样本为
, 中心化后的数据,均值为
,协方差矩阵为

PCA(principle component analysis) 是一种降低数据维度的方法。接下来我分别用四种方法来推导一下(方法之间相互等价)。

最大方差法

我们通过方差来度量数据内的信息量,我们可以看到,如果将数据投影到某个方向,比如方向1,或者方向2,当投影后的数据尽可能分散的时候,也就是方差尽可能大的时候,保留的信息量是最大的,因此方向1是更好的。

21b1d930972bc70dd6ae8b5de19090b0.png

于是,我们的问题就变成了:在多维空间下,如何选择一个最优的方向,来让投影之后的数据保留最多的信息量。于是我们假设这个方向的单位方向向量是

,在多维空间下投影之后的数据为

所以方差变为

于是我们求解的最优化的问题就是,如何使

利用拉格朗日乘子法求得

因此

就是S的特征值,而
就是对应的特征向量,
就是主成分。

最小距离法

还是上图的例子,我们希望找到一个方向,让点到投影点的距离最小,损失的信息最少。所以还是方向1更好一些,于是问题变成了

所以等价于

所以和上述方法其实是等价的。

最小协方差法(kl变换)

在通过坐标变换之后,即对原始数据进行线性变换后,尽量使得变换后的协方差矩阵

对角化(即使得除矩阵D对角线外的元素都为0)。这样根据协方差矩阵的性质,可以使得变化后,不同特征之间的相关系数最小,尽量不相关。

而这时我们会发现变换后的对角矩阵D对角线其实是S的特征值(根据线性代数的知识),而P则是由对应的特征向量组成。于是就需要我们对S进行特征值分解

或者对X进行SVD(也可以使S对角化)

基于线性回归的思想

考虑线性回归模型

我们考虑对X做一个变换,假设
的特征值,
是对应的标准正交化特征向量,我们设

模型就会变为

我们就可以发现

, 每一个特征值
都对应第i个主成分的方差是多少,即在0左右的变动有多少。所以当一些特征之间存在一些线性关系的时候,
就会有一些很小的特征值。在这种情况下,我们如果舍去后几个主成分的话,误差也不会太大。

而且在一定条件下,这种方法可能会比普通的最小二乘估计的均方误差更小。

(其实这种方法就是应用最大方差法结论反推,然后从代数方法解释了一下。)

。。。就随便写写,之后继续完善吧。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值