线性判别分析(Linear Discriminat Analysis)

2024-02-24 22:10

本文主要是介绍线性判别分析(Linear Discriminat Analysis),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

线性判别分析(Linear Discriminat Analysis)

PCA找寻的投影向量力求找到使得特征点方差较大(也就是说散的比较开),与PCA所找寻的投影向量不同,LAD所找寻的投影向量具有下面两种特性:

  1. 映射后不同类数据之间的中心点(均值点)相距较远
  2. 映射后同类数据之间方差较小(分布比较集中)

类似于一种聚类分析,但是却是一种监督学习算法。而PCA属于一种无监督学习算法。

那么将LDA的主轴与PCA的主轴画出如下:

在这里插入图片描述

可以看出实际上数据在映射在 LDA 的主轴上可分性更高。

在下面的正文中的一些数学符号的表示:

L : number of classes  n i : number of samples in class  i n : number of all samples  x ℓ ( i ) : the  ℓ -th sample in class  i P i : the prior probability of class  i \begin{aligned} L & : \text { number of classes } \\ n _ { i } & : \text { number of samples in class } i \\ n & : \text { number of all samples } \\ x _ { \ell } ^ { ( i ) } & : \text { the } \ell \text { -th sample in class } i \\ P _ { i } & : \text { the prior probability of class } i \end{aligned} Lninx(i)Pi: number of classes : number of samples in class i: number of all samples : the  -th sample in class i: the prior probability of class i

类间分散矩阵(Between-class Scatter Matrix)

那么所有的样本点 x ℓ ( i ) x _ { \ell } ^ { ( i ) } x(i) 在方向 e e e 上的投影为:

{ e T x 1 ( 1 ) , … , e T x n 1 ( 1 ) , e T x 1 ( 2 ) , … , e T x n 2 ( 2 ) , … , e T x ℓ ( i ) , … , e T x 1 ( L ) , … , e T x n L ( L ) } \left\{ e ^ { T } x _ { 1 } ^ { ( 1 ) } , \ldots , e ^ { T } x _ { n _ { 1 } } ^ { ( 1 ) } , e ^ { T } x _ { 1 } ^ { ( 2 ) } , \ldots , e ^ { T } x _ { n _ { 2 } } ^ { ( 2 ) } , \ldots , e ^ { T } x _ { \ell } ^ { ( i ) } , \ldots , e ^ { T } x _ { 1 } ^ { ( L ) } , \ldots , e ^ { T } x _ { n _ { L } } ^ { ( L ) } \right\} {eTx1(1),,eTxn1(1),eTx1(2),,eTxn2(2),,eTx(i),,eTx1(L),,eTxnL(L)}

投影之后的中心点为:

m i = 1 n i ∑ ℓ = 1 n i e T x ℓ ( i ) = e T { 1 n i ∑ ℓ = 1 n i x ℓ ( i ) } = e T m i m _ { i } = \frac { 1 } { n _ { i } } \sum _ { \ell = 1 } ^ { n _ { i } } \boldsymbol { e } ^ { T } \boldsymbol { x } _ { \ell } ^ { ( i ) } = \boldsymbol { e } ^ { T } \left\{ \frac { 1 } { n _ { i } } \sum _ { \ell = 1 } ^ { n _ { i } } \boldsymbol { x } _ { \ell } ^ { ( i ) } \right\} = \boldsymbol { e } ^ { T } \boldsymbol { m } _ { i } mi=ni1=1nieTx(i)=eT{ni1=1nix(i)}=eTmi

其中 m i = 1 n i ∑ ℓ = 1 n i x ℓ ( i ) \boldsymbol { m } _ { i } = \frac { 1 } { n _ { i } } \sum _ { \ell = 1 } ^ { n _ { i } } \boldsymbol { x } _ { \ell } ^ { ( i ) } mi=ni1=1nix(i) 实际上就是投影之前的中心,所以投影之后的中心则是原数据中心得投影。

那么不同类中心之间的平方距离(欧氏距离):

1 2 ∑ i = 1 L ∑ j = 1 L P i P j ∣ ∣ m i − m j ∣ ∣ = 1 2 ∑ i = 1 L ∑ j = 1 L P i P j ( m i − m j ) ( m i − m j ) T = 1 2 ∑ i = 1 L ∑ j = 1 L P i P j ( e T m i − e T m j ) ( e T m i − e T m j ) T = 1 2 ∑ i = 1 L ∑ j = 1 L P i P j e T ( m i − m j ) ( m i − m j ) T e = e T ( 1 2 ∑ i = 1 L ∑ j = 1 L P i P j ( m i − m j ) ( m i − m j ) T ) ⏟ S b L D A e \begin{aligned} &\frac { 1 } { 2 } \sum _ { i = 1 } ^ { L } \sum _ { j = 1 } ^ { L } P _ { i } P _ { j } \left| \kern-0.15em \left| m _ { i } - m _ { j } \right| \kern-0.15em \right| \\ = &\frac { 1 } { 2 } \sum _ { i = 1 } ^ { L } \sum _ { j = 1 } ^ { L } P _ { i } P _ { j } (m _ { i } - m _ { j })(m _ { i } - m _ { j })^T \\ = &\frac { 1 } { 2 } \sum _ { i = 1 } ^ { L } \sum _ { j = 1 } ^ { L } P _ { i } P _ { j } (e ^ { T } \boldsymbol m _ { i } - e ^ { T } \boldsymbol m _ { j })(e ^ { T } \boldsymbol m _ { i } - e ^ { T } \boldsymbol m _ { j })^T \\ = &\frac { 1 } { 2 } \sum _ { i = 1 } ^ { L } \sum _ { j = 1 } ^ { L } P _ { i } P _ { j } e ^ { T } ( \boldsymbol m _ { i } - \boldsymbol m _ { j })(\boldsymbol m _ { i } - \boldsymbol m _ { j })^T e \\ = &e ^ { T } \underbrace{\left( \frac { 1 } { 2 } \sum _ { i = 1 } ^ { L } \sum _ { j = 1 } ^ { L } P _ { i } P _ { j } \left( \boldsymbol { m } _ { i } - \boldsymbol { m } _ { j } \right) \left( \boldsymbol { m } _ { i } - \boldsymbol { m } _ { j } \right) ^ { T } \right)}_{S^{LDA}_b} e \\ \end{aligned} ====21i=1Lj=1LPiPjmimj21i=1Lj=1LPiPj(mimj)(mimj)T21i=1Lj=1LPiPj(eTmieTmj)(eTmieTmj)T21i=1Lj=1LPiPjeT(mimj)(mimj)TeeTSbLDA (21i=1Lj=1LPiPj(mimj)(mimj)T)e

其中 S b L D A S^{LDA}_b SbLDA 代表了类间分散矩阵(Between-class Scatter Matrix),其中下标 b b b 代表的 between。

加入每一类的比例是认为这个距离也就是说拉的有多开,跟这两类数据的占比有关。

下面要证明:

S b L D A = 1 2 ∑ i = 1 L ∑ j = 1 L P i P j ( m i − m j ) ( m i − m j ) T = ∑ i = 1 L P i ( m i − m ) ( m i − m ) T S _ { b } ^ { L D A } = \frac { 1 } { 2 } \sum _ { i = 1 } ^ { L } \sum _ { j = 1 } ^ { L } P _ { i } P _ { j } \left( \boldsymbol { m } _ { i } - \boldsymbol { m } _ { j } \right) \left( \boldsymbol { m } _ { i } - \boldsymbol { m } _ { j } \right) ^ { T } = \sum _ { i = 1 } ^ { L } P _ { i } \left( \boldsymbol { m } _ { i } - \boldsymbol { m } \right) \left( \boldsymbol { m } _ { i } - \boldsymbol { m } \right) ^ { T } SbLDA=21i=1Lj=1LPiPj(mimj)(mimj)T=i=1LPi(mim)(mim)T

其中 m \boldsymbol { m } m 代表了全部样本点的中心(均值):

m = 1 n ∑ i = 1 L ∑ ℓ = 1 n i x ℓ ( i ) \boldsymbol { m } = \frac { 1 } { n } \sum _ { i = 1 } ^ { L } \sum _ { \ell = 1 } ^ { n _ { i } } \boldsymbol { x } _ { \ell } ^ { ( i ) } m=n1i=1L=1nix(i)

直接换项不容易,所以这里将两边进行整理转换然后使得转换后等式相等。

先进行左边的等式转换:

S b L D A = 1 2 ∑ i = 1 L ∑ j = 1 L P i P j ( m i − m j ) ( m i − m j ) T = 1 2 ∑ i = 1 L ∑ j = 1 L P i P j ( m i m i T − m i m j T − m j m i T + m j m j T ) = 1 2 ∑ i = 1 L ∑ j = 1 L P i P j m i m i T − 1 2 ∑ i = 1 L ∑ j = 1 L P i P j m i m j T − 1 2 ∑ i = 1 L ∑ j = 1 L P i P j m j m i T + 1 2 ∑ i = 1 L ∑ j = 1 L P i P j m j m j T = 1 2 ∑ i = 1 L P i m i m i T ( ∑ j = 1 L P j ) − 1 2 ( ∑ i = 1 L P i m i ) ( ∑ j = 1 L P j m j T ) − 1 2 ( ∑ j = 1 L P j m j ) ( ∑ i = 1 L P i m i T ) + 1 2 ( ∑ i = 1 L P i ) ∑ j = 1 L P j m j m j T \begin{aligned} S _ { b } ^ { L D A } & = \frac { 1 } { 2 } \sum _ { i = 1 } ^ { L } \sum _ { j = 1 } ^ { L } P _ { i } P _ { j } \left( \boldsymbol { m } _ { i } - \boldsymbol { m } _ { j } \right) \left( \boldsymbol { m } _ { i } - \boldsymbol { m } _ { j } \right) ^ { T } \\ & = \frac { 1 } { 2 } \sum _ { i = 1 } ^ { L } \sum _ { j = 1 } ^ { L } P _ { i } P _ { j } \left( \boldsymbol { m } _ { i } \boldsymbol { m } _ { i }^ { T } -\boldsymbol { m } _ { i } \boldsymbol { m } _ { j }^ { T } - \boldsymbol { m } _ { j } \boldsymbol { m } _ { i }^ { T } + \boldsymbol { m } _ { j } \boldsymbol { m } _ { j }^ { T } \right)\\ & = \frac { 1 } { 2 } \sum _ { i = 1 } ^ { L } \sum _ { j = 1 } ^ { L } P _ { i } P _ { j } \boldsymbol { m } _ { i } \boldsymbol { m } _ { i }^ { T } - \frac { 1 } { 2 }\sum _ { i = 1 } ^ { L } \sum _ { j = 1 } ^ { L } P _ { i } P _ { j } \boldsymbol { m } _ { i } \boldsymbol { m } _ { j }^ { T } - \frac { 1 } { 2 }\sum _ { i = 1 } ^ { L } \sum _ { j = 1 } ^ { L } P _ { i } P _ { j } \boldsymbol { m } _ { j } \boldsymbol { m } _ { i }^ { T } + \frac { 1 } { 2 }\sum _ { i = 1 } ^ { L } \sum _ { j = 1 } ^ { L } P _ { i } P _ { j } \boldsymbol { m } _ { j } \boldsymbol { m } _ { j }^ { T } \\ & = \frac { 1 } { 2 } \sum _ { i = 1 } ^ { L } P _ { i} \boldsymbol { m } _ { i } \boldsymbol { m } _ { i }^ { T } \left( \sum _ { j = 1 } ^ { L } P _ { j } \right) -\frac { 1 } { 2 } \left(\sum _ { i = 1 } ^ { L } P _ { i} \boldsymbol { m } _ { i }\right) \left(\sum _ { j = 1 } ^ { L } P _ { j } \boldsymbol { m } _ { j }^ { T } \right) -\frac { 1 } { 2 } \left(\sum _ { j = 1 } ^ { L } P _ { j } \boldsymbol { m } _ { j } \right) \left(\sum _ { i = 1 } ^ { L } P _ { i} \boldsymbol { m } _ { i } ^ { T } \right)+ \frac { 1 } { 2 } \left( \sum _ { i = 1 } ^ { L } P _ { i } \right) \sum _ { j = 1 } ^ { L } P _ { j} \boldsymbol { m } _ { j } \boldsymbol { m } _ { j }^ { T } \end{aligned} SbLDA=21i=1Lj=1LPiPj(mimj)(mimj)T=21i=1Lj=1LPiPj(mimiTmimjTmjmiT+mjmjT)=21i=1Lj=1LPiPjmimiT21i=1Lj=1LPiPjmimjT21i=1Lj=1LPiPjmjmiT+21i=1Lj=1LPiPjmjmjT=21i=1LPimimiT(j=1LPj)21(i=1LPimi)(j=1LPjmjT)21(j=1LPjmj)(i=1LPimiT)+21(i=1LPi)j=1LPjmjmjT

其中所有概率相加为一:

( ∑ j = 1 L P j ) = ( ∑ i = 1 L P i ) = 1 \left( \sum _ { j = 1 } ^ { L } P _ { j } \right) = \left( \sum _ { i = 1 } ^ { L } P _ { i } \right) = 1 (j=1LPj)=(i=1LPi)=1

同时:

P i m i = n i n x 1 ( i ) + x 2 ( i ) + ⋯ + x n i ( n ) n i = 1 n { x 1 ( i ) + x 2 ( i ) + ⋯ + x n i ( n ) } \begin{aligned} P _ { i } \boldsymbol m _ { i } & = \frac { n _ { i } } { n } \frac { x ^ { ( i ) }_ { 1 } + x ^ { ( i ) } _ { 2 } + \cdots + x _ { n _i } ^ { ( n ) } } { n _ { i } } \\& = \frac { 1 } { n } \left\{ x ^ { ( i ) }_ { 1 } + x ^ { ( i ) } _ { 2 } + \cdots + x _ { n _i } ^ { ( n ) } \right\} \end{aligned} Pimi=nninix1(i)+x2(i)++xni(n)=n1{x1(i)+x2(i)++xni(n)}

那么:

∑ i = 1 L P i m i = ∑ i = 1 L 1 n { x 1 ( i ) + x 2 ( i ) + ⋯ + x n i ( n ) } = 1 n { x 1 ( 1 ) + ⋯ + x n 1 ( 1 ) + x 1 ( 2 ) + ⋯ + x n 2 ( 2 ) + ⋯ + x 1 ( i ) + ⋯ + x n i ( i ) } = 1 n ∑ i = 1 L ∑ ℓ = 1 n i x ℓ ( i ) = m \begin{aligned} \sum _ { i = 1 } ^ { L } P _ { i } \boldsymbol m _ { i } & = \sum _ { i = 1 } ^ { L } \frac { 1 } { n } \left\{ x ^ { ( i ) }_ { 1 } + x ^ { ( i ) } _ { 2 } + \cdots + x _ { n _i } ^ { ( n ) } \right\} \\& = \frac { 1 } { n } \left\{ x ^ { ( 1 ) }_ { 1 } + \cdots + x _ { n _ { 1 } } ^ { ( 1 ) } + x ^ { ( 2 ) }_ { 1 }+ \cdots + x _ { n _ { 2 } } ^ { ( 2 ) } + \cdots + x _ { 1 } ^ { ( i ) } + \cdots + x _ { n _ { i } } ^ { ( i ) } \right\} \\ &= \frac { 1 } { n } \sum _ { i = 1 } ^ { L } \sum _ { \ell = 1 } ^ { n _ { i } } \boldsymbol { x } _ { \ell } ^ { ( i ) } = \boldsymbol { m } \end{aligned} i=1LPimi=i=1Ln1{x1(i)+x2(i)++xni(n)}=n1{x1(1)++xn1(1)+x1(2)++xn2(2)++x1(i)++xni(i)}=n1i=1L=1nix(i)=m

所以做如下改写:

S b L D A = 1 2 ∑ i = 1 L P i m i m i T ( ∑ j = 1 L P j ) − 1 2 ( ∑ i = 1 L P i m i ) ( ∑ j = 1 L P j m j T ) − 1 2 ( ∑ j = 1 L P j m j ) ( ∑ i = 1 L P i m i T ) + 1 2 ( ∑ i = 1 L P i ) ∑ j = 1 L P j m j m j T = 1 2 ∑ i = 1 L P i m i m i T − 1 2 m m T − 1 2 m m T + 1 2 ∑ j = 1 L P j m j m j T = ∑ i = 1 L P i m i m i T − m m T \begin{aligned} S _ { b } ^ { L D A } & = \frac { 1 } { 2 } \sum _ { i = 1 } ^ { L } P _ { i} \boldsymbol { m } _ { i } \boldsymbol { m } _ { i }^ { T } \left( \sum _ { j = 1 } ^ { L } P _ { j } \right) -\frac { 1 } { 2 } \left(\sum _ { i = 1 } ^ { L } P _ { i} \boldsymbol { m } _ { i }\right) \left(\sum _ { j = 1 } ^ { L } P _ { j } \boldsymbol { m } _ { j }^ { T } \right) -\frac { 1 } { 2 } \left(\sum _ { j = 1 } ^ { L } P _ { j } \boldsymbol { m } _ { j } \right) \left(\sum _ { i = 1 } ^ { L } P _ { i} \boldsymbol { m } _ { i } ^ { T } \right)+ \frac { 1 } { 2 } \left( \sum _ { i = 1 } ^ { L } P _ { i } \right) \sum _ { j = 1 } ^ { L } P _ { j} \boldsymbol { m } _ { j } \boldsymbol { m } _ { j }^ { T } \\ & = \frac { 1 } { 2 } \sum _ { i = 1 } ^ { L } P _ { i} \boldsymbol { m } _ { i } \boldsymbol { m } _ { i }^ { T } -\frac { 1 } { 2 } \boldsymbol { m } \boldsymbol { m } ^T -\frac { 1 } { 2 } \boldsymbol { m } \boldsymbol { m } ^T+ \frac { 1 } { 2 } \sum _ { j = 1 } ^ { L } P _ { j} \boldsymbol { m } _ { j } \boldsymbol { m } _ { j }^ { T } \\ & = \sum _ { i = 1 } ^ { L } P _ { i} \boldsymbol { m } _ { i } \boldsymbol { m } _ { i }^ { T } -\boldsymbol { m } \boldsymbol { m } ^T \end{aligned} SbLDA=21i=1LPimimiT(j=1LPj)21(i=1LPimi)(j=1LPjmjT)21(j=1LPjmj)(i=1LPimiT)+21(i=1LPi)j=1LPjmjmjT=21i=1LPimimiT21mmT21mmT+21j=1LPjmjmjT=i=1LPimimiTmmT

现在进行右边的等式转换:

∑ i = 1 L P i ( m i − m ) ( m i − m ) T = ∑ 1 = 1 L P i m i m i T − ∑ i = 1 L P i m i m T − ∑ i = 1 L P i m m i T + ∑ i = 1 L P i m m T = ∑ i = 1 L P i m i m i T − ( ∑ i = 1 L P i m i ) m T − m ( ∑ i = 1 L P i m i T ) + ( ∑ i = 1 L P i ) m m T = ∑ i = 1 L P i m i m i T − m m T − m m T + m m T = ∑ i = 1 L P i m i m i T − m m T \begin{aligned} & \sum _ { i = 1 } ^ { L } P _ { i } \left( \boldsymbol { m } _ { i } - \boldsymbol { m } \right) \left( \boldsymbol { m } _ { i } - \boldsymbol { m } \right) ^ { T }\\ = & \sum _ { 1 = 1 } ^ { L } P _ { i } \boldsymbol m _ { i } \boldsymbol m _ { i } ^T- \sum _ { i = 1 } ^ { L } P _ { i } \boldsymbol m _ { i } \boldsymbol m ^ T- \sum _ { i = 1 } ^ { L } P _ { i } \boldsymbol m \boldsymbol m _ { i } ^T + \sum _ { i = 1 } ^ { L } P _ { i } \boldsymbol m \boldsymbol m ^ T \\ = & \sum _ { i = 1 } ^ { L } P _ { i } \boldsymbol m _ i \boldsymbol m _ { i } ^T - \left( \sum _ { i = 1 } ^ { L } P _ { i } \boldsymbol m _ { i } \right) \boldsymbol m ^T- \boldsymbol m \left( \sum _ { i = 1 } ^ { L } P _ { i } \boldsymbol m _ { i } ^T\right) + \left(\sum _ { i = 1 } ^ { L } P _ { i } \right) \boldsymbol m \boldsymbol m ^ T \\ = & \sum _ { i = 1 } ^ { L } P _ { i } \boldsymbol m _ i \boldsymbol m _ { i } ^T - \boldsymbol m \boldsymbol m ^T- \boldsymbol m \boldsymbol m ^T + \boldsymbol m \boldsymbol m ^ T \\ = & \sum _ { i = 1 } ^ { L } P _ { i } \boldsymbol m _ i \boldsymbol m _ { i } ^T - \boldsymbol m \boldsymbol m ^T \end{aligned} ====i=1LPi(mim)(mim)T1=1LPimimiTi=1LPimimTi=1LPimmiT+i=1LPimmTi=1LPimimiT(i=1LPimi)mTm(i=1LPimiT)+(i=1LPi)mmTi=1LPimimiTmmTmmT+mmTi=1LPimimiTmmT

所以两者相等。即:
S b L D A = 1 2 ∑ i = 1 L ∑ j = 1 L P i P j ( m i − m j ) ( m i − m j ) T = ∑ i = 1 L P i ( m i − m ) ( m i − m ) T S _ { b } ^ { L D A } = \frac { 1 } { 2 } \sum _ { i = 1 } ^ { L } \sum _ { j = 1 } ^ { L } P _ { i } P _ { j } \left( \boldsymbol { m } _ { i } - \boldsymbol { m } _ { j } \right) \left( \boldsymbol { m } _ { i } - \boldsymbol { m } _ { j } \right) ^ { T } = \sum _ { i = 1 } ^ { L } P _ { i } \left( \boldsymbol { m } _ { i } - \boldsymbol { m } \right) \left( \boldsymbol { m } _ { i } - \boldsymbol { m } \right) ^ { T } SbLDA=21i=1Lj=1LPiPj(mimj)(mimj)T=i=1LPi(mim)(mim)T

类内分散矩阵(Within-class Scatter Matrix)

全部类的方差之和为:

∑ i = 1 L P i ∑ ℓ = 1 n i ( e T x ℓ ( i ) − m i ) 2 = ∑ i = 1 L P i ∑ l = 1 n i ( e T x l ( i ) − e T m i ) 2 = ∑ i = 1 L P i ∑ l = 1 n i ( e T x l ( i ) − e T m i ) ( e T x l ( i ) − e T m i ) T = e T { ∑ i = 1 L P i ∑ l = 1 n i ( x i ( i ) − m i ) ( x i ( i ) − m i ) T ⏟ S w L D A } e \begin{aligned} & \sum _ { i = 1 } ^ { L } { P } _ { i } \sum _ { \ell = 1 } ^ { n _ { i } } \left( e ^ { T } { x } _ { \ell } ^ { ( i ) } - m _ { i } \right) ^ { 2 } \\ = & \sum _ { i = 1 } ^ { L } P _ { i } \sum _ { l = 1 } ^ { n _ { i } } \left( e ^ { T } x _ { l } ^ { ( i ) } - e ^ { T} \boldsymbol m _ { i } \right) ^ { 2 } \\ = & \sum _ { i = 1 } ^ { L } P _ { i } \sum _ { l = 1 } ^ { n _ { i } } \left( e ^ { T} x _ { l } ^ { ( i ) } - e ^ { T} \boldsymbol m _ { i } \right) \left( e ^ { T} x _ { l } ^ { ( i ) } - e ^ { T} \boldsymbol m _ { i } \right) ^ T \\ = & e^ { T} \left\{ \underbrace { \sum _ { i = 1 } ^ { L } P _ { i } \sum _ { l = 1 } ^ { n _ { i } } \left( x _ { i } ^ { ( i ) } - \boldsymbol m _ { i } \right) \left( x _ { i } ^ { ( i ) } - \boldsymbol m _ { i } \right) ^ { T } }_{\boldsymbol { S } _ { w } ^ { L D A }}\right\} e \end{aligned} ===i=1LPi=1ni(eTx(i)mi)2i=1LPil=1ni(eTxl(i)eTmi)2i=1LPil=1ni(eTxl(i)eTmi)(eTxl(i)eTmi)TeTSwLDA i=1LPil=1ni(xi(i)mi)(xi(i)mi)Te

其中 S w L D A \boldsymbol S^{LDA}_w SwLDA 代表了类间分散矩阵(Within-class Scatter Matrix),其中下标 w w w 代表的 within。

S w L D A = ∑ i = 1 L P i ∑ ℓ = 1 n i ( x ℓ ( i ) − m i ) ( x ℓ ( i ) − m i ) T \boldsymbol { S } _ { w } ^ { L D A } = \sum _ { i = 1 } ^ { L } P _ { i } \sum _ { \ell = 1 } ^ { n _ { i } } \left( \boldsymbol { x } _ { \ell } ^ { ( i ) } - \boldsymbol { m } _ { i } \right) \left( \boldsymbol { x } _ { \ell } ^ { ( i ) } - \boldsymbol { m } _ { i } \right) ^ { T } SwLDA=i=1LPi=1ni(x(i)mi)(x(i)mi)T

希望类(组)间距离越大越好:

1 2 ∑ i = 1 L ∑ j = 1 L P i P j ( m i − m j ) 2 = e T ( ∑ i = 1 L P i ( m i − m ) ( m i − m ) T ) e = e T S b L D A e \frac { 1 } { 2 } \sum _ { i = 1 } ^ { L } \sum _ { j = 1 } ^ { L } P _ { i } P _ { j } \left( m _ { i } - m _ { j } \right) ^ { 2 } = e ^ { T } \left( \sum _ { i = 1 } ^ { L } P _ { i } \left( \boldsymbol { m } _ { i } - \boldsymbol { m } \right) \left( \boldsymbol { m } _ { i } - \boldsymbol { m } \right) ^ { T } \right) e = e^T \boldsymbol { S } _ { b } ^ { L D A } e 21i=1Lj=1LPiPj(mimj)2=eT(i=1LPi(mim)(mim)T)e=eTSbLDAe

希望类(组)间距离越小越好:

∑ i = 1 L P i ∑ ℓ = 1 n i ( e T x ℓ ( i ) − m i ) 2 = e T ( ∑ i = 1 L P i ∑ ℓ = 1 n i ( x ℓ ( i ) − m i ) ( x ℓ ( i ) − m i ) T ) e = e T S w L D A e \sum _ { i = 1 } ^ { L } P _ { i } \sum _ { \ell = 1 } ^ { n _ { i } } \left( e ^ { T } x _ { \ell } ^ { ( i ) } - m _ { i } \right) ^ { 2 } = e ^ { T } { \left( \sum _ { i = 1 } ^ { L } P _ { i } \sum _ { \ell = 1 } ^ { n _ { i } } \left( x _ { \ell } ^ { ( i ) } - m _ { i } \right) \left( x _ { \ell } ^ { ( i ) } - m _ { i } \right) ^ { T } \right) } e = e^ T \boldsymbol { S } _ { w } ^ { L D A } e i=1LPi=1ni(eTx(i)mi)2=eT(i=1LPi=1ni(x(i)mi)(x(i)mi)T)e=eTSwLDAe

所以两个不能分开来看,所以选择目标函数的表示为:

e = arg ⁡ max ⁡ e ∈ R d e T S b L D A e e T S w L D A e e = \arg \max _ { e \in R ^ { d } } \frac { e ^ { T } S _ { b } ^ { L D A } e } { e ^ { T } S _ { w } ^ { L D A } e } e=argeRdmaxeTSwLDAeeTSbLDAe

来保证分子最大,分母最小,也就是说 组间距离/组内距离 越大越好。

现在引入一个概念:Rayleigh Quotient

r ( e ) = e T S b L D A e e T S w L D A e r ( { e } ) = \frac { { e } ^ { T } { S } _ { b } ^ { L D A } { e } } { { e } ^ { T } { S } _ { w } ^ { L D A } { e } } r(e)=eTSwLDAeeTSbLDAe

那么凸最优解,就是求导为零:

∇ r ( e ) = 1 ( e T S w L D A e ) 2 { ( e T S w L D A e ) ( 2 S b L D A e ) − ( e T S b L D A e ) ( 2 S w L D A e ) } = 0 = 1 e T S w L D A e { 1 ⋅ 2 S b L D A e − e T S b L D A e e T S w L D A e 2 S W L D A e ⏟ 0 } \begin{aligned} \nabla r ( \boldsymbol { e } ) & = \frac { 1 } { \left( \boldsymbol { e } ^ { T } \boldsymbol { S } _ { w } ^ { L D A } \boldsymbol { e } \right) ^ { 2 } } \left\{ \left( \boldsymbol { e } ^ { T } \boldsymbol { S } _ { w } ^ { L D A } \boldsymbol { e } \right) \left( 2 \boldsymbol { S } _ { b } ^ { L D A } \boldsymbol { e } \right) - \left( \boldsymbol { e } ^ { T } \boldsymbol { S } _ { b } ^ { L D A } \boldsymbol { e } \right) \left( 2 \boldsymbol { S } _ { w } ^ { L D A } \boldsymbol { e } \right) \right\} = 0\\ & = \frac { 1 } { e ^ { T } S _ { w } ^ { LDA } e } \left\{\underbrace {1 \cdot 2 S _ { b } ^ { L D A } e - \frac { e ^ { T} S _ { b } ^ { L D A } e } { e ^ { T} S _ { w } ^ { L D A} e } 2 S _ { W } ^ { L D A } e}_{0} \right\} \end{aligned} r(e)=(eTSwLDAe)21{(eTSwLDAe)(2SbLDAe)(eTSbLDAe)(2SwLDAe)}=0=eTSwLDAe10 12SbLDAeeTSwLDAeeTSbLDAe2SWLDAe

也就是说

S b L D A e = e T S b L D A e e T S w L D A e S w L D A e = r ( e ) S w L D A e S _ { b } ^ { L D A } e = \frac { e ^ { T} S _ { b } ^ { L D A } e } { e ^ { T} S _ { w } ^ { L D A} e } S _ { w } ^ { L D A } e = r(e) S _ { w } ^ { L D A } e SbLDAe=eTSwLDAeeTSbLDAeSwLDAe=r(e)SwLDAe

这是一种广义特征值问题(generalized eigenvalue problem),即:

S b L D A e = λ S w L D A e \boldsymbol { S } _ { b } ^ { L D A } \boldsymbol { e } = \lambda \boldsymbol { S } _ { w } ^ { L D A } \boldsymbol { e } SbLDAe=λSwLDAe

这里的特征向量不在是原来的特征向量而是原来的特征向量乘以一个矩阵,所以是在求 S b L D A \boldsymbol { S } _ { b } ^ { L D A } SbLDA 的广义特征值 λ \lambda λ

工程上的解法是,做如下转换:

pinv ( S w L D A ) S b L D A e = λ e \text{pinv} (\boldsymbol { S } _ { w } ^ { L D A } )\boldsymbol { S } _ { b } ^ { L D A } \boldsymbol { e } = \lambda \boldsymbol { e } pinv(SwLDA)SbLDAe=λe

然后使用特征值求解方法。

这篇关于线性判别分析(Linear Discriminat Analysis)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/743523

相关文章

线性因子模型 - 独立分量分析(ICA)篇

序言 线性因子模型是数据分析与机器学习中的一类重要模型,它们通过引入潜变量( latent variables \text{latent variables} latent variables)来更好地表征数据。其中,独立分量分析( ICA \text{ICA} ICA)作为线性因子模型的一种,以其独特的视角和广泛的应用领域而备受关注。 ICA \text{ICA} ICA旨在将观察到的复杂信号

理解分类器(linear)为什么可以做语义方向的指导?(解纠缠)

Attribute Manipulation(属性编辑)、disentanglement(解纠缠)常用的两种做法:线性探针和PCA_disentanglement和alignment-CSDN博客 在解纠缠的过程中,有一种非常简单的方法来引导G向某个方向进行生成,然后我们通过向不同的方向进行行走,那么就会得到这个属性上的图像。那么你利用多个方向进行生成,便得到了各种方向的图像,每个方向对应了很多

✨机器学习笔记(二)—— 线性回归、代价函数、梯度下降

1️⃣线性回归(linear regression) f w , b ( x ) = w x + b f_{w,b}(x) = wx + b fw,b​(x)=wx+b 🎈A linear regression model predicting house prices: 如图是机器学习通过监督学习运用线性回归模型来预测房价的例子,当房屋大小为1250 f e e t 2 feet^

【高等代数笔记】线性空间(一到四)

3. 线性空间 令 K n : = { ( a 1 , a 2 , . . . , a n ) ∣ a i ∈ K , i = 1 , 2 , . . . , n } \textbf{K}^{n}:=\{(a_{1},a_{2},...,a_{n})|a_{i}\in\textbf{K},i=1,2,...,n\} Kn:={(a1​,a2​,...,an​)∣ai​∈K,i=1,2,...,n

带头结点的线性链表的基本操作

持续了好久,终于有了这篇博客,链表的操作需要借助图像模型进行反复学习,这里尽可能的整理并记录下自己的思考,以备后面复习,和大家分享。需要说明的是,我们从实际应用角度出发重新定义了线性表。 一. 定义 从上一篇文章可以看到,由于链表在空间的合理利用上和插入、删除时不需要移动等优点,因此在很多场合下,它是线性表的首选存储结构。然而,它也存在某些实现的缺点,如求线性表的长度时不如顺序存储结构的

浙大数据结构:02-线性结构4 Pop Sequence

这道题我们采用数组来模拟堆栈和队列。 简单说一下大致思路,我们用栈来存1234.....,队列来存输入的一组数据,栈与队列进行匹配,相同就pop 机翻 1、条件准备 stk是栈,que是队列。 tt指向的是栈中下标,front指向队头,rear指向队尾。 初始化栈顶为0,队头为0,队尾为-1 #include<iostream>using namespace std;#defi

深度学习与大模型第3课:线性回归模型的构建与训练

文章目录 使用Python实现线性回归:从基础到scikit-learn1. 环境准备2. 数据准备和可视化3. 使用numpy实现线性回归4. 使用模型进行预测5. 可视化预测结果6. 使用scikit-learn实现线性回归7. 梯度下降法8. 随机梯度下降和小批量梯度下降9. 比较不同的梯度下降方法总结 使用Python实现线性回归:从基础到scikit-learn 线性

C#中的各种画刷, PathGradientBrush、线性渐变(LinearGradientBrush)和径向渐变的区别

在C#中,画刷(Brush)是用来填充图形(如形状或文本)内部区域的对象。在.NET框架中,画刷是System.Drawing命名空间的一部分,通常用于GDI+绘图操作。以下是一些常用的画刷类型: SolidBrush:用于创建单色填充的画刷。HatchBrush:用于创建具有图案填充的画刷。TextureBrush:用于创建具有图像纹理填充的画刷。LinearGradientBrush:用于创

(感知机-Perceptron)—有监督学习方法、非概率模型、判别模型、线性模型、参数化模型、批量学习、核方法

定义 假设输入空间(特征空间)是 χ \chi χ ⊆ R n \subseteq R^n ⊆Rn,输出空间是y = { + 1 , − 1 } =\{+1,-1 \} ={+1,−1} 。输入 x ∈ χ x \in \chi x∈χ表示实例的特征向量,对应于输入空间(特征空间)的点;输出 y ∈ y \in y∈y表示实例的类别。由输入空间到输出空间的如下函数: f ( x ) = s

逻辑回归与线性回归的目标函数和应用场景比较

概述 逻辑回归和线性回归是两种常用的预测模型,它们在目标函数和应用场景上存在显著差异。本文将详细比较这两种回归模型,并提供相应的代码示例。 线性回归 线性回归是一种预测连续数值的模型,其目标是找到特征( X )和目标变量( Y )之间的线性关系。线性回归的目标函数是最小化预测值和实际值之间的平方差,即均方误差(MSE)。 目标函数 线性回归的损失函数是均方误差: [ J(\theta)