PCA的数学公式求解步骤总结
首先明确目的,PCA要做的事情就是,对于样本矩阵
X
X
X(矩阵的形状为m×n,有m个样本,每个样本有n维特征),
,
寻求一个变换矩阵D,使得样本矩阵乘上变换矩阵D之后得到G(X) ,即G(X)= XD,G(X)为样本矩阵X的低维表征,所以PCA所做的的事情概括起来就是,在不损失大量信息的前提下,采用更少的特征维度(p<n)来表征样本,从而起到压缩数据的降维作用,而被保留下来的特征则是样本矩阵的主要特征(这里的主要特征的意思是指可以用来区分不同样本的特征)。找到变换矩阵D,主要包括以下几个步骤:
-
①去均值化(为后面求协方差矩阵做准备)
-
②利用去均值之后的样本矩阵,求得协方差矩阵 C = 1 m X T X C=\frac{1}{m}X^TX C=m1XTX(形状为n×n)【注意:矩阵中的元素是求不同维度之间的协方差】
-
③求 C C C对应的特征值对角阵 d i a g ( λ ) diag( \lambda) diag(λ)及特征值对应的特征向量为列组成的特征向量矩阵,其中对角阵中主对角线上的特征值按照从大到小排列。
-
④选取协方差矩阵 C C C前p大的特征值,获得这p个特征值对应的特征向量(n×1),将这P个特征向量按顺序排列得到对应的矩阵 (n×p),此时求得的矩阵 D D D就是上述的变换矩阵。
此时的
D
D
D矩阵乘上原来的样本矩阵
X
X
X之后需要保证两件事情,
①矩阵G(X)同一维度(列)上的方差尽可能的大(信息度越大)。
②矩阵G(X)不同维度(列)之间的相关性,尽可能的小,避免信息冗余。
关于该结论的数学证明详见该文章参考
(注:需要用到拉格朗日乘数法和矩阵求导的相关知识,此处不再赘述)