【问题标题】:Mahout rescorer implementationMahout rescorer 实现
【发布时间】:2011-08-23 01:13:50
【问题描述】:

我想用它们共享的装饰数除以 50 来衡量两个项目之间的所有 PearsonItemSimilarity 值。

或者换句话说,相应地更新两个项目(例如项目 a 和 b)之间的通用 pearson 相似性—— Similarity_new_ab =similarity_ab*numCoRatings_ab/50

  1. 如何使用现有的 mahout 框架获得两个游戏之间的关联数。

  2. 谁能给我链接(或说明)rescorer 的示例实现?

我这样做的理由如下,

我假设计算的大多数 Pearson 相似性是基于少量(大多数情况下为 1 或 2 个)coratings。这将导致游戏彼此共享 1 的 Pearson 相关性,事实上,如果存在更多相关性,情况可能不会如此。

为了解决这个问题,我想将这些“幼稚”的 Pearson 相似性更改为同样基于共同评分数量的相似性。

我以为这就是记分器的用途,但我想我错了。

【问题讨论】:

  • mahout 用户列表是这个问题的更好目标。不知道有没有人在这里回答实质性问题。
  • 我愿意,本森!这里或者 user@apache.org 都可以。

标签: mahout


【解决方案1】:

您需要 DataModel 上的方法 getNumUsersWithPreferenceFor() 并将两个项目 ID 传递给它。 我不认为这对于这个相似性指标是最好的。如果您使用共现,请查看LogLikelihoodSimilarity

这与Rescorer 无关,你的问题是什么?

【讨论】:

  • 感谢 Sean,DataModel 的 getNumUsersWithPreferenceFor() 将非常有用。我假设计算的大多数 Pearson 相似性都是基于少量(大多数情况下为 1 或 2 个)coratings。这将导致游戏彼此共享 1 的 Pearson 相关性,事实上,如果存在更多相关性,情况可能不会如此。考虑到这一点,我想将这些“幼稚”的 Pearson 相似性更改为也基于共同评分数量的相似性。我以为这就是 rescorer 的用途,但我想我错了。
  • 为此——也许最好只复制实现并以这种方式更改其行为。在这些情况下返回 NaN。这样更直接。另外,请查看“加权”参数,它以另一种方式考虑到这一点。
猜你喜欢
  • 2012-11-06
  • 2014-02-14
  • 2014-01-05
  • 2012-10-16
  • 1970-01-01
  • 2014-02-19
  • 1970-01-01
  • 1970-01-01
  • 2014-06-06
相关资源
最近更新 更多