u4819210 / social-networks-for-fun

Automatically exported from code.google.com/p/social-networks-for-fun
0 stars 0 forks source link

Current Rating algorithm has issues #30

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
From John's email below:

Hi JT and Fei,

I was about to open an issue ticket when I realized this might be the designed 
feature:

I was testing my rating submit function, I kept rating the restaurant at 5, I 
could see the new rating going up from initial value of 0. Then at some point, 
the rating stopped increasing, it stopped at 2.7, even if I submitted more 5s. 

Now I realized we talked about a mechanism to prevent abusing of the rating 
system. I guess I hit that limit. :) Could you confirm that we have this limit 
implemented already?

Another question, I talked to Fei about is, right now there's a base number of 
20 reviews at rate 0. Basically, before any user rated a restaurant, we assume 
there are 20 ratings of 0. So I'm the first one to rate a restaurant and I give 
it 5, the new rating is 0.2. I don't quite understand the logic behind this, 
why do we assume 20 0's initially?

Thanks.

John 
--------------------------------- 
JT's reply below:

initially assuming twenty 0 is apparently wrong. My assumption previously is, 
IF there is any rating number we get from YellowPage, then we assume that 
number was averagely from 20 people. But if the initial rating number is 0, we 
can't assume it's from 20 people.

We need an initial number of reviewing people is because we need to know what's 
the total rating value, then we use that to calculate the new rating: X / 20  = 
initial rating value, then ((20 x initial rating value) + new rating from 
current user) / 21 = new rating value.

In WHERE, it seems they are assuming the initial rating for every restaurant is 
5, we may use it the same way, so if we can't find initial rating value in 
YellowPage (means if it's blank or 0 in rating_general field), then we assume 
it's 5, then new rating value = ((20 x 5) + new rating from current user) / 21. 
So if new rating from current user is 4, then the new rating value = 4.95
-----------------------------------------
John's reply below:

That makes sense. 

For my testing, most of the restaurants in our database don't have an initial 
rating (at least the ones close to my home). 

Do you know if most of our listings actually have a rating or not? If most of 
them don't and we put 5 as initial rating, people would start to see lots of 5 
stars, which might make our listing less credible ...

Anyway, I think it's fine to have initial 5 for now ... if we need to change, 
it's easy to change.
------------------------------------
JT's reply below:

I believe most of them are blank or 0. So lets assume initial is 5.  

Original issue reported on code.google.com by jt.xion...@gmail.com on 13 Aug 2010 at 10:41