首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有给出topN列表的重组实验室

没有给出topN列表的重组实验室
EN

Stack Overflow用户
提问于 2015-04-22 06:11:25
回答 1查看 2K关注 0票数 1

我创建了一个dataset并尝试应用recommenderlab,但是没有得到一个TopN推荐列表。我得到了一个“i1”列表,但我期望有三个项目。

我创建了一个数据集,其中包含5个项、5个用户和1:5的评分(加上NA值)。选择UBCF时,将为第一个用户提供三项建议。TopN在获得具有getModel()功能的不同类型的推荐系统后不会显示。

我在RStudio版本0.98.953上运行推荐实验室版本0.1-5 .

代码语言:javascript
复制
> #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值,但只有一个项。

EN

回答 1

Stack Overflow用户

发布于 2015-04-22 08:44:43

推荐者不会推荐第一个人已经评分过的商品。如果您为第一个用户包括了3个NA,那么您将有一个前3位列表:

代码语言:javascript
复制
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")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29789149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档