线性判别分析LDA

线性判别分析LDA

1. LDA的思想

  线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的线性学习方法,在二分类问题上最早由[Fisher, 1936]提出,亦称“Fisher判别分析”。LDA和PCA(主成分分析)有一定类似之处。

  LDA的思想比较简单:给定训练集,设法将数据集投影到一条直线上,使得同类数据的投影点尽可能接近,异类数据的投影点尽可能远离,用一句话概括 投影后类内方差最小,类间方差最大。所以从这里可以看出,LDA是一种监督学习的方法。

  我们以下图为例,假设我们有两类数据,分别为红色和蓝色,这些数据特征是二维的,我们希望将这些数据投影到一维的一条直线,让每一种类别数据的投影点尽可能的接近,而红色和蓝色数据中心之间的距离尽可能的大。从直观上来看,我们会认为右图的投影方式更加合理,因为在当前方式下,每类数据彼此分离不重合,并且每一类的数据比较集中;相反在左图的投影方式下,效果可能不如人意。
  在更高维的特征空间中,我们投影后的不一定是直线,很可能是维数较低的超平面。

image-20220105223816585

2. 瑞利商(Rayleigh quotient)与广义瑞利商

  我们先来看一下瑞利商函数的定义:
R ( A , x ) = x H A x x H x R(A, x)=\frac{x^HAx}{x^Hx} R(A,x)=xHxxHAx
其中 x x x 是非零向量,而A为n阶厄米特矩阵。所谓厄米特矩阵,就是A矩阵的共轭转置等于它本身,即 A H = A A^H = A AH=A。而这个瑞利商函数 R ( A , x ) R(A,x) R(A,x) 有一个非常重要的性质,就是它的最大值等于A的最大特征值,最小值等于A的最小特征值,即:
λ m i n ≤ R ( A , x ) ≤ λ m a x \lambda_{min} \le R(A, x)\le \lambda_{max} λminR(A,x)λmax


这个性质的证明如下:

  由于矩阵A是厄米特矩阵,所以一定存在一个酉矩阵 Q Q Q,使得:
Q H A Q = d i a g ( λ 1 , λ 2 , . . . , λ n ) = Λ Q^HAQ=diag(\lambda_1,\lambda_2,...,\lambda_n)=\Lambda QHAQ=diag(λ1,λ2,...,λn)=Λ
也就是说A可正交相似对角化。那么我们令 x = Q y x=Qy x=Qy,上述式子变为:
R ( A , x ) = y H Q H A Q y y H Q H Q y = y H Λ y y H y = λ 1 y 1 2 + λ 2 y 2 2 + . . . + λ n y n 2 y 1 2 + y 2 2 + . . . + y n 2 \begin{aligned} R(A,x)&=\frac{y^HQ^HAQy}{y^HQ^HQy} \\ &= \frac{y^H\Lambda y}{y^Hy}\\ &= \frac{\lambda_1 y_1^2+ \lambda_2y_2^2+...+\lambda_n y_n^2}{y_1^2+y_2^2+...+y_n^2} \end{aligned} R(A,x)=yHQHQyyHQHAQy=yHyyHΛy=y12+y22+...+yn2λ1y12+λ2y22+...+λnyn2
  对此我们可以进行一个放缩:
λ m i n ≤ λ 1 y 1 2 + λ 2 y 2 2 + . . . + λ n y n 2 y 1 2 + y 2 2 + . . . + y n 2 ≤ λ m a x \begin{aligned} \lambda_{min} \le \frac{\lambda_1 y_1^2+ \lambda_2y_2^2+...+\lambda_n y_n^2}{y_1^2+y_2^2+...+y_n^2} \le \lambda_{max} \end{aligned} λminy12+y22+...+yn2λ1y12+λ2y22+...+λnyn2λmax
  不妨假设 λ n \lambda_n λn为最大的特征值, λ 1 \lambda_1 λ1为最小的特征值;那么当 y = ( 0 , 0 , . . . , 1 ) y=(0,0,...,1) y=(0,0,...,1)时, R ( A , x ) R(A,x) R(A,x)可以取到最大值;当 y = ( 1 , 0 , . . . , 0 ) y=(1,0,...,0) y=(1,0,...,0) 时, R ( A , x ) R(A,x) R(A,x) 取最小值。

  证毕。

这里我们还应该思考一下,就是当 R ( A , x ) R(A,x) R(A,x) 取最大值时, x x x 向量的取值是什么?

我们已经知道当 y = ( 0 , 0 , . . . , 1 ) y=(0,0,...,1) y=(0,0,...,1)时, R ( A , x ) R(A,x) R(A,x)取最大值,根据 x = Q y x=Qy x=Qy可以得到, x x x为 Q的最后一列;同理可以得到,当 R ( A , x ) R(A,x) R(A,x) 等于某个特征值 λ i \lambda_i λi时, y = ( 0 , 0 , . . . 1 , . . , 0 , 0 ) y=(0,0,...1,..,0,0) y=(0,0,...1,..,0,0),而 x x x 为 Q的第 i 列;Q是什么?Q是 A A A 的特征向量组成的矩阵。

知道这一点是很重要的,对于后面的LDA原理分析奠定基础。


x x x 是标准正交基的时候,满足 x H x = 1 x^Hx=1 xHx=1,这时 R ( A , x ) = x H A x R(A,x)=x^HAx R(A,x)=xHAx

  下面我们来介绍一下广义瑞利商函数:
R ( A , B , x ) = x H A x x H B x R(A,B,x)=\frac{x^HAx}{x^HBx} R(A,B,x)=xHBxxHAx
其中 x x x 是非零向量,而A、B为n阶厄米特矩阵。B为正定矩阵。那么它的最大值和最小值是什么呢?

  令 x = B − 1 / 2 x ′ x=B^{-1/2}x' x=B1/2x,则分母变为:
x H B x = x ′ H ( B − 1 / 2 ) H B B − 1 / 2 x ′ = x ′ H B − 1 / 2 B B − 1 / 2 x ′ = x ′ H x ′ \begin{aligned} x^HBx &= x'^H(B^{-1/2})^HBB^{-1/2}x'\\ &= x'^HB^{-1/2}BB^{-1/2}x'\\ &= x'^Hx' \end{aligned} xHBx=xH(B1/2)HBB1/2x=xHB1/2BB1/2x=xHx
  而分子变为:
x H A x = x ′ H B − 1 / 2 A B − 1 / 2 x ′ \begin{aligned} x^HAx=x'^HB^{-1/2}AB^{-1/2}x' \end{aligned} xHAx=xHB1/2AB1/2x
  此时广义瑞利商函数 R ( A , B , x ) R(A,B,x) R(A,B,x)变为 R ( A , B , x ′ ) R(A,B,x') R(A,B,x)
R ( A , B , x ) = x ′ H B − 1 / 2 A B − 1 / 2 x ′ x ′ H x ′ R(A,B,x)=\frac{x'^HB^{-1/2}AB^{-1/2}x'}{x'^Hx'} R(A,B,x)=xHxxHB1/2AB1/2x

  利用前面得到瑞利商的性质,我们可以知道 R ( A , B , x ) R(A,B,x) R(A,B,x)的最大值为矩阵 B − 1 / 2 A B − 1 / 2 B^{-1/2}AB^{-1/2} B1/2AB1/2的最大特征值,最小值为矩阵 B − 1 / 2 A B − 1 / 2 B^{-1/2}AB^{-1/2} B1/2AB1/2的最小特征值,而矩阵 B − 1 / 2 A B − 1 / 2 B^{-1/2}AB^{-1/2} B1/2AB1/2 B − 1 A B^{-1}A B1A相似——相似矩阵拥有相同的特征值,故广义瑞利商函数的最大值为矩阵 B − 1 A B^{-1}A B1A的最大特征值,最小值为 B − 1 A B^{-1}A B1A的最小特征值。

  同样的,我们更加关注广义瑞利商取到最大值时 x x x 的取值。根据前面瑞利商的性质, R ( A , B , x ) R(A,B,x) R(A,B,x) 取到最大值时, x ′ x' x 为矩阵 B − 1 / 2 A B 1 / 2 B^{-1/2}AB^{1/2} B1/2AB1/2 的特征向量,根据特征值特征向量的定义:
B − 1 / 2 A B − 1 / 2 ∗ x ′ = λ ∗ x ′ B^{-1/2}AB^{-1/2} * x' = \lambda * x' B1/2AB1/2x=λx
x = B − 1 / 2 x ′ x=B^{-1/2}x' x=B1/2x 代入得:
B − 1 / 2 A B − 1 / 2 ∗ B 1 / 2 ∗ x = λ ∗ B 1 / 2 x B − 1 A ∗ x = λ ∗ x \begin{aligned} B^{-1/2}AB^{-1/2} * B^{1/2} *x &= \lambda * B^{1/2}x \\ B^{-1}A *x&= \lambda * x \end{aligned} B1/2AB1/2B1/2xB1Ax=λB1/2x=λx
综上可以看出,广义瑞利商的最大值为矩阵 B − 1 A B^{-1}A B1A的最大特征值,而 x x x的取值为其特征值对应的特征向量。

这里矩阵 B 肯定是半正定的,但不一定是正定的,即不一定可逆,常用的处理手段是:

B + ρ I B+\rho I B+ρI,给矩阵 B 加上一个微小的扰动,这样矩阵从半正定变为正定 (因为 0特征值变为正数了),之后就可以进行求逆的操作,而对原问题的影响比较小。

还有人可能会矩阵 B B B 取 1/2次幂有些好奇,这里解释一下

由于矩阵 B B B 是正定矩阵,故 B B B 一定相似于主对角元素都为正数的对角阵,也就是说存在可逆阵 P P P,使得 P − 1 B P = Λ = d i a g ( λ 1 , λ 2 , . . . , λ n ) P^{-1}BP=\Lambda=diag(\lambda_1,\lambda_2,...,\lambda_n) P1BP=Λ=diag(λ1,λ2,...,λn) 是对角阵。令 C = P − 1 d i a g ( λ 1 , λ 2 , . . . , λ n ) P C=P^{-1}diag(\sqrt\lambda_1,\sqrt\lambda_2,...,\sqrt\lambda_n)P C=P1diag(λ 1,λ 2,...,λ n)P,可以看到 C ∗ C = B C*C=B CC=B,故 C = B 1 / 2 C=B^{1/2} C=B1/2

3. 二类LDA原理

  回归正题,我们先讲二类LDA。假设有数据集 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 ∈ { 0 , 1 } y_i\in\{0,1\} yi{0,1},代表数据点的类别。接着定义 N j ( j = 0 , 1 ) N_j(j=0,1) Nj(j=0,1)为第j类样本的个数, X j ( j = 0 , 1 ) X_j(j=0,1) Xj(j=0,1)代表第 j 类样本的集合, μ j ( j = 0 , 1 ) \mu_j(j=0,1) μj(j=0,1)代表第 j 类样本坐标的均值向量, ∑ j ( j = 0 , 1 ) \sum_j(j=0,1) j(j=0,1)为第 j 类样本坐标的协方差矩阵。

  即:
μ j = 1 N j ∑ x ∈ X j x ( j = 0 , 1 ) ∑ j = ∑ x ∈ X j ( x − μ j ) ( x − μ j ) T ( j = 0 , 1 ) \mu_j=\frac{1}{N_j}\sum_{x\in X_j}x \quad (j=0,1) \\ \sum_j=\sum_{x\in X_j}(x-\mu_j)(x-\mu_j)^T \quad (j=0,1) μj=Nj1xXjx(j=0,1)j=xXj(xμj)(xμj)T(j=0,1)
  因为我们要将两类数据投影到一条直线上,设直线向量为 w w w,故对于任意一个样本 x i x_i xi,其在直线上的投影为 w T x i w^Tx_i wTxi,同理对于两类数据的中心点 μ 0 , μ 1 \mu_0,\mu_1 μ0,μ1,它们在直线上的投影为 w T μ 0 w^T\mu_0 wTμ0 w T μ 1 w^T\mu_1 wTμ1。而投影之后,类内数据点的方差变为:
∑ w j = ∑ j ( w T x − w T μ j ) 2 = ∑ j ( w T ( x − μ j ) ) 2 = ∑ j w T ( x − μ j ) ( x − μ j ) T w = w T ∑ j ( x − μ j ) ( x − μ j ) T w = w T ∑ j w \begin{aligned} \sum_{wj} &=\sum_j(w^Tx-w^T\mu_j)^2 \\ &=\sum_j(w^T(x-\mu_j))^2 \\ &=\sum_jw^T(x-\mu_j)(x-\mu_j)^Tw \\ &= w^T\sum_j(x-\mu_j)(x-\mu_j)^Tw\\ &= w^T\sum_jw \end{aligned} wj=j(wTxwTμj)2=j(wT(xμj))2=jwT(xμj)(xμj)Tw=wTj(xμj)(xμj)Tw=wTjw
  LDA的目的是为了投影后类内方差最小,类间方差最大,所以我们要使 ∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 ||w^T\mu_0-w^T\mu_1||_2^2 wTμ0wTμ122最大,而最小化 w T ∑ 0 w + w T ∑ 1 w w^T\sum_0w+w^T\sum_1w wT0w+wT1w。综上,我们需要优化:
J ( w ) = ∣ ∣ w T μ 0 − w T μ 1 ∣ ∣ 2 2 w T ∑ 0 w + w T ∑ 1 w J(w)=\frac{||w^T\mu_0-w^T\mu_1||_2^2}{w^T\sum_0w + w^T\sum_1w} J(w)=wT0w+wT1wwTμ0wTμ122
使上述函数最大,也就达到了我们的目的。

  我们定义类内散度矩阵 S w S_w Sw
S w = ∑ 0 + ∑ 1 = ∑ x ∈ X 0 ( x − μ 0 ) ( x − μ 0 ) + ∑ x ∈ X 1 ( x − μ 1 ) ( x − μ 1 ) S_w=\sum_0+\sum_1=\sum_{x\in X_0}(x-\mu_0)(x-\mu_0)+\sum_{x\in X_1}(x-\mu_1)(x-\mu_1) Sw=0+1=xX0(xμ0)(xμ0)+xX1(xμ1)(xμ1)
  定义类间散度矩阵 S b S_b Sb
S b = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T S_b=(\mu_0-\mu_1)(\mu_0-\mu_1)^T Sb=(μ0μ1)(μ0μ1)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
  而这不就是第二节我们讲过的广义瑞利商吗?利用前面瑞利商的性质,我们可以得到 J ( w ) J(w) J(w)的最大值为矩阵 S w − 1 S b S_w^{-1}S_b Sw1Sb的最大值,最小值为矩阵 S w − 1 S b S_w^{-1}S_b Sw1Sb的最小值。但是我们关注的不仅仅是最值,而是这里的 w w w的取值;根据前面广义瑞利商的性质, w w w 为矩阵 S w − 1 S b S_w^{-1}S_b Sw1Sb 特征值对应的特征向量。


其他解法:

  可能有些人在西瓜书等地方看到过这样的解法:

  我们可以看到 J ( w ) J(w) J(w) 的取值和 w w w 的长度无关,只和其方向有关,因为可以通过约分手段约去长度,所以我们可以令 w T S w w = 1 w^TS_ww=1 wTSww=1

  (可能有些人对这里会有些怀疑,可以回到普通瑞利商,可以令 x H x = 1 x^Hx = 1 xHx=1,这一点是毫无疑问的;至于广义瑞利商,同样可以将其化为普通瑞利商,所以令 w T S w w = 1 w^TS_ww=1 wTSww=1 并无大碍。)

  之后这个上述的优化目标可以重新表述为:
m i n w   − w T S b w s . t . w T S w w = 1 min_w \ -w^TS_bw\\ s.t. \quad w^TS_ww=1 minw wTSbws.t.wTSww=1
根据拉格朗日乘子法,上式等价于:(拉格朗日乘子没有正负限制,所以 λ \lambda λ 前面可以是加号或者减号)
m i n   L ( w , λ ) = − w T S b w + λ   ( w T S w w − 1 ) min \ L(w,\lambda) = -w^TS_bw + \lambda \ (w^TS_ww-1) min L(w,λ)=wTSbw+λ (wTSww1)
求导得:
S b w = λ   S w w S w − 1 S b w = λ w \begin{aligned} S_bw &= \lambda\ S_ww \\ S_w^{-1}S_bw &= \lambda w \end{aligned} SbwSw1Sbw=λ Sww=λw
到这里已经可以看到,这里 w w w 就是矩阵 S w − 1 S b S_w^{-1}S_b Sw1Sb的特征向量,代入原式得,最大值为最大特征值。

  多说些,观察一下 S b w = ( μ 0 − μ 1 ) ( μ 0 − μ 1 ) T w S_bw=(\mu_0-\mu_1)(\mu_0-\mu_1)^Tw Sbw=(μ0μ1)(μ0μ1)Tw,会发现其方向为 μ 0 − μ 1 \mu_0-\mu_1 μ0μ1,设 S b w = k ( μ 0 − μ 1 ) S_bw=k(\mu_0-\mu_1) Sbw=k(μ0μ1),再将其带入上式得: w = k λ S w − 1 ( μ 0 − μ 1 ) w=\frac{k}{\lambda}S_w^{-1}(\mu_0-\mu_1) w=λkSw1(μ0μ1),而由于 w w w 只和方向有关,和长度无关,所以这里可以将其长度约去,最终得: w = S w − 1 ( μ 0 − μ 1 ) w=S_w^{-1}(\mu_0-\mu_1) w=Sw1(μ0μ1);同样这也是西瓜书上 “令 S b w = λ ( μ 0 − μ 1 ) S_bw=\lambda(\mu_0-\mu_1) Sbw=λ(μ0μ1) 的原因。


4. 多类LDA原理

  有了二分类的基础,研究多类LDA也是比较容易的。

  还是先定义:假设有数据集 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 ∈ { 1 , 2 , . . . , k } y_i\in\{1,2,...,k\} yi{1,2,...,k},代表数据点的类别。接着定义 N j ( j = 1 , 2 , . . . , k ) N_j(j=1,2,...,k) Nj(j=1,2,...,k)为第j类样本的个数, X j ( j = 1 , 2 , . . . , k ) X_j(j=1,2,...,k) Xj(j=1,2,...,k)代表第 j 类样本的集合, μ j ( j = 1 , 2 , . . . , k ) \mu_j(j=1,2,...,k) μj(j=1,2,...,k)代表第 j 类样本坐标的均值向量, ∑ j ( j = 1 , 2 , . . . , k ) \sum_j(j=1,2,...,k) j(j=1,2,...,k)为第 j 类样本坐标的协方差矩阵。之后我们就可以将二类LDA推广到多类LDA。

  在多类中,我们投影到的低维空间很可能不是一条直线,而是一个超平面。我们假设超平面的维度为 d d d,对应的基向量为 w 1 , w 2 , . . . , w d w_1,w_2,...,w_d w1,w2,...,wd,构成矩阵 W W W。值得注意的是, W W W是一个 n ∗ d n*d nd 的矩阵,这也是显而易见的,因为 $ W ^Tx_i$,即和原空间数据点做内积,将其映射到 d d d 维空间。这样我们可以写出优化目标:
J ( W ) = W T S b W W T S w W J(W) = \frac{W^TS_bW}{W^TS_wW} J(W)=WTSwWWTSbW
其中类间散度矩阵为 S b = ∑ j = 1 k N j ( μ j − μ ) ( μ j − μ ) T S_b=\sum_{j=1}^kN_j(\mu_j-\mu)(\mu_j-\mu)^T Sb=j=1kNj(μjμ)(μjμ)T S w = ∑ j = 1 k ∑ x ∈ X j ( x − μ j ) ( x − μ j ) T S_w=\sum_{j=1}^k\sum_{x\in X_j}(x-\mu_j)(x-\mu_j)^T Sw=j=1kxXj(xμj)(xμj)T代表类内散度矩阵。(这里的类间散度矩阵和二类LDA是有一些不同的,这里采用各类中心和所有数据点中心的距离来衡量的)

  和二类LDA不同的是,此时的 J J J 不是一个标量,(在二类LDA中 J J J 是函数),而是矩阵,这样的形式一般不好作为优化目标,所以我们可以采用矩阵对角线元素的乘积来进行代替,即:
J ( W ) = ∏ d i a g W T S b W ∏ d i a g W T S w W = ∏ i = 1 d w i T S b w i ∏ i = 1 d w i T S w w i = ∏ i = 1 d w i T S b w i w i T S w w i \begin{aligned} J(W) =\frac{\prod\limits_{diag}W^TS_bW}{\prod\limits_{diag}W_TS_wW} = \frac{\prod\limits_{i=1}^d w_i^TS_bw_i}{\prod\limits_{i=1}^d w_i^TS_ww_i} = \prod\limits_{i=1}^d \frac{w_i^TS_bw_i}{w_i^TS_ww_i} \end{aligned} J(W)=diagWTSwWdiagWTSbW=i=1dwiTSwwii=1dwiTSbwi=i=1dwiTSwwiwiTSbwi
  然后仔细观察上面最右边的式子,会发现这不就是前面提到的广义瑞利商吗?(多个瑞利商的乘积)而广义瑞利商的最大值为矩阵 S w − 1 S b S_w^{-1}S_b Sw1Sb的最大特征值,故此时 J ( W ) J(W) J(W)的最大值就是矩阵 S w − 1 S b S_w^{-1}S_b Sw1Sb的前d个最大特征值的乘积,同时W就是特征值对应的特征向量组成的矩阵

  虽说矩阵 W W W的维度是 n ∗ d n*d nd 的,代表将 n n n 维空间数据点投影到d维空间;但是观察矩阵 S b S_b Sb,其是由 k k k个秩为1的矩阵相加得来的,并且 k k k个矩阵线性相关,即第 k k k 个矩阵可以由前 k − 1 k-1 k1 个矩阵线性表出,所以 S b S_b Sb 的秩小于等于 k − 1 k-1 k1 ,这是因为 r a n k ( A + B ) ≤ r a n k ( A ) + r a n k ( B ) rank(A+B) \le rank(A) + rank(B) rank(A+B)rank(A)+rank(B);而矩阵 S w − 1 S b S_w^{-1}S_b Sw1Sb 的秩小于等于 k − 1 k-1 k1,这是因为 r a n k ( A B ) ≤ m i n { r a n k ( A ) , r a n k ( B ) } rank(AB)\le min\{rank(A), rank(B)\} rank(AB)min{rank(A),rank(B)};所以 S w − 1 S b S_w^{-1}S_b Sw1Sb最多含有 k − 1 k-1 k1 个非零特征值,故 d ≤ k − 1 d \le k-1 dk1

5. LDA算法流程

  经过前面对LDA原理的介绍,我们可以给出LDA的算法流程:

输入: 1. 数据集 D D D;2.待降维的空间维数 d d d

输出: 1.降维后的数据集 D ′ D' D

  1. 计算类内散度矩阵 S w = ∑ j = 1 k ∑ x ∈ X j ( x − μ j ) ( x − μ j ) T S_w=\sum_{j=1}^k\sum_{x\in X_j}(x-\mu_j)(x-\mu_j)^T Sw=j=1kxXj(xμj)(xμj)T
  2. 计算类间散度矩阵 S b = ∑ j = 1 k N j ( μ j − μ ) ( μ j − μ ) T S_b=\sum_{j=1}^kN_j(\mu_j-\mu)(\mu_j-\mu)^T Sb=j=1kNj(μjμ)(μjμ)T
  3. 计算矩阵 S b − 1 S w S_b^{-1}S_w Sb1Sw
  4. 计算 S b − 1 S w S_b^{-1}S_w Sb1Sw 的 d 个最大特征值及其对应的特征向量,组成 W W W
  5. 对原数据集 D D D 中的数据点 x i x_i xi,进行投影,得到 z i = W T x i z_i = W^Tx_i zi=WTxi:
  6. 输出投影之后的数据集 D ′ D' D

举例:

  数据集 D D D:
D = [ 1 2 0 3 1 0 − 2 − 2 1 − 3 − 1 1 ] D= \begin{bmatrix} 1 & 2 & 0 \\ 3 & 1 & 0 \\ -2 & -2 & 1 \\ -3 & -1 & 1 \\ \end{bmatrix} D=132321210011
  1. 类内散度矩阵 S w = [ 2.5 − 1.5 − 1.5 1 ] S_w= \begin{bmatrix} 2.5 & -1.5 \\ -1.5 & 1 \\ \end{bmatrix} Sw=[2.51.51.51]

  2. 类间散度矩阵 S b = [ 20.25 13.5 13.5 9.0 ] S_b= \begin{bmatrix} 20.25 & 13.5 \\ 13.5 & 9.0 \\ \end{bmatrix} Sb=[20.2513.513.59.0]

  3. S b − 1 S w = [ 162 108 256.5 171 ] S_b^{-1}S_w = \begin{bmatrix} 162 & 108 \\ 256.5 & 171 \\ \end{bmatrix} Sb1Sw=[162256.5108171]

  4. λ 1 = 0 , λ 2 = 333 \lambda_1=0, \lambda_2=333 λ1=0,λ2=333 w 1 = [ − 0.5547002 , 0.83205029 ] , w 2 = [ − 0.53399299 , − 0.8454889 ] w_1=[-0.5547002,0.83205029],w_2=[-0.53399299,-0.8454889] w1=[0.5547002,0.83205029],w2=[0.53399299,0.8454889]

   选择最大特征值对应的特征向量 w = [ − 0.53399299 , − 0.8454889 ] w=[-0.53399299,-0.8454889] w=[0.53399299,0.8454889]

  5. 计算投影之后的点集 D ′ = [ − 2.21 − 2.43 2.74 2.43 ] D'= \begin{bmatrix} -2.21 \\ -2.43 \\ 2.74 \\ 2.43 \\ \end{bmatrix} D=2.212.432.742.43

6. LDA算法小结

  LDA降维的过程基本如上所述,同时也可以将LDA用于分类。不严谨地简述一下:将训练集投影到超平面或者直线之后,对待分类数据点继续投影得到新数据点,利用统计学手段判断其最可能属于某个类别。LDA虽说考虑了不同类别之间的关系,但是还是缺失了原数据集的某些信息,将其用于分类从直观上来说也许并不是很好的手段。

  下面再说一下LDA的优缺点:

  优点:

  (1) 计算速度快;

  (2) 利用数据点的类别信息,充分考虑先验知识;

  缺点:

  (1) 当数据不是高斯分布时候,效果不好,PCA也是;

  (2) 降维之后的维数最多为 k − 1 k-1 k1(k为类别数);

7. 参考资料

  1. 机器学习-LDA(线性判别降维算法)
  2. 线性判别分析LDA原理总结——刘建平
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值