LDA浅显的核心是类内散度和类间散度矩阵,浅尝辄止的话,不可能明白最大化目标函数的意义。当你提出疑问:为什么是求协方差矩阵的行列式?为什么需要至少t+c个样本才能保证类内散度不是奇异的?奇异不奇异有什么关系呢?这时候就有必要进一步来领悟其中的道理。

为了解答这些疑问,我也是进一步去了解行列式的真正含义,单纯从理论上无法得知,然而结合行列式的几何意义,那一些都是那么的清晰直观。

以矩阵A为例,将每一个列向量认为是多边形的一条边,则det(A)就是多边形的面积。如果b 和 c都是0,那么det(A)就是矩形的面积。在LDA中,类内散度其实就是各个类的协方差矩阵的和,它是对称阵。针对其中一类而言,假如说数据各个维度之间都不相关,那么除了主对角线的数据不为零外,其他都是0。也就是 b=0, c=0。对于协方差矩阵,b=c。暂且不考虑协方差的秩最多为c-1类,仅考虑所有不相关的维度(这里是指协方差矩阵的维度),他们围成的面积是最大的,就是矩形。如果维度间相关系数不为0,那么这个矩形就会被压缩,相当于捏着斜对角拉,导致矩阵被拉成平行四边形,由于边长不变,因而面积在减少,当继续拉,矩形将变成一条线,也就是降维了。这时候行列式=0。出现这种情况,说明了样本在某些维度上完全相关,也就是在某些维度上的方差为0,那么这类样本的协方差矩阵在多维空间中的超体积就是0。

矩阵有诸多用途,比如线性变换,将一个向量拉伸旋转升维降维等。此处的矩阵A并不是做变换用的,而是表述的样本点。每一列是一个样本。我们的任务是衡量每一维度的方差以及各个维度之间的协方差。方差越大,说明这个维度的数据分布越分散,如果画一个圆的话,则需要更大的圆来包围住所有的数据,方差是在协方差矩阵的主对角线上。单纯考虑方差的话,会造成维度冗余的问题。比如考虑以下几个样本:

  和

 

A的协方差矩阵是:

B的协方差矩阵是:

也就是说,A样本的数据在两个维度上的方差都是1,而B数据在两个维度上的标准差分别是1和1.22。如果以最大标准差的维度去画圆将两个数据集包住,那么B需要更大的圆,然而很明显,这样做的话,B的圆内大部分位置是空的,也就是存在冗余。很明显,不能用各个维度方差的大小去衡量这个类样本所占的面积/体积。如果求其行列式,则

det(A)=1

det(B)=0.01

这个结果是比较令人满意的,因为从样本的分布可以看出,A在各个维度都很分散,B在45度这个方向很分散,但是在-45方向很集中,也就是说只用画一个很扁的椭圆就可以把B的样本全部圈起来。这说明了,B中的样本的相关性较高,也就是副对角线的值。尽管各个维度的数据很分散,但是两个维度之间的数据是相关的。这就有点像信息熵表达的意思,当信息很相关,也就是变化不多时,信息熵就很少。样本都一样时,信息熵为0,也就是行列式为0,样本矩阵的列秩为1。因此,使用样本散度矩阵的行列式来衡量其样本的分散程度是很科学的方法。实际上,行列式描述的就是向量围成的多边形的面积。上面用圆或椭圆圈起来样本只是我们手工分类的直觉性做法。

散度矩阵是不同类别的协方差矩阵相加,协方差的秩最大为n,n是样本维度,不同类的协方差加起来,秩最大是max(N-c,n),N是样本数,c是类别数。只有当N-c>=n时才能保证协方差矩阵满秩,所以样本数最少需要n+c个。至于为什么要加上样本数c,我也没明白,希望路过的大神指点指点。

浅谈线性判别分析LDA相关推荐

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

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

  2. 浅谈(线性)卷积公式为什么要翻转

    浅谈(线性)卷积公式为什么要翻转 信号系统 信号处理 卷积 文章题目之所以写 (线性)卷积,是因为卷积有很多种,如循环卷积,周期卷积以及线性卷积.本文主要讨论线性卷积,为书写方便,下文都以卷积代替.至 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. Cant find model en_core_web_sm
  2. 发新款电池!成本降低14%,特斯拉会继续降价吗?
  3. 步态识别 GaitSet
  4. 2016秋季阅读笔记一
  5. NYOJ 6 喷水装置(一) 贪心算法 之 区间覆盖问题
  6. python和lua哪个有前途_(转)LUA与python根本就不具有可比性
  7. Redis工具之Jedis
  8. 算法 --- 翻转二叉树
  9. 深入Spring Boot:快速集成Dubbo + Hystrix
  10. JS判断是否是科学计算结果并处理
  11. 深度学习之卷积神经网络(Convolutional Neural Networks, CNN)(二)
  12. 在每天下午五点使用计算机,邮件攻击主要是_每天下午5点使用计算机_apt的攻击目标一般不是...
  13. 《深度学习 500 问》已更新,GitHub 标星 2.6W
  14. 大数据时代下的原型该怎么做?免费模版送给你
  15. altium Designer布等长线、蛇形线
  16. ros路由器l5和l6的区别_ESXI安装Mikrotik RouterOS(ROS)软路由部署指南(附授权镜像下载)...
  17. 存储区域网络(SAN)概念和设计基础
  18. Unity开发Android游戏(三)虚拟摇杆之_Easy Touch 5
  19. 【微机】ALU的核心就是带标志加法器
  20. Monyer黑客小游戏 踩坑总结

热门文章

  1. linux 文件夹换用户组,Linux-用户管理和用户组管理
  2. c java 语法_java程序员要学的c语法
  3. html4 form日期,bootstrap4日期时间选择器插件
  4. iphone远没有android好用,抛弃iPhone转投Android 我竟没有一丝留恋
  5. iphone照片永久删除怎么恢复_微信数据怎么永久删除不被恢复?只删除聊天记录没用,打开这里彻底删除!...
  6. CycleGAN详解与实现(采用tensorflow2.x实现)
  7. 随机数生成器 java_Java中的随机数生成器
  8. chips cope_Android P:Chips and ChipGroup
  9. java全局变量和局部变量_Java 10:局部变量类型推断
  10. Hibernate Tomcat JNDI数据源示例教程