fork(2) download
  1. from math import sqrt
  2. def wilson_score(sum_rating, n, votes_range = [1, 5]):
  3. z = 1.64485
  4. v_min = min(votes_range)
  5. v_width = float(max(votes_range) - v_min)
  6. phat = (sum_rating - n * v_min) / v_width / float(n)
  7. rating = (phat+z*z/(2*n)-z*sqrt((phat*(1-phat)+z*z/(4*n))/n))/(1+z*z/n)
  8. return rating * v_width + v_min
  9.  
  10. print wilson_score(11319, 2429);
  11. print wilson_score(120, 25);
Success #stdin #stdout 0.01s 7896KB
stdin
Standard input is empty
stdout
4.62083759647
4.30001236736