最近有用到PCA降维,其中涉及到SVD,看了一些博客,挑选其中的几篇。
PCA的简单推导
PCA有两种通俗易懂的解释,1)是最大化投影后数据的方差(让数据更分散);2)是最小化投影造成的损失。这两个思路最后都能推导出同样的结果。
下图应该是对PCA第二种解释展示得最好的一张图片了(ref:svd,pca,relation)
图示的数据都已经去中心化了(中心点为原点),这一步操作可以简单地通过
xi=xi−x¯
来达到,其中
x¯
是样本的均值,为方便表示,后文的
x
都是去中心化后的结果。
可以看到PCA所谓的降维操作就是找到一个新的坐标系(旋转的两条直线式垂直的,我们可以用一组标准正交基
{uj},j=1,...,n
来指示),然后减掉其中一些维度,使误差足够小。
假设我们要找的投影方向是
uj
(
uj
是单位向量,即
uTjuj=1
) ,点
xi
在该方向上的投影就是
(xTiuj)uj
,减掉这个维度造成的误差为: