【温故而知新】线性判别分析(Linear Discriminant Analysis)

线性判别分析(Linear Discriminant Analysis, LDA)是一种经典的线性分类方法。

LDA的基本思想:给定训练数据集,设法将样本投影到一条直线上,使得同类样本的投影点尽可能的接近,不同类样本的投影点尽可能远离;在对新来样本进行分类时,首先将其投影到直线上,再根据投影点的位置来判断样本所属的类别。即:类内小,类间大("高内聚,松耦合")

【温故而知新】线性判别分析(Linear Discriminant Analysis)_第1张图片

给定数据集D=(x_1,y_i)}_{i=1}^{N},x_i \in \mathbb{R}^p,y_i \in \{ +1, -1\},在这里我们将y=+1记为C_1类,y=-1记为C_2类,则

x_{c_1}=\{x_i |y_i=+1 \},    x_{c_2}=\{ x_i|y_i=-1 \},

 \left | x_{c1} \right | = N_1,    \left | x_{c2} \right | = N_2,    N_1+N_2 = N

样本点在直线WX上的投影:Z_i = W^Tx_i,此处令\left \| W\right \|_2^2=1

训练样本的均值:\bar{Z}=\frac{1}{N}\sum_{i=1}^{N}Z_i=\frac{1}{N}\sum_{i=1}^NW^Tx_i

训练样本的方差: S_{Z}=\frac{1}{N}\sum_{i=1}^{N}(Z_i-\bar{Z})(Z_i-\bar{Z})^T=\frac{1}{N}\sum_{i=1}^{N}(W^Tx_i-\bar{Z})(W^Tx_i-\bar{Z})

对于 C_1类样本的均值:\bar{Z_1}=\frac{1}{N_1}\sum_{i=1}^{N_1}W^Tx_i

对于 C_1类样本的方差:S_{1}=\frac{1}{N_1}\sum_{i=1}^{N_1}(W^Tx_i-\bar{Z_1})(W^Tx_i-\bar{Z_1})

对于 C_2类样本的均值:\bar{Z_2}=\frac{1}{N_2}\sum_{i=1}^{N_2}W^Tx_i

对于 C_2类样本的方差:S_{2}=\frac{1}{N_2}\sum_{i=1}^{N_2}(W^Tx_i-\bar{Z_2})(W^Tx_i-\bar{Z_2})

类间:(\bar{Z_1}-\bar{Z_2})^2,类内:S_1+S_2

目标损失函数:J(W)=\frac{(\bar{Z_1}-\bar{Z_2})^2}{S_1+S_2}

                 (\bar{Z_1}-\bar{Z_2})^2=\left \{ \frac{1}{N_1}\sum_{i=1}^{N_1}W^Tx_i - \frac{1}{N_2}\sum_{i=1}^{N_2}W^Tx_i\right \}^2

                                     =\left \{ W^T \left (\frac{1}{N_1}\sum_{i=1}^{N_1}x_i - \frac{1}{N_2}\sum_{i=1}^{N_2}x_i \right ) \right \}^2

                                     =\left \{ W^T \left (\bar{Z_1} - \bar{Z_2} \right ) \right \}^2

                                     =\left \{ W^T\left ( \bar{Z_1}-\bar{Z_2} \right )\left ( \bar{Z_1}-\bar{Z_2} \right )^TW \right \}                    

              S_1=\frac{1}{N_1}\sum_{i=1}^{N_1} \left \{ \left ( W^Tx_i - \frac{1}{N_1} \sum_{j=1}^{N_1}W^Tx_j\right )\left ( W^Tx_i - \frac{1}{N_1} \sum_{j=1}^{N_1}W^Tx_j\right )^T \right \}

                   =\frac{1}{N_1}\sum_{i=1}^{N_1} \left \{ W^T \left ( x_i-\bar{Z_1} \right ) \left ( x_i-\bar{Z_1} \right ) ^TW \right \}

                   =W^T \left \{ \frac{1}{N_1}\sum_{i=1}^{N_1} \left ( x_i-\bar{Z_1} \right ) \left ( x_i-\bar{Z_1} \right ) ^T \right \}W

                   =W^T \cdot S_1\cdot W

     S_1+S_2=W^T \cdot S_1\cdot W+W^T \cdot S_2\cdot W=W^T(S_1+S_2)W

综上可知,J(W)=\frac{(\bar{Z_1}-\bar{Z_2})^2}{S_1+S_2}=\frac{ W^T\left ( \bar{Z_1}-\bar{Z_2} \right )\left ( \bar{Z_1}-\bar{Z_2} \right )^TW}{W^T(S_1+S_2)W}

                                                     =\frac{W^TS_bW}{W^TS_wW}

其中,S_b为between-class 类间方差(维度:p*p),  S_w为within-class 类内方差(维度:p*p)

                S_b=(\bar{Z_1}-\bar{Z_2})(\bar{Z_1}-\bar{Z_2})^T

               S_w=S_1+S_2

          J(W)=W^TS_bW(W^TS_wW)^{-1}

       \frac{\partial J(W)}{\partial w}=2S_bW(W^TS_wW)^{-1}+W^TS_bW\cdot (-1)(W^TS_wW)^{-2}\cdot 2S_wW

\frac{\partial J(W)}{\partial W}=0可得,

             2S_bW(W^TS_wW)^{-1}+W^TS_bW\cdot (-1)(W^TS_wW)^{-2}\cdot 2S_wW=0

             S_bW(W^TS_wW)^{-1}+W^TS_bW\cdot (-1)(W^TS_wW)^{-2}\cdot S_wW=0 两边同时乘以(W^TS_bW)^2可得

             S_bW(W^TS_wW)-W^TS_bWS_wW=0 

             S_bW(W^TS_wW)-W^TS_bWS_wW=0 

             W^TS_bWS_wW=S_bW(W^TS_wW) 这里W的维度为p*1,所以W^TS_bW维度[1*p][p*p][p*1],故W^TS_bW \in\mathbb{R}, 同理 W^TS_wW \in\mathbb{R}

              S_wW=\frac{W^TS_wW}{W^TS_bW}\cdot S_bW

              W=\frac{W^TS_wW}{W^TS_bW}\cdot S_w^{-1}S_bW\propto S_w^{-1}S_bW

          S_bW=(\bar{Z_1}-\bar{Z_2})(\bar{Z_1}-\bar{Z_2})^TW, 这里(\bar{Z_1}-\bar{Z_2})的维度为p*1, 则(\bar{Z_1}-\bar{Z_2})^TW的维度为[1*p][p*1], 故(\bar{Z_1}-\bar{Z_2})^TW \in \mathbb{R}

              W=\frac{W^TS_wW}{W^TS_bW}\cdot S_w^{-1}S_bW\propto S_w^{-1}S_bW\propto S_w^{-1}(\bar{Z_1}-\bar{Z_2})

如果S_w是单位矩阵或者对角矩阵,各项同性,S_W^{-1} \propto I,则W\propto (\bar{Z_1}-\bar{Z_2}) 

 

完,

 

 

 

 

 

 

你可能感兴趣的:(ML算法实现-python)