2012-04-27 49 views
4

我在更详细地探讨Mahout in Action中的一些代码示例。我已经构建了一个小型测试,用于计算应用于我的数据的各种算法的RMS。评估推荐人 - 无法在x个案例中推荐

当然,多个参数会影响RMS,但我不理解运行评估时生成的“无法推荐...情况下”消息。

查看StatsCallable.java,这是在评估者遇到NaN响应时生成的;可能没有足够的数据在训练集或用户的首选项中提供建议。

似乎RMS分数不会受到一大组“无法推荐”的情况的影响。这个假设是否正确?我是否应该评估我的算法,不仅是RMS,还有“无法推荐”的情况与我的整体训练集的比例?

我会很感激任何反馈意见。

回答

4

是的,这基本上意味着根本没有数据作为估算的基础。这通常是数据稀疏的症状。这应该是非常罕见的,并且只发生在数据非常小或与他人断开的用户身上。

我个人认为这不是什么大事,除非它是一个非常重要的比例(20%+?)如果许多用户无法生成任何recs,我会担心更多。

+0

肖恩 - 我想回复并说谢谢你的回复。我最终进行了一系列测试,发现对于我的数据集,Pearson表现最差,Log Likelihood是最好的基于用户的建议。一般来说,我的数据中有10%属于“无法推荐”的类别,但对于皮尔逊而言,它更像是20%。无论哪种方式,为了比较苹果与苹果,我最终将无法推荐的数据纳入我的RMS分数中,以公平比较所有推荐人。 – 2012-05-04 16:14:20

+0

Pearson相关性在角落案例中是未定义的,就像两个人仅在一个项目中重叠一样。在稀疏数据上,这并不罕见。对数似然至少在这些情况下被定义。 (这是一个更好的默认值。)结果并不让我感到惊讶。 – 2012-05-04 16:15:59