LDA算法和PCA算法的总结(原理和思想)

article/2025/9/18 20:12:51

LDA和PCA的对比(并没有公式推导,改日会写)

先补一补数学(不需要):

  • 方差——概率论和统计方差衡量随机变量或一组数据时离散程度的度量;概率论中方差用来度量随机变量和其数学期望之间的偏离程度。统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数。

  • 期望——在概率论和统计学中,数学期望(mean)(或均值)是试验中每次可能结果的概率乘以其结果的总和,是最基本的数学特征之一。它反映随机变量平均取值的大小

  • 协方差——在概率论和统计学中用于衡量两个变量的总体误差。方差是协方差的一种特殊情况,即当两个变量是相同的情况,只表示一个变量误差。如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值,表示两个变量正相关。 如果两个变量的变化趋势相反,即其中一个大于自身的期望值,另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值,表示两个变量负相关。如果XY是统计独立的,那么二者之间的协方差就是0,因为两个独立的随机变量满足E[XY]=E[X]E[Y]。协方差为0表示两个变量是不相关的。

进入正题

LDA与PCA都是常用的降维技术。PCA主要是从特征的协方差角度,去找到比较好的投影方式,希望在所投影的维度上数据的方差尽量大LDA更多的是考虑了标注即希望投影后不同类别之间数据点尽量远离(距离尽量大),同一类别的数据点尽量聚集(方差尽量小)

先来看一下PCA对于数据的处理结果:在这里插入图片描述

可以看到数据有红色(1)和蓝色(2)两类,PCA主成分分析找到的主轴PC1和次轴PC2

  • 如上图所示,依照这两类的分布,PCA找到的第一个主轴PC1,所有数据点投影到该轴上是散的最开的,红蓝两类所有点的投影几乎遍布了整个PC1轴 (这时方差最大)。
  • 如上图所示,PCA认为不重要的轴PC2 (次轴),两类数据点投影到次轴上是最集中和密集的。

我们会发现PCA认为它找到的主轴要能够处理把多类(簇)分开的任务,这对应于无标签且事先不知道要分几类的无监督算法。 而PCA认为不重要的次轴PC2,其实是对分类有帮助的,比如某个数据点属于哪一类的分类任务,这对应于有标签的监督算法

再来看一下LDA的:在这里插入图片描述

我们可以观察到LDA找到的第一个主轴LDA1(认为是对分类重要的轴),各数据点投影到该轴上很集中(方差小),并且LDA1轴正是PCA认为的不重要的轴,LDA找到的次轴是LDA2轴,可以看到LDA找到的两个轴不是正交的。

把LDA和PCA找到的主轴(两种算法认为最重要的轴)放在一起来看一下:

在这里插入图片描述

  • 如上图所示,我们分别找到蓝色和红色数据样本的中心,然后把这两个中心分别投影在LDA1轴和PC1轴上,可以发现投影在LDA1轴上的两类样本中心点距离比投影到PC1轴上的两类样本中心点距离要远

  • 其实LDA将原样本映射到一个超平面上,使同一个类别在这个超平面上尽可能集中,而不同类别在这个超平面上尽可能分开。LDA1其实就是找到的超平面的一个法向量。

  • LDA认为不同类的样本服从均值不同的高斯分布,主要根据均值(中心点)作为降维的导向,所以它在处理非高斯分布的数据,或者不同类别的高斯分布的均值相同时,分类效果不够好。

  • PCA请参考这里

总结一下

LDA和PCA一样都是降维算法,但不同的是LDA是有监督的降维算法,它的目的是将不同类别的数据降维后仍能较好的区别开。而PCA是无监督的算法,它的目的是将样本数据降维后仍保留样本数据间的方差。

一些关于超平面补充(参考的博客):

我们对“平面”概念的理解,一般是定义在三维空间中的,即Ax+By+Cz+d=0

这个平面由两个性质定义:1、方程是线性的,是由空间点的各分量的线性组合。2、方程数量是1。这个平面是建立在“三维”上的。如果我们撇开“维度”这个限制,那么就有了超平面的定义。实际上,超平面是纯粹的数学概念,不是物理概念,它是平面中的直线、空间中的平面的推广,只有当维度大于3,才称为“超”平面。它的本质是自由度比空间维度小1。

自由度的概念可以简单的理解为至少要给定多少个分量的值才能确定一个点. 例如, 三维空间里的(超)平面只要给定了(x,y,z)中任意两个分量, 剩下的一个的值就确定了. 先确定值的两个分量是自由的, 因为它们想取什么值就能取什么值;剩下的那个是"不自由的", 因为它的值已经由另外两确定了。二维空间里的超平面为一条直线。一维空间里超平面为数轴上的一个点。

百度百科上对超平面的数学定义是这样的:超平面H是从n维空间到n-1维空间的一个映射子空间,它有一个n维向量和一个实数定义。因为是子空间,所以超平面一定过原点。

这篇讲超平面的博客也不错点这里


http://chatgpt.dhexx.cn/article/SJFFGCd8.shtml

相关文章

LDA算法原理及LDA与PCA的比较

1. LDA算法简介 LDA(线性判别式分析 Linear Discriminant Analysis)属于机器学习中的监督学习算法,常用来做特征提取、数据降维和任务分类。在人脸识别、人脸检测等领域发挥重要作用。LDA算法与PCA算法都是常用的降维技术。二者的区别在于&a…

LDA算法调研报告

LDA算法调研报告 1、LDA算法概述 本文所阐述的LDA算法全称为Latent Dirichlet Allocation(网上没有标准的中文名称,我称之为潜在狄利克雷分配算法),不是线性判别分析算法(Linear Discriminant Analysis)。L…

【机器学习】LDA算法原理

问题 线性判别分析(Linear Discriminant Analysis,LDA)是机器学习中常用的降维方法之一,本文旨在介绍LDA算法的思想,其数学推导过程可能会稍作简化。 LDA的思想 ● LDA是一种线性的、有监督的降维方法,即每个样本都有对应的类别标签(这点和PCA不同)。 ● 主要思想:…

Spark机器学习-LDA算法09

LDA算法 LDA即文档主题生成模型,该算法是一种无监督学习 将主题对应聚类中心,文档作为样本,则LDA也是一种聚类算法 该算法用来将多个文档划分为K个主题,与Kmeans类似 LDA是一种基于概率统计的生成算法 LDA算法—种常用的主题模型,可以对文档主题进行聚类,同样也可以用…

LDA算法实现鸢尾花数据集降维

目录 1. 作者介绍2. LDA降维算法2.1 基本概念2.2 算法流程 3. LDA算法实现3.1 数据集介绍3.2 代码实现3.3 结果展示 1. 作者介绍 唐杰,男,西安工程大学电子信息学院,2022级研究生 研究方向:机器视觉与人工智能 电子邮件&#xff…

秒懂---LDA算法

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

基于Sklearn实现LDA算法

文章目录 一、LDA算法二、sklearn实现LDA三、结果如图四、总结五、参考 一、LDA算法 1.线性判别分析(Linear Discriminant Analysis, LDA)方法常被用于数据预处理中的降维(dimensionality reduction)步骤。LDA在保证良好的类别区…

LDA算法推导

LDA算法是什么 简单地说LDA算法就是向低维度投影,让同一类别数据投影点更接近,不同类别数据点距离更远。 LDA原理 定义,已知 我们要把两类数据都投影到w直线上。 让不同类别的数据的类别中心之间的距离尽可能的大, 同一种类别数…

线性判别分析LDA原理总结

转自http://www.cnblogs.com/pinard/p/6244265.html 在主成分分析(PCA)原理总结中,我们对降维算法PCA做了总结。这里我们就对另外一种经典的降维方法线性判别分析(Linear Discriminant Analysis, 以下简称LDA)做一个总…

线性判别分析(Linear Discriminant Analysis, LDA)算法分析

LDA算法入门 一. LDA算法概述: 线性判别式分析(Linear Discriminant Analysis, LDA),也叫做Fisher线性判别(Fisher Linear Discriminant ,FLD),是模式识别的经典算法,它是在1996年由Belhumeur引入模式识别和人工智能领域的。性鉴别分析的基本思想是将高维的模式样本投影到…

机器学习笔记17-LDA算法

1. LDA算法简介 LDA(线性判别式分析 Linear Discriminant Analysis)属于机器学习中的监督学习算法,常用来做特征提取、数据降维和任务分类。在人脸识别、人脸检测等领域发挥重要作用。LDA算法与PCA算法都是常用的降维技术。二者的区别在于&a…

数据结构层次遍历二叉树

2022.11.19 计算二叉树的深度和节点个数 任务描述相关知识编程要求测试说明C/C代码 任务描述 本关任务:给定一棵二叉树,借助队列实现层次遍历二叉树。 相关知识 为了完成本关任务,你需要掌握:1.队列基本操作,2.二叉…

树的层次遍历

二叉树的前序、中序、后序遍历我想大家应该都很熟悉了,那我们今天就来讲一下二叉树的层次遍历。 二叉树的前序、中序、后序遍历需要用到栈(递归的过程也就是一个栈),层次遍历需要借助队列这个数据结构。 层次遍历的思路 我们给…

层次遍历_树

哈喽大家好,这里是蒟蒻hanyiyang的博文,今天,我来给大家,介绍一个关于图的算法,希望能帮助到大家!!! 层次遍历 大家来看一看上面这个图,为什么要说这是层次遍历呢&…

树的应用 —— 二叉树的遍历【层次遍历、遍历序列还原树】

树的应用 —— 二叉树的遍历【层次遍历、遍历序列还原树】 【层次遍历】 二叉树的遍历一般有先序遍历、中序遍历和后序遍历,除了这三种遍历,还有另一种遍历方式——层次遍历,即按照层次的顺序从左向右进行遍历。 一棵树如下图所示。 层次…

二叉树:层次遍历算法(自上而下,从左到右)

层次遍历(LevelOrder)就是默认为自上而下,从左到右,一层一层进行遍历, 层次遍历需要借助队列来完成, 队列:先进先出(FIFO)。 分析:如图有一棵二叉树&#xff…

MATLAB符号运算——微分

微分 微分在数学中的定义:由函数Bf(A),得到A、B两个数集,在A中当dx靠近自己时,函数在dx处的极限叫作函数在dx处的微分,微分的中心思想是无穷分割。 在MATLAB中计算微分 函数:diff 调用格式: …

matlab中常用符号

在使用MATLAB的过程中,经常需要对输出图形中的变量进行标注,其中经常遇到的难题就是如何标注各种上标、下标、斜体、黑体、箭头、上圆圈、正负号等特殊符号,以及如何标注特殊的数学符号。这里第一机电网给大家总结一下,希望对大家…

MATLAB符号运算(七)

目录 1、实验目的: 2、实验内容: 1、实验目的: 1)掌握定义符号对象和创建符号表达式的方法; 2)掌握符号运算基本命令和规则; 3)掌握符号表达式的运算法则以及符号矩阵运算&#xf…

MATLAB符号运算小技巧

1. 引言 MATLAB具备强大的符号运算功能。符号运算就是所谓的计算机代数,通俗的说就是利用计算机进行数学公式的推导。这篇文章主要总结几个MATLAB进行符号运算时的小技巧,这也是作者在进行技术研究过程中实际碰到的一些难题,希望后来者能少走…