Alessio P.
Alessio P.

Reputation: 51

Ranking algorithms to compare "Rankings"

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.

Upvotes: 2

Views: 6439

Answers (2)

Nick Barnes
Nick Barnes

Reputation: 21296

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.

Upvotes: 1

wildplasser
wildplasser

Reputation: 44220

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)

Upvotes: 5

Related Questions