将奇异值分解应用于缺失值填补

SVD奇异值分解算法:

  • 用于矩阵近似问题。
  • 假设矩阵可以分解成三个矩阵的乘积。其中第一个矩阵是一个方阵,并且是正交的,中间的矩阵通常不是方阵,它对角线上的元素都是由原矩阵的特征值构成的,第三个矩阵也是一个方阵,并且也是正交矩阵。
  • 分解时,中间的矩阵不取全部的特征值,而是只取前面若干个最大的特征值,这样就可以对原矩阵进行近似了,两个矩阵之间的近似度一般用Frobenius 范数来衡量,即两个矩阵相应元素的平方差累加再开方。

SVD

应用于协同过滤(预测用户对电影的评分):

一般来讲,某个用户对电影评分时,会考虑多个因素,比如电影时长,情节设置,剧情等等,不同用户对这些因素的打分一般也是不同的,某用户对某部电影的评分可以看作这些因素的加权组合。
但电影相关的特征很难获取全面,这些特征所依赖的数据很多,可能来自很多因素和源头,对这些特征进行清洗也需要耗费大量的精力。
协同过滤有这样一个假设,即过去某些用户的喜好相似,那么将来这些用户的喜好仍然相似。基于这种思想,奇异值分解可以用于预测用户对电影的评分。
用户对电影的评分构成的矩阵中通常会存在缺失值,如果某个用户对某部电影没有评分,那么评分矩阵中该元素即为缺失值。预测该用户对某电影的评分等价于填补缺失值。

应用于缺失值填补:

每一行是一个样本,每一列是一个特征,这种情形中,每个样本就相当于协同过滤中的某个用户,每个特征就相当于协同过滤中的某个商品,如此一来,上述情形就有可能扩展到样本的特征缺失情形中
奇异值分解算法并不能直接用于填补缺失值,但是可以利用某种技巧,比如加权法,将奇异值分解法用于填补缺失值。这种加权法主要基于将原矩阵中的缺失值和非缺失值分离开来。

猜你喜欢

转载自www.cnblogs.com/5211314jackrose/p/9546778.html