这篇笔记主要参考LetfNotEasy的博文

TODO 应用 PCA LSI

特征值及分解

对于方阵,其特征值和特征向量满足下面条件:

设方阵A有m个非零特征值,对应的特征向量分别为:

设特征向量矩阵为,特征值对角阵为

m=n时,也即方阵A非奇异时,也即方阵A可逆时,A有n个特征向量和特征值,又由于特征向量之间两两正交,所以特征矩阵Q可逆,得:

为了降维或抽取重要特征,我们可以选取k个最大的特征值及对应的特征向量,则有:

奇异值及分解

特征值分解只能针对方阵,实际问题中大部分都不是方针,奇异值分解就是解决非方阵的矩阵分解问题

设矩阵A为m*n的矩阵,奇异值分解是通过将A乘以其转置,转化为方阵,通过求解方阵的特征值和特征向量,再转化为矩阵A的‘特征值’‘特征向量’,即奇异值奇异向量

根据,求得方阵的特征值和特征向量,则矩阵A的奇异值和奇异向量分别为:

这里,选择最大的k个奇异值和其对应的奇异向量,就可以得到类似特征值分解的效果

在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上了,也就是说,我们也可以用前k大的奇异值来近似描述矩阵

当矩阵接近奇异时

当矩阵是 singular 或者 near-singular 的时候,使用matlab的eigs方法求最小的几个特征值,就会有问题。

一个简单的trick在于:

这样,我们可以先求的特征值,之后减一

TOP