PHP/MySQL - algorithm for “Top Rated”

后端 未结 3 1488
猫巷女王i
猫巷女王i 2021-01-01 01:50

So I just built a star-rating system and and trying to come up with an algorithm to list the \"Top Rated\" items. For simplicity, here are the columns:

item_         


        
相关标签:
3条回答
  • 2021-01-01 02:38

    How about you give each 10 votes a weight of 1 so 20 votes gives the item 2 weight. Then if the item has 0 weight it will loose 0.5 from the average

    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
    
    0 讨论(0)
  • 2021-01-01 02:42

    The question is, how much higher the 4.6/20 shall be rated than the 5.0/2...

    An idea not to take items in consideration that do not have at least x votes.

    Another idea is to fill up with "medium" votes. Decide that 10votes shall be the minimum. The 5.0/2 must be filled with 8 virtual votes of 2.5

    5.0/2 means 2 votes with 5.0, add 8 with 2.5 you'll get 30/10 -> 3.0 ;)

    Now, you have to decide how many votes an item shall at least have. For those that already have the minimum votes, a direct comparation shall be done.

    4.5/20 > 4.4/100
    5.0/2  < 3.1/20  (as 5.0/2 is, as we calculated, 3.0/10)
    
    0 讨论(0)
  • 2021-01-01 02:52

    here's another, statistically sound good way: http://www.thebroth.com/blog/118/bayesian-rating

    0 讨论(0)
提交回复
热议问题