吃瓜日记——LDA线性判别分析

今天的西瓜不太好吃,啊啊啊

今天看到LDA,但是对西瓜书上讲解的LDA不是很理解,然后就自己找了相关资料,希望能够给自己通俗的讲明白。

一、LDA简介

LDA是一个经典的线性学习方法,主要用于二分分类问题,扩展以后可以解决多分分类。

LDA和PCA都是利用降维思想,与PCA不同的C是,LDA主要是针对带有标签的数据,将带有标签的数据降维,投影到低维空间同时满足三个条件:

  • 尽可能多地保留数据样本的信息(即选择最大的特征是对应的特征向量所代表的的方向)。
  • 寻找使样本尽可能好分的最佳投影方向。
  • 投影后使得同类样本尽可能近,不同类样本尽可能远。

 

符号介绍:

  • x:表示训练样本,向量表示,即每个西瓜
  • C:表示有C类样本,C种瓜
  • u_{i}:第i类样本均值,(i=1,2,……,C)
  • \widetilde{u}_{i}:映射后第i类样本均值
  • w:样本每个特征的权重,即西瓜的颜色、根须是否卷曲对西瓜是否为好瓜的重要性
  • b:偏置量
  • Mi:表示第i类训练样本的数目,第i类西瓜的个数
  • M:训练样本的总数,全部西瓜的个数 M = \sum _{i=1}^{C}M_{i}
  • Di:第i类样本集合
  • S_{w}:类内散度矩阵,表示一个类别中数据的分散程度
  • S_{b}:类间散度矩阵,表示类之间的分散成功

二、优化目标

为什么是线性判别分析呢?所谓的线性就是,我们要将数据点投影到直线上(可能是多条直线),直线的函数解析式又称为线性函数。通常直线的表达式为     y = w^{T}x   

我们先定义一个变量J,用来衡量两个类别被投影的好坏,是否被容易区分。

J = \frac{\left | u_{1} - u_{2}\right |^{2}}{S_{1}^{2}+S_{2}^{2}} 

两个类均值方差越大(两个类离得越远),类内散度越小(类内数据紧凑),就说明这个投影效果好。

我们假设已经找了一条最好的直线 l,能够让我们的两个类分开,此时w = w*能够使J取得最大值。所以我们的目的就成了找到一个是J取最大值的w*。我们先对J进行变形。

投影前:   u_{i} = \frac{1}{C}\sum _{x\epsilon D_{i}}x       ……………… ①

投影后:  \widetilde{u}_{i} = \frac{1}{C}\sum _{y\epsilon D_{i}}y = \frac{1}{C}\sum _{x\epsilon D_{i}}w^{T}x = w^{T}u_{i}        ………………②

扫描二维码关注公众号,回复: 11975778 查看本文章

那么在投影之后,我们就可以得到  \left | \widetilde{u}_{1} - \widetilde{u}_{2} \right |^{2} = \left ( w^{T}u_{1} -w^{T}u_{2} \right )^{2} = w^{T}(u_{1}-u_{2})(u_{1}-u_{2})^{T}w,令\left ( u_{1}-u_{2} \right )\left ( u_{1}-u_{2} \right )^{T} = S_{b}

(between the class),则 \left | \widetilde{u}_{1} - \widetilde{u}_{2} \right |^{2}w^{T}S_{b}w  ………………③

考虑每个类内,散度矩阵被定义为S_{i} = \sum _{x\epsilon D_{i}}\left ( x-u_{i} \right )\left ( x-u_{i} \right )^{T}   ,两个类的类内总散度矩阵为 S_{w} = S_{1} + S_{2}…………④

投影后的散度

\widetilde{S}_{i}^{2} = \sum _{y\epsilon D_{y}}\left ( y - \widetilde{u}_{i} \right )^{2} = \sum _{x\epsilon D_{i}}\left ( w^{T}x - w^{T}u_{i} \right )^{2} = \sum _{x\epsilon D_{i}}w^{T}\left ( x-u_{i} \right )\left ( x-u_{i} \right )^{T}w =w^{T}S_{i}w  ………………⑤

则 \widetilde{S}_{1}^{2} + \widetilde{S}_{2}^{2} = w^{T}S_{w}w………………⑥

将③⑥带入 J 中,有 J = \frac{\left | u_{1} - u_{2}\right |^{2}}{S_{1}^{2}+S_{2}^{2}} = \frac{w^{T}S_{b}w}{w^{T}S_{w}w} ……………⑦

然后对⑦进行优化,求其最值,对w求导(偷个懒)

最后一步 将问题转化为了矩阵的特征值特征向量问题。可以通过矩阵分解求得w*,但是这里有个简便方法:

这样就求出来了w*能够使两个类别被最好的划分。

猜你喜欢

转载自blog.csdn.net/qq_36366757/article/details/81348017