首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >neighbors[,x]中出错:使用Predict函数超过10行时维数不正确,R中的recommenderLab

neighbors[,x]中出错:使用Predict函数超过10行时维数不正确,R中的recommenderLab
EN

Stack Overflow用户
提问于 2020-08-19 01:50:35
回答 2查看 832关注 0票数 0

我有一个数据集,Recoset,用户给出的某些产品类别的评级。我正在尝试学习使用用户给出的评分来预测其他用户可能喜欢的产品类别,方法是将recommenderLab包的基于用户的协作过滤放在R中。

以下是代码

代码语言:javascript
复制
m <- read.csv("recoset2.csv")
rrm <-as(m,"realRatingMatrix")
rrm2 <- rrm[rowCounts(rrm)>5] #only users who have bought from more than 5 verticals (any random 5)

learn <- Recommender(rrm2,method = "UBCF")
learned <- predict(learn,rrm[2001:2010,],n=3)
learned_list <- as(learned,"list")

现在,只要我预测的是10个或更少的用户,代码就能完美地工作(有时)。但是当我以这种方式将用户数量增加到11个或更多的时候

代码语言:javascript
复制
learned <- predict(learn,rrm[2001:2020],n=3)

我收到了这个错误

代码语言:javascript
复制
Error in neighbors[, x] : incorrect number of dimensions

这个错误有时也支持低至2个用户,但我从来没有收到过1个用户的这个错误。

我花了几天的时间,浏览了整个recommenderLab documentation,浏览了许多源代码和教程,但还是调试了这个错误。如果能帮助我们解决这个问题,我们将不胜感激。

代码语言:javascript
复制
> user                          item                 rating
> ORG1SNQ0TV16NQP6ZB5SD9XGX1FP7 MobileCable            2
> ORG441VE999BMCTYGZ0H7HDWHGX62 OTGPendrive            2
> ORG7L1NRFQZTPDJRFXC0CQ1LXLY6E MobileScreenGuard      3
> ORGBYFYMG92YFDC043NG7PZEHEPTS MobileScreenGuard      2
> ORGLZH07SFPSFQ3RZJMCV85XKKDKE Smartphone             5
> ORGMBN2841ZDJDZD4HHEN28HB5YYP Headphone              1

这是指向dataset的链接

EN

回答 2

Stack Overflow用户

发布于 2020-09-04 10:14:44

我知道这可能不是一个完整的帮助:但我发现使用基于项目的协作过滤绕过了这个问题。我在这里找到了一个返回相同错误的示例:https://rpubs.com/dhairavc/639597

我认为这与UBCF的邻居数量有关。

如果将行更改为:

代码语言:javascript
复制
learn <- Recommender(rrm2,method = "IBCF")

我想你可能会返回一个结果。基于用户的策略对稀疏矩阵并不友好。

我希望这对你有帮助,如果我离修复更近了,我会更新你的!

票数 0
EN

Stack Overflow用户

发布于 2020-12-25 19:42:27

使用不同的方法更改推荐行

代码语言:javascript
复制
learn <- Recommender(rrm2,method = "IBCF") # Change with "UBCF","SVD","POPULAR"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63474065

复制
相关文章

相似问题

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