当前位置:   article > 正文

Python学习笔记(四)——基于SVD的协同过滤(推荐算法)

基于svd的协同过滤

奇异值分解(Singular value decomposition)是一种矩阵分解技术,也是一种提取信息的方法。将一个比较复杂的矩阵用更小更简单的3个子矩阵的相乘来表示,这3个小矩阵描述了大矩阵重要的特性,可以起到降维简化数据,去除数据噪声的作用。

 

一、SVD定义:

1.回顾特征值和特征分解:

①特征值

如果一个向量v是 NxN 方阵A的特征向量,那么可以用下式表示:

其中λ就被称为特征向量v对应的特征值,一个矩阵的一组特征向量是n个线性无关的特征向量。

②特征分解

令A是一个 N×N 的方阵,且有 N 个线性无关的特征向量。这样,A 可以被分解为:

其中Q是 NxN 方阵,第i列为A的特征向量, Λ 是对角矩阵,其对角线上的元素为对应的特征值,也即


注意:只有可对角化矩阵才可以作特征分解

一般而言,wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==​一般被正交化,(特征向量组wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==​未被正交化也可组成Q)也就是说QTQ=I,两边同乘以Q1,可以得到QT=Q1,故表达式也可以写成下式:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/713937
推荐阅读
相关标签
  

闽ICP备14008679号