文章目录
原始数据有时有高维特征向量,可能包含很多冗余和噪声。通过降维寻找数据内部的特性,提升特征的表达能力,降低训练复杂度。
1.PCA,主成分分析
PCA,principal components analysis,是一种线性、非监督、全局的降维算法。
在高维空间中,用原有坐标系表示的数据,可能有线性相关的关系;如果变换坐标轴,变换后能用更少的基向量去表示数据,去除线性相关的维度。这样就可以将源数据降维。
如图:原二维空间中,数据中有线性关系;而将坐标系变换到右图后,横坐标更能表示样本的数据,纵坐标作用几乎消失。
- 主成分:通过正交变换,将一组可能存在相关性的变量变换为一组线性不相关的变量,变换后的这组变量叫主成分。
1.1 方差最大原理
- 推导
- 设样本点集 D = x i , ⋯   , x m , x i ∈ R n D={x_i,\cdots,x_m},x_i\in R^n D=xi,⋯,xm,xi∈Rn,其中样本经过中心化即 x i = x i − μ x_i = x_i-\mu xi=xi−μ。目前样本点由n个正交基 [ 1 , 0 , ⋯   , 0 ] T , [ 0 , 1 , ⋯   , 0 ] T , ⋯   , [ 0 , 0 , ⋯   , 1 ] T [1,0,\cdots,0]^T,[0,1,\cdots,0]^T,\cdots,[0,0,\cdots,1]^T [1,0,⋯,0]T,[0,1,⋯,0]T,⋯,[0,0,⋯,1]T表示。我们想要将坐标轴变换后由k个正交基 w i , ⋯   , w k w_i,\cdots,w_k wi,⋯,wk表示, w i T w i = 1 , w i T w j = 0 w_i^Tw_i=1,w_i^Tw_j=0 wiTwi=1,wiTwj=0。
- 为何原数据n维能由k维表示?
我们把正交基 w w w想象成一个向量,样本 x i x_i xi在这个轴上的取值,就等于样本在向量上的投影 x i T w x_i^Tw xiTw。
在信号处理领域,认为信号具有较大方差,噪声具有较小方差,信号与噪声比成为信噪比。信噪比越大,信号质量越好。同样的,如果在变换后的轴 w w w上,样本的投影方差越大,这个轴对数据的表示越好。
如果样本在某个轴上投影后取值方差小,就代表这个轴上的取值对数据的表达不够好。这个轴上的取值就可以被抛弃 。
μ
′
=
1
m
∑
x
i
T
w
=
(
1
m
∑
x
i
T
)
w
=
0
D
(
x
)
=
1
m
∑
(
x
i
T
w
−
μ
′
)
2
=
1
m
∑
(
x
i
T
w
)
2
=
w
T
(
1
m
∑
x
i
x
i
T
)
w
=
w
T
Σ
w
=
t
r
(
w
T
X
X
T
w
)
\begin{aligned} \mu^\prime &= \frac{1}{m}\sum x_i^Tw = (\frac{1}{m}\sum x_i^T)w = 0\\ D(x) &= \frac{1}{m}\sum(x_i^Tw - \mu^\prime)^2 = \frac{1}{m}\sum(x_i^Tw)^2 \\ &= w^T \Big( \frac{1}{m} \sum x_ix_i^T\Big)w \\ & = w^T \Sigma w \\ &=tr(w^T XX^Tw) \end{aligned}
μ′D(x)=m1∑xiTw=(m1∑xiT)w=0=m1∑(xiTw−μ′)2=m1∑(xiTw)2=wT(m1∑xixiT)w=wTΣw=tr(wTXXTw)
这时需要求解
{
max
w
T
Σ
w
s
.
t
.
w
T
w
=
1
\begin{cases} \max \quad & w^T\Sigma w \\s.t. \quad & w^Tw=1 \end{cases}
{maxs.t.wTΣwwTw=1
拉格朗日函数
L
=
w
T
Σ
w
+
λ
(
1
−
w
T
w
)
∂
L
∂
w
=
2
Σ
w
−
2
λ
w
=
0
\begin{aligned} L &= w^T\Sigma w + \lambda(1-w^Tw) \\ \frac{\partial L}{\partial w} &= 2\Sigma w -2\lambda w=0 \end{aligned}
L∂w∂L=wTΣw+λ(1−wTw)=2Σw−2λw=0
得到
Σ
w
=
λ
w
\Sigma w= \lambda w
Σw=λw(即
w
,
λ
w,\lambda
w,λ分别是
Σ
\Sigma
Σ矩阵的特征向量和特征值),代入
D
(
x
)
=
w
T
Σ
w
D(x)= w^T\Sigma w
D(x)=wTΣw 中得到
D
(
x
)
=
λ
D(x) = \lambda
D(x)=λ
因此想要映射方差最大,取最大的特征值
λ
\lambda
λ即可
2. 总结
获取数据后
- 对样本数据中心化处理
- 计算协方差矩阵(两两特征之间的斜方差)
- 计算协方差矩阵的特征值、特征向量(eigenvalues, eigenvectors),将特征值和对应的特征向量按照特征值的大小排序
- 对特征值前k大的特征向量
w
1
,
w
2
,
⋯
 
,
w
k
w_1,w_2,\cdots,w_k
w1,w2,⋯,wk,通过以下映射将n维样本映射到d维(即生成一个矩阵
W
=
[
w
1
,
w
2
,
⋯
 
,
w
k
]
k
×
n
T
W=[w_1,w_2,\cdots,w_k]^T_{k\times n}
W=[w1,w2,⋯,wk]k×nT,对样本
W
x
Wx
Wx变换)
x ′ = [ w 1 T x i w 2 T x i ⋮ w k T x i ] x^ \prime = \begin{bmatrix} w_1^T x_i \\ w_2^T x_i \\ \vdots \\w_k^T x_i \end{bmatrix} x′=⎣⎢⎢⎢⎡w1Txiw2Txi⋮wkTxi⎦⎥⎥⎥⎤
(由于协方差矩阵是对称矩阵,线代中定理可得,一定能找到矩阵使对称矩阵对角化 P − 1 A P = Λ P^{-1}AP =\Lambda P−1AP=Λ,其中 Λ \Lambda Λ对角线上数据是矩阵A的特征值,而P矩阵的列向量就是A的特征向量,并且如果 λ \lambda λ值不同,对应的特征向量之间正交)
降维后的信息占比定义为
η
=
∑
k
λ
i
2
∑
n
λ
i
2
\eta = \sqrt \frac{\sum^k\lambda_i^2}{\sum^n\lambda_i^2}
η=∑nλi2∑kλi2
1.2 最小平方误差角度
PCA求解的其实是最佳投影方向,也就是一条直线,可以用线性回归的角度解释。
以二维空间为例,找到一条直线,使所有的样本点到直线投影点的距离和最小。
在 R n R^n Rn高维空间中,要找到一个k维的超平面,使数据点到超平面的距离平方和最小。
- 设k维超平面的标准正交基 W = { w 1 , ⋯   , w k } W=\{ w_1,\cdots,w_k \} W={w1,⋯,wk}。
- 样本 x x x在超平面上的投影向量为 x ~ \tilde x x~;
- 投影向量可以表示为
x
~
=
∑
i
=
0
k
(
w
i
T
x
)
w
i
\tilde x = \sum_{i=0}^k(w_i^Tx)w_i
x~=∑i=0k(wiTx)wi
其中 w i T x w_i^Tx wiTx是样本在 w i w_i wi方向的投影长度。
要想使原样本点到投影点的距离之和最小
arg
min
w
1
,
⋯
 
,
w
k
∑
∣
∣
x
−
x
~
∣
∣
2
2
s
.
t
.
w
i
T
w
j
=
δ
i
j
=
{
1
,
i
=
j
0
,
i
≠
j
\begin{aligned} \arg &\min_{w_1,\cdots,w_k} \sum||x -\tilde x||_2^2 \\ s.t. &\quad w_i^Tw_j = \delta_{ij} = \begin{cases}1 ,&i=j \\ 0,&i \quad\neq j\end{cases} \end{aligned}
args.t.w1,⋯,wkmin∑∣∣x−x~∣∣22wiTwj=δij={1,0,i=ji̸=j
展开
∣
∣
x
−
x
~
∣
∣
2
2
||x - \tilde x||_2^2
∣∣x−x~∣∣22
∣
∣
x
−
x
~
∣
∣
2
2
=
x
T
x
+
x
~
T
x
~
−
2
x
T
x
~
x
T
x
~
=
x
T
∑
i
=
0
k
(
w
i
T
x
)
w
i
=
∑
i
=
0
k
(
w
i
T
x
)
x
T
w
i
=
∑
i
=
0
k
w
i
T
x
x
T
w
i
x
~
T
x
~
=
∑
i
=
0
k
(
w
i
T
x
)
w
i
T
∑
j
=
0
k
(
w
j
T
x
)
w
j
=
∑
i
=
0
k
∑
j
=
0
k
(
w
i
T
x
)
(
w
j
T
x
)
w
i
T
w
j
=
∑
i
=
0
k
(
w
i
T
x
)
(
w
i
T
x
)
w
i
T
w
i
=
∑
i
=
0
k
w
i
T
x
x
T
w
i
w
i
T
w
i
=
∑
i
=
0
k
w
i
T
x
x
T
w
i
∣
∣
x
−
x
~
∣
∣
2
2
=
−
∑
i
=
0
k
w
i
T
x
x
T
w
i
+
c
o
n
s
t
a
n
t
∑
∣
∣
x
−
x
~
∣
∣
2
2
=
−
∑
i
=
0
k
w
i
T
(
∑
m
=
1
x
m
x
m
T
)
w
i
=
m
∑
i
=
0
k
w
i
T
Σ
w
i
\begin{aligned} ||x - \tilde x||_2^2 &= x^Tx + \tilde x^T\tilde x -2x^T\tilde x \\ x^T\tilde x &= x^T\sum_{i=0}^k(w_i^Tx)w_i = \sum_{i=0}^k(w_i^Tx)x^Tw_i = \sum_{i=0}^kw_i^Txx^Tw_i \\ \tilde x^T\tilde x &= \sum_{i=0}^k(w_i^Tx)w_i^T\sum_{j=0}^k(w_j^Tx)w_j = \sum_{i=0}^k\sum_{j=0}^k(w_i^Tx)(w_j^Tx)w_i^Tw_j \\ &= \sum_{i=0}^k (w_i^Tx)(w_i^Tx)w_i^T w_i \\ &= \sum_{i=0}^k w_i^Tx x^Tw_iw_i^T w_i = \sum_{i=0}^kw_i^Txx^Tw_i \\ ||x - \tilde x||_2^2 &= -\sum_{i=0}^kw_i^Txx^Tw_i + constant \\ \sum||x -\tilde x||_2^2 &= - \sum_{i=0}^k w_i^T\Big( \sum_{m=1}x_mx_m^T\Big)w_i = m \sum_{i=0}^k w_i^T\Sigma w_i \end{aligned}
∣∣x−x~∣∣22xTx~x~Tx~∣∣x−x~∣∣22∑∣∣x−x~∣∣22=xTx+x~Tx~−2xTx~=xTi=0∑k(wiTx)wi=i=0∑k(wiTx)xTwi=i=0∑kwiTxxTwi=i=0∑k(wiTx)wiTj=0∑k(wjTx)wj=i=0∑kj=0∑k(wiTx)(wjTx)wiTwj=i=0∑k(wiTx)(wiTx)wiTwi=i=0∑kwiTxxTwiwiTwi=i=0∑kwiTxxTwi=−i=0∑kwiTxxTwi+constant=−i=0∑kwiT(m=1∑xmxmT)wi=mi=0∑kwiTΣwi
目标函数转化为
arg
max
w
1
,
w
2
,
⋯
 
,
w
k
∑
i
=
0
k
w
i
T
Σ
w
i
s
.
t
.
w
i
T
w
i
=
1
,
i
=
1
,
2
,
⋯
 
,
k
\begin{aligned} \arg&\max_{w_1,w_2,\cdots,w_k} \sum_{i=0}^k w_i^T\Sigma w_i \\ s.t.& \quad w_i^Tw_i=1,\quad i=1,2,\cdots,k \end{aligned}
args.t.w1,w2,⋯,wkmaxi=0∑kwiTΣwiwiTwi=1,i=1,2,⋯,k
拉格朗日函数
L
=
∑
i
=
0
k
w
i
T
Σ
w
i
+
∑
i
=
1
k
λ
i
(
1
−
w
i
T
w
i
)
\begin{aligned} L &= \sum_{i=0}^k w_i^T\Sigma w_i+ \sum_{i=1}^k \lambda_i (1-w_i^Tw_i) \\ \end{aligned}
L=i=0∑kwiTΣwi+i=1∑kλi(1−wiTwi)
此时对每个基向量求导与最大方差理论等价
1.3 总结
PCA是一种线性降维方法,虽然经典,但有一定局限性。可以通过核映射对PCA进行扩展,得到核主成分分析(KPCA);或流行映射的降维方法,比如等距映射、局部线性嵌入、拉普拉斯特征映射等。对一些PCA效果不好的复杂数据集进行非线性降维操作。
2.SVD(奇异值分解)
SVD奇异值分解等价于PCA主成分分析。核心都是求解 X T X X^TX XTX的特征值及对应的特征向量。
- SVD原理。
X X X是样本数据,将其分解为以下表达式
X = U Σ V T X=U\Sigma V^T X=UΣVT
维度表示如下:
其中,
- U是 m × m m\times m m×m维矩阵,且 U T U = I , U T = U − 1 U^TU=I,U^T=U^{-1} UTU=I,UT=U−1。
- Σ \Sigma Σ是 m × n m\times n m×n,除了主对角线上的元素以外全部为0
- V是 n × n n \times n n×n维矩阵,且 V T V = I , V T = V − 1 V^TV=I,V^T=V^{-1} VTV=I,VT=V−1。
- 最终X是 m × n m\times n m×n维。
- 可以限制 Σ \Sigma Σ的维度。
- 求解
X = U Σ V T X=U\Sigma V^T X=UΣVT
- 求解
U
U
U
X X T = U Σ V T V Σ T U T = U m × m Σ m × n Σ n × m T U m × m T \begin{aligned} XX^T &= U\Sigma V^TV\Sigma^T U^T=U_{m\times m}\Sigma_{m\times n}\Sigma^T_{n\times m}U^T_{m\times m} \\ \end{aligned} XXT=UΣVTVΣTUT=Um×mΣm×nΣn×mTUm×mT
其中 Σ m × n Σ n × m T \Sigma_{m\times n}\Sigma^T_{n\times m} Σm×nΣn×mT是 m × m m\times m m×m,只有左上角 n × n n\times n n×n的对角线上有数据,其他元素都是0.
相当于求解 X X T XX^T XXT的特征值和特征向量。 - 求解
V
V
V
X T X = V Σ T U T U Σ V T = V n × n Σ n × m T Σ m × n V n × n T \begin{aligned} X^TX &= V\Sigma^T U^TU\Sigma V^T=V_{n\times n}\Sigma^T_{n\times m}\Sigma_{m\times n}V^T_{n\times n} \\ \end{aligned} XTX=VΣTUTUΣVT=Vn×nΣn×mTΣm×nVn×nT
其中 Σ n × m T Σ m × n \Sigma^T_{n\times m}\Sigma_{m\times n} Σn×mTΣm×n是 n × n n\times n n×n,只有对角线上有数据,其他元素都是0.
相当于求解 X T X X^TX XTX的特征值和特征向量。 - 求解
Σ
\Sigma
Σ
X = U Σ V T X V n × n = U Σ V T V = U m × m Σ m × n X m × n v i n × 1 = σ i u i m × 1 σ i = X v i / u i \begin{aligned} X&= U\Sigma V^T \\ XV_{n\times n} &= U\Sigma V^TV=U_{m\times m}\Sigma_{m\times n}\\ X_{m \times n}v_{i_{n\times 1}}&= \sigma_iu_{i_{m\times 1}} \\ \sigma_i &= Xv_i/u_i \end{aligned} XXVn×nXm×nvin×1σi=UΣVT=UΣVTV=Um×mΣm×n=σiuim×1=Xvi/ui
其实由求解 U , V U,V U,V的过程可以得到, σ i = λ i \sigma_i = \sqrt{\lambda_i} σi=λi
- SVD性质
- 将奇异值矩阵 Σ \Sigma Σ中按照 σ i \sigma_i σi大小排列,奇异值减少特别的快。在很多情况下,前10% 甚至1%的奇异值就占了全部奇异值之和的99%以上。
- 可以利用最大k个奇异值和对应的左右奇异向量来描述矩阵。
A m × n = U m × m Σ m × n V n × n T ≈ U m × k Σ k × k V k × n T A_{m\times n} = U_{m\times m} \Sigma_{m \times n} V^T_{n \times n} \approx U_{m\times k}\Sigma_{k \times k}V^T_{k \times n} Am×n=Um×mΣm×nVn×nT≈Um×kΣk×kVk×nT
k比n小很多。 - SVD中压缩分为两部分
- U代表对样本维数做压缩,这部分可以用于计算PCA(PCA 计算依赖于斜方差矩阵,很耗资源)
- V代表对样本数目做压缩。 X d × n = U d × m T X m × n X_{d\times n} = U^T_{d\times m}X_{m\times n} Xd×n=Ud×mTXm×n
- SVD的左奇异矩阵可以用来计算PCA。
3.LDA,线性判别分析
LDA(linear discriminant analysis),是一种有监督学习算法,常用来对数据进行降维。
- PCA中,算法不考虑数据的标签,把原始数据映射到一些所有数据间方差较大的方向
- LDA中,考虑到类别的不同,希望不同类别间所有区分,同类别尽量相同。即最大化类间距离,最小化类内距离。
例如下图,如果是PCA算法,应该将数据映射到y轴;但由于数据是有标签的,映射到x轴是较好的选择,不同类别间能够有所区分。
3.1 二分类情况
数据集D, y i ∈ { 0 , 1 } y_i \in \{0,1\} yi∈{0,1},两个类别的样本子集为 C 0 , C 1 C_0,C_1 C0,C1。令 X i , μ i , Σ i X_i,\mu_i,\Sigma_i Xi,μi,Σi分别表示第 i ∈ { 0 , 1 } i \in \{0,1\} i∈{0,1}类的集合,均值向量,协方差矩阵。
如果将两个类别数据投影到 w w w方向上:
- 我们希望最大化类间距离。
类间距离定义为,两个类别投影后均值的距离
D i s t = ∣ ∣ μ ~ 0 − μ ~ 1 ∣ ∣ 2 2 Dist = ||\tilde \mu_0 - \tilde \mu_1||_2^2 Dist=∣∣μ~0−μ~1∣∣22
其中 μ ~ 1 = w T μ 1 , μ 1 = 1 N 1 ∑ x ∈ C 1 x \tilde \mu_1 = w^T\mu_1,\mu_1 = \frac{1}{N_1}\sum_{x \in C_1} x μ~1=wTμ1,μ1=N11∑x∈C1x。优化目标为
max w ∣ ∣ w T ( μ 0 − μ 1 ) ∣ ∣ 2 2 s . t . w T w = 1 \begin{aligned} \max_w&\quad ||w^T(\mu_0-\mu_1)||_2^2 \\ s.t. &\quad w^Tw =1 \end{aligned} wmaxs.t.∣∣wT(μ0−μ1)∣∣22wTw=1 - 最小化类内距离。
类内距离即每个类别的方差。最小化两个类别的方差之和。
D 0 + D 1 D_0 + D_1 D0+D1
其中
D 1 = 1 N 1 − 1 ∑ x ∈ C 1 ( x ′ − μ 1 ′ ) 2 = 1 N 1 − 1 ∑ ( w T x − w T μ 1 ) 2 = w T ( 1 N 1 − 1 ∑ ( x − μ 1 ) ( x T − μ 1 T ) ) w = w T Σ 1 w \begin{aligned} D_1 & = \frac{1}{N_1-1}\sum_{x \in C_1}(x^\prime - \mu_1^\prime)^2\\ & = \frac{1}{N_1-1}\sum(w^Tx - w^T\mu_1)^2\\ &= w^T\Big(\frac{1}{N_1-1}\sum (x-\mu_1)(x^T-\mu_1^T)\Big)w \\ &= w^T\Sigma_1 w\\ \end{aligned} D1=N1−11x∈C1∑(x′−μ1′)2=N1−11∑(wTx−wTμ1)2=wT(N1−11∑(x−μ1)(xT−μ1T))w=wTΣ1w
优化目标
min w T ( Σ 0 + Σ 1 ) w \min \quad w^T (\Sigma_0 + \Sigma_1)w minwT(Σ0+Σ1)w - 最大化类间距离,最大化类内距离,得到
max J = ∣ ∣ w T ( μ 0 − μ 1 ) ∣ ∣ 2 w T ( Σ 0 + Σ 1 ) w = w T ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w w T ( Σ 0 + Σ 1 ) w \begin{aligned} \max \quad J &= \frac{||w^T(\mu_0 - \mu_1)||^2}{\quad w^T(\Sigma_0+\Sigma_1)w} \\ &= \frac{w^T(\mu_0 - \mu_1)(\mu_0 - \mu_1)^Tw}{\quad w^T(\Sigma_0+\Sigma_1)w} \end{aligned} maxJ=wT(Σ0+Σ1)w∣∣wT(μ0−μ1)∣∣2=wT(Σ0+Σ1)wwT(μ0−μ1)(μ0−μ1)Tw
定义
S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T S w = Σ 0 + Σ 1 = ∑ x ∈ X 0 ( x − μ 0 ) ( x − μ 0 ) T + ∑ x ∈ X 1 ( x − μ 1 ) ( x − μ 1 ) T \begin{aligned} S_b &= (\mu_0 - \mu_1)(\mu_0 - \mu_1)^T \\ S_w &= \Sigma_0+\Sigma_1 \\ &= \sum_{x \in X_0} (x-\mu_0)(x-\mu_0)^T + \sum_{x \in X_1} (x-\mu_1)(x-\mu_1)^T \\ \end{aligned} SbSw=(μ0−μ1)(μ0−μ1)T=Σ0+Σ1=x∈X0∑(x−μ0)(x−μ0)T+x∈X1∑(x−μ1)(x−μ1)T
其中 S w S_w Sw为类内散度, S b S_b Sb为类间散度。 变换目标函数:
J = w T S b w w T S w w J=\frac{w^T S_b w}{w^T S_w w} J=wTSwwwTSbw - 求解
其中如果 w w w是一个解,那么 α w \alpha w αw也是解。令 w T S w w = 1 w^T S_w w=1 wTSww=1.上式等价于
min w − w T S b w s . t . w T S w w = 1 \begin{aligned} \min_w &\quad -w^T S_b w\\ s.t. &\quad w^T S_w w=1 \end{aligned} wmins.t.−wTSbwwTSww=1
令
L = − w T S b w − λ ( 1 − w T S w w ) ∂ L ∂ w = − ( S b w + S b T w ) + λ ( S w w + S w T w ) = − 2 ( S b w − λ S w w ) = 0 \begin{aligned} L &= -w^T S_b w - \lambda(1-w^T S_w w )\\ \frac{\partial L}{\partial w} &= -( S_b w + S_b^T w) +\lambda(S_w w + S_w^T w)\\ &= -2(S_b w - \lambda S_w w) = 0 \\ \end{aligned} L∂w∂L=−wTSbw−λ(1−wTSww)=−(Sbw+SbTw)+λ(Sww+SwTw)=−2(Sbw−λSww)=0
得到
S b w = λ S w w S_b w = \lambda S_w w Sbw=λSww
由于
S b w = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) 1 × n T w n × 1 = ( μ 0 − μ 1 ) ⋅ 某实数 S_b w = (\mu_0 - \mu_1)(\mu_0 - \mu_1)^T_{1\times n} w_{n \times 1} = (\mu_0 - \mu_1)\cdot \text{某实数} Sbw=(μ0−μ1)(μ0−μ1)1×nTwn×1=(μ0−μ1)⋅某实数
因此代入 S b w = λ S w w S_b w = \lambda S_w w Sbw=λSww,得到
( μ 0 − μ 1 ) = S w w w = S w − 1 ( μ 0 − μ 1 ) \begin{aligned} (\mu_0 - \mu_1) &= S_w w \\ w &= S_w^{-1}(\mu_0 - \mu_1) \end{aligned} (μ0−μ1)w=Sww=Sw−1(μ0−μ1)
在实践中,对 S w S_w Sw奇异值分解,得到 S w = U Σ V T S_w = U\Sigma V^T Sw=UΣVT,然后 S w − 1 = V Σ − 1 U T S_w^{-1} = V \Sigma^{-1}U^T Sw−1=VΣ−1UT。
3.2 多分类问题
假设存在N分类,第i类样本数目为 m i m_i mi。 最终将特征降至d维。需要找到一个d维的超平面 W = { w 1 , w 2 , ⋯   , w d } W=\{w_1,w_2,\cdots,w_d\} W={w1,w2,⋯,wd}
- 类内散度矩阵
S w = ∑ i = 1 N S w i S w i = ∑ x ∈ C i ( x − μ i ) ( x − μ i ) T \begin{aligned} S_w & = \sum_{i=1}^N S_{wi} \\ S_{wi} &= \sum_{x\in C_i} (x-\mu_i)(x-\mu_i)^T \end{aligned} SwSwi=i=1∑NSwi=x∈Ci∑(x−μi)(x−μi)T - 定义全局散度矩阵
S t = S b + S w = ∑ j = 1 m ( x j − μ ) ( x j − μ ) T \begin{aligned} S_t &= S_b + S_w \\ & = \sum_{j=1}^m (x_j - \mu)(x_j - \mu)^T \end{aligned} St=Sb+Sw=j=1∑m(xj−μ)(xj−μ)T
其中 μ \mu μ是所有样本的均值向量 - 得到
S
b
S_b
Sb
S b = S t − S w = ∑ j = 1 m ( x j − μ ) ( x j − μ ) T − ∑ i = 1 N ∑ x ∈ X i ( x − μ i ) ( x − μ i ) T = ∑ i = 1 N ∑ x j ∈ X i [ ( x j − μ ) ( x j − μ ) T − ( x − μ i ) ( x − μ i ) T ] = ∑ i = 1 N ∑ x j ∈ X i [ x j x j T − x j μ T − μ x j T + μ μ T − ( x j x j T − x j μ i T − μ i x j T + μ i μ i T ) ] = ∑ i = 1 N m i 1 m i ∑ x j ∈ X i [ − x j μ T − μ x j T + μ μ T + x j μ i T + μ i x j T − μ i μ i T ) ] = ∑ i = 1 N m i [ − μ i μ T − μ μ i T + μ μ T + μ i μ i T ] = ∑ i = 1 N m i ( μ i − μ ) ( μ i − μ ) T 1 \begin{aligned} S_b &= S_t - S_w \\ & = \sum_{j=1}^m (x_j - \mu)(x_j - \mu)^T - \sum_{i=1}^N \sum_{x\in X_i} (x-\mu_i)(x-\mu_i)^T\\ &= \sum_{i=1}^N \sum_{x_j\in X_i}[(x_j - \mu)(x_j - \mu)^T - (x-\mu_i)(x-\mu_i)^T]\\ &= \sum_{i=1}^N \sum_{x_j\in X_i}[x_jx_j^T - x_j\mu^T-\mu x_j^T +\mu\mu^T - (x_jx_j^T - x_j\mu_i^T-\mu_i x_j^T +\mu_i\mu_i^T)]\\ &= \sum_{i=1}^N m_i\frac{1}{m_i}\sum_{x_j\in X_i}[ - x_j\mu^T-\mu x_j^T +\mu\mu^T + x_j\mu_i^T+\mu_i x_j^T -\mu_i\mu_i^T)] \\ &=\sum_{i=1}^N m_i\Big[- \mu_i\mu^T - \mu \mu_i^T + \mu\mu^T + \mu_i\mu_i^T \Big] \\ &= \sum_{i=1}^N m_i(\mu_i-\mu)(\mu_i - \mu)^T \end{aligned}1 Sb=St−Sw=j=1∑m(xj−μ)(xj−μ)T−i=1∑Nx∈Xi∑(x−μi)(x−μi)T=i=1∑Nxj∈Xi∑[(xj−μ)(xj−μ)T−(x−μi)(x−μi)T]=i=1∑Nxj∈Xi∑[xjxjT−xjμT−μxjT+μμT−(xjxjT−xjμiT−μixjT+μiμiT)]=i=1∑Nmimi1xj∈Xi∑[−xjμT−μxjT+μμT+xjμiT+μixjT−μiμiT)]=i=1∑Nmi[−μiμT−μμiT+μμT+μiμiT]=i=1∑Nmi(μi−μ)(μi−μ)T1
此时优化目标
max w t r ( W T S b W ) t r ( W T S w W ) s . t . W T W = I \begin{aligned} \max_w &\quad \frac{tr(W^T S_b W)}{tr(W^T S_w W)}\\ s.t.&\quad W^TW=I \end{aligned} wmaxs.t.tr(WTSwW)tr(WTSbW)WTW=I
最终
S b w = λ S w w S_bw = \lambda S_ww Sbw=λSww
即求解 S w − 1 S b S_w^{-1}S_b Sw−1Sb矩阵特征值的前d大对应的特征向量组成的矩阵。
3.3 总结
- 计算数据集每个类别样本的均值向量 μ j \mu_j μj,及总体的均值 μ \mu μ
- 计算类内散度矩阵 S w S_w Sw,全局散度矩阵 S t S_t St,得到类间散度矩阵 S b = S t − S w S_b = S_t-S_w Sb=St−Sw
- 对矩阵 S w S b S_wS_b SwSb进行特征值分解,将特征值从大到小排列
- 取特征值前d大的对应特征向量 w 1 , w 2 , ⋯   , w d w_1,w_2,\cdots,w_d w1,w2,⋯,wd,通过以下映射将n维样本映射到d维 x ′ = [ w 1 T x w 2 T x ⋮ w d T x ] x^\prime = \begin{bmatrix}w_1^Tx \\ w_2^Tx\\ \vdots \\ w_d^Tx\end{bmatrix} x′=⎣⎢⎢⎢⎡w1Txw2Tx⋮wdTx⎦⎥⎥⎥⎤
4.PCA和LDA区别
- PCA选择投影后方差最大的方向。由于是无监督,假设方差越大,信息量越多,用主成分表示原始数据可以去除冗余的维度,达到降维。
- LDA选择投影后类内方差小,类间方差大的方向。考虑到了类别标签信息。