转换为 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 中的评级计数不匹配。
我正尝试在 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 中的评级计数不匹配。