关键词:
降维,线性判别分析
本博客根据 百面机器学习,算法工程师带你去面试 一书总结归纳,公式都是出自该书.
本博客仅为个人总结学习,非商业用途,侵删.
网址 http://www.ptpress.com.cn
目录
- LDA推导
- LDA扩展到多维度
- PCA与LDA的区别
LDA原理
线性判别分析(Linear Discriminant Analysis, LDA) 是一种有监督学习算
法, 同时经常被用来对数据进行降维。
在PCA中, 算法没有考虑数据的标签(类别) , 只是把原数据映射到一些方差比较大的方向上而已。 如下图中,用不同的颜色标注C1、 C2两个不同类别的数据 ,根据PCA算法, 数据应该映射到方差最大的那个方向, 亦即y轴方向。 但是, C1, C2两个不同类别的数据就会完全混合在一起, 很难区分开。 所以, 使用PCA算法进行降维后再进行分类的效果会非常差。 但是, 如果使用LDA算法, 数据会映射到x轴方向。
LDA首先是为了分类服务的, 因此只要找到一个投影方向ω, 使得投影后的样
本尽可能按照原始类别分开。 我们可以从一个简单的二分类问题出发,有(C_1,C_2)两个类别的样本,两类的均值分别为,。我们希望投影之后两类之间的距离尽可能大,距离表示为:
其中 ,,表示两类的中心在ω方向上的投影向量,=(ω^Tμ_1), = (ω^Tμ_2),因此需要优化的问题为:
容易发现, 当ω方向与((μ_1?μ_2))一致的时候, 该距离达到最大值。例如对下图中的黄棕两种类别的样本点进行降维时, 若按照最大化两类投影中心距离的准则, 会将样本点投影到下方的黑线上。 但是原本可以被线性划分的两类样本,
经过投影后有了一定程度的重叠。
我们希望投影后的结果如下图中所示,虽然两类的中心在投影之后的距离有所减小,但确使投影之后样本的可区分性提高了。
由此,我们可以观察两种投影的方式,发现第二种投影后的样本点似乎在每一类中分布得更为集中了。所以LDA得中心思想就是--最大化类间距离和最小化类内距离。
在前面我们已经找到了类间距离尽可能大的投影方式,现在只需要同时优化类内方差,使其尽可能小。
我们将整个数据集的类内方差定义为各个类内方差之和, 将目标函数定义为类间距离和类内距离的比值, 于是引出我们需要最大化的目标
其中ω为单位向量, (D_1,D_2)分别表示两类投影后的方差,两个类内方差公式为:
因此J(ω)可以写成
定义类间散度矩阵,类内散度矩阵。则目标式子可以写为:
我们要最大化J(ω), 只需对ω求偏导, 并令导数等于零
于是得出,
由于在简化的二分类问题中(ω^TS_wω)和(ω^TS_Bω)是两个数,我们令:
,
于是可以把结果写成,整理得
从这里我们可以看出,我们最大化的目标对应了一个矩阵的特征值,于是LDA降维变成了一个求矩阵特征向量的问题。J(ω)就对应了矩阵 (S_w^?1S_B)最大的特征值, 而投影方向就是这个特征值对应的特征向量。
对于二分类这一问题, 由于(S_B),因此(S_Bω)的方向始终与((μ_1?μ_2))一致,如果只考虑ω的方向,不考虑其长度,可以得到(ω=S_w^?1)(μ_1?μ_2)$。换句话说,我们只需求样本均值和类内方差,就可以马上得到最佳的投影方向ω。
将LDA扩展到多类高维的情况
假设有N个类别, 并需要最终将特征降维至d维。 因此, 我们要找到一个d维投影超平面,使得投影后的样本点满足LDA的目标--最大化类间距离和最小化类内距离。
对两个散度矩阵,类内散度矩阵在类别增加至N时仍满足定义, 而之前两类问题的类间散度矩阵 在类别增加后就无法按照原始定义。
如下图中是三类样本的分布情况,其中(μ_1,μ_2,μ_3)分别表示棕绿黄三类样本
的中心, μ表示这三个中心的均值(也即全部样本的中心) , (S_wi)表示第i类的类内散度。
由上图,我们可以定义一个新的矩阵(S_t),来表示全局整体的散度,成为全局散度矩阵:
如果把全局散度定义为类内散度与类间散度之和, 即(S_t=S_b+S_w), 那么类间散度矩阵可表示为
其中(m_j)是第j个类别中的样本个数, N是总的类别个数。
从上式看出,类间散度表示的就是每个类别中心到全局中心的一种加权距离。我们最大化类间散度实际上优化的是每个类别的中心经过投影后离全局中心的投影足够远。
根据LDA的原理, 可以将最大化的目标定义为
其中W是需要求解的投影超平面,(W^TW = I),根据前面问题的讨论,我们可以推导出最大化J(W)对应了以下广义特征值求解的问题
求解最佳投影平面即求解(S_w^-1S_b)矩阵特征值前d大对应的特征向量组成的矩阵, 这就将原始的特征空间投影到了新的d维空间中。我们可以得到下面的求解LDA步骤:
1 计算数据集中每个类别样本的均值向量(μ_j), 及总体均值向量μ。
2 计算类内散度矩阵(S_w), 全局散度矩阵(S_t), 并得到类间散度矩阵(S_b=S_t-S_w)。
3 对矩阵(S_w^-1S_b)进行特征值分解, 将特征值从大到小排列
4 取特征值前d大的对应的特征向量 ,通过以下映射将n维样本
映射到d维
PCA与LDA的区别
从PCA和LDA两种降维方法的求解过程来看, 它们确实有着很大的相似性,但对应的原理却有所区别。
从目标角度
- PCA选择的是投影后数据方差最大的方向。由于它是无监督的, 因此PCA假设方差越大, 信息量越多, 用主成分来表示原始数据可以去除冗余的维度, 达到降维。
- 而LDA选择的是投影后类内方差小、 类间方差大的方向。 其用到了类别标签信息, 为了找到数据中具有判别性的维度, 使得原始数据在这些方向上投影后, 不同类别尽可能区分开。
从应用的角度,可以掌握一个基本的原则——对无监督的任务使用PCA进行降维, 对有监督的则应用LDA。
线性判别分析(lda),二次判别分析(qda)和正则判别分析(rda)(代码片段)
判别分析包括可用于分类和降维的方法。线性判别分析(LDA)特别受欢迎,因为它既是分类器又是降维技术。二次判别分析(QDA)是LDA的变体,允许数据的非线性分离。最后,正则化判别分析(RDA)是LDA和QDA之间的折衷。本文主... 查看详情
降维算法中的线性判别方法lda
线性判别分析(Linear?Discriminant?Analysis,?LDA),有时也称Fisher线性判别(Fisher?Linear?Discriminant?,FLD),?这种算法是Ronald?Fisher?于?1936年发明的,是模式识别的经典算法。在1996年由Belhumeur引入模式识别和人工智能领域的。基本思想是将高维... 查看详情
降维线性判别分析lda
降维,线性判别分析本博客根据百面机器学习,算法工程师带你去面试一书总结归纳,公式都是出自该书.本博客仅为个人总结学习,非商业用途,侵删.网址http://www.ptpress.com.cn目录LDA推导LDA扩展到多维度PCA与LDA的区别LDA原理线性... 查看详情
线性判别分析(lda)原理
在主成分分析(PCA)原理总结中,我们对降维算法PCA做了总结。这里我们就对另外一种经典的降维方法线性判别分析(LinearDiscriminantAnalysis,以下简称LDA)做一个总结。LDA在模式识别领域(比如人脸识别,舰艇识别等图形图像识别... 查看详情
线性判别分析lda总结
在主成分分析(PCA)原理总结中,我们对降维算法PCA做了总结。这里我们就对另外一种经典的降维方法线性判别分析(LinearDiscriminantAnalysis,以下简称LDA)做一个总结。LDA在模式识别领域(比如人脸识别,舰艇识别等图形图像识别... 查看详情
降维技术2-线性判别分析(lda)
...ot;Fisher判别分析"。在主成分分析原理总结中,我们对降维算法PCA进行了总结。这里的LDA是另一种经典的的降维算法。使用PCA进行降维,我们没有将类别考虑进去,属于无监督学习。而LDA是一种监督学习的降维技术,即它的每... 查看详情
线性判别分析(lineardiscriminantanalysis-lda)
...riminantAnalysis(LDA线性判别分析) 用途:数据预处理中的降维,分类任务 目标:LDA关心的是能够最大化类间区分度的坐标轴成分,将特征空间(数据集中的多维样本)投影到一个维度更小的k维子空间中,同时保持区分类别... 查看详情
线性差别分析lda(代码片段)
...llocation)隐含狄利克雷分布区分开来。LDA是一种监督学习降维技术,它的数据集的每个样本是有类别输出的。而PCA是不考虑样本类别输出的无监督降维技术。核心思想是:投影后类内方差最小,类间方差最大。理解为:数据在 查看详情
lda线性模型
线性判别分析LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。这点和PCA不同。PCA是不考虑样本类别输出的无监督降维技术。LDA的思想可以用一句话概括,就是“投影后类内方差最小,类间方差最... 查看详情
您可以使用 LDA(线性判别分析)作为 sklearn 管道的一部分进行预处理吗?
...差阈值运行以进行特征选择,然后通过归一化器和LDA进行降维的汇总。我不太确定LDA元素,因为我找不到 查看详情
lda线性判别分析
...ttp://blog.csdn.net/porly/article/details/8020696 1. LDA是什么线性判别式分析(LinearDiscriminantAnalysis),简称为LDA。也称为Fisher线性判别(FisherLinearDiscriminant,FLD),是模式识别的经典算法,在1996年由Belhumeur引入模式识别和人工智能... 查看详情
线性判别分析(lda)
...LinearDiscriminantAnalysis,简称LDA)是一种经典的有监督数据降维方法。LDA的主要思想是将一个高维空间中的数据投影到一个较低维的空间中,且投影后要保证各个类别的类内方差小而类间均值差别大,这意味着同一类的高维数据投... 查看详情
r语言中多分类问题multicalssclassification的性能测量(代码片段)
判别分析包括可用于分类和降维的方法。线性判别分析(LDA)特别受欢迎,因为它既是分类器又是降维技术。二次判别分析(QDA)是LDA的变体,允许数据的非线性分离。最后,正则化判别分析(RDA)是LDA和QDA之间的折衷。本文主... 查看详情
lda
在主成分分析(PCA)原理总结中,我们对降维算法PCA做了总结。这里我们就对另外一种经典的降维方法线性判别分析(LinearDiscriminantAnalysis,以下简称LDA)做一个总结。LDA在模式识别领域(比如人脸识别,舰艇识别等图形图像识别... 查看详情
ml:降维算法-lda
...即Fisher判别、Bayes判别和距离判别。Fisher判别思想是投影降维,使多维问题简化为一维问题来处理。选择一个适当的投影轴,使所有的样品点都投影到这个轴上得到一个投影值。 查看详情
lda线性判别式分析
1. LDA是什么 线性判别式分析(LinearDiscriminantAnalysis),简称为LDA。也称为Fisher线性判别(FisherLinearDiscriminant,FLD),是模式识别的经典算法,在1996年由Belhumeur引入模式识别和人工智能领域。 基本思... 查看详情
lad线性判别分析(代码片段)
线性判别分析,简称LDA,是一种线性学习方法。常用来降维,是一种有监督的降维方法,是基于最佳分类效果的降维方法。 核心思想给定训练样本,带label,设法将样本投影到一条直线上,使得同类样例的投影尽可能接近,... 查看详情
LDA(线性判别分析)的正确实现是啥?
】LDA(线性判别分析)的正确实现是啥?【英文标题】:WhatiscorrectimplementationofLDA(LinearDiscriminantAnalysis)?LDA(线性判别分析)的正确实现是什么?【发布时间】:2015-11-0704:44:57【问题描述】:我发现OpenCV中LDA的结果与其他库不同... 查看详情