机器学习算法-PCA

本章复习梳理了机器学习算法——PCA(principal compount analysis)

PCA

PCA是一种数据压缩的算法,例如n维空间上的向量,使用l(l<< n)维的向量来近似表示。
做PCA之前需要样本点中心化可以缩小误差???
PCA的目标是最小化重构误差,使得投影后的值和原来的值尽量接近,即:
$\vec{e} = \vec{x}-<\vec{x},\vec{u}>\vec{u} = x - (x^Tu)u$,$\vec{u}为单位向量$
$J = |\vec{e}|^2 = e^Te = [x - (x^Tu)u]^T[x - (x^Tu)u]$
$ = [x^T - (x^Tu)u^T][x - (x^Tu)u]$
$ = x^Tx - (x^Tu)(x^Tu) - (x^Tu)(u^Tx) + (x^Tu)^2u^Tu$
$ = ||x||^2 - (x^Tu)^2 - (x^Tu)^2 + (x^Tu)^2$
$ = ||x||^2 - (x^Tu)^2$
因为$||x||^2$是固定的,因此问题转换为$max(x^Tu)^2$
$ = max(x^Tu)(x^Tu) = maxu^T(xx^T)u$
一共N个样本:$max \sum_{i=1}^{N}u^T(x_ix_i^T)u = max u^T(\sum_{i=1}^{N}x_ix_i^T)u$,且$||u||=1$
因此问题转换为了拉格朗日条件极值:$L(u,\lambda) = u^TXu + \lambda(1-u^Tu)$
$\frac{dL}{du} = Xu-\lambda u = 0$ => $Xu = \lambda u$
$\frac{dL}{d\lambda} = u^Tu$ = 1
$X$一般是对称正定矩阵???,因此解出上式的特征值和特征向量就得到PCA的解