概述
Greeting!
文章接上回,了解了特征值与特征向量的意义后,我们可以踏入线性代数中广泛应用的一种矩阵算法:奇异值分解(Singular Value Decomposition,SVD)及其应用: 主成分分析(Principle Component Analysis, PCA)。
奇异值分解(SVD)的基本思路
首先我们回忆一下特征值与特征向量的定义:
令是一个的方阵。如果存在一个向量和一个标量,使得,则称为矩阵A的一个特征值,X为矩阵A对应于特征值的一个 特征向量。
那么问题来了,如果
令是一个的长方形矩阵。如果存在一个向量和向量,以及一个标量,使得且,则称为矩阵A的一个奇异值,和为矩阵对应于特征值的左奇异向量和 右奇异向量。
不必纠结太久,第二点无非就是特征向量的一般化而已。
此外,我们还有特征值分解的定义:
其中为的特征向量矩阵(n个大小为的特征向量组成)。是包含对应特征值的对角矩阵。根据不同的特征值的大小,可以知道每个特征向量对应权重,即其重要性。
那么同样地,如果这时
这就是 奇异值分解公式,与 特征值分解公式(上)对应,不难得出是一个的矩阵,是一个的矩阵,而是一个包含对应奇异值的对角矩阵(除了主对角线上的元素以外全为0,主对角线上的每个元素都称为奇异值)。
总地来说,奇异值分解(SVD)也是对特征值分解,但是和特征值分解不同,SVD分解并不要求被分解的矩阵为方阵。证明过程因字数原因略,有兴趣的同学请参考:We Recommend a Singular Value Decomposition
主成分分析(PCA)的引入
在我们处理数据时,经常会遇到实例特征过多的问题,简称维度爆炸,在这个情况下,我们希望有一些普适的降维方法,降低数据运算时间。与此同时,我们还希望能够保留具有绝大部分信息的特征(又称主成分),将与实例关系联系不大的特征删去,而PCA能够同时满足这两点,下面是PCA的简单介绍:
PCA利用 投影的思想(降维方法的一种),将多个变量转化为少数几个主成分,其中每个主成分都是原始变量的线性组合,也就是说,各主成分之间互不相关(正交)。从而这些主成分能够反映实例的绝大部分信息。
从几何的角度出发,PCA把数据变换到一个新的坐标系统中,使得任何数据投影的第一大方差在第一个坐标(称为第一主成分)上,第二大方差在第二个坐标(第二主成分)上,依次类推。主成分分析经常用减少数据集的维数,同时保持数据集的对方差贡献最大的特征。
为了可视化,这里假定一个实例只有两个特征x1和x2,之前谈过PCA的本质是通过投影降维,显然选择保留最大差异性的轴来投影比较合理,因此这里选择的第一条轴为c1。上面提到,各主成分之间互不相关,也就是说我们选择的第二条次重要的轴应该与c1正交,那么就是c2啦,从数学的角度来看,c2对剩余差异性的贡献度最高。由此,我们成功地将原特征x1,x2转换成了新的特征轴c1,c2上,我们定义第i条轴的单位向量就叫做第i个主成分(PC)。
【注意】这里假设了实例只有两个特征,如果有n个特征,那就要选取n个轴,轴的数量需要与数据集维度相同。
主成分分析的降维过程
我们先看一下整体的求解流程:
现在问题在于如何找到新的特征轴的单位向量,也就是我们说的主成分了。Chap 1谈到的SVD技术就派上用场了:
奇异值分解公式中
我们可以这样去理解,A的大小是
此外
--------------------------------------喝口水休息一下-------------------------------------
到这里,获得了
如欲降维,只需保留前d列主成分,而将后(n-d)列删去即可,还可以保证大部分信息不被删去,这是奇异值转换之前不能达到的。用公式表示则有:
这个d的选取根据具体情况而言,我们可以根据将各列方差解释率依次相加,直到得到足够大比例的方差(如95%)作为合适的维度。或者我们想可视化,就直接设置d为2或3即可。
至此,我们基础的PCA过程就结束了。至于一些小尾巴例如PCA的逆压缩、增量PCA、随机PCA,核PCA(KPCA)等扩展内容,可自行阅读专业书籍文献。后续我可能会在介绍核技巧和介绍图像去噪原理时涉及到PCA的内容。总的来说,PCA的应用非常广泛,有很高的科研价值。
最后
以上就是可耐仙人掌为你收集整理的zedgraph 两点之间值_【科普】如何正确理解主成分分析(PCA)和奇异值分解(SVD)...的全部内容,希望文章能够帮你解决zedgraph 两点之间值_【科普】如何正确理解主成分分析(PCA)和奇异值分解(SVD)...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复