0

我正在使用以下代码为我的产品评论得出贝叶斯平均值:

@bayesian = (((Review.count * Review.average(:score)) + (style.reviews.count +style.reviews.average(:score)))/(Review.count+style.reviews.count)).to_int

根据这个讨论(向下滚动三分之一):

http://blog.linkibol.com/2010/05/07/how-to-build-a-popularity-algorithm-you-can-be-proud-of/

现在奇怪的是,这些是我在页面上看到的结果:

在此处输入图像描述

显然,按照文章的逻辑,我应该看到一个有 4 票且平均得分为 59% 的产品,其贝叶斯算法比获得 1 票且平均得分为 50% 的产品更高。

我在这里的实现有问题吗?

4

1 回答 1

1

对不起大家,最后答案很简单。我应该写:

@bayesian = (((Review.count * Review.average(:score)) + (style.reviews.count *style.reviews.average(:score)))/(Review.count+style.reviews.count)).to_int

只需将 + 更改为 * 即可:

style.reviews.count * style.reviews.average(:score)
于 2012-08-04T22:46:33.927 回答