主成分分析 PCA
算法概述
相关数学概念:
-
从矩阵空间角度分析PCA方法:
- 对于原始样本来说,其基向量为d个形如(1,0,0,…,0),(0,1,0,…,0),(0,0,0,…,1)的单位正交向量,这些向量张成d维样本空间,样本点的坐标代表着d个基向量的线性组合:
x
i
=
(
x
i
1
,
x
i
2
,
.
.
.
,
x
i
,
d
)
T
=
x
i
1
(
1
,
0
,
0
,
.
.
.
,
0
)
T
+
.
.
.
+
x
i
d
(
0
,
0
,
0
,
.
.
.
,
1
)
T
x_i=(x_{i1},x_{i2},...,x_{i,d})^T=x_{i1}(1,0,0,...,0)^T+...+x_{id}(0,0,0,...,1)^T
xi?=(xi1?,xi2?,...,xi,d?)T=xi1?(1,0,0,...,0)T+...+xid?(0,0,0,...,1)T
-
PCA方法的目的是找到原始样本空间中的m个正交向量p1,p2,…pm,以这些向量张成一个原空间的一个子空间,降维的方法就是将原空间中的样本点映射到子空间中,具体映射方法如下:
W
d
?
m
=
[
p
1
,
p
2
,
.
.
.
,
p
m
]
X
=
[
x
1
,
x
2
,
.
.
.
x
n
]
=
[
x
11
x
21
.
.
.
x
n
1
x
12
x
22
.
.
.
x
n
2
.
.
.
.
.
.
.
.
.
.
.
.
x
1
d
x
2
d
.
.
.
x
n
d
]
W_{d*m}=[p_1,p_2,...,p_m]\\ X=[x_1,x_2,...x_n]= \left[ \begin{matrix} x_{11} & x_{21} & ... & x_{n1}\\ x_{12} & x_{22} & ... & x_{n2}\\ ... & ... & ... & ...\\ x_{1d} & x_{2d} & ... & x_{nd} \end{matrix} \right]
Wd?m?=[p1?,p2?,...,pm?]X=[x1?,x2?,...xn?]=?????x11?x12?...x1d??x21?x22?...x2d??............?xn1?xn2?...xnd???????
Y
=
[
y
1
,
y
2
,
.
.
.
,
y
n
]
=
W
T
X
=
[
p
1
T
,
p
2
T
,
.
.
.
,
p
m
T
]
T
[
x
1
,
x
2
,
.
.
.
,
x
n
]
????????????
=
[
p
1
T
x
1
p
1
T
x
2
.
.
.
p
1
T
x
n
p
2
T
x
1
p
2
T
x
2
.
.
.
p
2
T
x
n
.
.
.
.
.
.
.
.
.
.
.
.
p
m
T
x
1
p
m
T
x
2
.
.
.
p
m
T
x
n
]
Y=[y_1,y_2,...,y_n]=W^TX=[p_1^T,p_2^T,...,p_m^T]^T[x_1,x_2,...,x_n]\\ \ \ \ \ \ \ \ \ \ \ \ \ = \left[ \begin{matrix} p_1^Tx_1 & p_1^Tx_2 & ... & p_1^Tx_n\\ p_2^Tx_1 & p_2^Tx_2 & ... & p_2^Tx_n\\ ... & ... & ... & ...\\ p_m^Tx_1 & p_m^Tx_2 & ... & p_m^Tx_n\\ \end{matrix} \right]
Y=[y1?,y2?,...,yn?]=WTX=[p1T?,p2T?,...,pmT?]T[x1?,x2?,...,xn?]????????????=?????p1T?x1?p2T?x1?...pmT?x1??p1T?x2?p2T?x2?...pmT?x2??............?p1T?xn?p2T?xn?...pmT?xn??????? 得到目标矩阵Y,是投影到子空间后在新基上的n个新点坐标集合,每个yi是一个m维向量, -
低维样本向量
y
i
y_i
yi?中的m个值只是新基下的坐标值,为了恢复原始的高维坐标,需要将坐标值与对应基向量相乘并求和 因此有重构方法:
X
’
=
W
W
T
X
=
[
p
1
,
p
2
,
.
.
.
,
p
m
]
d
?
m
[
y
1
,
y
2
,
.
.
.
,
y
n
]
m
?
n
X’=WW^TX=[p1,p2,...,p_m]_{d*m}[y_1,y_2,...,y_n]_{m*n}
X’=WWTX=[p1,p2,...,pm?]d?m?[y1?,y2?,...,yn?]m?n? -
协方差矩阵
-
方差:衡量变量值的分散程度
V
a
r
(
a
)
=
1
N
∑
i
=
1
N
(
a
i
?
μ
a
)
2
Var(a)=\frac1N \sum_{i=1}^N(a_i-\mu_a)^2
Var(a)=N1?i=1∑N?(ai??μa?)2 -
协方差:协方差可以表示两个变量的相关性,其公式为:
C
o
v
(
a
,
b
)
=
E
[
(
a
?
μ
a
)
(
b
?
μ
b
)
]
=
1
N
?
1
∑
i
=
1
N
(
a
i
?
μ
a
)
(
b
i
?
μ
b
)
Cov(a,b)=E[(a-\mu_a)(b-\mu_b)]=\frac1{N-1}\sum_{i=1}^N(a_i-\mu_a)(b_i-\mu_b)
Cov(a,b)=E[(a?μa?)(b?μb?)]=N?11?i=1∑N?(ai??μa?)(bi??μb?) 当预先对属性进行规范化(令均值为0,方差为1)后,有:
C
o
v
(
a
,
b
)
=
1
n
?
1
∑
i
=
1
N
a
i
b
i
≈
1
n
∑
i
=
1
N
a
i
b
i
Cov(a,b)=\frac1{n-1}\sum_{i=1}^Na_ib_i\approx\frac1n\sum_{i=1}^Na_ib_i
Cov(a,b)=n?11?i=1∑N?ai?bi?≈n1?i=1∑N?ai?bi? -
协方差矩阵: 对含有n个d维数据样本的样本矩阵X
X
=
[
x
11
x
21
.
.
.
x
n
1
x
12
x
22
.
.
.
x
n
2
.
.
.
.
.
.
.
.
.
x
1
d
x
2
d
.
.
.
x
n
3
]
X=\left[ \begin{matrix} x_{11} & x_{21} & ...& x_{n1}\\ x_{12} & x_{22} & ...& x_{n2}\\ ... & ... & ...& \\ x_{1d} & x_{2d} & ...& x_{n3} \end{matrix} \right]
X=?????x11?x12?...x1d??x21?x22?...x2d??............?xn1?xn2?xn3??????? 其协方差矩阵为
∑
d
?
d
=
X
X
T
=
[
C
o
v
(
a
t
t
r
1
,
a
t
t
r
1
)
C
o
v
(
a
t
t
r
1
,
a
t
t
r
2
)
.
.
.
C
o
v
(
a
t
t
r
1
,
a
t
t
r
d
)
C
o
v
(
a
t
t
r
2
,
a
t
t
r
1
)
C
o
v
(
a
t
t
r
2
,
a
t
t
r
2
)
.
.
.
C
o
v
(
a
t
t
r
2
,
a
t
t
r
d
)
.
.
.
.
.
.
.
.
.
.
.
.
C
o
v
(
a
t
t
r
d
,
a
t
t
r
1
)
C
o
v
(
a
t
t
r
d
,
a
t
t
r
2
)
.
.
.
C
o
v
(
a
t
t
r
d
,
a
t
t
r
d
)
]
\sum_{d*d}=XX^T=\left[ \begin{matrix} Cov(attr_1,attr_1) & Cov(attr_1,attr_2) & ... & Cov(attr_1,attr_d)\\ Cov(attr_2,attr_1) & Cov(attr_2,attr_2) & ... & Cov(attr_2,attr_d)\\ ... & ... & ... & ...\\ Cov(attr_d,attr_1) & Cov(attr_d,attr_2) & ... & Cov(attr_d,attr_d) \end{matrix} \right]
d?d∑?=XXT=?????Cov(attr1?,attr1?)Cov(attr2?,attr1?)...Cov(attrd?,attr1?)?Cov(attr1?,attr2?)Cov(attr2?,attr2?)...Cov(attrd?,attr2?)?............?Cov(attr1?,attrd?)Cov(attr2?,attrd?)...Cov(attrd?,attrd?)??????
核心思路:
-
最大化方差(最大可分性):
- 直观来讲,PCA方法的目的是在原样本空间中找到m个方向,使原始样本点在这m个方向上的投影尽可能地分散,以此保证原始样本点在投影时不会出现多点投影到一点,进而导致较大信息损失的情况
如上图,投影到方差小的坐标轴方向会出现多对一的映射,原本可分的样本变得不可分,信息损失较大
同时,对于目标维度d>1的情况,为了尽可能表示更多的原始信息,希望各个基向量不存在线性相关性,即基向量相互正交
-
目标维度上方差最大化的思路可以用数学语言表示为:
a
r
g
m
a
x
W
=
t
r
(
W
T
X
X
T
W
)
s
.
t
.
?
W
T
W
=
I
\underset {W}{argmax} = tr(W^TXX^TW)\\ s.t.\ W^TW=I
Wargmax?=tr(WTXXTW)s.t.?WTW=I 就目标函数而言,基向量有正交限制,但如果不对基向量的模长进行限制,目标函数无上限,因此该目标函数需要对W进行单位正交限制 -
最小化重构误差:
-
此为PCA的另一种理解方式,即要求在通过
Y
=
f
(
X
)
Y=f(X)
Y=f(X)降维之后,再通过
X
′
=
f
?
1
(
Y
)
X'=f^{-1}(Y)
X′=f?1(Y)恢复到原来的高维度,最小化
X
X
X与
X
′
X'
X′的距离(差距) -
以线性变换为例,如:对
Y
=
W
T
X
Y=W^TX
Y=WTX,可以通过
X
′
=
W
W
T
X
X'=WW^TX
X′=WWTX进行恢复(重构) -
最小化重构误差的数学表达:
a
r
g
m
i
n
W
∣
∣
X
?
W
W
T
X
∣
∣
F
2
s
.
t
.
?
W
T
W
=
I
\underset{W}{argmin}||X-WW^TX||_F^2 \\ s.t.\ W^TW=I
Wargmin?∣∣X?WWTX∣∣F2?s.t.?WTW=I -
两种思路的一致性:
- 对于最小化重构误差思路:
∣
∣
X
?
W
W
T
X
∣
∣
F
2
=
t
r
[
(
X
?
W
W
T
X
)
(
X
?
W
W
T
X
)
T
]
=
t
r
(
X
X
T
?
X
X
T
W
W
T
?
W
W
T
X
X
T
+
W
W
T
X
X
T
W
W
T
)
=
t
r
(
∑
)
?
t
r
(
W
T
X
X
T
W
)
?
t
r
(
W
T
X
X
T
W
)
+
t
r
(
W
T
X
X
T
W
)
=
t
r
(
∑
)
?
t
r
(
W
T
X
X
T
W
)
\begin{aligned} ||X-WW^TX||_F^2 &= tr[(X-WW^TX)(X-WW^TX)^T]\\ &=tr(XX^T-XX^TWW^T-WW^TXX^T+WW^TXX^TWW^T)\\ &=tr(\sum)-tr(W^TXX^TW^)-tr(W^TXX^TW)+tr(W^TXX^TW)\\ &=tr(\sum)-tr(W^TXX^TW) \end{aligned}
∣∣X?WWTX∣∣F2??=tr[(X?WWTX)(X?WWTX)T]=tr(XXT?XXTWWT?WWTXXT+WWTXXTWWT)=tr(∑)?tr(WTXXTW)?tr(WTXXTW)+tr(WTXXTW)=tr(∑)?tr(WTXXTW)? 由于协方差阵确定,最小化重构误差即为最大化
t
r
(
W
T
X
X
T
W
)
tr(W^TXX^TW)
tr(WTXXTW),即为最大化方差
算法推导
-
矩阵形式目标函数最优化: 以最大化方差为优化目标:
目
标
:
a
r
g
?
m
a
x
W
??
t
r
(
W
T
∑
W
)
???
s
.
t
.
?
W
T
W
=
I
对
有
约
束
最
优
化
问
题
,
由
拉
格
朗
日
乘
子
法
,
得
:
?
t
r
(
W
T
∑
W
)
?
t
r
(
Λ
(
W
T
W
?
I
)
)
求
导
并
令
值
为
0
,
得
:
?
2
∑
W
?
2
W
Λ
=
0
即
:
∑
W
=
W
Λ
目标:\underset {W}{arg\ max} \ \ tr(W^T\sum W)\ \ \ s.t.\ W^TW=I\\ 对有约束最优化问题,由拉格朗日乘子法,得:\ tr(W^T\sum W)-tr(\Lambda(W^TW-I)) \\ 求导并令值为0,得: \ 2\sum W-2W\Lambda=0 \\ 即:\sum W=W\Lambda \\
目标:Warg?max???tr(WT∑W)???s.t.?WTW=I对有约束最优化问题,由拉格朗日乘子法,得:?tr(WT∑W)?tr(Λ(WTW?I))求导并令值为0,得:?2∑W?2WΛ=0即:∑W=WΛ 证明一:变换矩阵W中的列向量为协方差矩阵
∑
\sum
∑的特征向量
W
d
?
m
=
[
p
1
,
p
2
,
.
.
.
,
p
m
]
∑
d
?
d
=
X
X
T
=
[
C
o
v
(
a
1
,
a
1
)
C
o
v
(
a
1
,
a
2
)
.
.
.
C
o
v
(
a
1
,
a
d
)
C
o
v
(
a
2
,
a
1
)
C
o
v
(
a
2
,
a
2
)
.
.
.
C
o
v
(
a
2
,
a
d
)
.
.
.
.
.
.
.
.
.
.
.
.
C
o
v
(
a
d
,
a
1
)
C
o
v
(
a
d
,
a
2
)
.
.
.
C
o
v
(
a
d
,
a
d
)
]
\underset{d*m}W=[p_1,p_2,...,p_m]\\ \\ \sum_{d*d}=XX^T=\left[ \begin{matrix} Cov(a_1,a_1) & Cov(a_1,a_2) & ... & Cov(a_1,a_d)\\ Cov(a_2,a_1) & Cov(a_2,a_2) & ... & Cov(a_2,a_d)\\ ... & ... & ... & ...\\ Cov(a_d,a_1) & Cov(a_d,a_2) & ... & Cov(a_d,a_d) \end{matrix} \right]
d?mW?=[p1?,p2?,...,pm?]d?d∑?=XXT=?????Cov(a1?,a1?)Cov(a2?,a1?)...Cov(ad?,a1?)?Cov(a1?,a2?)Cov(a2?,a2?)...Cov(ad?,a2?)?............?Cov(a1?,ad?)Cov(a2?,ad?)...Cov(ad?,ad?)??????
∑
W
d
?
m
=
[
∑
p
1
,
∑
p
2
,
.
.
.
,
∑
p
m
]
Λ
m
?
m
=
[
λ
1
0
.
.
.
0
0
λ
2
.
.
.
0
.
.
.
.
.
.
.
.
.
.
.
.
0
0
.
.
.
λ
m
]
\underset{d*m}{\sum W}= [\sum p_1,\sum p_2,...,\sum p_m] \underset {m*m}\Lambda=\left[ \begin{matrix} \lambda_1 & 0 & ... & 0 \\ 0 & \lambda_2 & ... & 0\\ ... & ... & ... & ...\\ 0 & 0 & ... & \lambda_m \end{matrix} \right ]
d?m∑W?=[∑p1?,∑p2?,...,∑pm?]m?mΛ?=?????λ1?0...0?0λ2?...0?............?00...λm???????
W
Λ
d
?
m
=
[
λ
1
p
1
,
λ
2
p
2
,
.
.
.
,
λ
m
p
m
]
\underset {d*m}{W\Lambda}=[\lambda_1p_1, \lambda_2p_2,...,\lambda_mp_m]
d?mWΛ?=[λ1?p1?,λ2?p2?,...,λm?pm?] 由等式可得:
∑
W
=
W
Λ
[
∑
p
1
,
∑
p
2
,
.
.
.
,
∑
p
m
]
=
[
λ
1
p
1
,
λ
2
p
2
,
.
.
.
,
λ
m
p
m
]
\sum W = W\Lambda \\ [\sum p_1,\sum p_2,...,\sum p_m] = [\lambda_1p_1, \lambda_2p_2,...,\lambda_mp_m]
∑W=WΛ[∑p1?,∑p2?,...,∑pm?]=[λ1?p1?,λ2?p2?,...,λm?pm?] 即得到等式组:
{
∑
p
1
=
λ
1
p
1
∑
p
2
=
λ
1
p
2
.
.
.
∑
p
m
=
λ
1
p
m
\left \{ \begin{aligned} \sum p_1&=\lambda_1p_1\\ \sum p_2&=\lambda_1p_2\\ ...\\ \sum p_m&=\lambda_1p_m \end{aligned} \right.
????????????????∑p1?∑p2?...∑pm??=λ1?p1?=λ1?p2?=λ1?pm??
同时存在单位正交约束:
{
p
i
p
j
=
0
???
i
≠
j
p
i
p
j
=
1
???
i
=
j
\left \{ \begin{aligned} p_ip_j=0 \ \ \ i\neq j\\ p_ip_j=1 \ \ \ i=j \end{aligned} \right.
{pi?pj?=0???i?=jpi?pj?=1???i=j?
因此可证得,
p
i
p_i
pi?为协方差矩阵特征向量,
x
i
x_i
xi? 为特征值。即满足该条件时,该最优化问题取得极值
? 证明二:当选取的特征向量是对应特征值最大的m个时,方差最大
优化目标:
t
r
(
W
T
∑
W
)
=
t
r
(
W
T
W
Λ
)
=
t
r
(
Λ
)
tr(W^T\sum W)=tr(W^TW\Lambda)=tr(\Lambda)
tr(WT∑W)=tr(WTWΛ)=tr(Λ) 因此最大化方差等价于最大化对角阵
Λ
\Lambda
Λ的迹,即最大化m个特征向量对应的特征值之和
算法流程
1)标准化样本矩阵X,使样本均值为0,方差为1
2)计算协方差矩阵,进行特征值分解,获取<特征值,特征向量>对
3)选取最大m个特征值对应的特征向量
p
1
,
.
.
.
p
m
p_1,...p_m
p1?,...pm?,组成变换矩阵W
4)通过
Y
=
W
T
X
Y=W^TX
Y=WTX的变换,将样从d维降至m维
|