1 线性判别分析(LDA)

1.1 LDA简介

LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。一句话来概括LDA的核心思想,【投影后类内方差最小,类间方差最大】。我们将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大,如下图所示

1.2.LDA原理及公式推导


目标函数已经得到,接下来是优化目标函数找到有一组最优鉴别矢量构成的投影矩阵WoptW_{opt}Wopt​(n为每个样本的特征个数),最佳投影矩阵WoptW_{opt}Wopt​的列向量恰为 Sbφ=λSwφS_b \varphi = \lambda S_{w}\varphiSb​φ=λSw​φ 的最大特征值所对应的特征向量(即矩阵 Sw−1SbS_{w}^{-1}S_bSw−1​Sb​ 的特征向量),由此可求得WoptW_{opt}Wopt​

1.3 具体例子LDA算法在空间上的意义

请参看4.1

1.4 LDA小结

LDA算法既可以用来降维,又可以用来分类,但是目前来说,主要还是用于降维。在进行图像识别相关的数据分析时,LDA是一个有力的工具。下面总结下LDA算法的优缺点。

优点

  1. 在降维过程中可以使用类别的先验知识经验,而像PCA这样的无监督学习则无法使用类别先验知识。
  2. LDA在样本分类依赖的是均值而不是方差时,比PCA之类的算法较优

缺点

  1. LDA不适合对非高斯分布的样本降维
  2. LDA降维最多降到类别数k-1的维数,如果我们降维的维度大于k-1,则不能使用LDA
  3. LDA在样本分类信息依赖方差而不是均值的时候,降维效果不好
  4. LDA可能过度拟合数据

LDA代码实现:https://github.com/ruthy-wei/MachineLearning/tree/master/LDA

文章参考:

  1. https://blog.csdn.net/ruthywei/article/details/83045288
  2. https://blog.csdn.net/warmyellow/article/details/5454943

2 主成分分析(PCA)

2.1 PCA简介

  • 主成分分析就是找出数据里最主要的方面代替原始数据,降低数据维度的同时最大化保留数据的信息、消除数据冗余和噪声。
  • 它的目标是通过线性投影将高维数据影射到低维空间,期望在低维数据上的方差最大,以此使用较少的维度保留较多的原数据点特征(但是PCA不试图去探索数据内在关系)。

2.2.PCA原理及公式推导

求样本 x(i) 的主成分(k维)其实就是求样本集的协方差阵 XXTXX^TXXT 的前 k 个最大特征值对应特征向量矩阵 W ,然后对于每个样本x(i),做如下变换 z(i)=WTx(i)z(i)=W^{T} x(i)z(i)=WTx(i),即达到降维的PCA目的

  1. 最大化数据映射后的方差:
  2. 优化目标函数:

    其中tr表示矩阵的迹,A是数据协方差矩阵,
    得到最优的W是由数据协方差矩阵前 k 个最大的特征值对应的特征向量作为列向量构成的。这些特征向量形成一组正交基并且最好地保留了数据中的信息。
    PCA的输出就是Y=WTXY = W^{T}XY=WTX ,由X的原始维度降低到了k维。
    【有时我们不会指定具体的降维大小(k),而是指定一个降维的主成分阈值t(t∈(0,1))】。假如我们的n个特征值为λ1≥λ2≥…≥λn,则k可以通过下式得到:∑i=1kλi∑i=1nλi≥α\frac{\sum _{i=1} ^{k}\lambda _i}{\sum _{i=1} ^{n}\lambda _i} \geq \alpha ∑i=1n​λi​∑i=1k​λi​​≥α

参考:

  1. 参考1
  2. 参考2

3 PCA与LDA对比

【PCA:投影后最大化数据方差】
【LDA:投影后类内方差最小,类间方差最大】

相同点:

  1. 两者均可以对数据进行降维
  2. 两者在降维时均使用了矩阵特征分解的思想。
  3. 两者都假设数据符合高斯分布

不同点:

  1. LDA是有监督的降维方法,而PCA是无监督的降维方法。
  2. LDA降维有限制,最多降到类别数k-1的维数,而PCA没有这个限制。
  3. LDA除了可以用于降维,还可以用于分类,但可能过度拟合数据。
  4. LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。

机器学习之降维方法(LDA、PCA)小结相关推荐

  1. pca 累积方差贡献率公式_机器学习数据降维方法:PCA主成分分析

    PCA在机器学习中很常用,是一种无参数的数据降维方法.PCA步骤: 将原始数据按列组成n行m列矩阵X 将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值 求出协方差矩阵 求出协方差矩阵的 ...

  2. MachineLearning 13. 机器学习之降维方法UMAP及可视化 (umap)

    点击关注,桓峰基因 桓峰基因公众号推出机器学习应用于临床预测的方法,跟着教程轻松学习,每个文本教程配有视频教程大家都可以自由免费学习,目前已有的机器学习教程整理出来如下: MachineLearnin ...

  3. MachineLearning 12. 机器学习之降维方法t-SNE及可视化 (Rtsne)

    点击关注,桓峰基因 桓峰基因公众号推出机器学习应用于临床预测的方法,跟着教程轻松学习,每个文本教程配有视频教程大家都可以自由免费学习,目前已有的机器学习教程整理出来如下: MachineLearnin ...

  4. 降维方法(LDA、PCA、KLDA、MDS和ISOMAP)总结

    线性降维 PCA(无监督) 1.协方差矩阵:随机变量组成的向量,每组随机变量的协方差构成的一个对称矩阵,其对角元是每组随机变量的方差 2.矩阵的对角化:对于矩阵M,有可逆矩阵V,使得成为对角矩阵,而M ...

  5. 大数据(线性/非线性)降维方法(PCA,LDA,MDS,ISOMAP,LLE)

    文章目录 数据块划分 特征分布 特征提取 PCA LDA MDS Isomap LLE 数据块划分 对于给定的数据集Magic(19020个样本,10个属性),我们首先将其划分为RSP数据块,然后再分 ...

  6. 降维方法之PCA,LDA

    降维的目的 减少冗余信息造成的误差,提高数据信息的精度. PCA 主成分分析 Principal Component Analysis(PCA)主成分分析,是最常用的线性降维方法,无监督的,它通过某种 ...

  7. 机器学习四大降维方法

    引言: 机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中.降维的本质是学习一个映射函数 f : x->y,其中x是原始数据点的表达,目前最多使用向量表达 ...

  8. 机器学习--特征降维方法总结

    本篇博文主要总结一下机器学习里面特征降维的方法,以及各种方法之间的联系和区别. 机器学习中我个人认为有两种途径可以来对特征进行降维,一种是特征抽取,其代表性的方法是PCA,SVD降维等,另外一个途径就 ...

  9. python降维方法_机器学习数据降维方法总结(附python代码)

    介绍 在机器学习实战时,如果面对一个数据集具有上千个特征,那么对于模型训练将是一个巨大的挑战.面对如此多的数据变量,如果我们认真的去分析每一个变量将耗费我们几周甚至几个月的时间,那么你估计也要被开除了 ...

最新文章

  1. LCD12864示例子程序
  2. php向指定文件发送消息,PHP-将文件发送给用户
  3. Windows配置jdk环境变量JAVA_HOME与path
  4. Active Directory边界
  5. C#语言基础——7月21日
  6. [原+转]CSS hack 小技巧 让你的CSS 兼容ff ie6.0 ie7.0
  7. matlab table中的文字转string_MATLAB_GUI_教程(2)pushbutton
  8. 【OpenCV 例程200篇】29. 图像的翻转(cv2.flip)
  9. 向iOS开发者介绍C++
  10. python一维数组聚类
  11. 功能拆分简化权限操作,提高程序易用性
  12. C/C++[codeup 1933,1993]图形输出
  13. 佳能Canon imageCLASS MF742Cdw 一体机驱动
  14. PyQt4对话框(dialog类型介绍)
  15. php写抢红包,红包生成函数(微信抢红包)
  16. Github项目分享——Vue随机刷装备小游戏
  17. 南邮——计算机图像学——会动的立方体(变换)
  18. Win11忘记本地账户密码了怎么移除或修改密码
  19. 基于二哈实现多人人脸学习和识别
  20. WinDBG 技巧:列出模块(DLL/EXE)里面所有的符号(symbol)

热门文章

  1. beta阶段——项目复审
  2. Github上好的Android开源框架
  3. C# 特性(Attribute)学习
  4. win10安装oracle11g 服务端及配置详解
  5. 软件_避免用chrome进行网站配置调试[博]
  6. 克罗谈投资策略01_期货交易中的墨菲法则
  7. jq使用教程05_ 新手也能用的安装版本,30秒点选即可安装完成,不需配置Python环境
  8. android 区域交错,android - 自动调整交错GridLayoutManager - 堆栈内存溢出
  9. 年终将至,手把手教你做一份亮眼的年终总结报告
  10. 移动端报表JS开发示例--获取定位