PCA的基本思想:基于最大可分性,即使得投影后的样本点尽可能分开,则需要最大化投影点的方差。
另一种解释是基于最近重构性。
找到一个正交变换
A
A
A,使得
y
=
A
(
x
−
m
x
)
y=A(x-m_x)
y=A(x−mx),则通过
y
y
y可以重构
x
x
x,即
x
=
A
T
y
+
m
x
x=A^Ty+m_x
x=ATy+mx。假设x是一个随机向量,维度为
m
m
m,现在有
n
n
n个样本
x
1
,
x
2
,
.
.
.
,
x
n
{x_1, x_2, ... , x_n}
x1,x2,...,xn。求出协方差矩阵
C
C
C,
C
C
C为实对称矩阵,可以对角化
C
y
=
A
C
A
T
C_y=ACA^T
Cy=ACAT。
执行变换
y
=
A
(
x
−
m
x
)
y=A(x-m_x)
y=A(x−mx),A为正交矩阵,通过
y
y
y可以完全重构出
x
x
x。若取A的前
k
k
k行,可以以最小化误差重构
A
A
A。
算法流程:
(1)构建X:将每个样本作为矩阵的一列,构建
m
×
n
m×n
m×n列的矩阵
X
=
[
x
1
,
x
2
,
.
.
.
,
x
n
]
X=[x_1, x_2, ... , x_n]
X=[x1,x2,...,xn]。
(2)零均值化:计算出样本均值
x
m
x_m
xm,令每个样本减去均值
X
=
X
−
r
e
p
m
a
t
(
m
x
,
1
,
n
)
X=X-repmat(m_x,1,n)
X=X−repmat(mx,1,n)。
(3)求协方差矩阵:
C
=
1
m
X
X
T
C=\frac{1}{m}XX^T
C=m1XXT
(4)求协方差矩阵的特征值和特征向量
(5)将特征向量按特征值从大到小排列成矩阵(每一行是一个特征向量),取前
k
k
k行构建矩阵A。
(6)执行变换
Y
=
A
X
Y=AX
Y=AX。
参考资料: