降维之线性判别分析(LDA)


LDA是一种有监督学习算法。
在PCA中,算法没有考虑数据的标签(类别),只是把数据映射到一些方差比较大的方向而已。

思想

LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的,这点和PCA不同。PCA是不考虑样本类别输出的无监督降维技术。LDA的思想可以用一句话概括,就是“投影后类内方差最小,类间方差最大”,即最大化类间距离,最小化类内方差

推导

(1) 假设有C1、C2两个类比的样本,两类均值为:

μ 1 = 1 N 1 ∑ x ∈ C 1 x \mu_1 = \frac{1}{N_1}\sum_{x\in C_1 }x μ1=N11xC1x

μ 2 = 1 N 1 ∑ x ∈ C 2 x \mu_2 = \frac{1}{N_1}\sum_{x\in C_2 }x μ2=N11xC2x
(2) 目标
是希望投影后两类之间的距离尽可能大,每一类的方差小距离表示为:

D ( C 1 , C 2 ) = ∣ ∣ μ 1 ~ − μ 2 ~ ∣ ∣ 2 2 D(C_1,C_2) = ||\widetilde{\mu_1}-\widetilde{\mu_2}||_2^2 D(C1,C2)=μ1 μ2 22

其中 μ 1 ~ \widetilde{\mu_1} μ1 , μ 2 ~ \widetilde{\mu_2} μ2 表示两类的中心在 ω \omega ω方向上的投影向量

μ 1 ~ = w T μ 1 , μ 2 ~ = w T μ 2 \widetilde{\mu_1} = w^T\mu_1,\widetilde{\mu_2} = w^T\mu_2 μ1 =wTμ1,μ2 =wTμ2

(3)优化
需要优化的问题
{ m a x ∣ ∣ ω T ( μ 1 − μ 2 ) ∣ ∣ 2 2 , s . t ω T ω = 1 单位方向向量 \begin{cases} & max||\omega^T(\mu_1-\mu_2)||_2^2 &,\\ s.t & \omega^T\omega=1 & {\text{单位方向向量}} \end{cases} {s.tmaxωT(μ1μ2)22ωTω=1,单位方向向量
(4)目标函数
目标函数定义为类间距离与类内距离的比值,引出最大化的目标:

m a x J ( w ) = ∣ ∣ w T ( μ 1 − μ 2 ) ∣ ∣ 2 2 D 1 + D 2 maxJ(w) = \frac{||w^T(\mu_1-\mu_2)||_2^2}{D1+D2} maxJ(w)=D1+D2wT(μ1μ2)22
D1 D2为两个类投影后的方差,其中D1,D2为:
D 1 = ∑ x ∈ C 1 ( w T x − w T μ 1 ) 2 = ∑ x ∈ C 1 w T ( x − μ 1 ) ( x − μ 1 ) T w D_1 = \sum_{x\in C_1}(w^Tx-w^T\mu_1)^2= \sum_{x\in C_1}w^T( x-\mu_1)(x-\mu_1)^Tw D1=xC1(wTxwTμ1)2=xC1wT(xμ1)(xμ1)Tw

D 2 = ∑ x ∈ C 2 w T ( x − μ 2 ) ( x − μ 2 ) T w D_2 =\sum_{x\in C_2}w^T( x-\mu_2)(x-\mu_2)^Tw D2=xC2wT(xμ2)(xμ2)Tw
J ( w ) J(w) J(w)可以表示为:
J ( w ) = ∣ ∣ w T ( μ 1 − μ 2 ) ∣ ∣ 2 2 ∑ x ∈ C i w T ( x − μ i ) ( x − μ i ) T w = w T ( μ 1 − μ 2 ) ( μ 1 − μ 2 ) w ∑ x ∈ C i w T ( x − μ i ) ( x − μ i ) T w J(w)=\frac{||w^T(\mu_1-\mu_2)||_2^2}{\sum_{x\in C_i}w^T( x-\mu_i)(x-\mu_i)^Tw}=\frac{w^T(\mu_1-\mu2)(\mu_1-\mu_2)w}{\sum_{x\in C_i}w^T( x-\mu_i)(x-\mu_i)^Tw} J(w)=xCiwT(xμi)(xμi)TwwT(μ1μ2)22=xCiwT(xμi)(xμi)TwwT(μ1μ2)(μ1μ2)w

在此,我们定义类间散度矩阵(各样本间的均方距离): S B = ( μ 1 − μ 2 ) ( μ 1 − μ 2 ) T S_B=(\mu_1-\mu_2)(\mu_1-\mu_2)^T SB=(μ1μ2)(μ1μ2)T
类内散度矩阵(各样本点围绕均值的散布情况)为: S w = ∑ x ∈ C i ( x − μ i ) ( x − μ i ) T S_w=\sum_{x\in C_i}(x-\mu_i)(x-\mu_i)^T Sw=xCi(xμi)(xμi)T

J ( w ) J(w) J(w)变换为:
J ( w ) = w T S B w w T S w w J(w) = \frac{w^TS_Bw}{w^TS_ww} J(w)=wTSwwwTSBw

ω \omega ω求偏导,并令导数为零:
∂ J ( ω ) ∂ ω = ( ∂ w T S B w ∂ w w T S w w − ∂ w T S w w ∂ w w T S B w ) ( w T S w w ) 2 \frac{\partial J(\omega)}{\partial \omega} = \frac{\left( \frac{\partial w^TS_Bw}{\partial w}w^TS_ww-\frac{\partial w^TS_ww}{\partial w}w^TS_Bw\right)}{(w^TS_ww)^2} ωJ(ω)=(wTSww)2(wwTSBwwTSwwwwTSwwwTSBw)

通过矩阵求导法则,可得出:
( w T S w w ) S B w = ( w T S B w ) S w w (w^TS_ww)S_Bw = (w^TS_Bw)S_ww (wTSww)SBw=(wTSBw)Sww

λ = J ( w ) = w T S B w w T S w w \lambda =J(w) = \frac{w^TS_Bw}{w^TS_ww} λ=J(w)=wTSwwwTSBw

整理得出:
S B w = λ S w w ⟹ S w − 1 S B w = λ w S_Bw = \lambda S_ww \Longrightarrow S_w^{-1}S_Bw = \lambda w SBw=λSwwSw1SBw=λw
于是LDA降维变成了求矩阵特征向量的问题,J(w)就对应了矩阵 S w − 1 S B S_w^{-1}S_B Sw1SB最大的特征值,投影方向为这个特征值对应的特征向量。

步骤

对于多类别标签高维数据的LDA步骤如下:

  • 计算数据集中每个类别样本均值向量uj,以及总体样本均值u;
  • 计算类内散度矩阵 S w , 全 局 散 度 矩 阵 S_w,全局散度矩阵 Sw,S_t , 并 得 到 类 间 散 度 矩 阵 ,并得到类间散度矩阵 S_b= S_t-S_w$
  • 对于矩阵 S w − 1 S b S_w^{-1}S_b Sw1Sb 进行特征值分解,将特征值从大到小排列;
  • 取特征值前d大的对应特征向量 w 1 , . . . w d w_1,...w_d w1,...wd,将n维样本映射到d维
    (3) x i ′ = [ w 1 T x i w 2 T x i ⋯ w d T x i ] x_i \prime = \left[ \begin{matrix} w_1^Tx_i \\ w_2^Tx_i\\ \cdots \\ w_d^Tx_i \end{matrix} \right] \tag{3} xi=w1Txiw2TxiwdTxi(3)

输入:数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( ( x m , y m ) ) } D=\{(x_1,y_1), (x_2,y_2), ...,((x_m,y_m))\} D={(x1,y1),(x2,y2),...,((xm,ym))},其中任意样本 x i x_i xi为n维向量, y i ∈ { C 1 , C 2 , . . . , C k } y_i \in \{C_1,C_2,...,C_k\} yi{C1,C2,...,Ck},降维到的维度d。

输出:降维后的样本集 D ′ D′ D

1) 计算类内散度矩阵$S_w

2) 计算类间散度矩阵$S_b

3) 计算矩阵 S w − 1 S b S_w^{-1}S_b Sw1Sb

4)计算 S w − 1 S b S_w^{-1}S_b Sw1Sb的最大的d个特征值和对应的d个特征向量 ( w 1 , w 2 , . . . w d ) (w_1,w_2,...w_d) (w1,w2,...wd),得到投影矩阵WW

5) 对样本集中的每一个样本特征 x i x_i xi,转化为新的样本 z i = W T x i z_i=W^Tx_i zi=WTxi

6) 得到输出样本集 D ′ = { ( z 1 , y 1 ) , ( z 2 , y 2 ) , . . . , ( ( z m , y m ) ) } D'=\{(z_1,y_1), (z_2,y_2), ...,((z_m,y_m))\} D={(z1,y1),(z2,y2),...,((zm,ym))}

比较

相同点

1)两者均可以对数据进行降维。

2)两者在降维时均使用了矩阵特征分解的思想。

3)两者都假设数据符合高斯分布。

不同点

1)LDA是有监督的降维方法,而PCA是无监督的降维方法

2)LDA降维最多降到类别数k-1的维数,而PCA没有这个限制。

3)LDA除了可以用于降维,还可以用于分类。

4)LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凯旋的皇阿玛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值