0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用PCA还是LDA?特征抽取经典算法大PK

格创东智 2019-01-10 13:40 次阅读

在之前的格物汇文章中,我们介绍了特征抽取的经典算法——主成分分析(PCA),了解了PCA算法实质上是进行了一次坐标轴旋转,尽可能让数据映射在新坐标轴方向上的方差尽可能大,并且让原数据与新映射的数据在距离的变化上尽可能小。方差较大的方向代表数据含有的信息量较大,建议保留。方差较小的方向代表数据含有的信息量较少,建议舍弃。今天我们就来看一下PCA的具体应用案例和特征映射的另一种方法:线性判别分析(LDA)


PCA案例

机器学习中,所使用的数据往往维数很大,我们需要使用降维的方法来突显信息含量较大的数据,PCA就是一个很好的降维方法。下面我们来看一个具体的应用案例,为了简单起见,我们使用一个较小的数据集来展示:


1.jpg


显而易见,我们数据有6维,维数虽然不是很多但不一定代表数据不可以降维。我们使用sklearn中的PCA算法拟合数据集得到如下的结果:


2.jpg

我们可以看到经过PCA降维后依然生成了新的6个维度,但是数据映射在每一个维度上的方差大小不一样。我们会对每一个维度上的方差进行归一化,每一个维度上的方差量我们称为可解释的方差量(Explained Variance)。由图可知,每一个维度上可解释方差占比为:0.4430,0.2638,0.1231,0.1012,0.0485,0.0204。根据经验来说我们期望可解释的方差量累计值在80%以上较好,因此我们可以选择降维降到3维(82.99%)或者4维(93.11%),括号中的数字为累计可解释的方差量,最后两维方差解释只有7%不到,建议舍去。图中的柱状图表示原维度在新坐标轴上的映射向量大小。在前两维度上表现如下图所示:

3.jpg

PCA虽然能实现很好的降维效果,但是它却是一种无监督的方法。实际上我们更加希望对于有类别标签的数据(有监督),也能实现降维,并且降维后能更好的区分每一个类。此时,特征抽取的另一种经典算法——线性判别分析(LDA)就闪亮登场了。

LDA简介

LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。这点和PCA不同。PCA是不考虑样本类别输出的无监督降维技术。LDA的思想可以用一句话概括,就是“投影后类内方差最小,类间方差最大”。什么意思呢? 我们要将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。

4.jpg


上图中提供了两种投影方式,哪一种能更好的满足我们的标准呢?从直观上可以看出,右图要比左图的投影效果好,因为右图的黑色数据和蓝色数据各个较为集中,且类别之间的距离明显。左图则在边界处数据混杂。LDA的降维效果更像右图,它能在新坐标轴上优先区分出两个类别,它是如何实现的呢?

LDA的原理

LDA的主要思想是“投影后类内方差最小,类间方差最大”。实质上就是很好的区分出两个类的分布。我们知道衡量数据分布的两个重要指标是均值和方差,对于每一个类,他们的定义如下:

5.jpg

与PCA一样,LDA也是对数据的坐标轴进行一次旋转,假设旋转的转移矩阵是w,那么新的旋转数据可以表示为:

6.jpg

同理,两个类别的中心点也转换成了:

7.jpg


文字.jpg


8.jpg


我们求解这个最优化问题,即可求出转移变换矩阵w,即LDA的最终结果。


PCA vs LDA

LDA用于降维,和PCA有很多相同,也有很多不同的地方,因此值得好好的比较一下两者的降维异同点。首先我们看看相同点:

1、两者均可以对数据进行降维

2、两者在降维时均使用了矩阵特征分解的思想

3、两者都假设数据符合高斯分布


我们接着看看不同点:

1、LDA是有监督的降维方法,而PCA是无监督的降维方法

2、LDA降维最多降到类别数k-1的维数,而PCA没有这个限制

3、LDA除了可以用于降维,还可以用于分类

4、LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向


在某些数据分布下LDA比PCA降维较优(左图),在某些数据分布下,PCA比LDA降维较优。

9.jpg


好了,以上就是本期格物汇的内容,我们下期见。


本文作者:格创东智 OT团队(转载请注明作者及来源)



声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2900

    文章

    44035

    浏览量

    370050
  • PCA
    PCA
    +关注

    关注

    0

    文章

    88

    浏览量

    29536
  • LDA
    LDA
    +关注

    关注

    0

    文章

    29

    浏览量

    10585
  • 智能制造
    +关注

    关注

    48

    文章

    5442

    浏览量

    76227
  • 工业互联网
    +关注

    关注

    28

    文章

    4289

    浏览量

    94020
收藏 人收藏

    评论

    相关推荐

    特征工程实施步骤

    数据中提取数值表示以供无监督模型使用的方法(例如,试图从之前非结构化的数据集中提取结构)。特征工程包括这两种情况,以及更多内容。数据从业者通常依赖ML和深度学习算法
    的头像 发表于 10-23 08:07 156次阅读
    <b class='flag-5'>特征</b>工程实施步骤

    求助,AD7190关于Σ-Δ ADC其中的抽取滤波器的数据转换问题求解

    AD7190可以通过模式寄存器的FS[0:9]设置输出速率, 0-1023的范围;此时设置的数据速率选择位是否就是Σ-Δ ADC抽取滤波器的抽取比? 关于抽取滤波器,此时我设置的为1023,那我是否
    发表于 09-09 06:11

    天翼云,AI取经路上的逐梦人

    息壤一体化智算服务平台升级,天翼云帮助AI天命人踏上取经
    的头像 发表于 09-05 16:06 2191次阅读
    天翼云,AI<b class='flag-5'>取经</b>路上的逐梦人

    PCA9655E I / O端口扩展器 I

    电子发烧友网为你提供ON Semiconductor(ON Semiconductor)PCA9655E相关产品参数、数据手册,更有PCA9655E的引脚图、接线图、封装手册、中文资料、英文资料,PCA9655E真值表,
    发表于 06-28 16:28
    <b class='flag-5'>PCA</b>9655E I / O端口扩展器 I

    机器学习的经典算法与应用

    关于数据机器学习就是喂入算法和数据,让算法从数据中寻找一种相应的关系。Iris鸢尾花数据集是一个经典数据集,在统计学习和机器学习领域都经常被用作示例。数据集内包含3类共150条记录,每类各50个数
    的头像 发表于 06-27 08:27 1538次阅读
    机器学习的<b class='flag-5'>经典</b><b class='flag-5'>算法</b>与应用

    简单认识变频器和PLC/PCA系统

    在工业自动化领域,变频器和PLC/PCA系统是两个不可或缺的核心组成部分。变频器以其对电机转速和扭矩的精确控制,为工业自动化提供了强大的动力支持;而PLC/PCA系统则以其强大的逻辑处理能力和灵活
    的头像 发表于 06-25 14:48 631次阅读

    如何使用万表检查线路是短路还是接地

    在电气维修和检测中,万表是一种不可或缺的工具。它能够帮助我们快速准确地判断电路中的各种问题,如短路、断路和接地等。本文将详细介绍如何使用万表来检查线路是短路还是接地,并围绕这一主题展开详细的讨论。
    的头像 发表于 05-30 14:55 2025次阅读

    蓝牙模块选经典蓝牙还是低功耗蓝牙?

    energy和Bluetooth smart两者又有什么区别?我的应用应该选经典蓝牙技术还是低功耗蓝牙技术?首先,在2010年以前,当我们谈论蓝牙的时候,就是在说的经典蓝牙,因为那个时候还没有低功耗蓝牙
    的头像 发表于 05-23 17:57 1001次阅读
    蓝牙模块选<b class='flag-5'>经典</b>蓝牙<b class='flag-5'>还是</b>低功耗蓝牙?

    钳形表好用还是表好用?

    钳形表和万表都是电气测量中常用的工具,它们各自具有独特的功能和优势。选择钳形表还是表取决于具体的测量需求、使用场景和个人偏好。
    的头像 发表于 05-09 17:03 4400次阅读

    聊聊MCU死循环,for(;;)还是while(1)?

    首先,问大家一个问题:你们写单片机程序【死循环】时,喜欢for(;;)还是while(1)?快来为你喜欢的【死循环】打call,评论区等你哦~一位工程师发现,国外工程师在给demo在做死循环时
    的头像 发表于 04-29 08:10 1126次阅读
    聊聊MCU死循环,<b class='flag-5'>用</b>for(;;)<b class='flag-5'>还是</b>while(1)?

    STM32控制中常见的PID算法总结

    在很多控制算法当中,PID控制算法又是最简单,最能体现反馈思想的控制算法,可谓经典中的经典经典
    发表于 12-27 14:07 1487次阅读
    STM32控制中常见的PID<b class='flag-5'>算法</b>总结

    LabVIEW进行癌症预测模型研究

    )进行非线性数据分类。主成分分析(PCA)和线性判别分析(LDAPCALDA用于降维,减少噪声,并保留数据的重要特征。在并行
    发表于 12-13 19:04

    四种接近传感器PK,谁能胜出?

    四种接近传感器PK,谁能胜出?
    的头像 发表于 12-07 09:28 1512次阅读
    四种接近传感器<b class='flag-5'>PK</b>,谁能胜出?

    AD9689芯片DDC抽取滤波器进行多芯片同步时使用什么信号进行复位同步?

    AD9689芯片 DDC抽取滤波器进行多芯片同步时使用什么信号进行复位同步?是sysref信号还是什么?datasheet没有提供说明。
    发表于 12-07 06:43

    178个经典c语言源代码+算法大全

    电子发烧友网站提供《178个经典c语言源代码+算法大全.rar》资料免费下载
    发表于 11-21 10:19 6次下载
    178个<b class='flag-5'>经典</b>c语言源代码+<b class='flag-5'>算法</b>大全