我的事实表包含稀疏数据并有 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。
基本上,我们选择的任何维度,都有相应的用户数,这成为分母。
想不通怎么弄。请帮忙!