机器学习笔记之二十二——PCA与SVD

   PCA(主成分分析)是机器学习中常用于数据降维的一种方式,SVD(奇异值分解)也具有降维的效果,在推荐领域、nlp领域较为常见。

PCA

   PCA主要通过数据矩阵的协方差来作为降维的准则,具体流程如下:

     (1)、对m*n矩阵计算协方差,得到n*n的协方差方阵。

      (2)、使用特征值分解对协方差方阵进行分解。

      (3)、确定n降维到多少,定义为k。

      (4)、对特征值分解的矩阵进行缩减,然后再近似组合,得到m*k的降维后矩阵。

   这里面,值得一提的也只有特征值分解了。

 

特征值分解

    先来看看公式:   ,A为原方阵; ∑是一个对角线矩阵(对角线上的元素即为A方阵的特征值们);Q矩阵则是可以理解成特征值对应的特征向量们叠在一起的矩阵。

   其实知道一点就可以理解特征值分解了:∑ 的对角线,从上到下的特征值对应的特征向量的重要性,由大到小排列,且绝大部分信息都包含在前几个特征值与特征向量之中。

  也就是说,我们在 ∑ 矩阵中只取前k特征值个就足够了,特征向量矩阵Q也随着特征值的取值进行裁剪。

 这样得到的新的Q矩阵和∑矩阵再如分解时一样乘起来,得到一个原A矩阵的近似值,这就是降维之后的矩阵。

SVD(奇异值分解)

  SVD在数学上时特征值分解的一般化,因为特征值分解只对方阵有效,而SVD解决了这个问题。

 式子中的V不再是U的逆矩阵。

不去考虑那么多的原理,到这里为止大概能够理解到这个东西为什么比特征值分解有名的多了,实际问题中遇到的矩阵,百分之九十九都不是方阵。

顺便一提,NLP领域的LSI、LSA算法实质上就是对 词汇-文章 矩阵做SVD。而在推荐领域,SVD及其变种一般应用与 用户-商品的点击(或点赞等)矩阵。

参考链接:

https://www.imooc.com/article/details/id/31164

https://www.cnblogs.com/pinard/p/6251584.html

发布了88 篇原创文章 · 获赞 28 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_35946969/article/details/88074186