问题是:
一组5名独立用户,要求对给予的50种产品进行评级。所有50种产品在某些时间点都会被用户使用。一些用户对某些产品有更多的偏见。一位用户没有真正完成调查并提供随机值。用户无需对所有产品进行评级。现在给出4个样本数据集,根据评级对产品进行排名
datset :
product #user1 #user2 #user3 #user4 #user5
0 29 - 10 90 12
1 - - - - 7
2 - - 95 6 1
3 - - - - 2
4 - - - - 50
5 - 35 21 13 -
6 - - - - 5
7 4 - - 30 -
8 11 - - - 14
.
.
.
如何推出产品排名。
这是一个非常接近原始问题的改造问题。
解决方案: 我尝试使用PCA清理数据并填充缺失值并应用NMF,但我不确定解决方案。
任何帮助都将深受赞赏
答案 0 :(得分:1)
如果您不关心绝对分数并且最感兴趣的是一致的相对排名,则可以将您的问题视为排名聚合问题的实例:给出(部分或全部)排名列表,得出共识排名,最小化与输入排名的总体分歧。有几种可能的方法来形成分歧,并假设应该持有的合理条件。这种情况的一个例子是 Condorcet 标准:如果一个项目在简单的成对多数投票中击败了所有其他项目,那么它应该排在第一位。
This excellent paper包含了对共识排名方法的良好动机和文献综述。 Kemeny最佳聚合最小化Kendall-Tau距离,即列表之间成对分歧的总数。虽然这种最优聚合是NP难的,但作者提出了合理的启发式方法。
答案 1 :(得分:0)
在这种情况下,可以使用两种插补方法:
实际上,我认为第二种方法对于这个数据集来说似乎更好,在这个数据集中,用户大多排名不止一种产品。
此外,如果您有其他数据集取决于用户,您也可以使用它来预测此数据集中的缺失值。