文档章节

PCA降维推导

Pulsar-V
 Pulsar-V
发布于 2017/07/28 22:14
字数 875
阅读 38
收藏 0

Principal Component Analysis (PCA) 主成分分析,是多变量分析中最老的技术之一,PCA来源于通信中的K-L变换。1901年由Pearson第一次提出主成分分析的主要方法,直到1963年Karhunan Loeve对该问题的归纳经历了多次的修改。
它的目标是通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留住较多 的原数据点的特性。通俗的理解,如果把所有的点都映射到一起,那么几乎所有的信息 (如点和点之间的距离关系) 都丢失了,而如果映射后方差尽可能的大,那么数据点则会分散开来,以此来保留更多的信息。可以证明,PCA是丢失原始数据信息最少的一种线性降维方式
。(实际上就是最接近原始数据,但是PCA并不试图去探索数据内在结构)

在数学领域我们使用SVD去解决主成分分析 (PCA) 的问题
PCA的问题其实是一个基的变换,使得变换后的数据有着最大的方差。方差的大小描述的是一个变量的信息量,我们在讲一个东西的稳定性的时候,往往说要减小方差,如果一个模型的方差很大,那就说明模型不稳定了。但是对于我们用于机器学习的数据 (主要是训练数据),方差大才有意义,不然输入的数据都是同一个点,那方差就为0了,这样输入的多个数据就等同于一个数据了
首先来明确几个基础问题

向量基变换

向量

看看下面的这两个向量内积的例子

Matlab 在坐标系中我们设有两个相交但不相等的的向量A与向量B可以知道下面的式子

向量A的模等于其坐标的平方和开根号

A到向量B的垂直线(投影)长度

A与B的内积等于A到B的投影长度乘以B的模

一个二维向量可以对应二维笛卡尔直角坐标系中从原点出发的一个有向线段。
但是,在二维空间当中,只有坐标(X,Y)本身是不能够精确表示一个具有方向的向量的。可以知道向量(x,y)是一个线性组合,即二维空间的基,在线性代数中,基(也称为基底)是描述、刻画向量空间的基本工具。向量空间的基是它的一个特殊的子集。
下面是二维空间的基的一般表示

在PCA降维中,我们需要进行空间坐标的变换也就是基变换,下面来看一个例子

矩阵基变换

理论推导

(1)问题描述
对于d维空间中的n个样本,,考虑如何在低维空间中最好地代表它们。

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

© 著作权归作者所有

共有 人打赏支持
下一篇: 降维技术
Pulsar-V

Pulsar-V

粉丝 52
博文 111
码字总数 82567
作品 1
成都
后端工程师
私信 提问
机器学习实战之主成分分析(PCA)

如果人类适应了三维,去掉一个维度,进入了二维世界,那么人类就会因为缺少了原来所适应的一个维度,而无法生存。 ——《三体》 在许多科幻电影中,有许多降维的例子。在《十万个冷笑话2》(...

罗罗攀
2018/06/21
0
0
【火炉炼AI】机器学习053-数据降维绝招-PCA和核PCA

【火炉炼AI】机器学习053-数据降维绝招-PCA和核PCA (本文所使用的Python库和版本号: Python 3.6, Numpy 1.14, scikit-learn 0.19, matplotlib 2.2 ) 主成分分析(Principal Component Analy...

炼丹老顽童
2018/10/31
0
0
用线性判别分析 LDA 降维

本文结构: 什么是 LDA 和 PCA 区别 LDA 降维的计算过程 LDA 降维的例子 1. 什么是 LDA 先说判别分析,Discriminant Analysis 就是根据研究对象的各种特征值,判别其类型归属问题的一种多变量...

aliceyangxi1987
2017/07/12
0
0
人工智障学习笔记——机器学习(16)降维小结

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

sm9sun
2017/12/19
0
0
机器学习之主成分分析PCA及代码示例

一、主成分分析(PCA) 主成分分析(Principal Component Analysis)是一种常用的降维算法,可通过线性组合的方法将多个特征综合为少数特征,且综合后的特征相互独立,又可以表示原始特征的大...

cxmscb
2017/03/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

vue 对对象的属性进行修改时,不能渲染页面 vue.$set()

我在vue里的方法里给一个对象添加某个属性时,我console.log出来的是已经更改的object ,但是页面始终没有变化 原因如下: **受现代 JavaScript 的限制 (而且 Object.observe 也已经被废弃),...

Js_Mei
今天
2
0
开始看《Java学习笔记》

虽然书买了很久,但一直没看。这其中也写过一些Java程序,但都是基于IDE的帮助和对C#的理解来写的,感觉不踏实。 林信良的书写得蛮好的,能够帮助打好基础,看得出作者是比较用心的。 第1章概...

max佩恩
昨天
12
0
Redux 三大原则

1.单一数据源 在传统的MVC架构中,我们可以根据需要创建无数个Model,而Model之间可以互相监听、触发事件甚至循环或嵌套触发事件,这些在Redux中都是不被允许的。 因为在Redux的思想里,一个...

wenxingjun
昨天
8
0
跟我学Spring Cloud(Finchley版)-12-微服务容错三板斧

至此,我们已实现服务发现、负载均衡,同时,使用Feign也实现了良好的远程调用——我们的代码是可读、可维护的。理论上,我们现在已经能构建一个不错的分布式应用了,但微服务之间是通过网络...

周立_ITMuch
昨天
5
0
XML

学习目标  能够说出XML的作用  能够编写XML文档声明  能够编写符合语法的XML  能够通过DTD约束编写XML文档  能够通过Schema约束编写XML文档  能够通过Dom4j解析XML文档 第1章 xm...

stars永恒
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部