主成分分析(二)

主要部分在上一篇:主成分分析(一)

样本主成分分析

总体PCA和样本PCA的关系

总体PCA是定义在分布总体上的,只虑向量(随机变量)$\mathbb x$,$\mathbb x$满足某分布函数,其均值$\mu$是$\mathbb x$分布函数上的均值,可以直接得到。但在实际问题中一般不会直接给出分布函数。

实际问题中是在观测数据上进行PCA,也就是说知道$n$样本$\mathbb x_1,\mathbb x_2,\cdots,\mathbb x_n$,这就是样本主成分分析。可以看出,对于给定样本观测集求出的均值就是一个对总体分布参数的一个估计。

样本PCA和总体PCA性质完全相同,上一节的东西完全适用,不过我们可以直接在样本集上求平均和协方差了。

样本主成分分析

对于真实观测样本,对随机变量$\mathbb x=(x_1,x_2,\cdots,x_m)^T$进行$n$次独立观测得到观测样本集$(\mathbb x_1,\mathbb x_2,\cdots,\mathbb x_n)$,其中每一个样本为$m$维,表示为$\mathbb x_j=(x_{1j},x_{2j},\cdots,x_{mj})^T$,那么$x_{ij}$表示第$j$个观测样本的第$i$个变量(特征维度),那么观测数据的样本矩阵$X$记为:

注意以下描述【中$x_{ij}$是第$i$维,第$j$个样本<=ATT!】

[某个维度$i$在样本集上的均值]为:$\hat x=\frac{1}{n}\sum_{j=1}^nx_{ij}$ (具体来说就是一个属性值在样本集上的均值)

那么[均值向量]替代总体PCA的$\mu$)为:$\hat {\mathbb x}=\frac{1}{n}\sum_{j=1}^n\mathbb x_{j}$

对于样本PCA,要求在样本集$X_{m×n}$上的协方差矩阵。对于前面总体PCA,相当于$X=[\mathbb x]$,有$cov(x,x)=\frac{1}{n-1}xx^T$

样本协方差矩阵$S$(替代总体PCA的$\Sigma$)和矩阵里每个元素为:(推导略,见主成分分析(一)-矩阵计算-协方差矩阵;【$s_{ij}$表随机变量第$i$维与第$j$维的协方差在样本集上的期望】

定义第$j$个线性变换,$m$维向量$x=(x_1,x_2,\cdots,x_m)^T$到$y=(y_1,x_2,\cdots,y_m)^T$线性变换

与总体PCA一样可以推得:

$var(y_i)=a_i^TSa_i$,$cov(y_i,y_k)=a_i^TSa_k$

规范化:$x_{ij}^o=\frac{x_{ij}-\hat x_i}{\sqrt{s_{ii}}},\quad i=1,2,\cdots,m;j=1,2,\cdots,m$

其中均值$\hat x_i=\frac{1}{n}\sum_{j=1}^nx_{ij},\quad i=1,2,\cdots,m$,方差$s_{ii}=\frac{1}{n-1}\sum_{j=1}^n(x_{ij}-\hat x_i)^2$,这个$s_{ii}$就是协方差矩阵$S$的对角线上的元素,显然自协方差=方差

样本相关矩阵$R$(这是前面没用的新东西)为

规范化$x_{ij}$后,规范化协方差矩阵$S$就是其相关矩阵$R$: O

求样本PCA

由上一节的性质——

有了定理1及其推论:知道了协方差矩阵的【正交对角分解】即可获得主成分(最优解)。具体关系是:$\mathbb x$的协方差矩阵$\Sigma$的对角矩阵的特征值构成主成分$\mathbb y$的方差,协方差矩阵的特征向量构成基矩阵$A$。那么问题就被转化为了协方差矩阵的正交对角化问题,直接数学的矩阵分解解决。于是我们就可以写出求PCA的两种算法了。

有了定理2:知道了如果我们要降维,怎么选能使主成分整体方差和最大

有了k取值:知道了选几个最好,能使得主成分整体方差和最大

然后根据上面一节的式子我们拓展到了样本PCA

注意理解:每个样本各自的主成分的值是不同的,但是哪个维度是第几主成分是已经确定了的,在每个样本中都是一致。我们根据样本集得到了一个协方差矩阵,其对角正交分解考虑了所有样本使方差最大化,也就是对所有样本都使用一套基变换$A$,表达就是$Y=A^TX$

协方差矩阵$S$(相关矩阵$R$)的[特征值分解]算法

特征值分解$A=P\Lambda P^{-1}$,且①对角矩阵$\Lambda$②正交矩阵$P$

那么就满足是主成分的充分必要条件,于是$X$的求主成分等于求协方差矩阵$S$(相关矩阵$R$)的奇异值分解

  1. 规范化

  2. 计算协方差矩阵(相关矩阵)

    $R=[r_{ij}]_{m×m}=\frac{1}{n-1}XX^T$

  3. 求其特征值和对应的单位正交特征向量

    解$R$的特征方程$|R-\lambda I|=0$

  4. 将特征向量按对应特征值大小从上到下按行排列成矩阵,取前$k$行组成矩阵$A$

    $k$的选取由方差贡献率决定

  5. $Y=A^TX$

    得到各样本向量的主成分

数据矩阵$X$的[奇异值分解]算法

奇异值分解$A=U\Sigma V^T$,且①对角矩阵$\Sigma$②正交矩阵$U,V$

那么就满足是主成分的充分必要条件,于是$X$的求主成分可以用数据矩阵$X$的奇异值分解来求

于是我们运用奇异值分解算法(见前文矩阵计算与矩阵分解

注意由于奇异值分解算法求解过程中是求$W=X^TX$的特征值和单位特征向量(不直接求),和我们的协方差矩阵$S=\frac{1}{n-1}XX^T$是反过来的,且少了一个系数,于是要构造一下形式

令$X’=\frac{1}{\sqrt{n-1}}X^T$

因为这样一来,$X’^TX’=(\frac{1}{\sqrt{n-1}}X^T)^T(\frac{1}{\sqrt{n-1}}X^T)=\frac{1}{n-1}XX^T$,也就是说$X’^TX’$等于$X$的协方差矩阵;而$X’^TX’$是求$X’$的奇异值分解的第一步。而我们要求PCA是要对协方差矩阵求特征值和特征向量,【那么问题归结于对$X’$做SVD】

  1. 构造新的$n×m$矩阵

    $X’=\frac{1}{\sqrt{n-1}}X^T$

    $X’$每一列的均值为0

    那么$S_X=X’^TX’$为$X$的协方差矩阵

  2. 对矩阵$X’$进行截断奇异值分解,得到:$X’=U\Sigma V^T$

    有$k$个奇异值、奇异向量

    矩阵$V$的前$k$列构成$k$个样本主成分

  3. 求$k×n$样本主成分矩阵:$Y=V^TX$

    $V$的列向量就是$X$的主成分

    ($V$的列向量是$S_X=X’^TX’$的单位特征向量,见奇异值分解章节)