推荐引擎的SVD

时间:2016-12-01 01:52:53

标签: python scikit-learn linear-algebra recommendation-engine svd

我试图构建一个玩具推荐引擎,将我的思维包围在奇异值分解(SVD)中。我已经阅读了足够的内容来理解矩阵A(用户 x 电影矩阵)的实际分解背后的动机和直觉。

我需要了解更多关于此后发生的事情。

from numpy.linalg import svd
import numpy as np

A = np.matrix([ 
  [0, 0, 0, 4, 5],
  [0, 4, 3, 0, 0],
  ...
])
U, S, V = svd(A)

k = 5 #dimension reduction
A_k = U[:, :k] * np.diag(S[:k]) * V[:k, :]

三个问题:

  1. 矩阵A_k的值是否代表预测/近似评级?

  2. 在建议中,余弦相似性起什么作用/什么步骤?

  3. 最后我使用平均绝对误差(MAE)来计算我的错误。但我比较的是什么?像MAE(A, A_k)或其他东西?

0 个答案:

没有答案