我正在构建一个网站,让用户可以通过拖放来排列项目列表以对其“个人视图”进行排名。他们可以选择删除一个项目以将其隐藏起来,使其“隐私”。为多用户可排序列表建议排名算法
我的问题是我如何公平地实现一个排名算法,以确定一个共享视图的项目的排序不惩罚新项目。
这也可以帮助,如果这也可以用来排名的新项目将显示在用户的个人名单。
因此,如果有新项目出现,并且其他用户的排名很高,我们可以将其显示在我们预测用户将其排名与其他排名相关的位置。
我最初的想法是按用户排列的每个项目给用户排名列表中的位置。 (例如,如果有10个项目,给予等级1 10分,2 9等等,对用户隐藏的项目给予负分)。共享视图将根据总分进行排序。但对于那些基本上没有排名的新项目来说,这并不适用,并且不会轻易上移。
因此,对公平算法可以预测新项目的任何想法?
Ravloony的评论让我更好地思考了这个问题,这里是我认为可行的算法。 当用户对列表进行排序时,给每个项目一个分数=项目数+ 1 - 项目列表/项数中的排名。 (3中的1 = 1,2中的3 = 0.667,2中的2 = 8)。 项目分数是所有用户分数的平均值。 因此,随着更多项目的添加,排名较高的较新项目将浮动到顶部。 这应该在一般情况下工作,但会使新条目很容易排名很高,评分很少。有关如何添加排名数量的权重的任何想法? – mtelligent 2012-01-13 18:58:23