在计算分数时消除偏差

时间:2012-08-09 06:47:05

标签: algorithm

我有一个相对简单的算法问题,我向用户推荐问题

  1. 我有一组问题和答案(比如每个问题的评论) 回答)
  2. 我想评分每个问题的吸引力。
  3. 目前的实施:

    (total comments + likes for all answers for a question) / sqrt (number of answers)
    

    问题:

    1. 有时,一个有大量活动的答案会扭曲问题的分数,即使其他20个答案产生的兴趣也很少
    2. 对于几乎没有答案的问题,应该减少一些。
    3. 不胜感激任何有关这两个问题的建议都可以否定。

1 个答案:

答案 0 :(得分:0)

通常当我们想避免让一个样本过于强大时,标准的方法就是通过以下方法之一:

  1. 使用log(N)代替N,使每项观察的效果不那么强大 1
  2. 留下“奇怪的”观察结果:只取中间的X%,然后使用它们,例如:从这个问题的最大值开始只采集1/4 - 3/4喜欢的观察,然后保持倾斜例子。
  3. 对于第二个问题 - 我能想到的一件事就是给出一个变量因素:改为使用sqrt(number of answers) - 您可以尝试(number_of_answers)^(log(number_of_answers+1)/log(max_answers+1))其中max_answers是每个问题的最大答案数在您的数据集中。
    这将导致提出问题的答案很少,我认为这就是你所追求的目标。


    (1):我们通常会log(N+1) - 因此也会为N==0定义。