如何理解pca和svd的关系?
主成分分析和奇异值分解进行降维有何共同点?
矩阵的奇异值分解
当矩阵不是方阵,无法为其定义特征值与特征向量,可以用一个相似的概念来代替:奇异值。
通常用一种叫奇异值分解的算法来求取任意矩阵的奇异值:
抽象的概念要用具体的方式理解,来看几张图:
上图中的红色区域是一个以原点为中心的单位圆。圆当中的任意一点可以用向量 x 标示,且 x 满足:
给定一个 2×2 的方阵:
利用 MATLAB 对 A 做奇异值分解:
即:
所以:
先看 V' 对 x 做了什么:
V' 使 x 旋转了一个角度。
再看 SV' 对 x 做了什么:
S 在 V'x 的基础上,在两个主方向进行了伸缩变换。
最后看 USV' 对 x 做了什么:
U 在 SV'x 的基础上,进行了旋转变换。
至此,奇异值分解的几何意义可谓一目了然:
A 是一个线性变换,把 A 分解成 USV',S 给出了变换后椭圆长短轴的长度, U 和 V' 一起确定了变换后的方向,所以 U、S、V' 包含了这个线性变换的全部信息。S 矩阵的对角线元素称为 A 的奇异值,与特征值一样,大的奇异值对应长轴,小的奇异值对应短轴,大的奇异值包含更多信息。
当矩阵是对称方阵时,其特征值与奇异值相等。
网上有一个很经典的案例来说明 SVD 的应用:
有一张 25×15 的图片:
把它用矩阵表示:
这个矩阵的秩等于 3。即矩阵只有 3 种线性无关的列,其他的列都是冗余的:
对 M 做奇异值分解,得到 3 个不为零的奇异值:
它们分别对应着 3 个线性无关的列。
另一种更一般的情况,处理一张有噪声的图片
它的奇异值为:
可以想象在15维空间中有一个超椭球体,它有15个轴,其中有3个轴是主要的轴(对应着3个最大的奇异值),有这3个轴就可以大致勾勒出超椭球体的形状,因为它们包含了大部分信息。
如果 S 中的对角线元素从大到小排列,我们就只保留 S 左上角的 3×3 的子矩阵,并相应保留 U 和 V 的前 3 列,简化后的 U、S、V 依然保留了 M 的大部分信息:
主成分分析
案例1
假如有 m 条1维数据,由于混入了噪音,变成了2维。
在坐标系中把他们绘制出来:
主成分分析(PCA)可以用来排除这些噪音,把原来的维度提取出来。
首先将数据归一化,并将其所包含的信息用 协方差矩阵(协方差矩阵表示不同维度之间的相关关系,这是一个对称矩阵)来表示:
Σ 有2个奇异值,例如:
显然前者包含了大部分信息,对应的矩阵 U 的第一列就是主成分的方向:
于是就通过降维对数据实现了去噪。
在更一般的情况下,假设有 m 条 n 维的数据,对协方差矩阵进行奇异值分解得到 n 个从大到小排列的奇异值:
如果希望信息利用率在99%以上,可利用如下不等式来确定主成分的维度 p:
参见以下链接文章.
https://my.oschina.net/findbill/blog/535044
如何理解pca和svd的关系?的更多相关文章
- 浅谈 PCA与SVD
前言 在用数据对模型进行训练时,通常会遇到维度过高,也就是数据的特征太多的问题,有时特征之间还存在一定的相关性,这时如果还使用原数据训练模型,模型的精度会大大下降,因此要降低数据的维度,同时新数据的特 ...
- 降维方法PCA与SVD的联系与区别
在遇到维度灾难的时候,作为数据处理者们最先想到的降维方法一定是SVD(奇异值分解)和PCA(主成分分析). 两者的原理在各种算法和机器学习的书籍中都有介绍,两者之间也有着某种千丝万缕的联系.本文在简单 ...
- PCA和SVD(转)
最近突然看到一个问题,PCA和SVD有什么关系?隐约记得自己照猫画虎实现的时候PCA的时候明明用到了SVD啊,但SVD(奇异值分解)和PCA的(特征值分解)貌似差得相当远,由此钻下去搜集了一些资料,把 ...
- 机器学习实战基础(二十三):sklearn中的降维算法PCA和SVD(四) PCA与SVD 之 PCA中的SVD
PCA中的SVD 1 PCA中的SVD哪里来? 细心的小伙伴可能注意到了,svd_solver是奇异值分解器的意思,为什么PCA算法下面会有有关奇异值分解的参数?不是两种算法么?我们之前曾经提到过,P ...
- What is an intuitive explanation of the relation between PCA and SVD?
What is an intuitive explanation of the relation between PCA and SVD? 36 FOLLOWERS Last asked: 30 Se ...
- 数据预处理:PCA,SVD,whitening,normalization
数据预处理是为了让算法有更好的表现,whitening.PCA.SVD都是预处理的方式: whitening的目标是让特征向量中的特征之间不相关,PCA的目标是降低特征向量的维度,SVD的目标是提高稀 ...
- 机器学习实战基础(二十一):sklearn中的降维算法PCA和SVD(二) PCA与SVD 之 降维究竟是怎样实现
简述 在降维过程中,我们会减少特征的数量,这意味着删除数据,数据量变少则表示模型可以获取的信息会变少,模型的表现可能会因此受影响.同时,在高维数据中,必然有一些特征是不带有有效的信息的(比如噪音),或 ...
- PCA和SVD最佳理解
奇异值分解(SVD)原理与在降维中的应用 https://www.cnblogs.com/pinard/p/6251584.html 最通俗易懂的PCA主成分分析推导 https://blog.csd ...
- Machine Learning in Action – PCA和SVD
降维技术, 首先举的例子觉得很好,因为不知不觉中天天都在做着降维的工作 对于显示器显示一个图片是通过像素点0,1,比如对于分辨率1024×768的显示器,就需要1024×768个像素点的0,1来表示, ...
随机推荐
- centos 7安装libreoffice
centos 7安装libreoffice Centos下的LibreOffice安装: 关键字: LibreOffice , sdk ,汉化 ,解压 安装Centos7之后,系统安装了libreo ...
- VOC Segmentation GT图像颜色表生成分析
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/52185581 PASCAL VOC图像 ...
- 分析nginx日志常用的命令总结
1. 利用grep ,wc命令统计某个请求或字符串出现的次数 比如统计GET /app/kevinContent接口在某天的调用次数,则可以使用如下命令: cat /usr/local/nginx/l ...
- HashTable的构造函数有哪些
HashTable:在并发的环境下,使用synchronized将整张表锁住: HashTable构造函数有: public Hashtable(int initialCapacity, float ...
- bzoj2144 跳跳棋 二分
[bzoj2144]跳跳棋 Description 跳跳棋是在一条数轴上进行的.棋子只能摆在整点上.每个点不能摆超过一个棋子.我们用跳跳棋来做一个简单的游戏:棋盘上有3颗棋子,分别在a,b,c这三个位 ...
- Wiley出版 SQL Server 2005宝典
原文发布时间为:2008-07-30 -- 来源于本人的百度文章 [由搬家工具导入] Wiley出版 SQL Server 2005宝典 迅雷专用高速下载 thunder://QUFmdHA6L ...
- R语言入门视频笔记--1
一.数据框简要 可输入来访问mtcars这个系统自带的数据框中的mpg列 mtcars$mpg 或者输入 mtcars[c("mpg","cyl")] 来访问两 ...
- Myeclipse 2014 for mac10.9 激活
网上查了N多激活,都无法正确激活.后来慢慢爬文,终于激活了...真艰难啊. 所以怒马一份! 安装myeclipse. 安装完成别急着打开. 在终端里面打开的破解文件jar. java -jar ...
- float类型的使用
将身高字段设置为float类型,保留一位小数: ALTER TABLE `user` CHANGE `height` `height` FLOAT(4,1) UNSIGNED NOT NULL DEF ...
- curl模拟安卓手机进行网络请求
$url = "http://somedomain/ver/ffffffff-e31e-85d5-ffff-ffffa6220605/2/en/b0:79:94:e7:99:4a/3.5&q ...