问题是:
一组 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,但我不确定解决方案。
任何帮助将不胜感激
最佳答案
如果您不关心绝对分数,而主要对一致的相对排名感兴趣,则可以将您的问题视为排名聚合问题的一个实例:给定一个(部分或全部)排名列表,得出一个共识排名,最大限度地减少与输入排名的总体分歧。有几种可能的方法可以将分歧正式化,并假设应该成立的合理条件。这种条件的一个例子是孔多塞标准:如果一个项目在简单的成对多数投票中击败了所有其他项目,那么它应该排名第一。
This excellent paper包含对共识排名方法的良好动机和文献综述。 Kemeny 最优聚合最小化了 Kendall-Tau 距离,即列表之间成对不一致的总数。虽然这种最佳聚合是 NP 困难的,但作者提出了合理的启发式方法。
关于machine-learning - 具有缺失值和偏差的排名算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26924660/