Ранжирование алгоритмов для сравнения «Рейтинги» - PullRequest
2 голосов
/ 05 февраля 2012

Существует ли алгоритм, который позволяет ранжировать предметы на основе разницы позиций этих предметов в двух рейтингах, но также «взвешивать» позицию, например, один игрок, который идет с позиции 2-> 1, должен быть ранжирован выше, чемигрок, который пошел с 9-> 8.

Например, у меня есть два списка / ранга:

Ранг 1:

  1. Игрок a
  2. Игрок b
  3. Игрок c
  4. Игрок d ...

Ранг 2:

  1. Игрок d
  2. Игрок c
  3. Игрок a
  4. Игрок b ...

Я думал «взвесить» разницу в ранжировании со средним рейтингом (или другим значением), например, если игрок выходит из9-> 8 значение, используемое для ранжирования, будет (9-8) / avg (8,9) = 1 / 8,5.

Ответы [ 2 ]

5 голосов
/ 05 февраля 2012

То, что вы хотите, кажется более или менее эквивалентным ранговой корреляции Спирмена в непараметрической статистике.По сути, он суммирует квадраты суммы_данных (разницы между старым рангом и новым рангом)

1 голос
/ 05 февраля 2012

Пронумеруйте свой список в обратном порядке.Вычислите «значение» перемещения между позициями как разность квадратов этих чисел.

Итак, если у вас есть 10 элементов в списке:

  • 2-> 1будет 10^2 - 9^2 = 19
  • 9-> 8 будет 3^2 - 2^2 = 5.

Трудно сказать, что это именно то, что вы ищете, не зная, какой относительный вес васпосле.Если это вас не устраивает, попробуйте повысить или понизить показатель степени, чтобы найти что-то подходящее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...