主成分分析可用于降维。主成分可以理解为主反向或者主要信息。也就是给定 n n n个 d d d维的列向量 { x i ∈ R d × 1 } i = 1 n \{\bm{x}_i\in \mathbb{R}^{d\times 1}\}_{i=1}^n {xi∈Rd×1}i=1n,假设现在要找到的主方向是 w 1 w_1 w1。然后主方向和这些样本什么关系呢?如果这些样本是二维的,相当于二维平面里的很多点,而这个主方向 w 1 w_1 w1就是能拟合所有的点的直线。找到最好的主方向有多个角度可以理解。
第一个角度:
映射到
w
1
w_1
w1直线上的投影长度的方差尽可能大,因此有如下目标:
arg
max
w
1
v
a
r
[
w
1
T
x
]
=
arg
max
w
1
E
[
(
w
1
T
x
−
E
[
w
1
T
x
]
)
2
]
\arg\max\limits_{w_1} var[w_1^Tx] \\=\arg\max\limits_{w_1} E[(w_1^Tx-E[w_1^Tx])^2]
argw1maxvar[w1Tx]=argw1maxE[(w1Tx−E[w1Tx])2]
为了方便后续操作,假设已经将数据中心化(减去均值)。
=
arg
max
w
1
E
[
(
w
1
T
x
)
2
]
=
arg
max
w
1
1
n
∑
i
=
1
n
(
w
1
T
x
i
)
2
=
arg
max
w
1
∑
i
=
1
n
w
1
T
x
i
x
i
T
w
1
=
arg
max
w
1
w
1
T
(
∑
i
=
1
n
x
i
x
i
T
)
w
1
=
arg
max
w
1
w
1
T
(
X
X
T
)
w
1
=
arg
min
w
1
−
w
1
T
(
X
X
T
)
w
1
\\=\arg\max\limits_{w_1} E[(w_1^Tx)^2] \\=\arg\max\limits_{w_1} \frac{1}{n}\sum\limits_{i=1}^n(w_1^Tx_i)^2 \\=\arg\max\limits_{w_1} \sum\limits_{i=1}^nw_1^Tx_ix_i^Tw_1 \\=\arg\max\limits_{w_1} w_1^T(\sum\limits_{i=1}^nx_ix_i^T)w_1 \\=\arg\max\limits_{w_1} w_1^T(XX^T)w_1 \\=\arg\min\limits_{w_1} -w_1^T(XX^T)w_1
=argw1maxE[(w1Tx)2]=argw1maxn1i=1∑n(w1Txi)2=argw1maxi=1∑nw1TxixiTw1=argw1maxw1T(i=1∑nxixiT)w1=argw1maxw1T(XXT)w1=argw1min−w1T(XXT)w1
因为
w
1
w_1
w1不能无限大,有约束条件
w
1
T
w
1
=
1
w_1^Tw_1=1
w1Tw1=1。
拉格朗日函数:
L
(
w
1
,
λ
)
=
−
w
1
T
(
X
X
T
)
w
1
+
λ
(
w
1
T
w
1
−
1
)
L(w_1,\lambda)=-w_1^T(XX^T)w_1+\lambda(w_1^Tw_1-1)
L(w1,λ)=−w1T(XXT)w1+λ(w1Tw1−1)
令
∂
L
(
w
1
,
λ
)
∂
w
1
=
0
\frac{\partial L(w_1,\lambda)}{\partial w_1}=0
∂w1∂L(w1,λ)=0
得:
X
X
T
w
1
=
λ
w
1
XX^Tw_1=\lambda w_1
XXTw1=λw1
即主方向是
X
X
T
XX^T
XXT的特征向量方向。那个特征方向最好呢?考虑到
w
1
T
(
X
X
T
)
w
1
=
w
1
T
λ
w
1
=
λ
w_1^T(XX^T)w_1=w_1^T\lambda w_1=\lambda
w1T(XXT)w1=w1Tλw1=λ。因此最大化
w
1
T
(
X
X
T
)
w
1
w_1^T(XX^T)w_1
w1T(XXT)w1,就是求最大的特征根以及对应的特征向量。
然后求第二主成分:
arg
max
w
2
w
2
T
(
X
X
T
)
w
2
\arg\max\limits_{w_2} w_2^T(XX^T)w_2
argw2maxw2T(XXT)w2
s
.
t
.
w
1
T
w
2
=
0
,
w
2
T
w
2
=
1
s.t. w_1^Tw_2=0,~~w_2^Tw_2=1
s.t.w1Tw2=0, w2Tw2=1
即为了保持和第一主成分不相关,使
w
1
T
w
2
=
0
w_1^Tw_2=0
w1Tw2=0。然后最大化第二主方向上的投影方差。
实际上, X X T XX^T XXT是实对称矩阵,所以不同特征向量是一定正交的。所以直接求出 X X T XX^T XXT第二大特征值对应的特征向量即为 w 2 w_2 w2。
第二个角度:
考虑过原点的直线来拟合所有点,让最小化重构误差。
arg
min
w
1
1
n
∑
i
=
1
n
(
x
i
−
l
i
w
1
)
2
\arg\min\limits_{w_1}\frac{1}{n}\sum\limits_{i=1}^n(x_i-l_iw_1)^2
argw1minn1i=1∑n(xi−liw1)2
w
1
w_1
w1为单位向量,与直线同方向。
https://blog.csdn.net/zhongkejingwang/article/details/42264479
https://blog.csdn.net/zhongkelee/article/details/44064401
https://www.jianshu.com/p/1e9cab07d54d