点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

本文转自:机器学习算法那些事

前言


线性判别分析(Linear Discriminant Analysis,以下简称LDA)是有监督的降维方法,在模式识别和机器学习领域中常用来降维。PCA是基于最大投影方差或最小投影距离的降维方法,LDA是基于最佳分类方案的降维方法,本文对其原理进行了详细总结。

目录


1. PCA与LDA降维原理对比
2. 二类LDA算法推导

3. 多类LDA算法推导

4. LDA算法流程

5. 正态性假设

6. LDA分类算法

7. LDA小结

1. PCA与LDA降维原理对比

1.1    PCA降维原理

PCA是非监督式的降维方法,在降维过程中没有考虑类别的影响,PCA是基于最大投影方差或最小投影距离的降维方法,通俗点说,PCA降维后的样本集最大程度的保留了初始样本信息,常用投影距离来描述投影前后样本的差异信息。

用数学公式来阐述这一思想:

其中原始样本集(n个m维数据):

降维后的样本集(n个k维数据):

假设投影变换后的新坐标系(标准正交基):

投影前后的样本关系:

最小化(1)式,并根据条件(2),可求得最佳的投影坐标系W。给定新的输入样本,利用(2)式可求的对应的降维样本。

1.2    LDA降维原理

LDA是有监督的降维方法,在降维过程中考虑了类别的影响,LDA是基于最佳分类效果的降维方法。因此,降维后不同类的样本集具有最大的分类间隔 。

如何描述最大分类间隔,当不同类样本的投影点尽可能远离且相同类样本的投影点尽可能接近,则样本集具有最大分类间隔。我们用类中心间的距离和类的协方差分别表示不同类的距离和相同类的接近程度。

本节只考虑二分类的LDA降维,不同类样本间的投影距离:

不同类的投影协方差之和:

结合(3)(4)式,得到优化目标函数:

最大化(5)式,得到投影向量w,其中分别是两个类样本的中心点,分别是两个类的协方差。

1.3 PCA与LDA降维应用场景对比

若训练样本集两类的均值有明显的差异,LDA降维的效果较优,如下图:

由上图可知,LDA降维后的二分类样本集具有明显差异的样本分布。

若训练样本集两类的均值无明显的差异,但协方差差异很大,PCA降维的效果较优,如下图:

由上图可知,PCA降维后的二分类样本分布较LDA有明显的差异。

2. 二类LDA算法推导

假设二类数据集,其中xi为m维列向量,我们定义两类为C1和C2,即,对应的样本集个数分别为

根据上一节的LDA的优化目标函数推导投影向量,即最大化目标函数:

其中为二类的均值向量:

为二类的协方差矩阵:

目标函数转化为:

定义类内散度矩阵和类间散度矩阵

则(6)式等价于:

我们对(7)式的分母进行标准化,则(7)式等价于:

引用拉格朗日乘子法,得:

因此,只要求出原始二类样本的均值和协方差就可以确定最佳的投影方向w了。

3. 多类LDA算法推导

假设k类数据集,其中xi为m维列向量,我们定义k类为

,对应的样本集个数分别为。二类样本数据集通过投影向量w降到一维空间,多类样本数据集降到低维空间是一个超平面,假设投影到低维空间的维度为d,对应的基向量矩阵

因此,多类LDA算法的优化目标函数为:

其中类内散度矩阵和类间散度矩阵

为第j类样本的均值向量,u为所有样本的均值向量:

因为(8)式分子分母都是矩阵,常见的一种实现是取矩阵的迹,优化目标函数转化为:

优化过程如下:

参考二类LDA算法,利用拉格朗日乘子法,得:

两边左乘

由上式可得LDA的最优投影空间是矩阵最大d个特征值对应的特征向量所组成的。

4. LDA算法流程

前两节推导了LDA算法,现在对LDA算法流程进行总结,理清一下思路。

假设k类数据集,其中xi为m维列向量,我们定义k类为

,降维后的维度是d。

1)计算每个类样本的均值向量和所有数据集的均值向量

2)计算散度矩阵,包括类内散度矩阵和类间散度矩阵

3)计算的特征向量和对应的特征值

4)选择d个最大特征值对应的矩阵,矩阵的每一列表示特征向量

5)对数据集D进行降维,得到对应的降维数据集,其中

5. 正态性假设

LDA算法对数据集进行了如下假设:

1)数据集是服从正态分布的;

2)特征间是相互独立的;

3)每个类的协方差矩阵是相同的;

但是如果不满足了这三个假设,LDA算法也能用来分类和降维,因此LDA算法对数据集的分布有较好的鲁棒性。

6. LDA分类算法

前面我们重点分析了LDA算法在降维的应用,LDA算法也能用于分类 。LDA假设各类的样本数据集符合正态分布,LDA对各类的样本数据进行降维后,我们可以通过最大似然估计去计算各类别投影数据的均值和方差,如下式:

进而得到各个类样本的概率密度函数:

其中为降维后的样本。

因此对一个未标记的输入样本进行LDA分类的步骤:

1) LDA对该输入样本进行降维;

2)根据概率密度函数,计算该降维样本属于每一个类的概率;

3)最大的概率对应的类别即为预测类别。

7. LDA小结

PCA是基于最大投影方差的降维方法,LDA是基于最优分类的降维方法,当两类的均值有明显差异时,LDA降维方法较优;当两类的协方差有明显差异时,PCA降维方法较优。在实际应用中也常结合LDA和PCA一起使用,先用PCA降维去消除噪声,再用LDA降维。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

线性判别分析(LDA)原理总结相关推荐

  1. 线性判别分析(LDA)原理及应用详解

    前置知识 线性分类 指存在一个线性方程可以把待分类数据分开,或者说用一个超平面能将正负样本区分开,表达式为 . 线性分类器 线性分类器就是用一个"超平面"将两个样本隔离开,如: 二 ...

  2. 线性分类(二)-- 线性判别分析 LDA

    在机器学习领域,LDA是两个常用模型的简称:线性判别分析(Linear Discriminant Analysis) 和隐含狄利克雷分布(Latent Dirichlet Allocation).在自 ...

  3. 数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC...

    全文链接:http://tecdat.cn/?p=27384 在本文中,数据包含有关葡萄牙"Vinho Verde"葡萄酒的信息(点击文末"阅读原文"获取完整代 ...

  4. 07_数据降维,降维算法,主成分分析PCA,NMF,线性判别分析LDA

    1.降维介绍 保证数据所具有的代表性特性或分布的情况下,将高维数据转化为低维数据. 聚类和分类都是无监督学习的典型任务,任务之间存在关联,比如某些高维数据的分类可以通过降维处理更好的获得. 降维过程可 ...

  5. sklearn实现lda模型_运用sklearn进行线性判别分析(LDA)代码实现

    基于sklearn的线性判别分析(LDA)代码实现 一.前言及回顾 本文记录使用sklearn库实现有监督的数据降维技术--线性判别分析(LDA).在上一篇LDA线性判别分析原理及python应用(葡 ...

  6. 【机器学习】机器学习之线性判别分析(LDA)

    目录 一.线性判别分析介绍 二.线性判别分析原理 1. 类内散度矩阵(within-class scatter matrix) 2. 类间散度矩阵(between-class scatter matr ...

  7. lda 吗 样本中心化 需要_机器学习 —— 基础整理(四):特征提取之线性方法——主成分分析PCA、独立成分分析ICA、线性判别分析LDA...

    本文简单整理了以下内容: (一)维数灾难 (二)特征提取--线性方法 1. 主成分分析PCA 2. 独立成分分析ICA 3. 线性判别分析LDA (一)维数灾难(Curse of dimensiona ...

  8. ML之NB:基于news新闻文本数据集利用纯统计法、kNN、朴素贝叶斯(高斯/多元伯努利/多项式)、线性判别分析LDA、感知器等算法实现文本分类预测

    ML之NB:基于news新闻文本数据集利用纯统计法.kNN.朴素贝叶斯(高斯/多元伯努利/多项式).线性判别分析LDA.感知器等算法实现文本分类预测 目录 基于news新闻文本数据集利用纯统计法.kN ...

  9. 『矩阵论笔记』线性判别分析(LDA)最全解读+python实战二分类代码+补充:矩阵求导可以参考

    线性判别分析(LDA)最全解读+python实战二分类代码! 文章目录 一.主要思想! 二.具体处理流程! 三.补充二中的公式的证明! 四.目标函数的求解过程! 4.1.优化问题的转化 4.2.拉格朗 ...

  10. 线性判别分析LDA—西瓜书课后题3.5—MATLAB代码

    题目:编程实现线性判别分析LDA,给出西瓜数据集 3.0a上的结果 简单说就是找一个分离度最大的投影方向,把数据投射上去. clc clear all [num,txt]=xlsread('D:\机器 ...

最新文章

  1. 【转】解密“设计模式”
  2. 报名 | 加密金融生态大咖私享会
  3. jQuery hash
  4. GitHub Port 443 Refused
  5. 探秘Java中String、StringBuilder以及StringBuffer
  6. 基于threejs的商场楼层展示导航系统源码_便民措施再升级就诊无需问路!我院“智能导航系统”正式上线啦!...
  7. React-生命周期杂记 1
  8. 纯CSS实现侧边栏/分栏高度自动相等
  9. Ubuntu 查看默认软件安装位置
  10. 数据库实例:mysql与mongo结合用户登录
  11. CSS Sprites原理
  12. 解决IE6中 PNG图片透明的终极方案-八种方案!
  13. Linux文件系统(七)---系统调用之open操作(三) 之 open_namei函数
  14. 快速原型制造_快速原型初学者指南
  15. 很多网友问那个磁力搜索站好用,就由本君说说吧!
  16. 深入探索Android卡顿优化(下)
  17. 数字信号处理第一课(转)
  18. 刷算法第五天——P5594 模拟赛
  19. debian 有用的源
  20. 背包问题C++(三种类型初涉)

热门文章

  1. 江湖又现中科大少年班的传说
  2. 程序员崩溃了,年终奖怎么说黄就黄
  3. 干货 | 成为一名推荐系统工程师永远都不晚
  4. 推荐100份:高并发高可用和中台一网打尽
  5. 刚出炉的一套面试题(JAVA岗)
  6. LeetCode刷题指南!
  7. 最新OCR开源神器来了!
  8. 支持向量机背后的数学原理!
  9. 剑指offer_第14题_链表中倒数第k个结点_Python
  10. 西湖大学全是“天坑”?校长施一公直播回应:不必过于关注就业收入