У меня есть следующие игроки, каждое значение соответствует результату в процентах правильных ответов в данной игре.
$players = array ( 'A' => array(0, 0, 0, 0), 'B' => array(50, 50, 0, 0), 'C' => array(50, 50, 50, 50), 'D' => array(75, 90, 100, 25), 'E' => array(50, 50, 50, 50), 'F' => array(100, 100, 0, 0), 'G' => array(100, 100, 100, 100), );
Я хочу быть в состоянии подобрать лучших игроков, но я также хочу учесть, насколько надежный игрок (меньше энтропии = более надежный), до сих пор я придумал следующую формулу:
average - standard_deviation / 2
Однако я не уверен, что это оптимальная формула, и я хотел бы услышать ваши мысли об этом. Я уже думал об этой проблеме, и я придумал немного другую формулу, вот это переработанная версия:
average - standard_deviation / # of bets
Затем этот результат будет взвешен для следующего предстоящего голосования, так, например, новая ставка от игрока C будет считаться только половиной ставки.
Я не могу вдаваться в подробности здесь, но это проект, связанный с теорией Мудрости толп и методом Дельфы, и моя цель – предсказать как можно лучше следующие результаты, взвешивающие прошлые ставки от нескольких игроков.
Я ценю все входные данные, спасибо.
Во-первых, я бы не использовал стандартное отклонение, если у ваших массивов данных всего несколько записей. Используйте более надежные статистические показатели, такие как Median Absolute Deviation (MAD), также вы можете протестировать, используя медианную, а не среднюю.
Это связано с тем, что, если ваши «знания» ставок игроков ограничены только несколькими образцами, ваши данные будут преобладать в выбросах, то есть игроку повезет / неудачником. Статистические средства могут быть совершенно неуместными в этих обстоятельствах, и вы можете использовать какую-то форму эвристического подхода.
Я также предполагаю из ваших ссылок, что вы на самом деле не намерены выбирать лучшего игрока, а скорее на основе следующих ответов: «А» хочет предсказать правильный набор ответов «С», взвешивая «А» на основе предыдущий послужной список игроков.
Конечно, если бы было хорошее решение этой проблемы, вы могли бы совершить убийство на фондовом рынке 😉 (Тот факт, что никто не делает, должен быть указанием на существование такого решения).
Но вернемся к ранжированию игроков. Ваша основная проблема заключается в том, что вы (должны?) Взять процент правильных ответов, равномерно распределенных от 0 до 100%. Если тест содержит несколько вопросов, это, конечно, не так. Я бы посмотрел на то, что полностью случайный игрок «R» оценивает тест и создает относительный коэффициент доверия, исходя из того, насколько лучше / хуже, чем «R», данный настоящий игрок.
Скажем, за каждый раунд игры генерируют миллион случайных игроков и смотрят на распределение баллов. Используйте распределение в качестве веса для реальных очков игроков. Затем объедините взвешенные баллы с помощью MAD и вычислите Median-MAD / некоторый номер, как вы уже сказали.
Вы не можете получить оптимальную формулу, если не определили, что лучше. Вам нужно выяснить, как вы хотите взвешивать согласованность со средним. Например, одним из вариантов будет оценка балла, который игрок нажмет на определенный процент игр. Для этого требуется какая-то модель распределения вероятности игрока. Например, если мы предположим, что баллы игроков следуют за нормальным распределением, то ваша данная формула рассчитывает, какой результат игрок преодолеет примерно в 70% случаев.
Будет ли байесовская формула вероятностей соответствовать законопроекту?
Думаю, так и будет. Вот ссылка на другой сайт, который немного менее математичен: http://www.experiment-resources.com/bayesian-probability.html
По сути, вы прогнозируете вероятность того, что каждый игрок наберет наивысший результат в следующем раунде. Это то, что байесовские вероятности едят на завтрак.
Байесовские вероятности уже используются в видеоиграх (предупреждение: .doc-файл), чтобы определить, что именно так.
Гектометр Это сделало бы игрока (100,100,100,60) хуже, чем игрок (85,85,85,85). Почему бы не учитывать и% общих сумм?
Например: процентное количество очков (например, 0..1), умноженное на ваш текущий расчет.
Вы считали, что используете медиан? Это считается более надежной статистикой (менее затронутой выбросами), чем средняя. В ваших данных вы получаете медианы: 0, 25, 50, 82,5, 50, 50, 100.
Кажется, это то, чего вы интуитивно хотите? Я согласен с другими, что здесь нет «правильного ответа».
Я думаю, вы можете быть правы в том, что хотите какую-то линейную комбинацию двух факторов, но я думаю, нам нужно будет узнать больше о том, что вы делаете, чтобы узнать, какие фактические константы будут …
Ну, «простое расширение» – это просто добавление веса и границ:
средний (игрок) – мин (верхний, вес * энтрофия (игрок))
Однако, учитывая текущий набор данных, я мог бы не относиться к «правильному проценту ответа» так же, как смотреть на разницу в счете за игру , если это вариант.
Ознакомьтесь с http://blog.stackoverflow.com/2009/10/alternate-sorting-orders/
Формула в том, чтобы сортировать голосование, но если вы считаете, что оценка похожа на голосование (0-безотносительно), вы должны иметь возможность использовать ее для расчета того, какие игроки более последовательно выигрывают выше.