Dimensionality Reduction 降维
若原特征空间是D维的,现希望降至d维的。降维的概念相信大家都已经有了解了,就不介绍了,首先从为什么需要降维理解其必要性,然后讲解具体实现。
在这里先简单介绍下矩阵的秩
矩阵的秩
把矩阵看成线性映射那么秩就是象空间的的维数。通俗一点说,如果把矩阵看成一个个行向量或者列向量,秩就是这些行向量或者列向量的秩,也就是极大无关组中所含向量的个数。
从例子中我们可以看到矩阵A的秩为2,因为第三行向量可以通过第二行和第一行线性表示,因此,我们可以将矩阵A中的维数降到2维就可以表示了。这里可能说的还不够明确,后面的SVD奇异值分解中将能帮助我们深刻理解矩阵的秩的作用。
Singular-Value Decomposition 奇异值分解
这部分我之前转载过一篇文章,写得蛮好,附链接http://blog.csdn.net/sherrylml/article/details/43052325原文链接在文章开头。
图示如下,可以看到通过存储矩阵U, ∑ 和 VT 来表示矩阵A可以大大缩减存储空间
CUR Decomposition
前面说到的SVD分解虽然可以提供最小误差的压缩,但是还是存在两个问题。一个是计算比较耗时,另一个是分解后的矩阵密度很高浪费存储空间。而CUR分解则是另外一种降维方法,可以减少SVD的这些缺点。
CUR分解是将矩阵A压缩为C,U,R三个矩阵的乘积,使得 ||A−C⋅U⋅R||F 尽可能小。其中 |