首页 > 解决方案 > 在项目之间反复选择后确定排名的算法

问题描述

我想编写一个小程序来帮助我根据大量一对一比较的结果对项目进行排名。

因此,如果我有 100 个项目,我会让用户在这组随机选择的两个项目之间反复选择。假设总共有 10.000 张选票。项目编号 10 在 1000 票中出现并赢得了与所有其他项目的所有直接对抗。项目编号 90人在100票中上来,赢了40票,输了60票。我可以利用现有的算法(例如来自推荐系统或类似系统)来构建这些项目的排名列表吗?

标签: algorithmstatisticsrankingrecommender-systems

解决方案


win percentage一种简单的方法是根据total wins/total confrontations

如果你想有一个单一的评分机制,你可以reward将赢家和punish输家按固定数量,然后根据最终得分排名。

最后,你可以看看Elo ranking algorithm,它计算了每个项目赢得对抗的概率以及rewards and punishes相对于这些概率。

例子

# Probability
A higher chance of winning than B

# Case1: A wins
A +small reward
B -small punishment

# Case2: B wins
A -large punishment
B +large reward

推荐阅读