线性判别分析LDA

LDA基础

LDA是一种监督学习的降维技术,对应着它的数据集中的每个样本是有类别输出的。LDA的基本思想是:给定一个训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近,异类样例的投影点中心尽可能远离。也就是“投影后类内方差最小,类间均值最大”。

我们先来看一下下图对于二分类的情况:

连载|线性判别分析(LDA)

图中的“+”,“-”分别表示正例和反例,我们想要的就是让每种类别的投影点尽可能接近,而“+”和“-”的数据中心之间的距离尽可能大。

LDA推导

我们给定数据集D={(xi,yi)}i=1mD=\{{(x_i,y_i)}\}_{i=1}^myi{0,1}y_i\in\{0,1\},定义NjN_j为第j类样本的个数,xjx_j为第j类样本的集合,而μj\mu_j为第j类样本的均值向量,j\sum_j

为第j类样本的方差,因此原始均值和投影后的均值分别可以表示为如下的形式:

原始均值:

μi=1Nixwix\mu_i=\frac{1}{N_i}\sum_{x\in w_i}x

投影后均值(wi表示第i类,y表示向量x投影后得到的向量):

ui~=1Nixwiy\tilde{u_i}=\frac{1}{N_i}\sum_{x\in w_i}y

=1NixwiwTx=\frac{1}{N_i}\sum_{x\in w_i}w^Tx

=wT1Nixwix=w^T\frac{1}{N_i}\sum_{x\in w_i}x

=wTμi=w^T\mu_i

得到了均值之后我们可以得到方差为:

si~2=ywi(yui~)2\tilde{s_i}^2=\sum_{y\in w_i}(y-\tilde{u_i})^2

=xwi(wTxwTμi)2=\sum_{x\in w_i}(w^Tx-w^T\mu_i)^2

=xwiwT(xμi)(xμiT)w=\sum_{x\in w_i}w^T(x-\mu_i)(x-\mu_i^T)w

=wTsiw=w^Ts_iw

根据我们LDA的思想,我们要做的事情是“投影后类内方差最小,类间均值最大”,所得的目标函数如下:

J(w)=u1~u2~2s1~2+s2~2J(w)=\frac{|\tilde{u_1}-\tilde{u_2}|^2}{\tilde{s_1}^2+\tilde{s_2}^2}

上式中,分子表示不同类别均值之差,分母表示不同类别方差之和,因此我们的目标就是最大化J(w)即可。

对于分母:

s1~2+s2~2=wTS1w+wTS2w=wTSww\tilde{s_1}^2+\tilde{s_2}^2=w^TS_1w+w^TS_2w=w^TS_ww

此时的SwS_w我们可以定义为“类内散度矩阵”。

Sw=1+2S_w=\sum1+\sum2

对于分子:

(u1~u2~)2=(wTμ1wTμ2)2(\tilde{u_1}-\tilde{u_2})^2=(w^T\mu_1-w^T\mu_2)^2

=wT(μ1μ2)(μ1μ2)Tw=w^T(\mu_1-\mu_2)(\mu_1-\mu_2)^Tw

=wTSBw=w^TS_Bw

此时的SBS_B我们可以定义为“类间散度矩阵”。

SB=(μ1μ2)(μ1μ2)TS_B=(\mu_1-\mu_2)(\mu_1-\mu_2)^T

对应的目标函数我们可以转化为:

J(w)=u1~u2~2s1~2+s2~2=wTSwwwTSBwJ(w)=\frac{|\tilde{u_1}-\tilde{u_2}|^2}{\tilde{s_1}^2+\tilde{s_2}^2}=\frac{w^TS_ww}{w^TS_Bw}

此时的J(w)就是我们最大化的目标,可以看到J(w)的分子分母都是关于w的二次项,因此我们的式子只与w的方向有关(w为投影后直线的方向),不失一般性我们令wTSww=1w^TS_ww=1,则有:

min:wTSBwmin:-w^TS_Bw (目标)

s.t.:wTSww=1s.t.:w^TS_ww=1(约束)

根据拉格朗日乘子法,上式等价于 (λ\lambda为拉格朗日乘子):

c(w)=wTSBw+λ(wTSww1)c(w)=-w^TS_Bw+\lambda(w^TS_ww-1)

dcdw=2SBw+2λSww=0\frac{dc}{dw}=-2S_Bw+2\lambda S_ww=0

SBw=λSwwS_Bw=\lambda S_ww

我们把SBw=λ(μ1+μ2)S_Bw=\lambda(\mu1+\mu2)带入可以解得:

w=Sw1(μ1μ2)w=S_w^{-1}(\mu1-\mu2)

也就是说我们只要求出原始二类样本的均值和方差就可以确定最佳的投影方向了。

PCA和LDA

PCA(主成分分析)和LDA(线性判别分析)有很多的相似点,其本质是要将初始样本映射到维度更低的样本空间中,但是PCA和LDA的映射目标不一样:PCA是为了让映射后的样本具有最大的发散性;而LDA是为了让映射后的样本有最好的分类性能。所以说PCA是一种无监督的降维方法,而LDA是一种有监督的降维方法。

LDA总结

LDA算法的主要优点有:

  • 在降维过程中可以使用类别的先验知识经验,而像PCA这样的无监督学习则无法使用类别先验知识。
  • LDA在样本分类信息依赖均值而不是方差的时候,比PCA之类的算法较优。

LDA算法的主要缺点有:

  • LDA不适合对非高斯分布样本进行降维,PCA也有这个问题。
  • LDA降维最多降到类别数k-1的维数,如果我们降维的维度大于k-1,则不能使用LDA。当然目前有一些LDA的进化版算法可以绕过这个问题。
  • LDA在样本分类信息依赖方差而不是均值的时候,降维效果不好。
  • LDA可能过度拟合数据。
    连载|线性判别分析(LDA)

相关文章:

  • 2021-12-11
  • 2021-10-20
  • 2021-11-20
猜你喜欢
  • 2022-12-23
  • 2021-12-06
  • 2021-12-26
  • 2021-11-28
  • 2021-08-30
  • 2021-09-18
相关资源
相似解决方案