机器学习 PCA(Principal Component Analysis)主成分分析

在讨论PCA之前,先说一说什么是协方差矩阵:

X_{1},...,X_{N}是一组数据,每一个数据X_{i}是有p个特征值列向量,则数据X_{1},...,X_{N}是一个p\times N的矩阵。

样本均值M定义为:

                                                                               M=\frac{1}{N}\left ( X_{1}+\cdots +X_{N} \right )

对数据进行中心化:

                                                                               \hat{X}_{i}=X_{i}-M

最终进行了中心化的数据为B=\begin{bmatrix} \hat{X}_{1} & \hat{X}_{2} & \cdots & \hat{X}_{N} \end{bmatrix}(也称为平均偏差形式)

样本的协方差矩阵定义为:

                                                                               S=\frac{1}{N-1}BB^{T}

协方差矩阵主对角线上的元素s_{jj},表示总体数据在第j个特征取值的方差。

而非主对角线上的元素s_{ij},表示特征i和特征j的相关性,若s_{ij}=0表示第i个特征和第j个特征无关。

所以数据的总方差就是协方差矩阵主对角线元素之和,即协方差矩阵的迹tr\left ( S \right )

我们 希望寻找一个新的坐标系,数据转换为新坐标系下的坐标后,其特征之间的相关性减弱,而单一特征的方差增大。

设一个数据在坐标变换后的坐标为\begin{bmatrix} y_{1} & y_{2} & \cdots & y_{p} \end{bmatrix},新坐标系为p=\begin{bmatrix} \mu _{1} & \mu_{2} & \cdots & \mu_{p} \end{bmatrix}(为p\times p正交矩阵),有:

                                                                            \begin{bmatrix} x_{1}\\ x_{2}\\ \vdots \\ x_{p} \end{bmatrix}=\begin{bmatrix} \mu_{1} & \mu_{2} & \cdots & \mu_{p} \end{bmatrix}\begin{bmatrix} y_{1}\\ y_{2}\\ \vdots \\ y_{p} \end{bmatrix}

这样的坐标变换表示为X=pYX,Y都是列向量)

因为p是正交矩阵,所以p可逆,且p^{-1}=p^{T},所以Y=p^{-1}X=p^{T}XY^{T}=X^{T}P

所以坐标变换后,协方差矩阵表示为\frac{1}{N-1}p^{T}XX^{T}p,因为S=\frac{1}{N-1}BB^{T},所以协方差矩阵表示为p^{T}Sp

我们的理想是协方差矩阵p^{T}Sp是一个对角矩阵,且主对角线元素足够大。

D=p^{T}sp,则s=pDp^{T}=pDp^{-1},则这是对s做正交对角化,所以对s做奇异值分解,将s的特征值降序排列在D的主对角线上,p的列是对应特征值的特征向量。S的特征向量称为数据的主成分。第一主成分是S中最大特征值对应的特征向量,第二主成分是S中第二大特征值对应的特征向量,依次类推。

通过舍弃小特征值对应的特征向量,来实现降维。可以证明tr(p^{T}Sp)=tr(S)​​​​​​,这样的线性变换不改变总方差,证明略。

你可能感兴趣的:(机器学习,数学,主成分分析,机器学习,降维技术)