使用贝叶斯平均的奇数结果

时间:2012-08-04 09:46:03

标签: ruby-on-rails ruby math bayesian

我使用以下代码为我的产品评论提供贝叶斯平均值:

@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/

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

enter image description here

显然,根据文章的逻辑,我应该看到一个产品有4票,平均得分为59%,贝叶斯比一票多产,平均为50%。

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

1 个答案:

答案 0 :(得分: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)