One element of my site is a rating system. I am puzzled a bit by how best to set up the formula and I hope someone with more math aptitude can help me.
Users upload pictures that are rated 1-10 by other users. The users rating then is the average of those scores.
Simple enough. However, I want to add some system which rewards users for uploading more pictures. SO that the formula would be average of ratings + some function of the number of pictures uploaded.
An example might be, Rating = AVG + .05 * Count
This formula would be somewhat fair for users who have uploaded 1-20 pictures... However, if users upload 2000 pictures they will have bipassed the entire rating system and automatically will have a 10/10.
So, my limited knowledge of post algebra math is failing. What would be some formula that would produce the desired effect? The word "log" keeps bouncing around in my head--but I honesty can't remember anything about why... :)
you could do something like:
Rating = Average + (\sum_{i=1}^numofuploads 1/i)*scalefactor
though the sum grows to infinity - the sum grows very slowly
The idea is basically the same as with @maxhud's solution you add less points to your rating for every picture, and for simplicity say scaling is 1/3, and for now i use exact not floating point math
1 -> avg + (1/1)*.3 = avg + 1/3
2 -> avg + (1/1+1/2)/3 = avg + (3/2)/3) = avg + 1/2
3 -> avg + (3/2+1/3)/3 = avg + (10/6)/3 = avg + 10/18 = avg + 5/9 ~ avg + .55555
4 -> ...
technically the series (1+1/2+1/3+…) is going to infinity but you'd have to upload a huge amount of pictures to go over 50 - so you'd better choose your scaling factor carefully and give a bit, of thought. If you want to have a maximum of points that can be achieved via uploading this is the WRONG solution. You should rather go with something like
avg + scaling*(.9^n)
where n
is the number of pictures. if you could upload infinitely many pictures you would have
avg + scaling*(1/(1-.9)) = avg + 10*scaling
for your rating: which is, as I commented, much better.
ps: I think @maxhud should leave
avg + numofpics*scale*(.9^numofpics)
^^^^^^^^^
because after uploading 10 pictures you have outweight your shrinking growth function.