我创建了一个dataset并尝试应用recommenderlab,但是没有得到一个TopN推荐列表。我得到了一个“i1”列表,但我期望有三个项目。
我创建了一个数据集,其中包含5个项、5个用户和1:5的评分(加上NA值)。选择UBCF时,将为第一个用户提供三项建议。TopN在获得具有getModel()功能的不同类型的推荐系统后不会显示。
我在RStudio版本0.98.953上运行推荐实验室版本0.1-5 .
> #Get recommenderlab
> library("recommenderlab")
> #Create matrix
> Dt = matrix(c(NA,2,5,NA,3,
+ 5,3,NA,2,1,
+ 2,NA,4,1,1,
+ 3,2,2,3,NA,
+ 3,3,1,5,5),
+ nrow = 5,
+ ncol = 5,
+ dimnames = list(user = paste("u", 1:5, sep = ''),
+ item = paste("i", 1:5, sep = '')))
> #Identify matrix
> Dt
item
user i1 i2 i3 i4 i5
u1 NA 5 2 3 3
u2 2 3 NA 2 3
u3 5 NA 4 2 1
u4 NA 2 1 3 5
u5 3 1 1 NA 5
> #Convert matrix to RealRatingMatrix
> M <- as(Dt, "realRatingMatrix")
> #Identify dataset
> head(as(M, "data.frame"))
user item rating
4 u1 i2 5
8 u1 i3 2
12 u1 i4 3
16 u1 i5 3
1 u2 i1 2
5 u2 i2 3
> # Create UBCF Recommender System
> r <- Recommender(M, method = "UBCF")
> # Describe Recommender
> r
Recommender of type ‘UBCF’ for ‘realRatingMatrix’
learned using 5 users.
> # Get recommendation systems
> names(getModel(r))
[1] "description" "data" "method" "nn" "sample" "normalize"
[7] "minRating"
> # Get top-N model
> getModel(r)$topN
NULL
> # Create top-3 list from UBCF recommender system for users 1001
> recom <- predict(r, M[1,], n = 3)
> #Get recommendations
> as(recom, "list")
[[1]]
[1] "i1"如果我能提供更多的信息,请告诉我。
编辑:
我在CRAN的推荐实验室文档中看到,predict()函数给出了预测的评级或topN列表。出于某种原因,predict()也没有给予。第一行中存在两个NA值,但只有一个项。
发布于 2015-04-22 08:44:43
推荐者不会推荐第一个人已经评分过的商品。如果您为第一个用户包括了3个NA,那么您将有一个前3位列表:
library("recommenderlab")
#Create matrix
Dt = matrix(c(NA,2,5,NA,3,
NA,3,NA,2,1,
NA,NA,4,1,1,
3,2,2,3,NA,
3,3,1,5,5),
nrow = 5,
ncol = 5,
dimnames = list(user = paste("u", 1:5, sep = ''),
item = paste("i", 1:5, sep = '')))
Dt
M <- as(Dt, "realRatingMatrix")
r <- Recommender(M, method = "UBCF")
recom <- predict(r, M[1,], n = 3,type=c("topNList"))
as(recom, "list")https://stackoverflow.com/questions/29789149
复制相似问题