【问题标题】:Ranking from pairwise comparisons [duplicate]从成对比较中排名[重复]
【发布时间】:2014-05-21 17:12:20
【问题描述】:

假设我有一个非常长的图片列表,我想按照人们认为它们的“好”程度对它们进行排名。

我不想让用户直接为图像分配分数(1 - 10 等)并按此排序,我想尝试一些新的东西。

我认为会是一种有趣的做法是:

  • 向用户展示两张随机图片,他们会选择更好的一张
  • 收集大量“比较”
  • 使用所有比较得出一些排序

原来这是used regularly,例如(使用特征,而不是图像),这似乎是Uservoice's Smartvote 的工作方式。

我的问题是,是否有一种众所周知的方法可以对这么长的比较列表进行比较,并为其中的所有图像建立相对排名,但不能达到研究论文中发现的复杂程度。

我已经阅读了大量lectures 和研究论文,但我想知道是否有任何人们可能推荐的示例代码?

【问题讨论】:

    标签: algorithm sorting ranking


    【解决方案1】:

    似乎你可以得到某种数字排名系统,然后根据它进行排序。只需从输赢运动或国际象棋中借用算法,并将每个图像比较视为一场比赛。

    看了一下,这是Java中类似算法的一些示例代码

    这里有一个图书馆,你可以在python借阅

    如果您搜索 ELO,您会找到几乎任何语言的版本。获得数字图像排名后,您可以按自己喜欢的方式对它们进行排序。对于输赢比赛,您可能还可以研究其他排名算法,这只是我在 google 国际象棋排名时出现的第一个算法。

    【讨论】:

    • 太好了,我查看了 ELO 和其他一些排名,似乎主要的缺点是很多成对排名的算法都假设“每个人都玩每个人”,这在我的情况下是不可行的.我认为在我宣布 ELO 成功之前我需要进行更多比较。
    • ELO 似乎不需要每个人都玩每个人,但是每张图片的比较越多,他们的评分就越有意义。这并不意味着您需要 n^2 比较。即使是每张图片进行 20 次比较也会具有统计意义,并且随着时间的推移,排名会越来越准确。
    【解决方案2】:

    对于每张图片,计算它赢得决斗的次数,然后除以它参加的决斗次数。这个比率就是你的排名分数。

    例子:

    A B, A C, A D, B C, B D强>

    产量

    B:67%,C,D:50%,A:33%

    除非您进行大量比较,否则会有很多联系。

    【讨论】:

    • 我可以想到很多情况下这会出错,但假设数据不一致且随机抽样良好,这可能是不错的。
    • 是的,推荐随机化。
    • 我已经用随机的“决斗”测试了这个,表面上它看起来像是一个相当直观的算法。这是一种既定的排名方法吗? @SlaterTyranus 您想到的潜在陷阱是什么?阅读了许多复杂的解决方案后,一定有一个原因,这不是通常使用的解决方案。我想平局在这里被视为失败的事实不是很好?
    • @PeterHamilton 其中有很多,主要是围绕每个比较都相等的谬论。如果您想象大多数比较是各向异性的情况,就会发生冲突。也就是说,经过大量试验和良好的随机化,它是一个不错的近似值。
    • 这是个好主意。该算法的主要缺点是它没有考虑两个竞争图像的相对排名。对排名靠前的图像的胜利被视为与对排名靠后的图像的胜利相同。排名上的差异是有价值的数据,在这里被丢弃了。考虑到这一点,可能会对任何新图像的排名在多快的时间内变得具有统计意义产生巨大影响。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    相关资源
    最近更新 更多