这篇笔记主要参考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在于:
这样,我们可以先求的特征值,之后减一