主成分分析(PCA)证明推导

pca和svd都是降维常用的方法。今天回顾一下pca的原理。

motivation

现在有m个数据,每个样本有n个属性值,样本用矩阵表示为 X ∈ R n × m X \in R^{n\times m} XRn×m。每一列是一个样本。
方便接下来的讲述,我们把 X X X默认是做过零均值化的。那么X的属性的协方差矩阵C等于:
C = 1 m X X T ∈ R n × n C=\frac{1}{m}XX^T \in R^{n\times n} C=m1XXTRn×n

我们想用一组新的坐标表示X,同时新的坐标数目更少(属性更少)。且在这些坐标下,X投影到这些坐标的值的方差比较大(最大的叫主元,一般取方差前k大的轴)。
以上的出发点是遵循最大可分性原则。
假设 P ∈ R n × n P \in R^{n\times n} PRn×n是投影矩阵,线性变换之后的样本是 Y = P X Y=PX Y=PX 当然此时 Y Y Y还是n维属性的。我们先不考虑降低维度的事情,先想如何能把Y的属性的方差最大化。

Method

想最大化Y的属性的方差,其实等价于最小化Y的各个属性之间的协方差。因为各个属性之间没有相关,才能让属性差异性最大,说明属性分布的更加离散。
在这里插入图片描述
因为正交变换不改变向量之间的相对位置,所以当样本的某种属性值降低,其他属性必然上升,要保持和原点的相对位置不变。
在这里插入图片描述
上图a和b的横纵坐标值在发生变化,当x轴坐标值小了,必然y轴坐标值大了。

为了让变换之后的样本的协方差最大,先求出 Y Y Y的协方差 D D D
D = 1 m Y Y T = 1 m P X X T P T = P 1 m X X T P T = P C P T D = \frac{1}{m}YY^T \\ =\frac{1}{m}PXX^TP^T\\ =P\frac{1}{m}XX^TP^T\\ =PCP^T D=m1YYT=m1PXXTPT=Pm1XXTPT=PCPT
理想中的D应该是对角阵,其他位置都是协方差,主对角线是属性的方差。那么问题就来到了如何找到一个P能让D是对角矩阵。

注意C是n维方阵,且实对称。实对称矩阵一定可以正交对角化。所以P就是能让C对角化的正交矩阵,那么D就是C的特征值了
D = d i a g { λ 1 , λ 2 , . . . λ n } , λ 1 > = λ 2 > = . . . D =diag \left \{\lambda_1, \lambda_2,... \lambda_n \right \},\lambda_1>= \lambda_2 >=... D=diag{λ1,λ2,...λn}λ1>=λ2>=...
P就是特征值按照位置对应的特征向量。
接着我们把D拆解:
D = P C P T ≈ λ 1 p 1 p 1 T + λ 2 p 2 p 2 T + . . . λ k p k p k T D=PCP^T\\ \approx \lambda_1p_1p_1^T + \lambda_2p_2p_2^T + ... \lambda_k p_kp_k^T D=PCPTλ1p1p1T+λ2p2p2T+...λkpkpkT
我们取前k大的特征值和对应的特征向量,能得到D的近似,那我们干脆就用这些特征向量,构成P,所以P的维度是 k × n k\times n k×n ,然后就得到了我们需要的变换矩阵P了。

实际上,还可以通过拉格朗日乘子法进行推导,也能得到相同的P。

reference

如何通俗易懂地讲解什么是 PCA 主成分分析?
机器学习】降维——PCA(非常详细)

奇异值分解(SVD)与图像压缩(附Python代码实现)
利用SVD求得两个对应点集合的旋转矩阵R和转移矩阵t的数学推导

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在数字图像压缩中,DCT(离散余弦变换)和PCA成分分析)都是常用的技术。它们的要区别在于,DCT是一种变换技术,通过将像素值转换为频域信号来减少图像中的冗余信息,而PCA则是一种数据降维技术,通过选择要的特征值和特征向量来减少数据的维度。 虽然DCT在图像压缩中非常有效,但它仍然存在一些问题。首先,DCT仅仅是一种变换技术,它不能捕捉到图像中的局部特征,因此可能会丢失一些重要的信息。其次,DCT的变换基是固定的,不能适应不同的图像内容。 相比之下,PCA可以更好地适应不同的图像内容,并且可以更好地捕捉到图像中的局部特征。因此,在某些情况下,PCA可能会比DCT更优秀。 为了证明PCA优于DCT,我们可以进行以下实验。首先,我们需要选择一些图像,并对它们进行压缩。我们将使用DCT和PCA分别对图像进行压缩,并计算压缩后的图像的均方误差(MSE)。如果PCA的MSE比DCT的MSE更小,那么我们就可以得出结论,PCA优于DCT。 具体实验步骤如下: 1.选择一些图像,大小为256×256像素。 2.将图像转换为灰度图像。 3.使用DCT和PCA分别对图像进行压缩,压缩比为10:1。 4.计算DCT和PCA压缩后的图像的MSE。 5.比较DCT和PCA压缩后的图像的MSE,得出结论。 需要注意的是,这个实验只是一个简单的示例,实际情况可能会更加复杂。在实际使用中,我们需要选择合适的算法和参数,并对图像进行适当的预处理,才能得到更好的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值