线性判别分析,简称LDA,是一种线性学习方法。

常用来降维,是一种有监督的降维方法,是基于最佳分类效果的降维方法。

核心思想

给定训练样本,带label,设法将样本投影到一条直线上,使得同类样例的投影尽可能接近,异类样例的投影尽可能远离;

在对新样本进行预测时,先将其投影到这条直线上,再根据投影点的位置确定类别。

以二分类为例,x1  x2 代表训练集,u1 u2 代表样本均值,cov1 cov2 代表样本协方差矩阵,将样本投影到直线w上,则两样本的中心的投影分别为 wu1  wu2,两样本的协方差为 wTcov1w  wTcov2w ,

要使同类间距离尽可能小,需使 wTcov1w + wTcov2w 尽可能小;

要使异类间距离尽可能大,需使 |wu1-wu2| 尽可能大,

综合考虑,则可得到如下式子

目标是使得 J 最大。

具体求解过程省略,实际应用中一般不会自己实现LDA,因为LDA只是算法中很小的一个步骤,而其本身求解比较麻烦。

class sklearn.lda.LDA(solver='svd', shrinkage=None, priors=None, n_components=None, store_covariance=False, tol=0.0001)

示例代码

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
lda = LinearDiscriminantAnalysis(n_components=2)
lda.fit(iris.data,iris.target)
X_new = lda.transform(iris.data)
print(X_new)

上面写了两个接口,适用不同版本。

LDA与PCA的应用场景对比

若两类样本的均值有明显差异,LDA较优

若两类样本均值无明显差异,但协方差差异很大,PCA较优

在实际应用中也常结合LDA和PCA一起使用,先用PCA降维消除噪声,再用LDA降维。

参考资料:

周志华《机器学习》

https://mp.weixin.qq.com/s?__biz=MzU0MDQ1NjAzNg==&mid=100002594&idx=1&sn=c9cdfc2c174ae6f4a36b383439a1627a&chksm=7b39ae294c4e273ff314dee92d2fff280ba7aa9ff74ae9f2a8f0345d8e794f30dfd2c9d4f9d4#rd

https://scikit-learn.org/0.16/modules/generated/sklearn.lda.LDA.html

LAD 线性判别分析的更多相关文章

  1. 线性判别分析LDA原理总结

    在主成分分析(PCA)原理总结中,我们对降维算法PCA做了总结.这里我们就对另外一种经典的降维方法线性判别分析(Linear Discriminant Analysis, 以下简称LDA)做一个总结. ...

  2. 线性判别分析(LDA)准则:FIsher准则、感知机准则、最小二乘(最小均方误差)准则

    准则 采用一种分类形式后,就要采用准则来衡量分类的效果,最好的结果一般出现在准则函数的极值点上,因此将分类器的设计问题转化为求准则函数极值问题,即求准则函数的参数,如线性分类器中的权值向量. 分类器设 ...

  3. LDA(Linear discriminate analysis)线性判别分析

    LDA 线性判别分析与Fisher算法完全不同 LDA是基于最小错误贝叶斯决策规则的. 在EMG肌电信号分析中,... 未完待续:.....

  4. 线性判别分析(Linear Discriminant Analysis)转载

    1. 问题 之前我们讨论的PCA.ICA也好,对样本数据来言,可以是没有类别标签y的.回想我们做回归时,如果特征太多,那么会产生不相关特征引入.过度拟合等问题.我们可以使用PCA来降维,但PCA没有将 ...

  5. 线性判别分析(LDA), 主成分分析(PCA)及其推导【转】

    前言: 如果学习分类算法,最好从线性的入手,线性分类器最简单的就是LDA,它可以看做是简化版的SVM,如果想理解SVM这种分类器,那理解LDA就是很有必要的了. 谈到LDA,就不得不谈谈PCA,PCA ...

  6. 机器学习中的数学-线性判别分析(LDA), 主成分分析(PCA)

    转:http://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html 版权声明: 本文由L ...

  7. 机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)

    版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...

  8. 线性判别分析算法(LDA)

    1. 问题 之前我们讨论的PCA.ICA也好,对样本数据来言,可以是没有类别标签y的.回想我们做回归时,如果特征太多,那么会产生不相关特征引入.过度拟合等问题.我们可以使用PCA来降维,但PCA没有将 ...

  9. LDA 线性判别分析

    LDA, Linear Discriminant Analysis,线性判别分析.注意与LDA(Latent Dirichlet Allocation,主题生成模型)的区别. 1.引入 上文介绍的PC ...

随机推荐

  1. testng.xml中groups标签使用

    XML配置如下: <?xml version="1.0" encoding="UTF-8"?> <suite name="suite ...

  2. 关于Ocelot和Consul 实现GateWay(网关) 服务注册 负载均衡等方面

    Ocelot   路由  请求聚合  服务发现 认证  鉴权 限流熔断 内置负载均衡器 Consul   自动服务发现    健康检查 通过Ocelot搭建API网关   服务注册   负载均衡 1. ...

  3. angular学习第1步

    #### 最专业,最全面的angular的学习文档 https://www.jianshu.com/p/f0f81a63cbcb ### https://www.cnblogs.com/xiaowei ...

  4. PHP随机生成要求位数个字符(大小写字母+数字)

    php随机生成要求位数个字符 /** * 随机生成要求位数个字符 * @param length 规定几位字符 */ function getRandChar($length){ $str = nul ...

  5. Arthur and Questions CodeForces - 518E (贪心模拟)

    大意: 给定序列$a$, 某些位置为'?', 求给'?'赋值使得序列$(a_1+a_2+...+a_k,a_2+a_3+...+a_{k+1},...)严格递增, 且$\sum|a_i|$最小. 化简 ...

  6. C语言缓冲区

    定义 缓冲区是内存空间的一部分,用于缓冲输入或输出的数据.根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区. 类型 缓冲区分为三种类型:全缓冲.行缓冲和不带缓冲. 1.全缓冲 在这种情况 ...

  7. Objective-C基础教程 笔记

    一.对C的扩展 1. #import VS #include C语言使用#include语句通知编译器应在头文件中查询定义. OC中也可以使用#include,但几乎不这么用,而是使用#import. ...

  8. element-ui <el-input> 注册keyup事件,即键盘enter.

    <template> <!-- 需求:keyup事件一般用在input中,在input框中输入内容,用户点击键盘的enter,执行搜索 --> <div class=&q ...

  9. CloudStack 云计算平台框架

    前言 CloudStack 和OpenStack 一样都是IaaS层 开源框架,可以管理XenServer.ESXI.KVM.OVM等主流虚拟机,相对OpenStack比较简单.稳定: 二.Cloud ...

  10. post传递中文时,可以使用urlEncode编码进行转码

    http://tool.chinaz.com/tools/urlencode.aspx