【问题标题】:How recommenderlab of R culculate the ratings of each item in ratingMatrix?R的推荐实验室如何计算ratingMatrix中每个项目的评分?
【发布时间】:2013-07-12 07:52:20
【问题描述】:

最近,我开始在学习中使用 R 的推荐实验室包。
这是recommenderlab 文档:

http://cran.r-project.org/web/packages/recommenderlab/vignettes/recommenderlab.pdf

本文档中有一些示例,但我有一个大问题。

  • 首先,加载recommenderlab包和Jester5k数据集。

    library("recommenderlab")
    data(Jester5k)
    
  • 使用 Jester5k 的前 1000 条记录(用户)来学习。推荐算法很流行。

    r <- Recommender(Jester5k[1:1000], method="POPULAR")
    
  • 然后预测第 1001 个用户的推荐列表。列出前 5 项。

    recom <- predict(r, Jester5k[1001], n=5)<br/>
    as(recom, "matrix")
    

输出:

[1] "j89" "j72" "j47" "j93" "j76"<br/>
  • 然后我检查上面5个项目的评分。

    rating <- predict(r, Jester5k[1001], type="ratings")<br/>
    as(rating, "matrix")[,c("j89", "j72", "j47", "j93", "j76")]
    

输出:

j89       j72       j47       j93       j76<br/>
2.6476613 2.1273894 0.5867006 1.2997065 1.2956333<br/>

为什么top 5榜单是“j89”“j72”“j47”“j93”“j76”,而j47的评分只有0.5867006。

我不明白。

recommenderlab如何计算ratingMatrix中每一项的评分?

它是如何产生 TopN 列表的?

【问题讨论】:

    标签: r recommendation-engine


    【解决方案1】:

    为了更清楚地了解您的问题,我建议您阅读以下内容: "recommenderlab: A Framework for Developing and Testing Recommendation Algorithms"

    为什么前5名是“j89”“j72”“j47”“j93”“j76”

    您使用的是流行度方法,这意味着您根据评分最高的项目(计算保存次数)选择前 5 个列表,而不是预测的最高评分。

    recommenderlab 如何计算每个项目的评分 评分矩阵?以及它是如何产生 TopN 列表的?

    预测评级,recommanderlab 使用通常的距离方法计算它们(尚不清楚它是 pearson 还是 cosine,我没有机会检查它)然后它确定评级,正如 Breeseet al 建议的那样。 (1998),平均评分加上在邻域上计算的加权因子,您可以将整个训练集视为任何用户的邻域,这就是任何用户对同一项目的预测评分将具有相同值的原因。

    我最好的。 升

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      • 2012-11-29
      • 2011-08-07
      • 1970-01-01
      • 1970-01-01
      • 2017-08-19
      相关资源
      最近更新 更多