引言:

机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中。降维的本质是学习一个映射函数 f : x->y,其中x是原始数据点的表达,目前最多使用向量表达形式。 y是数据点映射后的低维向量表达,通常y的维度小于x的维度(当然提高维度也是可以的)。f可能是显式的或隐式的、线性的或非线性的。

当然还有一大类方法本质上也是做了降维,叫做feature selection,目的是从原始的数据feature集合中挑选一部分作为数据的表达。

目前大部分降维算法处理向量表达的数据,也有一些降维算法处理高阶张量表达的数据。

之所以使用降维后的数据表示是因为:

(1)在原始的高维空间中,包含有冗余信息以及噪音信息,在实际应用例如图像识别中造成了误差,降低了准确率;而通过降维,我们希望减少冗余信息所造成的误差,提高识别(或其他应用)的精度。

(2)或者希望通过降维算法来寻找数据内部的本质结构特征。

(3)通过降维来加速后续计算的速度

(4)还有其他很多目的,如解决数据的sparse问题

在很多算法中,降维算法成为了数据预处理的一部分,如PCA。事实上,有一些算法如果没有降维预处理,其实是很难得到很好的效果的。

如果你需要处理数据,但是数据原来的属性又不一定需要全部保留,那么PCA也许是一个选择。

主成分分析算法(PCA)

Principal Component Analysis(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留住较多的原数据点的特性。

通俗的理解,如果把所有的点都映射到一起,那么几乎所有的信息(如点和点之间的距离关系)都丢失了,而如果映射后方差尽可能的大,那么数据点则会分散开来,以此来保留更多的信息。可以证明,PCA是丢失原始数据信息最少的一种线性降维方式。(实际上就是最接近原始数据,但是PCA并不试图去探索数据内在结构)

n维向量w为目标子空间的一个坐标轴方向(称为映射向量),最大化数据映射后的方差,有:

其中m是数据实例的个数, xi是数据实例i的向量表达, x拔是所有数据实例的平均向量。定义W为包含所有映射向量为列向量的矩阵,经过线性代数变换,可以得到如下优化目标函数:

W'W=I是说希望结果的每一个feature都正交,这样每一维度之间不会有冗余信息。

其中tr表示矩阵的迹,A是数据协方差矩阵。

容易得到最优的W是由数据协方差矩阵前k个最大的特征值对应的特征向量作为列向量构成的。这些特征向量形成一组正交基并且最好地保留了数据中的信息。

PCA的输出就是Y = W'X,由X的原始维度降低到了k维。因此不知道推导也无所谓,只要会算就行,注意X需要均值化。

来看个例子:

当使用1个特征向量的时候,3的基本轮廓已经保留下来了,特征向量使用的越多就越与原始数据接近

PCA追求的是在降维之后能够最大化保持数据的内在信息,并通过衡量在投影方向上的数据方差的大小来衡量该方向的重要性。但是这样投影以后对数据的区分作用并不大,反而可能使得数据点揉杂在一起无法区分。这也是PCA存在的最大一个问题,这导致使用PCA在很多情况下的分类效果并不好。具体可以看下图所示,若使用PCA将数据点投影至一维空间上时,PCA会选择2轴,这使得原本很容易区分的两簇点被揉杂在一起变得无法区分;而这时若选择1轴将会得到很好的区分结果。

Discriminant Analysis所追求的目标与PCA不同,不是希望保持数据最多的信息,而是希望数据在降维后能够很容易地被区分开来。后面会介绍LDA的方法,是另一种常见的线性降维方法。另外一些非线性的降维方法利用数据点的局部性质,也可以做到比较好地区分结果,例如LLE,Laplacian Eigenmap等。以后会介绍。

机器学习降维算法一:PCA (Principal Component Analysis)相关推荐

  1. 【机器学习sklearn】主成分分析PCA(Principal Component Analysis)

    主成分分析方法PCA 前言 一.PCA是什么? 二.代码实践 使用MNIST数据集实现sklearn库里的主成分分析方法 不同主成分个数对应的可解释方差分析(Explained Variance) 总 ...

  2. pca主成分分析结果解释_SKLEARN中的PCA(Principal Component Analysis)主成分分析法

    PCA(Principal Component Analysis)主成分分析法是机器学习中非常重要的方法,主要作用有降维和可视化.PCA的过程除了背后深刻的数学意义外,也有深刻的思路和方法. 1. 准 ...

  3. 机器学习降维算法一:PCA(主成分分析算法)

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

  4. 主成分分析PCA(principal component analysis)原理

    PCA在很多方面均有应用,但是之前没有仔细探究过,最近看了一些博客和论文,做一下总结. 主成分分析(Principal Component Analysis,PCA), 是一种统计方法.通过正交变换将 ...

  5. JAVA实现PCA主成分分析_主成分分析PCA(principal component analysis)原理

    PCA在很多方面均有应用,但是之前没有仔细探究过,最近看了一些博客和论文,做一下总结. 主成分分析(Principal Component Analysis,PCA), 是一种统计方法.通过正交变换将 ...

  6. 【碎片知识(9)】PCA (Principal Component Analysis) [主成分分析]

    离开很久啦,从Ph.D.套磁开始到全部settle down花费了太久的时间,在上周也终于把研究方向定下来了,终于手头的事告一段落了.未来是跨度三到四年的research生涯,无数师兄师姐告诫我,读博 ...

  7. 主成分分析碎石图_R: 主成分分析 ~ PCA(Principal Component Analysis)

    本文摘自:http://www.cnblogs.com/longzhongren/p/4300593.html 以表感谢.感谢 综述: 主成分分析 因子分析 典型相关分析,三种方法的共同点主要是用来对 ...

  8. 如何利用PCA(Principal component analysis)来简化数据

    本博文的的内容为以下: 降维技术 主成分分析(PCA) 对半导体数据进行降维处理 降维(dimensionality reduction)的目标就是对输入的数目进行消减,由此剔除数据中的噪声并提高机器 ...

  9. Principal Component Analysis(PCA)

    Principal Component Analysis(PCA) Principal Component Analysis(PCA) 概念 去中心化(零均值化): 将输入的特征减去特征的均值, 相当 ...

最新文章

  1. 安卓来电归属地_如何做一名突出的iPhone用户?安卓勿进!
  2. 浅析MongoDB数据库的海量数据存储应用
  3. 两年来的core折腾之路几点总结,附上nginx启用http2拿来即用的配置
  4. 得罪前女友到底有多可怕?
  5. 关于CWMP基础(二)----TR069通信流程
  6. 光储直柔配电系统浅析
  7. Asp.Net Core 系列教程 (一)
  8. python投资_python计算投资
  9. 安全学习木马查杀打卡第二十一天
  10. 37.WLAN Qos介绍
  11. 如何查看docker的版本号是多少
  12. maven进行install时出现Fatal error compiling错误
  13. 第一次用 Mac git 遇到的一些问题及解决方法,记录一下
  14. 控制浏览器窗口的可以缩放的最小高度和宽度
  15. Resharper快捷键
  16. SQL grouping
  17. win7计算机文件夹选项在哪里,Win7文件夹选项不见了怎么办?
  18. 《后端》开放平台API安全设计
  19. iphone开发 UIButton使用
  20. android开发工程师简历自我评价,软件工程师简历自我评价

热门文章

  1. 45 FI配置-财务会计-固定资产-一般评估-指定折旧条件转移
  2. 9.4 LSMW程序创建操作手册 第8 9 10 11步
  3. CentOS7安装单机版RabbitMQ集群
  4. linux ioctl及ioctl command
  5. DND(darmstadt noise dataset)数据集的坑
  6. 3-3.HDFS项目实战目标和要求
  7. Android :ScaleAnimation
  8. 分级加权评分算法 java_荐书|智能风控:原理、算法与工程实践
  9. Resi图片博客WordPress主题
  10. linux检测硬件驱动,linux查看硬件信息及驱动设备相关整理