2014-05-21 44 views
3

想象一下,我有一個非常很長的圖像列表,我想按照「好」人們的想法排列它們。成對比較的排名

我不想讓用戶直接得分爲圖像指派 - 由(110等)和秩序,我想嘗試新的東西。

我想會是這樣做的一個有趣的方法是:

  • 顯示用戶在兩個隨機圖像,他們選擇最好的一個
  • 收集大量的「比較」
  • 使用所有攀比拿出一些訂貨

原來這是used regularly,例如(使用功能,而不是圖片),這似乎是一路Uservoice's Smartvote作品。

我的問題是,是否有采取這種比較長的名單,並建立一個相對排名從他們所有的圖片,但不復雜的在研究論文中發現的水平的好已知的方法。

我讀了一堆lectures和研究論文,但我不知道是否有任何示例代碼在那裏的人可能會建議?

回答

2

看起來像你可以得到某種數字排名系統,然後就根據這個排序。只需從勝利/損失運動或國際象棋中借用算法,並將每個圖像比較視爲回合。

做了一些看,這裏有什麼樣的一個算法看起來像Java

一些示例代碼,這裏是一個庫,你可以在python

借用如果你搜索ELO,你會發現一個版本它幾乎以任何語言。一旦你得到你的數字圖像排名,你可以按照你喜歡的方式對它們進行排序。您可能會考慮其他排名算法,以獲得贏/輸比賽,這只是我在搜索國際象棋排名時出現的第一個排名算法。

+0

好喊,我看着ELO和其他幾個排名,似乎主要缺點是,很多的算法成對排名假定「每個人都扮演着大家」,這在我的情況下是不可行的。我想在我發音ELO成功之前需要更多的比較。 –

+1

ELO似乎並不需要每個人都扮演每個人,但每個圖像的比較越多,他們的評價就越有意義。這並不意味着你需要n^2比較。即使像每個圖像的二十次比較那樣具有統計意義,隨着時間的推移,排名會越來越準確。 – NathanTempelman

1

對於每張圖片,請計算其贏得決鬥的次數,併除以參與的決鬥次數。該比率即爲您的排名分數。

實施例:

,A Ç d, C,B d

產量

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

除非你執行啊大量的比較,會有很多關係。

+0

我可以想到很多這種情況會非常糟糕的情況,但假設數據不一致和隨機抽樣很好,這可能是不錯的。 –

+0

是的,建議隨機分配。 –

+0

我已經用隨機的「決鬥」測試了它,並且在表面上它看起來像一個相當直觀的算法。這是一種確定的排名方法嗎? @SlaterTyranus你想到的潛在隱患是什麼?在閱讀了許多複雜的解決方案之後,肯定有一個原因並非通常使用的原因。我想象一下這樣一個事實,即平局被視爲損失並不是很大? –