机器学习降维算法一:PCA (Principal Component Analysis)
引言:
机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中。降维的本质是学习一个映射函数 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)相关推荐
- 【机器学习sklearn】主成分分析PCA(Principal Component Analysis)
主成分分析方法PCA 前言 一.PCA是什么? 二.代码实践 使用MNIST数据集实现sklearn库里的主成分分析方法 不同主成分个数对应的可解释方差分析(Explained Variance) 总 ...
- pca主成分分析结果解释_SKLEARN中的PCA(Principal Component Analysis)主成分分析法
PCA(Principal Component Analysis)主成分分析法是机器学习中非常重要的方法,主要作用有降维和可视化.PCA的过程除了背后深刻的数学意义外,也有深刻的思路和方法. 1. 准 ...
- 机器学习降维算法一:PCA(主成分分析算法)
引言: 机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中.降维的本质是学习一个映射函数 f : x->y,其中x是原始数据点的表达,目前最多使用向量表达 ...
- 主成分分析PCA(principal component analysis)原理
PCA在很多方面均有应用,但是之前没有仔细探究过,最近看了一些博客和论文,做一下总结. 主成分分析(Principal Component Analysis,PCA), 是一种统计方法.通过正交变换将 ...
- JAVA实现PCA主成分分析_主成分分析PCA(principal component analysis)原理
PCA在很多方面均有应用,但是之前没有仔细探究过,最近看了一些博客和论文,做一下总结. 主成分分析(Principal Component Analysis,PCA), 是一种统计方法.通过正交变换将 ...
- 【碎片知识(9)】PCA (Principal Component Analysis) [主成分分析]
离开很久啦,从Ph.D.套磁开始到全部settle down花费了太久的时间,在上周也终于把研究方向定下来了,终于手头的事告一段落了.未来是跨度三到四年的research生涯,无数师兄师姐告诫我,读博 ...
- 主成分分析碎石图_R: 主成分分析 ~ PCA(Principal Component Analysis)
本文摘自:http://www.cnblogs.com/longzhongren/p/4300593.html 以表感谢.感谢 综述: 主成分分析 因子分析 典型相关分析,三种方法的共同点主要是用来对 ...
- 如何利用PCA(Principal component analysis)来简化数据
本博文的的内容为以下: 降维技术 主成分分析(PCA) 对半导体数据进行降维处理 降维(dimensionality reduction)的目标就是对输入的数目进行消减,由此剔除数据中的噪声并提高机器 ...
- Principal Component Analysis(PCA)
Principal Component Analysis(PCA) Principal Component Analysis(PCA) 概念 去中心化(零均值化): 将输入的特征减去特征的均值, 相当 ...
最新文章
- 安卓来电归属地_如何做一名突出的iPhone用户?安卓勿进!
- 浅析MongoDB数据库的海量数据存储应用
- 两年来的core折腾之路几点总结,附上nginx启用http2拿来即用的配置
- 得罪前女友到底有多可怕?
- 关于CWMP基础(二)----TR069通信流程
- 光储直柔配电系统浅析
- Asp.Net Core 系列教程 (一)
- python投资_python计算投资
- 安全学习木马查杀打卡第二十一天
- 37.WLAN Qos介绍
- 如何查看docker的版本号是多少
- maven进行install时出现Fatal error compiling错误
- 第一次用 Mac git 遇到的一些问题及解决方法,记录一下
- 控制浏览器窗口的可以缩放的最小高度和宽度
- Resharper快捷键
- SQL grouping
- win7计算机文件夹选项在哪里,Win7文件夹选项不见了怎么办?
- 《后端》开放平台API安全设计
- iphone开发 UIButton使用
- android开发工程师简历自我评价,软件工程师简历自我评价
热门文章
- 45 FI配置-财务会计-固定资产-一般评估-指定折旧条件转移
- 9.4 LSMW程序创建操作手册 第8 9 10 11步
- CentOS7安装单机版RabbitMQ集群
- linux ioctl及ioctl command
- DND(darmstadt noise dataset)数据集的坑
- 3-3.HDFS项目实战目标和要求
- Android :ScaleAnimation
- 分级加权评分算法 java_荐书|智能风控:原理、算法与工程实践
- Resi图片博客WordPress主题
- linux检测硬件驱动,linux查看硬件信息及驱动设备相关整理