2012-02-05 55 views
1

是否有一種算法,允許基於兩個排名中的這些項目的位置的差異,但也可以用該位置「加權」,例如,一個從位置2-> 1的玩家應該排名高於從9-> 8的玩家。排名算法來比較「排名」

玩具爲例,我有兩個列表/排名:

等級1:

  1. Player的一個
  2. 玩家B
  3. 玩家C
  4. 球員d ...

排名2:

  1. 球員d
  2. 玩家C
  3. Player的一個
  4. 玩家B ...

我當時就想, 「重量」 的排名,平均排名差(或其他值),例如,如果玩家從9-> 8,用於排名的值將是(9-8)/ avg(8,9)= 1/8,5。

+0

哪個應該更好? [2-> 1]或[5-> 3]?那麼[2000-> 1998]/[2-> 1]呢?你應該制定每個因素的重要性。 – amit 2012-02-05 12:53:45

+0

@amit這就是問題,我不確定哪個應該更重要。我想排名球員,例如網球運動員,並能夠在排名中看到最相關的「跳躍」。例如,從2-> 1的玩家應該是最重要的變化,但是由於其「大小」的改進,從2000到1000的「跳躍」的玩家應該是重要的。 我只是想知道有沒有人遇到過這個問題。 – 2012-02-05 13:04:25

回答

4

你想要什麼似乎或多或少等於Spearman's rank correlation在非參數統計。它基本上總和了amount_moved的平方(舊的等級和新的等級之間的差異)

+0

但是,如果它僅以'amount_moved'的形式,那不會給(9-> 8)=(2-> 1)?即他試圖避免的事情? – 2012-02-05 13:31:55

+0

是的,沒有。這只是打算讓人大開眼界/建議閱讀。使'1 <--> 2'大於'9 <--> 10'表示存在一些未知的基礎分佈(泊松?)。通常,在遊戲排名中,amount_played是所用權重的一個因素。在實際情況下,公式中也會出現衰減。 – wildplasser 2012-02-05 13:45:02

+0

如果這兩個排名不是由相同的項目做出的呢? Google針對TOIS 2010的「無限期排名相似性度量」。 – 2012-11-26 19:20:01

1

向後數列表。計算位置之間移動的「值」,作爲這些數字的平方差。

所以,如果你有在你的名單10項:

  • 2-> 1是10^2 - 9^2 = 19
  • 9-> 8將3^2 - 2^2 = 5

很難說這是不是你在追求什麼樣的相對重量之後。如果這不適合你,請嘗試提高/降低指數以找到適合的東西。

+0

感謝您的回答......我認爲這種方式可行。 我想定義一些參數來定義權重。例如,定義一些規則:2-> 1應當與從最後一個位置開始移動1/4的等級相關,或者類似的,以便有方法來定義哪些跳躍是最相關的。 – 2012-02-05 15:10:19