2

Is there an algorithm that allows to rank items based on the difference of the position of those items in two rankings but also "weighted" with the position, e.g. one Player that goes from position 2->1 should be ranked higher than a player that went from 9->8.

Toy example, I have two lists/ranks:

Rank 1:

  1. Player a
  2. Player b
  3. Player c
  4. Player d ...

Rank 2:

  1. Player d
  2. Player c
  3. Player a
  4. Player b ...

I was thinking to "weight" the ranking difference with the average ranking (or other value), for example, if a player goes from 9->8 the value used to rank will be (9-8)/avg(8,9) = 1/8,5.

hakre
  • 193,403
  • 52
  • 435
  • 836
Alessio P.
  • 51
  • 1
  • 4
  • which should be better? [2->1] or [5->3]? and what about [2000->1998] / [2->1]? You should formulate how important each factor is. – amit Feb 05 '12 at 12:53
  • @amit that's the problem I'm not sure which should be more important. I want to rank players, tennis players for example, and be able to see the most relevant "jumps" in the ranking. For example a player going from 2->1 should be the MOST important change, but also a player "jumping" from 2000 to 1000 should be important because of the "size" of its improvement. I just wanted to know if anyone has faced this problem before. – Alessio P. Feb 05 '12 at 13:04

2 Answers2

5

What you want seems more or less equivalent to Spearman's rank correlation in non-parametric statistics. It basically sums the squares of the amount_moved (the difference between the old rank and the new rank)

wildplasser
  • 43,142
  • 8
  • 66
  • 109
  • But if it's only in terms of `amount_moved`, won't that give (9->8) = (2->1)? i.e. the thing he's trying to avoid? – Nick Barnes Feb 05 '12 at 13:31
  • Yes and no. It was only intended as mind-opener / suggested reading. Making `1<-->2` a bigger leap than `9<-->10` indicates that there is some unknown underlying distribution (poisson?) involved. Normally, in game-rankings the amount_played is a factor in the weighting used. In practical cases there is also a decay built into the formulas. – wildplasser Feb 05 '12 at 13:45
  • What if the two rankings are not made by the same items ? Google for "A similarity measure for indefinite rankings", TOIS 2010. – Valerio Schiavoni Nov 26 '12 at 19:20
1

Number your list backwards. Calculate the "value" of moving between positions as the difference of the squares of these numbers.

So if you've got 10 items in your list:

  • 2->1 would be 10^2 - 9^2 = 19
  • 9->8 would be 3^2 - 2^2 = 5.

Hard to tell if this is exactly what you're after without knowing what kind of relative weights you're after. If this doesn't quite suit you, try raising/lowering the exponent to find something that fits.

Nick Barnes
  • 19,816
  • 3
  • 51
  • 63
  • Thanks for the answer... I think this way could work. I'm trying to define some parameters to define the weights. For example, defining some rules: 2->1 should be equal in relevance to moving 1/4 of the rank starting from the last position, or something like that in order to have a way to define which leaps are the most relevant. – Alessio P. Feb 05 '12 at 15:10