【发布时间】:2017-05-24 10:30:39
【问题描述】:
对于基于项目的 CF,我从 python 库中成对得到的相似性。然后我使用这个预测 Implementing your own recommender systems in Python.
pred = ratings.dot(similarity) / np.array([np.abs(similarity).sum(axis=1)])
但我得到了糟糕的评级预测。评分预测在 0.1 - 0.9 左右。这个pred计算有效吗?
【问题讨论】:
-
您希望得到什么?
0.1 - 0.9看起来像一个标准化范围,应该没问题,但您的所有值都将在0.01 and 0.99 (or 1)之间,具体取决于它们的匹配。你期望得到更大的数字吗? (虽然在标准化和非标准化范围之间,我不会看到推荐性能有任何差异)。 -
我想得到 0-5 范围内的预测值。有没有可能的方法来转换它?
-
这是我从那个预测中得到的:[0.11780604 0.12146975 0.118728 ..., 0.11945179 0.11526597 0.11711326]
-
您始终可以将 0.1-0.9 范围设置为 0-5 范围:
(prediction - 0.1) * 6.25 -
@zwer 感谢您的帮助,但是在我使用该等式后,我没有得到 0-5 范围内的值。我发现我的数据范围是 0 - 0.2699459495。我需要将其更改为 0 - 5 以计算评级预测与真值表之间的相关性。
标签: python numpy recommendation-engine collaborative-filtering