论SVD和PCA的渊源
因为最近接触到基于SVD算法的相关算法,所以这几天就细细看了SVD算法的相关内容,又一连串的引出PCA算法的内容。
今天就好好的把它们俩整理一下。
1.SVD
其实之前做算法相关时,也有了解到SVD算法,但一直都是似懂非懂。这里首先给出SVD算法的定义,
除了定义,我们还可以提前知道SVD常用于降噪、数据分析等需要矩阵分解的应用里。SVD算法对于矩阵的分解提供了一种很好的可行方案。M = UΣVT。 这就表明任意的矩阵 M 是可以分解成三个矩阵。V 表示了原始域的标准正交基,u 表示经过 M 变换后的co-domain的标准正交基,Σ 表示了V 中的向量与u 中相对应向量之间的关系。
但是我们最好是从SVD的几何意义中来理解SVD算法到底具体应用是怎么样的,AMS网站上有一片博客很清晰的讲了什么是 Singular Value Decomposition,有博主也将它翻译出来作为参考学习了。简而言之,它从几何意义上讲了二维的SVD:对于任意的 2 x 2 矩阵,通过SVD可以将一个相互垂直的网格(orthogonal grid)变换到另外一个相互垂直的网格!
在向量的格式上,就是进行一次标准的变换,任意的矩阵可以分解为三个矩阵,三个矩阵分别为原始的标准正交基、变换后的标准正交基以及这个变换之间的关系,这个关系是一个对角矩阵,对角线上的元素表示两组标准正交基的特征关系。
2.PCA
PCA(Principal Component Analysis)是一种数据分析的方法,通常用于降维,提取主要特征量。周志华的机器学习第十章就是专门讲的降维和度量学习,这里我就简单提一嘴什么是降维(dimension reduction),因为我之后肯定会单独整理第十章的内容的。
什么是降维?维度是在我们机器学习中必须遇到见到甚至熟悉的概念。有许多机器学习设计的数据网络都存在高维空间,高维空间会给距离计算带来很大的麻烦,所以在实际应用中我们可以选择降维来缓解维数灾难。所以言归正传,姜维就是通过某种数学变换将原始高维属性空间转变为一个低维“子空间”,当然这会导致子空间中样本密度的提高。
PCA的全名叫做主成分分析,顾名思义就是找出数据里面的主要部分,用数据里面最主要的部分来代替原始数据。使用更低维度的数据来代表高维的原始数据,但是这样不可避免地会导致损失的出现,怎么样让我们总的损失最小,就是需要考虑衡量的一个问题。所以要进行PCA,我们主要需要考虑的两个方面是:(1)“方差”最大(2)“误差”最小。
第一个需要讨论的就是:最大可分性。要想找到最具特征且最能将数据分开的数据。现实的数据集中,会有很对具有一定相关性的数据,我们的任务就是在这里面选出差异最大,区分能力最强的“特性”。
第二个需要讨论的是:最近重构性。怎么说呢,关于最近重构性我是这样理解的。从一堆能“重建”新特性的旧特性中选出距离和我们的“基”坐标最近的数据。下图的图形中有一个十字坐标,这个十字坐标是一个“基”坐标,“方差”就是红点到黑色的中心圆圈的距离平方的平均值,“误差”表示蓝色小点到投影到直线上的红色小点的距离。由此我们很明显的可以得到我们的所需要方向,从这个方向来构建基变换,就能达到我们的目的,实现最大可分性。

而我们的PCA就是这样一种可用于降维的分析方法,下面给出PCA算法步骤:

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
