PCA的数学公式推导

这个主要还是学的Andrew Ng的CS229课程,查阅了其他的很多资料,勉强理解了其中的思路;与诸位分享一下;

首先假设数据X已经做过白化处理(白化是一个很简单的过程,这里不做赘述);
那么PCA的目的就是找到一组正交基,使得数据X的方差尽可能的大;
即: max((X^T * U)^2);
U为线性变换的正交基;
(X^T * U)^2 = (U^T * X)*(X^T * U) = U^T*(X*X^T)*U
上面这个看起来好像U是(X*X^T)的特征向量?到底是不是呢?

上面这个问题可以用另一种表述:
max((X^T * U)^2);
s.t. U^T * U = 1;
这个是要用拉格朗日乘子啊!
L(U,lambda) = U^T*(X*X^T)U + lambda*(U^T U -1) ;
求U^T的偏导:
d(L(U,lambda))/d(U^T) = X*X^T*U - lambda * U = 0;
所以: (X*X^T) U = lambda U ;
这个就是 X*X^T 的特征值和特征向量的定义啊;

总结一下,对于任意数据x,先白化成X,再求(X*X^T)的特征向量,和特征值;对特征值依次排序;就是各个成分的排序了;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值