网站怎么申请百度小程序,火车头采集发布wordpress,wordpress 入门pdf,电商网站建站报价大概主成分分析#xff08;Principal components analysis#xff0c;以下简称PCA#xff09;是最重要的降维方法之一。在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。一般我们提到降维最容易想到的算法就是PCA#xff0c;下面我们就对PCA的原理做一个总结。首先…
大概主成分分析Principal components analysis以下简称PCA是最重要的降维方法之一。在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。一般我们提到降维最容易想到的算法就是PCA下面我们就对PCA的原理做一个总结。首先考虑一个问题对于正交属性空间中的样本点如何用一个超平面直线的高维推广对所有样本进行恰当的表达可以想到若存在这样的超平面那么它大概具有这样的性质最近重构性样本点到这个超平面的距离足够近最大可分性样本点在这个超平面上的投影能尽可能的分开基于最近重构性和最大可分性能分别得到主成分分析的两种等价推到我们这里主要考虑最大可分性并且一步一步推到出最终PCA。1.PCA最大可分性的思想PCA顾名思义就是找出数据里最主要的方面用数据里最主要的方面来代替原始数据。具体的假如我们的数据集是 维的共有 个数据 。我们希望将这 个数据的维度从 维降到 维希望这 个 维的数据集尽可能的代表原始数据集。我们知道数据从 维降到 维肯定会有损失但是我们希望损失尽可能的小。那么如何让这 维的数据尽可能表示原来的数据呢我们先看看最简单的情况也就是 ,也就是将数据从二维降维到一维。数据如下图。我们希望找到某一个维度方向它可以代表这两个维度的数据。图中列了两个向量方向 和 那么哪个向量可以更好的代表原始数据集呢从直观上也可以看出 比 好这就是我们所说的最大可分性。2.基变换一般来说欲获得原始数据新的表示空间最简单的是对原始数据进行线性变换基变换 其中 是样本在新空间的表达 是基向量 是原始样本。我们可知选择不同的基可以对一组数据给出不同的表示同时当基的数量少于原始样本本身的维数则可达到降维的效果矩阵表示如下其中 是一个行向量表示第个基 是一个列向量表示第个原始数据记录。特别要注意的是这里 可以小于 而 决定了变换后数据的维数。也就是说我们可以将一个 维数据变换到更低维度的空间中去变换后的维度取决于基的数量。从原本 降维到 。因此这种矩阵相乘的表示也可以表示降维变换。最后上述分析同时给矩阵相乘找到了一种物理解释两个矩阵相乘的意义是将右边矩阵中的每一列列向量变换到左边矩阵中每一行行向量为基所表示的空间中去。更抽象的说一个矩阵可以表示一种线性变换。很多同学在学线性代数时对矩阵相乘的方法感到奇怪但是如果明白了矩阵相乘的物理意义其合理性就一目了然了。3.方差那么考虑如何选择一个方向或 者基才是最优的观察下图周志华《机器学习》插图我们将所有的点分别向两条直线做投影基于前面PCA最大可分思想我们要找的方向是降维后损失最小可以理解为投影后的数据尽可能的分开那么这种分散程度可以用数学上的方差来表示方差越大数据越分散。方差公式如下 对数据进行了中心化后可以方便后面的操作 现在我们已经知道了以下几点对原始样本进行线性变换基变换可以对原始样本给出不同的表示基的维度小于数据的维度可以起到降维的效果对基变换后新的样本求其方差选取使其方差最大的基那么在下面我们来考虑一个新的问题上面我们导出了优化目标但是这个目标似乎不能直接作为操作指南或者说算法因为它只说要什么但根本没有说怎么做。所以我们要继续在数学上研究计算方案。4.协方差从二维降到一维可以使用方差最大来选出能使基变换后数据分散最大的方向基但如果遇到高维的变换当完成第一个方向基选择后第二个投影方向应该与第一个“几乎重合在一起”这显然是没有用的因此要有其它的约束条件。我们希望两个字段尽可能表示更多的信息使其不存在相关性。数学上用协方差表示其相关性 当 时表示两个字段完全独立这也是我们的优化目标。5.协方差矩阵我们想达到的目标与字段内方差及字段间协方差有密切关系假如只有 、 两个字段那么我们将它们按行组成矩阵 ,表示如下 然后我们用 乘以 的转置并乘上系数 : 可见协方差矩阵是一个对称的矩阵而且对角线是各个维度的方差而其它元素是 和 的协方差然后会发现两者被统一到了一个矩阵的。6.协方差矩阵对角化我们的目标是使 根据上述推倒可以看出我们的优化目标 等价于协方差矩阵对角化。即除对角线外的其它元素 如 化为0并且在对角线上将元素按大小从上到下排列这样我们就达到了优化目的。这样说可能还不是很明晰我们进一步看下原矩阵与基变换后矩阵协方差矩阵的关系设原始数据矩阵 对应的协方差矩阵为 而 是一组基按行组成的矩阵设 则 为 对 做基变换后的数据。设 的协方差矩阵为 我们推导一下 与 的关系 可见我们要找的 不是别的而是能让原始协方差矩阵对角化的 。换句话说优化目标变成了寻找一个矩阵 满足是一个对角矩阵并且对角元素按从大到小依次排列那么 的前 行就是要寻找的基用 的前 行组成的矩阵乘以 就使得 从 维降到了 维并满足上述优化条件。我们希望的是投影后的方差最大化于是我们的优化目标可以写为 利用拉格朗日函数可以得到: 对 求导有 整理下即为 于是只需对协方差矩阵 进行特征分解对求得的特征值进行排序再对 取前 列组成的矩阵乘以原始数据矩阵X就得到了我们需要的降维后的数据矩阵Y。7.PCA算法流程 从上面两节我们可以看出求样本 的 维的主成分其实就是求样本集的协方差矩阵 的前 个特征值对应特征向量矩阵 然后对于每个样本 ,做如下变换 即达到降维的PCA目的。下面我们看看具体的算法流程输入 维样本集 要降维到的维数 .输出降维后的样本集 1.对所有的样本进行中心化 2.计算样本的协方差矩阵3.求出协方差矩阵的特征值及对应的特征向量4.将特征向量按对应特征值大小从上到下按行排列成矩阵取前k行组成矩阵P5.YPX即为降维到k维后的数据注意有时候我们不指定降维后的 的值而是换种方式指定一个降维到的主成分比重阈值 。这个阈值t在 之间。假如我们的 个特征值为 ,则n可以通过下式得到: 8.PCA算法总结这里对PCA算法做一个总结。作为一个非监督学习的降维方法它只需要特征值分解就可以对数据进行压缩去噪。因此在实际场景应用很广泛。为了克服PCA的一些缺点出现了很多PCA的变种比如为解决非线性降维的KPCA还有解决内存限制的增量PCA方法Incremental PCA以及解决稀疏数据降维的PCA方法Sparse PCA等。 PCA算法的主要优点有仅仅需要以方差衡量信息量不受数据集以外的因素影响。 各主成分之间正交可消除原始数据成分间的相互影响的因素。计算方法简单主要运算是特征值分解易于实现。 PCA算法的主要缺点有主成分各个特征维度的含义具有一定的模糊性不如原始样本特征的解释性强。方差小的非主成分也可能含有对样本差异的重要信息因降维丢弃可能对后续数据处理有影响。继续阅读在PCA降维过程中当进行协方差矩阵上求解特征值时如果面对维度高达 可想而知耗费的计算量程平方级增长。面对这样一个难点从而引出奇异值分解(SVD)利用SVD不仅可以解出PCA的解而且无需大的计算量。Betten奇异值分解(SVD)原理zhuanlan.zhihu.comPCA主成分分析和LDA线性判别分析有很多的相似点其本质是要将初始样本映射到维度更低的样本空间中但是PCA和LDA的映射目标不一样PCA是为了让映射后的样本具有最大的发散性而LDA是为了让映射后的样本有最好的分类性能。所以说PCA是一种无监督的降维方法而LDA是一种有监督的降维方法。BettenLDA线性判别分析zhuanlan.zhihu.com参考资料Pattern Recognition and Machine Learning《机器学习》 主成分分析Principal components analysis-最大方差解释 Betten机器学习面试干货精讲zhuanlan.zhihu.com