如何理解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来表示, ...
随机推荐
- [SQL server] IF ELSE 和 CASE WHEN 的用法
/*判断一个数如果大于10,按10统计,如果小于0,按0统计*/ --方法a DECLARE @AA INT SET @AA=15 IF @AA>10 SELECT 10 ELSE IF @AA ...
- HDU-1030 Delta-wave ,暴力贪心!
Delta-wave 题意:用图中所示的数字填满这个三角形,求n到m的最短路径,也就是最少通过几条边. 思路:简单贪心就可以了,本人是先将每一层的左右端点用结构体存起来,然后分奇偶判断. 这题必须理清 ...
- 九度oj 题目1048:判断三角形类型
题目描述: 给定三角形的三条边,a,b,c.判断该三角形类型. 输入: 测试数据有多组,每组输入三角形的三条边. 输出: 对于每组输入,输出直角三角形.锐角三角形.或是钝角三角形. 样例输入: 3 4 ...
- 【Luogu】P1879玉米田(状压DP)
题目链接 数据范围这么小,难度又这么大,一般就是状态压缩DP了. 对输入进行处理,二进制表示每一行的草地状况.如111表示这一行草地肥沃,压缩成7. 所以f[i][j]表示第i行状态为j时的方案数 状 ...
- [BZOJ3378] [Usaco2004 Open]MooFest 狂欢节(树状数组)
传送门 开2个树状数组 一个存的是下标,一个存的是数量 细节...看标称吧,懒得说了,好气啊 #include <cstdio> #include <iostream> #in ...
- 刷题总结——学姐的逛街计划(vijos1891费用流)
题目: doc 最近太忙了, 每天都有课. 这不怕, doc 可以请假不去上课.偏偏学校又有规定, 任意连续 n 天中, 不得请假超过 k 天. doc 很忧伤, 因为他还要陪学姐去逛街呢. 后来, ...
- java.lang.Class解析
java.lang.Class 1.java.lang.Class的概念 当一个类或接口被装入的JVM时便会产生一个与之关联的java.lang.Class对象,java.lang.class类就是用 ...
- IBM内存三技术:Chipkill、MPX、MM
转自:解析IBM内存三技术:Chipkill.MPX.MM 内存作为服务器中的又一个重要的组成部分,对于企业的应用起着十分重要的作用.如今,企业用户对于服务器的要求逐渐提升,使得在提高内存密度.增大内 ...
- msp430项目编程57
msp430综合项目---扩展项目七57 1.电路工作原理 2.代码(显示部分) 3.代码(功能实现) 4.项目总结
- Python入门--8--现在需要先学习可视化--包:easygui
一.安装.了解easygui 下载地址:http://bbs.fishc.com/forum.php?mod=viewthread&tid=46069&extra=page%3D1%2 ...