问题是:
5个独立的用户被要求对给定的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,但我对这个解决方案不太确定。
任何帮助将不胜感激
回答:
在这种情况下,可以使用两种填补方法:
- 正如每个人最初会尝试的,用最可能的值填补,即平均值。
- 基于其他属性进行预测,称为回归填补。
实际上,我认为对于这个数据集来说,第二种方法似乎更好,因为用户大多对多个产品进行了评分。
此外,如果您有其他依赖于用户的数据集,您也可以使用它来预测此数据集中缺失的值。