我的事实表包含稀疏数据并有 3 列:(用户、电影、规范化分数)。例子:
('u1','m3',0.3) ('u1','m4',0.1) ('u1','m7',0.6) ('u2', 'm1', 0.33) ('u2','m3',0.33) ('u2', 'm7', 0.33) ('u3', 'm2', 0.6) ('u3','m6',0.4) ...
如您所见,每个用户的 sum(normalized_score)=1。
我有两个维度:
- User_info (user, Cat_Level1, Cat_Level2)
-Movie_info (movie, Genre_Level1, Genre_Level2)
我想要按平均得分排名靠前的电影,其中平均值的计算考虑了所选维度中的所有相关用户。
例如,在最低级别,average('m3')
上面将是(0.3+0.3)/3
. 请注意,分母是3,而不是 2。
基本上,我们选择的任何维度,都有相应的用户数,这成为分母。
想不通怎么弄。请帮忙!