-->

PHP / MySQL的 - 算法“最高评分”(PHP/MySQL - algorithm for

2019-07-18 05:08发布

所以,我刚刚建立了一个星级评定体系,并试图想出一个算法,列出了“顶级”项目。 为简单起见,这里的列:

item_name
average_rating (a decimal from 1 to 5)
num_votes

我试图确定的“甜蜜点”的投票和评分之间。 例如...

  • 额定的项目(4.6 / 20投票)应该更高列表比是一个项目(5.0 / 2投票)上
  • 额定的项目(2.5 / 100票)应这是一个项目(4.5 / 2投票)下面

因此,换句话说,NUM_VOTES起着什么是“最高”的一个因素。

任何人都知道一个算法,在确定这个“甜蜜点”还不错的?

提前致谢。

Answer 1:

这里的另一个统计听起来好办法: http://www.thebroth.com/blog/118/bayesian-rating



Answer 2:

现在的问题是,有多少高的4.6 / 20额定值应大于5.0 / 2 ...

一个想法不采取在审议项目不具有至少为x票。

另一个想法是“中等”的投票来填补。 决定10votes应是最小的。 5.0 / 2必须充满2.5 8虚拟票

5.0 / 2表示2票5.0,加入8 2.5,你会得到30/10 - > 3.0;)

现在,你必须决定多少票中的项目至少须。 对于那些已经拥有最小票,直接比较 - 必须完成。

4.5/20 > 4.4/100
5.0/2  < 3.1/20  (as 5.0/2 is, as we calculated, 3.0/10)


Answer 3:

你怎么样给每个10票的1,因此20票的权重给出了2项权重。 然后,如果该项目有0重量它会松动0.5从平均

4.6/20 = 20/10: 2 weight
5.0/2 = 2/10: 0 weight

(4.6 * 0.02) + 4.6 = 4.692
(5.0 * 0.00) + 5.0 = 5 - 0.5 = 4.5

2.5/100 = 100/10: 10 weight
4.5/2 = 2/10: 0 weight

(2.5 * 0.1) + 2.5 = 2.75
(4.5 * 0.0) + 4.5 = 4.5 - 0.5 = 4


文章来源: PHP/MySQL - algorithm for “Top Rated”