问题标签 [recommender-systems]

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 投票
0 回答
180 浏览

python - Python:Surprise、以前的 scikit-surprise 和 Pandas 的缓慢导入

我使用 Surprise 和 Pandas Dataframe 制作了一个推荐系统原型。我还制作了一个命令行工具,它接受一些参数(如用户 ID、推荐类型等),主要问题是导入 Pandas 和 Surprise 需要太多时间,我需要它来运行脚本不到一秒钟。代码已经优化,我还添加了一些缓存功能。有没有办法优化导入时间或加快一点?

0 投票
2 回答
639 浏览

c# - asp.net mvc中的模型推荐系统

我正在为我的应用程序寻找推荐系统,该系统根据用户购买历史推荐专辑。我发现了一些系统/算法,例如协同过滤(基于用户/项目/模型/,混合)。哪一个最适合我的应用?或者你能给我一些更好的解决方案吗?

0 投票
3 回答
8661 浏览

python-3.x - ImportError:无法导入名称“评估”(来自意外导入评估)

第一行,从意外导入 Reader, Dataset, SVD 工作正常。就是这样,它无法从惊喜包中导入评估。

我已经使用 conda 安装了 scikit-surprise。我认为它已成功安装。

0 投票
0 回答
75 浏览

python - 何时接受使用检测虚假配置文件的评级偏离平均协议?

首先我创建攻击文件(基于https://grouplens.org/datasets/movielens中的 ua.base 文件),其结构如下所示:

  • 从用户的id从1到893,它的数据是原始的。
  • 从用户的 id 从893 到 943(50 个用户),我将其更改为攻击配置文件(其模式为爱/恨攻击模式),其对项目 id 19 的评分为 1(最小值),随机选择50 个项目5在评级值(最大值)中,最后一部分为空

我已经编写了计算每个配置文件的 RDMA 的函数。

我还阅读了一些文件(https://dslab.epfl.ch/people/zamfir/widm2005.pdfhttp://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.329.4891&rep= rep1&type=pdf ),它表示 RDMA 用于检测虚假配置文件。

但问题是我不知道什么时候可以接受一个 RDMA,一个 RDMA 不是。我只是不清楚它必须确定编码。

我是新来的。抱歉,如果我做了任何不方便的话。

0 投票
0 回答
95 浏览

python - 简单文本推荐系统的语法错误

为简单的文本推荐系统定义函数时出现此语法错误。我觉得这很简单,我忽略了。

出局:(86, 1033)

出去:

'def' 和函数名称都是它们在 jupyter 笔记本中的适当颜色。间距看起来不错。不知道这笔交易是什么。有什么帮助吗?谢谢你。

0 投票
1 回答
560 浏览

python - 惊喜地构建用户项目矩阵

我编写了下面的代码来构建用户项目矩阵和相似度矩阵,对电影镜头数据集使用了惊喜。使用 100K 数据集很好,但我尝试为 10M 数据集编译它,它没有完成超过 4 小时。我相信原因是迭代。你能帮我解决这个问题吗?

0 投票
1 回答
1392 浏览

python - 如何实现 Pyspark 的排名指标?

我是 PySpark 的新手。我正在尝试使用pythonpyspark.mllib.recommendation pakage为推荐目的实现ALS(交替最小二乘矩阵分解)。根据PySpark 文档,我发现我应该使用排名指标来评估系统的隐式反馈。但不幸的是,文档在 python 部分没有更新,当我尝试自己实现它时,我在 RDD 类型上遇到了一些不同的问题。请帮我找到错误。我不确定是否应该在createDataFrame使用.rdd或者我应该使用另一个函数来创建 rdd 类型......

这是错误:

py4j.protocol.Py4JJavaError: 调用 o207.meanAveragePrecision 时出错。:org.apache.spark.SparkException:作业因阶段失败而中止:阶段 213.0 中的任务 0 失败 1 次,最近一次失败:阶段 213.0 中丢失的任务 0.0(TID 273,本地主机,执行程序驱动程序):java.lang.ClassCastException : java.lang.Long 不能在 org.apache.spark.sql.catalyst.expressions.GenericRow 的 org.apache.spark.sql.Row$class.getSeq(Row.scala:283) 中转换为 scala.collection.Seq .getSeq(rows.scala:166) at org.apache.spark.mllib.api.python.PythonMLLibAPI$$anonfun$newRankingMetrics$1.apply(PythonMLLibAPI.scala:1070) at org.apache.spark.mllib.api.python .PythonMLLibAPI$$anonfun$newRankingMetrics$1.apply(PythonMLLibAPI.scala:1070) 在 scala.collection.Iterator$$anon$11.next(Iterator.scala:410) 在 scala.collection。

0 投票
1 回答
1155 浏览

python - 在推荐系统的惊喜包中,如何为给定用户打印推荐的电影?

对于许多算法,例如 SVD,现成的内置函数是:

  1. predictions = algo.fit(trainset).test(testset) -- 打印测试集的预测评分(因此对于用户已经给出评分的电影)

  2. predictions = algo.predict(uid, iid) -- 预测uid的iid的评分

但是我怎样才能top N为用户打印推荐的电影(即使这个用户还没有看过/给某些电影评分)。我试过了:"algo.fit(trainset).test(data)"但它给了我错误?

我也尝试过使用 KNN 来惊喜地打印k nearest neighbors用户在惊喜包示例中,它有 u.item 文件,但是如果我想使用我自己的数据(一个具有 uid、iid 和评级的表),如何我可以计算"raw id"用户和项目的吗?

0 投票
0 回答
375 浏览

python - 评估基于内容的推荐系统(没有“用户”)

我正在使用 FIFA 2020 数据集为足球运动员构建基于内容的 RecSys。在这种情况下,球员是“项目”,他们的得分(头球能力、运球技巧、位置得分等)是“评分”。我已经创建了余弦相似度矩阵来对每个玩家的相似度得分进行排名。我的模型只是为了做到这一点:对于任何给定的玩家,我的模型将显示前 5 个最相似的其他玩家。

我现在正处于评估模型的阶段,并且面临一些问题。在网上做了一些阅读后,我收集到我可能无法使用 RMSE 或 MAE 等统计测量。更合适的一种是 Precision and Recall(或更具体地说,Mean Average Precision MAP)。

问题是,所有这些评估指标都需要实际用户来验证(例如,实际上选择克里斯蒂亚诺·罗纳尔多作为与莱昂内尔·梅西相似的“正确”球员)。回到原始数据集,它不像电影评分/亚马逊商品的情况,其中商品实际上是由不同用户评分的——FIFA 2020 只是每个玩家的分数和属性的集合。因此,我无法“预测”另一个用户对另一个玩家的评分并以此为基础进行推荐。

因此,我想问一下是否有其他建议来评估我的模型,就推荐的类似玩家的“正确”程度而言?再一次,我的模型只是旨在显示任何给定玩家的前 5 个最相似的玩家。

0 投票
0 回答
35 浏览

java - Mahout 自定义数据

我需要使用 mahout 制作推荐系统。我的数据有以下数据片段:

  • userID -> 用户的数字 id
  • foodID -> 包含食物的数字 id(例如番茄酱的 id 为 88)
  • 评级 -> 用户给该项目的评级从 1 到 5
  • brandID -> foodID 品牌的数字 id(例如 Heinz 可能是 id 4)

使用下面的代码:

这给出了 itemID 及其相应值的输出,但是我没有得到 brandID 的结果。我不确定如何更改它,以便品牌ID 也可以包含在数据结构中。

谢谢你的帮助 :)