定义:矩阵
X
∈
R
m
×
n
X\in \mathbb{R}^{m\times n}
X∈Rm×n,
m
m
m代表数据或样本的个数,
n
n
n代表数据的特征(属性)维数,分别计算出每一列的平均值,各列数值分别减去对应列的均值,称为对数据
X
X
X进行去均值操作,记去均值之后的数据记为
X
~
\tilde{X}
X~,则数据
X
X
X的协方差矩阵为:
c
o
v
(
X
)
=
1
m
−
1
X
~
T
X
~
cov(X)=\frac{1}{m-1}\tilde{X}^T\tilde{X}
cov(X)=m−11X~TX~为什么是这样呢?
要去看一篇博客,这篇博客是详细论述PCA(主成分分析)原理的,但是这篇博客中对数据的定义和我们上面的定义正好相反,他的行方向代表数据的特征方向,列方向代表样本条目。所以整个过程的推导都要注意这一点他是反着来的。
这篇博客的重点内容我来说明下:
设原始数据矩阵
X
X
X对应的协方差矩阵为
C
C
C,去均值之后的数据矩阵为
X
~
\tilde{X}
X~,而
P
P
P是一组基按列组成的矩阵,设
Y
=
X
~
P
Y=\tilde{X}P
Y=X~P,则
Y
Y
Y为
X
~
\tilde{X}
X~在新的一组基底
P
P
P下做投影映射得到的数据。设
Y
Y
Y的协方差矩阵为
D
D
D,我们推导一下
D
D
D与
C
C
C的关系:
D
=
1
m
−
1
Y
T
Y
=
1
m
−
1
P
T
X
~
T
X
~
P
=
P
T
(
1
m
−
1
X
~
T
X
~
)
P
=
P
T
C
P
\begin{aligned}D&=\frac{1}{m-1}Y^TY\\ &=\frac{1}{m-1}P^T\tilde{X}^T\tilde{X}P\\ &=P^T\left(\frac{1}{m-1}\tilde{X}^T\tilde{X}\right)P\\ &=P^TCP \end{aligned}
D=m−11YTY=m−11PTX~TX~P=PT(m−11X~TX~)P=PTCP
由于我们构造的
P
P
P都是由标准正交基组成的,并且对称矩阵一定可以对角化或合同化分解,且这种分解除了特征值特征向量的排列顺序可以变化外是唯一的,所以协方差矩阵
D
D
D一定是对角阵,而对角线上的元素表示样本投影到各个基底上之后计算得到的各自基底上投影点的方差,并且是由大到小排列,不同基底的投影点之间的协方差为0,这才是PCA数据降维的核心逻辑,而降维后的主特征其实是一种抽象的映射,并不是简单的去掉某些特征列后得到的数据。
其他部分参看原文。PCA的数学原理
还有相关的协方差基础知识,请移步到这里