Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

I am building a website which has 5 star ratings to rate items.

These ratings unlike the normal ones are of unequal weights. i.e.

1 star: -5,
2 stars: 10,
3 stars: 20,
4 stars: 30,
5 stars: 50,

Every time a user rates I am planning to calculate the average and show it back to the user.

To do this averaging I was thinking of implementing weighted averages or Bayesian average.

Which approach do you think is the best? Are there other approaches I should be looking into?

share|improve this question
4  
Here's another approach you could look into: How Not To Sort By Average Rating by Evan Miller –  Rahul Aug 16 '11 at 15:36
    
Questions like this don't have an objective answer. It all depends on what you want your rating system to do. –  Qiaochu Yuan Aug 16 '11 at 15:37
    
@Rahul Evan's post is specifically for rating systems without a limit. i.e. a voting system –  Cherian Aug 16 '11 at 15:42
add comment

1 Answer

The basic (weighted) average is really just a special case of the Bayesian average with $C = 0$. There are other special cases, such as the rule of succession, which correspond to different priors. More generally, these are all forms of additive smoothing.

Generally, I'd suggest either implementing some form of smoothing and/or not showing any ratings for items rated less than some minimum number of times. This is to avoid the issue of an item with a single 5-star rating getting a higher average rating than one with 99 5-star ratings and one 4-star rating.

Ps. If you haven't yet seen yesterday's xkcd strip, go take a look at it — it's relevant to the topic.

share|improve this answer
    
+1 for the xkcd link :-) –  Jyrki Lahtonen Aug 16 '11 at 15:35
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.