算法确定上周,月和年最受欢迎的文章?

AmI*_*ord 7 sorting algorithm math statistics

我正在开展一个项目,我需要按照受欢迎程度(上周,上个月和去年)对用户提交的文章进行排序.

我已经考虑了一段时间,但我不是一个伟大的统计师,所以我想我可以在这里得到一些输入.

以下是可用的变量:

  • 文章最初发表的时间[日期]
  • 编辑推荐文章的时间[日期](如果已经过)
  • 该文章从用户收到的投票数量(总数,上周,上个月,去年)
  • 文章被查看的次数(总数,上周,上个月,去年)
  • 用户下载文章的次数(总数,上周,上个月,去年)
  • 对该文章的评论(总数,上周,上个月,去年)
  • 用户将文章保存到其阅读列表的次数(总计,上周,上个月,去年)
  • 文章被称为"我们最好提供的"(编辑)列表的次数(总计,在过去一周,上个月,去年)
  • 时间[日期]该文章被称为"一周的文章"(如果已经)

现在我正在对每个变量进行一些加权,并除以它已被读取的次数.在阅读加权手段之后,我几乎可以想到这一切.我最大的问题是有一些用户文章总是位于热门列表的顶部.可能是因为作者是"作弊".

我想强调这篇文章相对较新的重要性,但我不想因为它们有点老而"惩罚"真正受欢迎的文章.

任何一个比我更有统计学意识的人愿意帮助我吗?

谢谢!

Mar*_*ers 5

我认为加权均值方法是一个很好的方法.但我认为你需要解决两件事.

  1. 如何衡量标准.
  2. 如何防止系统"游戏"

如何衡量标准

这个问题属于多标准决策分析的范畴.您的方法是加权和模型.在任何计算决策过程中,对标准进行排名通常是该过程中最困难的部分.我建议你采取成对比较的路线:你认为每个标准与其他标准相比有多重要?建立一个像这样的表:

    c1     c2    c3   ...

c1  1      4      2

c2  1/4    1     1/2

c3  1/2    2      1

...
Run Code Online (Sandbox Code Playgroud)

这表明C1的重要性是C2的4倍,是C3重要的一半.使用有限的权重池,比如1.0,因为这很容易.分发过来,我们有标准4 * C1 + 2 * C3 + C2 = 1或粗C1 = 4/7,C3 = 2/7,C2 = 1/7.如果出现差异(例如,如果您认为C1 = 2*C2 = 3*C3,但是C3 = 2*C2),这是一个很好的错误指示:这意味着您与您的相对排名不一致,因此请返回并重新检查它们.我忘记了这个程序的名称,评论在这里会有所帮助.这些都有很好的记录.

现在,这一点对你来说似乎有些武断.它们大部分都是你从自己的头脑中抽出的数字.所以我建议你抽取大约30篇文章的样本并按照"你的直觉"的方式对它们进行排序,说它们应该被订购(通常你比你能用数字表达的更直观).Finagle数字,直到他们产生接近该排序的东西.

防止游戏

这是第二个重要方面.无论你使用什么系统,如果你不能阻止"作弊",它最终会失败.您需要能够限制投票(如果IP能够推荐两次故事吗?).您需要能够阻止垃圾评论.标准越重要,就越需要阻止它被游戏.