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维向量和一个实数定义。因为是子空间,所以超平面一定过原点。

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

LDA算法和PCA算法的总结(原理和思想)相关推荐

  1. 浅谈迪杰斯特拉(Dijkstra)算法和A*算法原理及实现

    写在前面 最近我在学习一门名叫<智能自主机器人及系统>的课程,虽然跟过去所学的<机器人学>在部分内容上有所重复,但该课程的应用性更强.对于不同的机器人,如差速轮式车.四轮车.四 ...

  2. BF算法和KMP算法

    给定两个字符串S和T,在主串S中查找子串T的过程称为串匹配(string matching,也称模式匹配),T称为模式.这里将介绍处理串匹配问题的两种算法,BF算法和KMP算法. BF算法 (暴力匹配 ...

  3. 操作系统之存储管理——FIFO算法和LRU算法

    操作系统之进程调度--优先权法和轮转法(附上样例讲解) 操作系统之银行家算法-详解流程及案例数据 操作系统之多线程编程-读者优先/写者优先详解 操作系统之存储管理--FIFO算法和LRU算法 操作系统 ...

  4. 最短路径Dijkstra算法和Floyd算法整理、

    转载自:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.html 最短路径-Dijkstra算法和Floyd算法 Dijks ...

  5. 用Spark学习FP Tree算法和PrefixSpan算法

    在FP Tree算法原理总结和PrefixSpan算法原理总结中,我们对FP Tree和PrefixSpan这两种关联算法的原理做了总结,这里就从实践的角度介绍如何使用这两个算法.由于scikit-l ...

  6. 使用Apriori算法和FP-growth算法进行关联分析

    目录 1. 关联分析 2. Apriori原理 3. 使用Apriori算法来发现频繁集 4. 使用FP-growth算法来高效发现频繁项集 5. 示例:从新闻网站点击流中挖掘新闻报道 扩展阅读 系列 ...

  7. 【最短路径】:Dijkstra算法、SPFA算法、Bellman-Ford算法和Floyd-Warshall算法

    求最短路径最常用的算法有: Dijkstra算法.SPFA算法.Bellman-Ford算法和Floyd-Warshall算法. Dijkstra算法.SPFA算法.Bellman-Ford算法这三个 ...

  8. 数据结构与算法之美笔记——基础篇(下):图、字符串匹配算法(BF 算法和 RK 算法、BM 算法和 KMP 算法 、Trie 树和 AC 自动机)

    图 如何存储微博.微信等社交网络中的好友关系?图.实际上,涉及图的算法有很多,也非常复杂,比如图的搜索.最短路径.最小生成树.二分图等等.我们今天聚焦在图存储这一方面,后面会分好几节来依次讲解图相关的 ...

  9. 链接挖掘算法之PageRank算法和HITS算法

    参考资料:http://blog.csdn.net/hguisu/article/details/7996185 更多数据挖掘算法:https://github.com/linyiqun/DataMi ...

  10. 加权无向图与最小生成树(Prim算法和Kruskal算法)

    目录 0 引入 1 图的最小生成树定义及相关约定 2 最小生成树原理 2.1 性质 2.2 切分定理 3 贪心思想 4 Prim算法 4.1 算法步骤 4.2 API设计 4.3 Java代码演示 5 ...

最新文章

  1. docker 中删除dead状态的容器
  2. Android 自定义注解(Annotation)
  3. django mysql api_Django的API操作mysql中常用的语句
  4. TCP/IP 笔记一
  5. JPA的persistence.xml的使用及常见问题
  6. MVVM模式于MVP模式
  7. 使用 Inno Setup 快速打包你的应用程序
  8. 【codevs2800】送外卖,状态压缩DP练习
  9. JAVA抽象类和接口的深入探讨
  10. 支撑位和压力位怎么看是什么意思?
  11. 多屏显示 全屏后在副显示器_多屏生产力有多重要?联想ThinkVision思逸14显示器...
  12. RFC2544优化步长测试——信而泰网络测试仪实操
  13. C与C++中的符号隐藏
  14. C语言中的绝对值函数
  15. jenkins插件下载缓慢
  16. IOS 新增戴口罩面容ID解锁
  17. 这几本值得你一看再看的程序员素养必备好书
  18. Python3,2行代码添加水印,发朋友圈,图片再也不怕被盗了!!!
  19. XUN·LEI 会员哒
  20. spire.doc.free2.7.3生成目录后修改目录的字体

热门文章

  1. 使用Intel NCS算力棒 安装部署记录 VirtualBox With Ubuntu16.04 Source Aliyun
  2. Linux 系统-----vim命令详解
  3. 高频量化交易之王--李庆在华尔街
  4. C语言程序设计基础(01)—— 计算机与程序设计基础
  5. SiteMesh详解
  6. 搭搭云配置系统概述-表单
  7. ASCII码表以及字符和数字转换
  8. 方舟基础物品指令代码大全
  9. 02_行销(Marketing)里用逻辑回归来找寻顾客参与度后面的原因
  10. 自动控制原理复习第七章——非线性系统分析