【ML】降维:LDA线性判别分析

LDA线性判别分析

有监督降维。目标是降维后的组内(同一类别)方差小,组间(不同类别)方差大。

作用:

  • 降维

  • 分类

SVMLDA

LDA的原理

1.将原有的 p p p维数据集,转换为 k k k维数据, k < p k<p k<p

  寻找当前所在的 p p p线性空间的一个 k k k维线性子空间,在这个 k k k维空间表示这些数据(将数据投影到 k k k维空间);

2.按照类别区分新生成的 k k k维数据,同一类别的数据点距离越近越好,不同类别间距离越远越好

  与PCA相比,LDA更关心分类而不是方差。
区别
  如果将数据直接投影到连接两中心的向量上降维,数据会有重叠,并不是最优。本来可以进行线性分割数据,降维后无法进行线性分割了。LDA
  为减少重叠,降维的数据应满足两个特征:

  • 不同类别数据降维后相互间的差异大;
  • 同一类别数据降维后相互间的差异小;

也就是说,最大化类间距离和最小化类内距离。
在这里插入图片描述

LDA的推导

  设有包含 n n n个样本的训练数据集 T T T,共有 C C C个类别,第 i i i个类别有 n i n_i ni个样本,可写第 i i i个类别的数据集 D i = { x i j , j = 1 , 2 , . . . , n i } D_i=\{x_i^j, j=1,2,...,n_i\} Di={xij,j=1,2,...,ni},其中每个样本 x i j x_i^j xij都是 p p p维的列向量, i = 1 , 2 , . . . , C i=1,2,...,C i=1,2,...,C,每个类别的样本均值及方差为,
μ i = 1 n i ∑ j = 1 n i x i j \mu_i=\frac{1}{n_i}\sum_{j=1}^{n_i}x_i^j μi=ni1j=1nixij

s i 2 = 1 n i − 1 ∑ j = 1 n i ( x i j − μ i ) 2 s_i^2=\frac{1}{n_i-1}\sum_{j=1}^{n_i}(x_i^j-\mu_i)^2 si2=ni11j=1ni(xijμi)2
整体的均值,
μ = 1 n ∑ i = 1 C ∑ j = 1 n i x i j \mu=\frac{1}{n}\sum_{i=1}^C\sum_{j=1}^{n_i}x_i^j μ=n1i=1Cj=1nixij

情形一: C = 2 C=2 C=2

  数据集只有两个类别,我们现在要将原始数据降低到只有一维。设 w w w是一个合适的投影方向,现在推导 w w w应该满足什么条件。
  样本 x i j x_i^j xij w w w方向的投影,
y i j = w T x i j , j = 1 , . . . , n i , i = 1 , 2 y_i^j=w^Tx_i^j,\quad j=1,...,n_i,i=1,2 yij=wTxij,j=1,...,ni,i=1,2
投影后每个类别的样本均值与样本方差为,
μ ~ i = 1 n i ∑ j = 1 n i y i j = 1 n i ∑ j = 1 n i w T x i j = w T μ i , i = 1 , 2 \tilde{\mu}_i=\frac{1}{n_i}\sum_{j=1}^{n_i}y_i^j=\frac{1}{n_i}\sum_{j=1}^{n_i}w^Tx_i^j=w^T\mu_i,\quad i=1,2 μ~i=ni1j=1niyij=ni1j=1niwTxij=wTμi,i=1,2

s ~ i 2 = 1 n i − 1 ∑ j = 1 n i ( y i j − μ ~ i ) 2 = 1 n i − 1 ∑ j = 1 n i ( w T ( x i j − μ i ) ) 2 = w T s i 2 w , i = 1 , 2 \tilde{s}_i^2=\frac{1}{n_i-1}\sum_{j=1}^{n_i}(y_i^j-\tilde{\mu}_i)^2=\frac{1}{n_i-1}\sum_{j=1}^{n_i}(w^T(x_i^j-\mu_i))^2=w^Ts_i^2w,\quad i=1,2 s~i2=ni11j=1ni(yijμ~i)2=ni11j=1ni(wT(xijμi))2=wTsi2w,i=1,2
我们希望投影后两类样例中心尽量地分离,即
max ⁡ ∣ μ 1 ~ − μ 2 ~ ∣ = max ⁡ ∣ w T ( μ 1 − μ 2 ) ∣ \max \quad|\tilde{\mu_1}-\tilde{\mu_2}|=\max \quad|w^T(\mu_1-\mu_2)| maxμ1~μ2~=maxwT(μ1μ2)
同时,我们希望投影后类内部方差 s ~ i 2 \tilde{s}_i^2 s~i2越小越好,于是,得到目标函数,
max ⁡ w J ( w ) = ∣ μ 1 ~ − μ 2 ~ ∣ 2 s ~ 1 2 + s ~ 2 2 = w T ( μ 1 − μ 2 ) ( μ 1 − μ 2 ) T w w T ( s 1 2 + s 2 2 ) w \max_{w} \quad J(w)=\frac{|\tilde{\mu_1}-\tilde{\mu_2}|^2}{\tilde{s}_1^2+\tilde{s}_2^2}=\frac{w^T(\mu_1-\mu_2)(\mu_1-\mu_2)^Tw}{w^T(s_1^2+s_2^2)w} wmaxJ(w)=s~12+s~22μ1~μ2~2=wT(s12+s22)wwT(μ1μ2)(μ1μ2)Tw
定义类间散度矩阵 S b S_b Sb及类内散度矩阵 S w S_w Sw如下,
S w = ∑ i = 1 2 ∑ j = 1 n i ( x i j − μ i ) ( x i j − μ i ) T S_w=\sum_{i=1}^2\sum_{j=1}^{n_i}(x_i^j-\mu_i)(x_i^j-\mu_i)^T Sw=i=12j=1ni(xijμi)(xijμi)T

S b = ( μ 1 − μ 2 ) ( μ 1 − μ 2 ) T S_b=(\mu_1-\mu_2)(\mu_1-\mu_2)^T Sb=(μ1μ2)(μ1μ2)T

则可写目标函数,
max ⁡ w J ( w ) = w T S b w w T S w w \max_{w} \quad J(w)=\frac{w^TS_bw}{w^TS_ww} wmaxJ(w)=wTSwwwTSbw
最大化 J ( w ) J(w) J(w)只需对 w w w求偏导,并令导数等于0,即令分子为0,
( 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
λ = w T S b w w T S w w \lambda=\frac{w^TS_bw}{w^TS_ww} λ=wTSwwwTSbw,这是最优目标函数值,一个常数,带入上式得到,
S b w = λ S w w S_bw=\lambda S_ww Sbw=λSww
S w S_w Sw是协方差阵,可逆,两边左乘 S w − 1 S_w^{-1} Sw1
S w − 1 S b w = λ w S_w^{-1}S_bw=\lambda w Sw1Sbw=λw
至此,我们得到,最大化的目标对应了矩阵的最大特征值,而投影方向就是这个特征值对应的特征向量。

情形二: C > 2 C>2 C>2

  数据集不只两个类别,降一维已经不能满足分类要求,需要 k k k个基向量来做投影, W = ( w 1 , w 2 , . . . , w k ) W=(w_1,w_2,...,w_k) W=(w1,w2,...,wk),其中 w i w_i wi p p p维列向量,记样本 x x x在这组基上投影的结果为 y = ( y 1 , y 2 , . . . , y k ) y=(y_1,y_2,...,y_k) y=(y1,y2,...,yk)
y i = w i T x , y = W T x y_i=w_i^Tx,\quad y=W^Tx yi=wiTx,y=WTx
  类似地,可以定义,

  • 类间散度矩阵
    S b = ∑ i = 1 C n i ( μ i − μ ) ( μ i − μ ) T S_b=\sum_{i=1}^Cn_i(\mu_i-\mu)(\mu_i-\mu)^T Sb=i=1Cni(μiμ)(μiμ)T
  • 类内散度矩阵
    S w = ∑ i = 1 C S w i , S w i = ∑ x ∈ D i ( x − μ i ) ( x − μ i ) T S_w=\sum_{i=1}^C S_{w_i},\quad S_{w_i}=\sum_{x\in D_i}(x-\mu_i)(x-\mu_i)^T Sw=i=1CSwi,Swi=xDi(xμi)(xμi)T
  • 全局散度矩阵
    S t = S b + S w = ∑ i = 1 n ( x i − μ ) ( x i − μ ) T S_t=S_b+S_w=\sum_{i=1}^n (x_i-\mu)(x_i-\mu)^T St=Sb+Sw=i=1n(xiμ)(xiμ)T

多分类LDA有多种实现方法:采用 S b , S w , S t S_b,S_w,S_t Sb,Sw,St中的任意两个。

例如:
max ⁡ w t r ( W T S b W ) t r ( W T S w W ) ⟹ S b W = λ S w W \max_w \frac{tr(W^TS_bW)}{tr(W^TS_wW)}\Longrightarrow S_bW=\lambda S_w W wmaxtr(WTSwW)tr(WTSbW)SbW=λSwW

LDA

参考:
线性判别分析LDA详解

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值