我创建了一个数据集并尝试应用recommenderlab
,但未获得TopN
推荐列表。我得到了“i1”
的列表,但预计有三个项目。
我创建了一个包含五个项目,五个用户和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
值,但只获得一个项目。