LAD 线性判别分析
线性判别分析,简称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 线性判别分析的更多相关文章
- 线性判别分析LDA原理总结
在主成分分析(PCA)原理总结中,我们对降维算法PCA做了总结.这里我们就对另外一种经典的降维方法线性判别分析(Linear Discriminant Analysis, 以下简称LDA)做一个总结. ...
- 线性判别分析(LDA)准则:FIsher准则、感知机准则、最小二乘(最小均方误差)准则
准则 采用一种分类形式后,就要采用准则来衡量分类的效果,最好的结果一般出现在准则函数的极值点上,因此将分类器的设计问题转化为求准则函数极值问题,即求准则函数的参数,如线性分类器中的权值向量. 分类器设 ...
- LDA(Linear discriminate analysis)线性判别分析
LDA 线性判别分析与Fisher算法完全不同 LDA是基于最小错误贝叶斯决策规则的. 在EMG肌电信号分析中,... 未完待续:.....
- 线性判别分析(Linear Discriminant Analysis)转载
1. 问题 之前我们讨论的PCA.ICA也好,对样本数据来言,可以是没有类别标签y的.回想我们做回归时,如果特征太多,那么会产生不相关特征引入.过度拟合等问题.我们可以使用PCA来降维,但PCA没有将 ...
- 线性判别分析(LDA), 主成分分析(PCA)及其推导【转】
前言: 如果学习分类算法,最好从线性的入手,线性分类器最简单的就是LDA,它可以看做是简化版的SVM,如果想理解SVM这种分类器,那理解LDA就是很有必要的了. 谈到LDA,就不得不谈谈PCA,PCA ...
- 机器学习中的数学-线性判别分析(LDA), 主成分分析(PCA)
转:http://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html 版权声明: 本文由L ...
- 机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)
版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...
- 线性判别分析算法(LDA)
1. 问题 之前我们讨论的PCA.ICA也好,对样本数据来言,可以是没有类别标签y的.回想我们做回归时,如果特征太多,那么会产生不相关特征引入.过度拟合等问题.我们可以使用PCA来降维,但PCA没有将 ...
- LDA 线性判别分析
LDA, Linear Discriminant Analysis,线性判别分析.注意与LDA(Latent Dirichlet Allocation,主题生成模型)的区别. 1.引入 上文介绍的PC ...
随机推荐
- Win10外包公司(长年承接Win10App外包、Win10通用应用外包)
在几天前的WinHEC大会中,微软特意在大会中展示了其对通用应用的称呼规范,现在,适用于Windows通用平台的应用的正式名称为“Windows应用”(Windows apps),简洁明了. 总而言之 ...
- 使用Python编的猜数字小游戏
import random secret = random.randint(1, 30) guess = 0 tries = 0 print("我叫丁丁,我有一个秘密数字!") p ...
- 人脸识别-arcface损失函数
参考博客: L-margin softmax loss:https://blog.csdn.net/u014380165/article/details/76864572 A-softmax loss ...
- ERROR:scala:Error:Object scala.runtime in compiler mirror not found
我的项目是sbt项目,今天早晨的时候还好好的,结果中午吃了个饭回来就特么的编译就报错了,真是闹心 报错截图: 解决方案: 删除idea的缓存文件 然后重新启动idea,重新下载jia包,在进行编译,就 ...
- C# FTP操作类的代码
如下代码是关于C# FTP操作类的代码.using System;using System.Collections.Generic;using System.Text;using System.Net ...
- erlang下lists模块sort(排序)方法源码解析(一)
排序算法一直是各种语言最简单也是最复杂的算法,例如十大经典排序算法(动图演示)里面讲的那样 第一次看lists的sort方法的时候,蒙了,几百行的代码,我心想要这么复杂么(因为C语言的冒泡排序我记得不 ...
- Confluence 6 升级完成后的检查
这个页面中的文章将会为 Confluence 管理员为 Confluence 升级完成后 提供检查列表以确保 Confluence 的升级顺利完成.这个检查列表没有包含所有需要检查的错误,但是将会检查 ...
- NodeJS基础(二)
一.动态获取文件路径 var fs = require('fs') var path = require('path') // 一般在开发命令行工具的时候,这个设计是必须有用的一个特性 // npm ...
- vue中是使用富文本编辑器vue-quill-edit
之前使用的富文本编辑器是uEditor,kindEditor,感觉不太方便 近期项目vue单页面,就使用这个编辑器组件吧! 一.安装 cnpm install vue-quill-editor 二. ...
- STRANS一:简单的XML转换
心情不好,泥总把表妹微信给冰冰了,心塞... 1.简单的单层结构: <?sap.transform simple?> <tt:transform xmlns:tt="htt ...