问题标签 [recommenderlab]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
308 浏览

r - R中带有List的双引号

我正在尝试将引号添加到从 recommenderlab库中预测输出的列表中。看起来如下所示。我面临着将其变成连接字符串的挑战,例如

预期的:

尝试了不同的方法

用过的:

编辑以获取更多信息

当您在此处看到列表时,它将采用上述格式:

我希望它像:

全部连接为一个字符串,就像上面一样

谢谢但是

paste0(shQuote(list1),collapse=",")

上面也不是我想要的,因为这给了我“\”,请让我知道可以做什么

cat(paste0(shQuote(v_list[["bi_Marika77"]]),collapse=";"))

- 这行得通。谢谢大家

但是,我在这里有一个小挑战想要将上述结果保留在数据框中,其中第一列将是用户 ID,第二列将是连接列表。请帮忙!

0 投票
1 回答
45 浏览

r - R列表另存为引用列表

想要将推荐实验室预测列表保存为“”分隔列表的列表。我有一个相同的问题,但在这里想用一个转折来扩展它。

我已经尝试了几种方法,并在下面发现了相关但坚持将输出放入“”逗号分隔脚本的简单步骤。

以上给了我给定的用户:

我想将用户和电影放在数据框中,其中第一列将是用户,第二列将是上述连接形式的电影

0 投票
0 回答
168 浏览

r - Recommenderlab:接收多个用户的重复预测

我正在使用 R 中的 Recommenderlab 构建一个推荐系统,为新用户提供精酿啤酒建议。

但是,在运行模型时,我会收到每个用户对大部分训练数据集的相同预测,或者收到“字符(0)”作为输出。如何接收与每个用户关联且不重复的预测?

我正在使用的数据集可以在这里找到:https ://www.kaggle.com/rdoume/beerreviews/version/1

我尝试将数据框直接转换为矩阵,然后转换为 realRatingMatrix。

为了获得任何建议,我需要在将数据框转换为矩阵之前使用 data.table 库中的“dcast”函数。

我还尝试从矩阵中删除第一列以删除用户 ID。

需要注意的一点是,在对数据进行采样时,可能有几行“reviewer”为空白,但评分和啤酒 ID 在那里。

上面的代码将导致:

将数据框转换为矩阵,然后将 realRatingMatrix 转换为不首先转换为表格的结果是用户的推荐结果为:

首先使用“dcast”函数,然后将数据帧转换为矩阵并删除第一列,然后转换为 realRatingMatrix 为几乎每个用户返回相同的预测:

任何帮助是极大的赞赏。

0 投票
1 回答
138 浏览

r - 推荐实验室包中的 R“HybridRecommender”无法预测“binaryRatingMatrix”

我正在尝试对“binaryRatingMatrix”类型的数据应用“HybridRecommender”,但在尝试预测“topNList”时出现错误。

我目前正在使用推荐实验室版本 0.2-2 的 Windows 机器上运行 R-64bit(版本 3.4.4)

下面是示例数据集

将矩阵转换为 binaryRatingMatrix

计算混合推荐器

计算预测的推荐项目“topNList”(有错误)

我的预期结果将与以下相同,我尝试在单个推荐器上运行并且效果很好

新编辑:在“realRatingMatrix”上尝试了“HybridRecommender”,它正常工作

问题:我很想知道为什么预测无法在“HybridRecommender”上工作,而它在单个“Recommender”和“realRatingMatrix”上工作?任何评论和帮助表示赞赏。谢谢!

0 投票
1 回答
293 浏览

r - R如何从推荐实验室对象中获取关联规则(LHS,RHS,支持,置信度,提升)?

我目前正在使用R推荐器实验室构建产品推荐,在计算AR推荐器之后,我希望了解关联规则,但我找不到任何为什么要从推荐器对象中提取完整的关联规则。

下面是示例数据集

将矩阵转换为 binaryRatingMatrix

使用训练数据创建基于用户的 CF 推荐器

查看 AR 推荐对象,r@model$rule_base我发现“rule_base”

问题:如何从推荐对象中提取关联规则作为数据框?

  • 获取带有列的关联规则数据框(LHS、RHS、支持、置信度、提升、计数)
0 投票
0 回答
91 浏览

r - 了解 R 中推荐实验室库的给定协议

我正在尝试了解 R 中推荐实验室库的给定协议。

从原始文档https://cran.r-project.org/web/packages/recommenderlab/vignettes/recommenderlab.pdf

测试是通过扣留项目(给定参数)来执行的。布里斯等人。(1998) 介绍了四种实验性的预扣协议,称为 Given 2、Given 5、Given 10 和 All-but-1。在测试期间,Given x 协议仅向测试用户提供 x 个随机选择的项目的算法,并且该算法通过它能够预测保留项目的能力来评估

我不明白这仅适用于测试用户的事实。为什么我们不能简单地将其应用于所有用户,并且我们需要在训练和测试用户之间分开并使用给定的协议?

由于我们只为算法提供了很少的项目来理解模式并产生预测,然后根据其余项目测试/衡量这些预测的好坏,为什么我们只需要为测试用户这样做,我们可以不是为所有人做的吗?培训用户如何服务?当给定算法时,让我们说 10 个项目来理解目标用户的模式,它不是使用整个数据集(训练和测试)来计算用户邻域(例如,UBCF),以便做出稍后的预测评估使用被扣留的项目?如果不是,这意味着在此过程中它只查看培训用户(例如 80%),为什么不查看测试用户呢?在附近有另一个测试用户有什么问题,并且只需要培训用户吗?那部分我不明白。或者我的假设是错误的?

总结一下:为什么我们都需要给定的协议,以及训练和测试之间的分离?

我希望我的问题是有道理的,我真的很想找到解决方案。先感谢您 :)

0 投票
0 回答
253 浏览

r - 如何为所有用户推荐商品并测试准确性?用户项

我目前正在研究用户项目协同过滤模型。

我有一组用户和他们购物过的地方,并尝试使用 R 构建推荐模型。

该项目有两个目标:a)向所有客户推荐新商店 b)提供统计数据以显示模型的准确性。

我有 2 年的数据。

为了回答 b),我将我的数据子集分配给在前 1.5 年和接下来的 6 个月内购买的客户。我在前 1.5 年的交易数据上创建了一个模型,然后将模型预测与 ACTUAL 6 个月的数据进行了比较。

通过执行上述操作,我确定我要使用 UBCF 和 nn=500,并且我能够达到大约 80% 的准确度。

但是,我现在不确定如何预测整个用户群。我正在考虑将整个数据集应用于我刚刚创建的模型,但存在偏差/将不准确,因为并非所有商店都在我创建的这个小模型中表示。


我读过人们做过不同事情的文章和教程。我见过他们输入整个数据集,并应用 [which] 子集,以便它以 80% 创建模型并使用剩余的 20% 进行测试。

我的问题是,如果我要使用这个过程,当模型只为 20% 的用户提供预测时,我将如何获得所有用户的推荐?

最好在整个数据集上创建模型吗?

子集数据

创建周期标志

识别要在培训模型中使用的客户

培训模型的提取客户列表

1 年内购买的客户和两年内购买的客户的子集,仅限第一年购物的客户

培训模型中使用的客户的 SCV

转置到列

## ##

这些图中的第一个(在 x 轴上带有 FPR)是 ROC 曲线。性能更好的模型是具有最高面积的曲线,因此在这些测试参数中,性能更好的模型是 nn=500 的 UBCF。或者,nn=50。

根据精度/召回图,nn 应设置为 500。

使用 UBCF 的模型 nn = 500


重塑 df 使所有评级都在一列中。然后使用它来创建一个唯一的表,然后进行计数,因为这总是会使 excel 崩溃。

移除评分

所以基本上我想知道如何在我的整个数据集上创建模型?以及如何提取所有评级?

谢谢

0 投票
1 回答
146 浏览

r - 基本 R cor() 函数的结果与Recommenderlab 包中的similarity() 函数的结果不同?

谁能解释为什么这两个相关矩阵返回不同的结果?

0 投票
1 回答
63 浏览

r - 如何使用RecommenderRegistry$get_entries() 修复无效的多字节字符串错误?

我正在尝试“recommenderlab”包,并在使用RecommenderRegistry$get_entries() 函数时遇到错误。

为了获取有关推荐算法的信息,我尝试了

但是输出在中间被截断,如下所示。

当我尝试

所有参数均显示无误。

另外,我尝试重新安装它,但结果是一样的。RecommendationerRegistry$get_entries() 应该显示此包中可用的 15 种算法。有没有人遇到过类似的问题?

系统信息如下
R version 3.6.1 (2019-07-05)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Matrix products: default
locale: [1] LC_COLLATE=Korean_Korea.949 [2] LC_CTYPE=Korean_Korea.949 [3] LC_MONETARY=Korean_Korea.949 [4] LC_NUMERIC=C [5] LC_TIME=Korean_Korea.949
附加基本包:[1] 统计图形 grDevices utils 数据集
通过命名空间加载的 方法库(未附加):[1] compiler_3.6.1 tools_3.6.1 [3] yaml_2.2.0

0 投票
1 回答
81 浏览

r - Recommenderlab 错误无法找到继承的方法

我是 R 的新手,需要一些推荐实验室的建议。

我有一个由 6 个变量组成的“训练”数据集,第一行如下所示:

我正在尝试使用推荐实验室来使用 UBCF,并使用以下代码:

但是得到这个错误

(函数(类,fdef,mtable)中的错误:无法找到签名“字符”的函数“推荐者”的继承方法</p>

知道有什么问题吗?