pca和lda和pca的区别svd 的区别

142被浏览12183分享邀请回答192 条评论分享收藏感谢收起9添加评论分享收藏感谢收起写回答PCA和SVD区别和联系 - CSDN博客
PCA和SVD区别和联系
参考:http://blog.csdn.net/wangjian1204/article/details/
/lzllovesyl/p/5243370.html
图1.寻找主成分方向
对于正交属性空间的样本点,如何用一个超平面(直线的高维推广)对所有样本进行恰当表达?
最近重构性:一样本点到这个超平面的距离都足够近最大可分性:样本点在这个超平面上的投影尽可能分开
如果对矩阵M做奇异值矩阵分解(SVD分解):&
区别与联系:
SVD另一个方向上的主成分
&&&&SVD可以获取另一个方向上的主成分,而PCA只能获得单个方向上的主成分:&
1nXX?=1nUSV?VS?U?=US2nU?
SVD计算伪逆
&&&&求解矩阵的最小二乘问题需要求伪逆,使用SVD可以很容易得到矩阵X的伪逆:&
X+=VS-1U?
&&&&隐语义索引(Latent semantic indexing,简称LSI)通常建立在SVD的基础上,通过低秩逼近达到降维的目的。&
Xk=minArank(A)=k∥X-A∥
注意到PCA也能达到降秩的目的,但是PCA需要进行零均值化,且丢失了矩阵的稀疏性。
数值稳定性
&&&&通过SVD可以得到PCA相同的结果,但是SVD通常比直接使用PCA更稳定。因为PCA需要计算X?X的值,对于某些矩阵,求协方差时很可能会丢失一些精度。例如Lauchli矩阵:&
X=??????1e0010e0100e??????
在Lauchli矩阵里,e是很小的数,e2无法用计算机精确表示,从而计算X?X会丢失e这部分信息。
本文已收录于以下专栏:
相关文章推荐
PCA(principal component analysis)和SVD(Singular value decomposition)是两种常用的降维方法,在机器学习等领域有广泛的应用。本...
一般来说,想要获得低维的子空间,最简单的是对原始的高维空间进行线性变换(当然了,非线性也是可以的,如加入核函数,比较著名的就是KPCA)。SVD和PCA呢,都实现了降维与重构,但是呢,思路不太一样,老...
主成分分析
1.问题描述
在许多领域的研究与应用中,往往需要对反映事物的多个变量进行大量的观测,收集大量数据以便进行分析寻找规律。多变量大样本无疑会为研究和应用提供了丰富的信息,但也在一定程...
从PCA和SVD的关系拾遗最近突然看到一个问题,PCA和SVD有什么关系?隐约记得自己照猫画虎实现的时候PCA的时候明明用到了SVD啊,但SVD(奇异值分解)和PCA的(特征值分解)貌似差得相当远,由...
基本上看下面这个图就知道了,如果想要验证,可以接着看下面的数据计算实例。
源数据X: 9*20,
9个样本, 20维
数据中心化:
PCA方法求解
主成分分析在上一节里面也讲了一些,这里主要谈谈如何用SVD去解PCA的问题。PCA的问题其实是一个基的变换,使得变换后的数据有着最大的方差。方差的大小描述的是一个变量的信息量,我们在讲一个东西的稳定性...
这个系列是为了应对找工作面试时面试官问的算法问题,所以只是也谢算法的简要介绍,后期会陆续补充关于此
算法的常见面问题
一、PCA(主成分分析)
PCA是一种降维技术,其做法...
系统地讲解了线性判别分析,主成分分析,奇异值分解的数学原理
本文由LeftNotEasy发布于,
上一次写了关于PCA与LDA的文章,PCA的实现一般有两种,一种是用特征值...
一 特征值分解:
对于方阵A进行特征值分解有:
二、奇异值分解
对于非方阵A进行奇异值分解时,需要先求方阵之后再进行分解:
详细内容参见:
他的最新文章
讲师:钟钦成
讲师:宋宝华
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)完全等价,可以得到相同的特征空间
数据均值归零话后,SVD与PCA等价,可以得到相同的特征空间
无法得到不等价形式
如果不考虑数据的均值,SVD 完全等价于 PCA。
PCA and SVD are equivalent in
certain sense, so no need to worry their differences. Assume X is
the standardized data matrix, and the columns are variables, rows
are samples. SVD of X is X = UDV^T, where the matrix UD is just the principal component
matrix that is used commonly, and if you just use the first k
columns of UD, then it is
the first k principal components. Actually, the implementation of
most PCA functions in software is using SVD. PCA is an eigen
decomposition of covariance matrix (note that this is the singular
value decomposition for the covariance matrix, but this SVD is not
the SVD we usually mean. When we say SVD, we normally refer the the
SVD of X). PCA has its certain interpretations such as the largest
variance directions. So one can argue that PCA focus more on
covariance matrix while SVD focus more on the data itself. But there
is no fundamental differences between PCA and SVD. From a matrix
viewpoint, SVD are best low rank matrix approximation in Frobenius
norm, as well as as the low dimensional hyperplane approximation to
the data cloud, which give much wider applications than PCA. As
mentioned by nan.xiao, SVD is also widely used for sparse matrix or
matrix completion with missing values, which is based on its
interpretation which is NOT reflected by PCA.
这道题你会答吗?花几分钟告诉大家答案吧!
设散列表为HT[...
阅读下列算法,并...
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
浙ICP备号-2
扫一扫,把题目装进口袋43被浏览2519分享邀请回答86 条评论分享收藏感谢收起1添加评论分享收藏感谢收起查看更多回答PCA(主成成分分析)和LDA(线性判别分析)详解-共性和区别 - yj_isee的博客 - CSDN博客
PCA(主成成分分析)和LDA(线性判别分析)详解-共性和区别
Machine Learning
注:这里说的LDA实际上讲的是Fisher linear discriminant analysis
在machine learning领域,PCA和LDA都可以看成是数据降维的一种方式。但是PCA是unsupervised,也就是说不需要知道sample对应的label,而LDA是supervised,需要知道每一个数据点对应的label。下面分别解释PCA和LDA的基本原理
PCA被广泛用于数据降维处理,在PRML书上写道,PCA有两种定义的方式,其中一种是将PCA定义为一种正交投影,使得原始数据在投影子空间的各个维度的方差最大化。下面我们就以这个定义来推导PCA。
考虑一组观测数据{xn}, n=1,...,N,其中xn是 D 维向量,我们的目标就是把数据投影到一个更低的M维空间上,并且保证原始数据在这个子空间的各个方向上的方差最大化。
首先假设M=1,也就是把所有数据投影到D维空间上的一条直线上。我们可以利用一个D维单位向量u1来表示这条直线。原始数据集xn的均值向量 x? 可以表示成
x?=1N∑n=1Nxn
那么投影之后的均值向量可以表示成 uT1x? ,投影之后的方差可以表示成
1N∑n=1N{uT1xn-uT1x?}2=uT1Su1
其中 S表示原始数据的协方差矩阵
S=1N∑n=1N(xn-x?)(xn-x?)T
按照PCA的定义,下面我们需要最大化这个方差。这是一个典型的有约束优化问题,利用拉格朗日乘子法,假设乘子为 λ1,那么优化问题可以成为
maxu1&uT1Su1+(1-uT1u1)
直接对 u1 求导,令导数等于0,得到
Su1=λ1u1&&&…(1)
也就是说,u1是S中 λ1 特征值对应的特征向量。对于(1)式,等式两边同时乘上 uT1 ,可以得到原始数据在子空间的投影方向上的方差为
uT1Su1=λ1
要是方差最大,我们知道 λ1 就要是S的最大的特征值,同理,u1就要是S的最大特征值对应的特征向量。
当我们把一维投影空间拓展到M维投影空间,原理都是一样的,比如如果是2维投影空间,那么在第二维投影方向上的方差就是第二大,同时要保证第二维投影向量u2和u1正交。
总的来说,如果要将原始D维数据投影到M维子空间当中,PCA的做法是计算原始数据的协方差矩阵S,然后求其前M大特征值对应的特征向量。当然,这里的M目前都是人工设定的。其实我们也可以自动设定,因为协方差矩阵的特征值实际上表示了各个维度包含的信息量(能量),所以我们可以选择能量百分比为95%(这个值随意选择)所确定的特征值对应的特征向量组成投影子空间。
LDA(这里指的是fisher’s linear discriminant)把线性分类看成是数据降维的一种应用。考虑一个二分类问题,假设输入D维向量x,我们通过线性变换将它投影到一维空间上:
如果我们对y设定一个阈值,令 y?-w0 的时候,判定为class1,否则判定为class2.那么这其实就是标准的线性分类器。为了能让我们的判定尽可能准确,我们需要让投影之间的两个类之间的差距尽可能大。现在仍旧考虑二分类问题,假设有N1个C1类别的点,有N2个C2类别的点,则两个类别的数据的均值分别为
m1=1N1∑n∈C1xn
m2=1N2∑n∈C2xn
最简单的分类方法,就是让投影之后的两个类别的均值相差越大越好。也就是说,我们需要选择一个投影方向(单位投影矢量w),使得下式最大
m2^-m1^=wT(m2-m1)
这么一个约束优化问题和上面的PCA类似,解得结果可以得到
w∝(m2-m1)
也就是说,w是和两类数据中心点构成的矢量平行。如下面左图所示:
红色和蓝色分别表示两类数据,可以看到,尽管在投影方向w上,两类数据确实有分开,但是还存在很大程度上的交叠。Fisher提出的观点就是在让投影之后的数据尽量分开的同时,也要让两个数据的方差最小,最后变成右图所示的结果。
投影之后数据的类内方差表达式为
s2k=∑n∈Ck(yn-mk^)2
其中yn表示xn投影之后的值。我们可以定义总体的类内方差为 s21+s22。Fisher判别准则定义为类间方差和类内方差的比值,也就是
J(w)=(m2^-m1^)2s21+s22
把w的表达式代入得到
J(w)=wTSBwwTSww&&&---(1)
其中SB表示类间协方差矩阵,Sw表示类内协方差矩阵,也就是
SB=(m2-m1)(m2-m1)T&&&---(2)
Sw=∑n∈C1(xn-m1)(xn-m1)T+∑n∈C2(xn-m2)(xn-m2)T
对(1)式求导,令导数等于0(为了方便,可以对(1)式两边先取对数,然后求导),可以得到
(wTSBw)Sww=(wTSww)SBw&&&---(3)
从(2)式我们可以看到 SBw是始终和 m2-m1平行的,同时我们并不在意 w的大小,只在意它的方向,因此,我们可以把 wTSBw 和 wTSww 直接去掉,然后再在(3)式两边同时乘上 S-1w,就可以得到
w∝S-1w(m2-m1)&&&---(4)
(4)式表示的就是Fisher线性判别器。找到和合理的投影方向之后,我们可以通过极大似然的方法来估计最优的分类阈值。
所以PCA和LDA虽然都用到数据降维的思想,但是监督方式不一样,目的也不一样。PCA是为了去除原始数据集中冗余的维度,让投影子空间的各个维度的方差尽可能大,也就是熵尽可能大。LDA是通过数据降维找到那些具有discriminative的维度,使得原始数据在这些维度上的投影,不同类别尽可能区分开来。下面这张图一定程度上表示了PCA和LDA之间投影选择的差别。
我的热门文章}

我要回帖

更多关于 pca和svd的区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信