我已经尝试了很长时间来解决这个问题。但是我想不出一个干净的数据结构来执行以下操作。
我有一个csv文件如下:
user_id --->
item_id ratings
|
|
|
V
例如:
1,2,3,4,..
a,4, ,2, ,...
b, ,2,3, ,..
c, ,1,2,3,
d
依此类推...空白值表示用户尚未对给定项目进行评分。现在,对于给定的用户(比如 1),我有这本字典:
weight_vector = {2:0.3422,3:0.222}
我想做的计算如下:
对于用户 1:缺少的值(项目 b 和 c),我想为它分配一个评级,如下所示:
rating_for_item_for_user_1 = [rating_given_by_user_2* weight_2] + [rating_given_by_user_3*weight_3]/[weight2 + weight3]
如果用户 2 或 3 未对给定项目评分,则权重 = 0。
我有一种感觉,使用 numpy 这应该是相当简单的。但是一直想不通。