机器学习04-继续线性分类(硬分类)---线性判别分析(LDA)

这一篇会接着介绍硬分类模型-线性判别分析(LDA),也称为fisher判别分析

同样以二分类为出发点, 数据集 D = \{{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}\}, x_i是列向量,维度为p, 定义X = (x_1 x_2 ... x_N)^Ty = \{+1, -1\}

x_{c_1} = \{x_i|y_i=1\}, 表示标签是1的样本集, 同理,x_{c_2} = \{x_i|y_i=-1\}

|x_{c_1}| = N_1|x_{c_2}| = N_2N_1+N_2 = N

线性判别分析的思想,就是找到一个方向, 使得样本沿着这个方向投影(注意是沿着这个方向投影),使得类内的样本距离要近, 不同类别的距离要远, 即高内聚,松耦合,思想很简单。


二维示意图

首先数据是x, 投影方向是w(不需要考虑截距项,因为不会影响方向), 那么x顺着w

方向投影的结果就是,z = w^Tx。样本数据集的所有样本,都有一个投影后的结果z_i

\bar{z_1}  = \frac{1}{N_1}\sum_{i=1}^{N_1}w^Tx_i,表示类别1投影后的均值, s_1 = \frac{1}{N_1}\sum_{i=1}^{N_1}(w^Tx_i - \bar z_1)(w^Tx_i - \bar z_1)^T, 是类别1样本投影后的方差

同理可以定义类别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},\hat w =  \mathop{argmax}_{w}J(w)

把变量都带进去, 分子 = (\frac{1}{N_1}\sum_{i=1}^{N_1}w^Tx_i -  \frac{1}{N_2}\sum_{i=1}^{N_2}w^Tx_i)^2 = (w^T(\frac{1}{N_1}\sum_{i=1}^{N_1}x_i - \frac{1}{N_2}\sum_{i=1}^{N_2}x_i ))^2

我们先化简下分母中的s1, s_1 = \frac{1}{N_1}\sum_{i=1}^{N_1}(w^Tx_i - \frac{1}{N_1}\sum_{j=1}^{N_1}w^Tx_j)(w^Tx_i - \frac{1}{N_1}\sum_{j=1}^{N_1}w^Tx_j)^T

= \frac{1}{N_1}\sum_{i=1}^{N_1}w^T(x_i - \bar x_{c_1})(x_i -  \bar x_{c_1})^Tw = w^T[\frac{1}{N_1}\sum_{i=1}^{N_1}(x_i - \bar x_{c_1})(x_i -  \bar x_{c_1})^T]w

= w^TS_{c_1}w, 这里的S_{c_1}就是类别1样本的协方差矩阵

所以目标函数可以写成J(w) = \frac{w^T(\bar x_{c_1}-\bar x_{c_2})(\bar x_{c_1}-\bar x_{c_2})^Tw}{w^T(S_{c_1}+S_{c_2})w} = \frac{w^TS_bw}{w^TS_ww}

S_b表示类间, S_w表示类内

现在我们来求解w

\frac{\partial J(w)}{\partial w} = 2S_bw(w^TS_ww)^{-1} +w^TS_bw(-1)(w^Ts_ww)^{-2}*2S_ww = 0

\Rightarrow S_bw(w^TS_ww) - w^TS_bwS_ww = 0

\Rightarrow w^TS_bwS_ww = S_bw(w^TS_ww)

x是p*1的, w是p*1的, Sw是p*p的, 所以w^TS_bww^TS_ww都是实数

S_ww = \frac{w^TS_ww}{w^TS_bw}S_bw

我们关注的是w的方向, 大小没有意义, w\propto  S_w^{-1}S_bw

回顾一下, S_b = (\bar x_{c_1}-\bar x_{c_2})(\bar x_{c_1}-\bar x_{c_2})^T,(\bar x_{c_1}-\bar x_{c_2})^Tw是一个一维实数,与方向没有关系, 所以我们就得到了

w\propto S_w^{-1} (\bar x_{c_1}- \bar x_{c_2}),即找到了投影方向。

我们只需要设置z的阈值作为分类的标准, 就可以对样本进行分类了。

LDA是可以作数据降维的, 降维的具体内容,会在之后篇章中进行详细的介绍,这边只要有个基本概念,比如上述的推导,把所有样本降维到了z轴这一维上,拿LDA作降维的话,降维后的维数,最多是样本类别数-1。

转载请注明,谢谢

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。