转换为 realRatingMatrix 后数据看起来不同

Data looks different after converting to realRatingMatrix

我正尝试在 R 中开发推荐系统。 数据集如下: https://drive.google.com/file/d/1FVh-Xg3NBtzKgZHnDTi7IjaATW_fPmW9/view?usp=sharing

beer_data <- read.csv("beer_data.csv", stringsAsFactors = F)
library(recommenderlab)
r <- as(beer_data, "realRatingMatrix")

现在如果我们检查每个对象中的评论数,两者都不匹配

nrow(beer_data)  # 475984
length(getRatings(r)) # 474560

而且评级范围也不匹配:

> range(beer_data_master$review_overall)

[1] 0 5

> range(getRatings(r))

[1] 0 15

我也检查了其他数据集,没有出现问题。

我得到了答案:

数据中有一些用户对同一种啤酒进行了多次评价(twice/thrice...等)。因此,recommenderLabs 在将数据强制转换为 realRatingMatrix 时会添加此类行的评级,这就是评级值大于 5 且 getRatings 的长度小于 beer_data.

的原因

例如样本 beer_data

beer_beerid、review_profilename、review_overall

19667, 57md, 3.5 19667, 57md, 4.0

所以在 realRatingMatrix 中 user="57md" 和 item = "19667" rating = 3.5+4 = 7.5 并且在 realRatingMatrix 中减少了 1 行。

并且由于同样的原因,beer_beerid 和评级的非唯一组合被合并,这导致对象、数据框和 realRatingMatrix 中的评级计数不匹配。