Простой способ сравнить результаты международных команд, используя исторические данные матчей в python.

Исторически велись дискуссии о том, какая международная команда является лучшей в то время. Некоторые говорят, что европейские команды всегда были лучше, потому что там зародился футбол, другие говорят, что американские команды были лучше, и упоминают 5 чемпионатов мира в Бразилии и многих талантливых игроков, которые родились в этой стране, и дискуссия продолжается. и дальше. следовать. К счастью, мы можем полагаться на данные, чтобы получить приблизительное представление о том, какая команда является лучшей в данный момент, и это достигается с помощью системы ELO (которая, по сути, в настоящее время используется ФИФА в своем официальном рейтинге). Используя Python и набор данных, доступных в Kaggle, вы можете узнать, какие 5 были лучшими и худшими выборами за все время.

Что такое система ELO?¹

Система ELO обязана своим названием Арпаду Эло, шахматисту и математику, который разработал эту систему подсчета очков для определения уровня мастерства шахматиста. Формула для расчета рейтинга Эло после матча учитывает текущий собственный рейтинг, вероятность победы в матче, результат матча и поправочный коэффициент K. Формула выглядит следующим образом:

Где P в «t-1» — это elo счет перед матчем, K — поправочный коэффициент, S в «a» — результат матча (1, если они выиграли, 0, если они проиграли, и 0,5, если было галстук).

E at «a» — это математическое ожидание матча, которое рассчитывается с использованием логистической функции и принимает в качестве параметров рейтинг Эло обоих игроков. Он рассчитывается следующим образом.

В случае футбола эта система используется ФИФА в своем официальном рейтинге с 2018 года. Поправочный коэффициент K принимается за важность игры и принимает значение 5 для товарищеских матчей и 60, если это четвертьфинал. соответствовать. финал или позже чемпионата мира по футболу.

Как мы можем рассчитать балл ELO национальных команд с помощью Python?

Для подсчета очков ЭЛО национальных команд с течением времени необходимо иметь все матчи, которые состоялись между ними с течением времени. Благодаря Марту Юрисоо эту информацию можно найти здесь. А блокнот jupyter, который я покажу дальше, можно увидеть на моем GitHub.

После загрузки данных и вызова df мы выберем только те столбцы, которые будем использовать. Кто они такие:

· дата

· Домашняя команда

· выездная_команда

· домашний_счет

· выездной_счет

· Турнир

В качестве переменной K мы будем использовать 10 для международных товарищеских матчей, 25 для отборочных матчей чемпионата мира по футболу, 40 для матчей соревнований конфедераций и 55 для матчей чемпионата мира по футболу FIFA и 5 для других турниров 1.

Чтобы вычислить ожидаемый результат (E_a), мы создадим функцию, которая принимает Elo команды хозяев и Elo команды гостей и возвращает массив, где первая запись — это вероятность победы домашней команды, а второй массив вероятность того, что команда гостей выиграет.

Для получения фактического результата (R_a) мы создаем функцию, которая принимает голы обеих команд в качестве параметров и возвращает массив с результатом команды хозяев на первой позиции и команды гостей на второй позиции.

Наконец, мы будем использовать функции, созданные выше, для создания нашей основной функции, той, которая вычисляет рейтинг обеих команд после матча. Для этой функции нужны голы, забитые в матче, сыгранный турнир и предыдущие рейтинги команды.

Будет создан словарь, в котором будут храниться последние баллы Эло каждой команды. Этот словарь будет обновляться каждый раз, когда команда играет в игру. После создания этого словаря мы можем перебрать набор данных, чтобы получить рейтинги до и после каждого совпадения.

Таким образом, мы получаем кадр данных со всеми историческими матчами национальных команд, а также их счет Эло в каждый момент времени. Таким образом, у нас будет объективная мера, чтобы сказать, какие из них являются лучшими и худшими на данный момент. По этому показателю в пятерку лучших национальных команд всех времен входят:

  1. Германия (2014). Эло = 1795,7
  2. Испания (2010). Эло = 1795,5
  3. Франция (2021). Эло = 1775,6
  4. Бразилия (2021). Эло = 1771,3
  5. Нидерланды (2010). Эло = 1759,4

И 5 худших:

  1. Люксембург (2006 г.). Эло = 879,4
  2. Сан-Марино (2021). Эло = 895,5
  3. Лихтенштейн (2021 г.). Эло = 987,8
  4. Андорра (2016). Эло = 993,1
  5. Шри-Ланка (2021 г.). Эло = 1005

Отказ от ответственности. Обратите внимание, что эти результаты зависят от выбранных весов и формулы, используемой для расчета ожидаемого результата. Оценка может измениться, если эти параметры изменены. Смело меняйте вес и делитесь своими результатами!

Спасибо за чтение этого поста, отзывы в комментариях будут хорошо приняты. В ближайшие недели я буду загружать новые сообщения о том, как визуализировать эти данные в потоковом режиме и как можно использовать оценку ELO для создания прогнозной модели международных игр с помощью sckitlearn. Чтобы быть в курсе этих новых сообщений, подпишитесь на мой блог на этой странице или на мой профиль в Linkedin.

[1] Рейтинговая система Эло Википедия. https://en.wikipedia.org/wiki/Elo_rating_system

Источник данных: https://www.kaggle.com/martj42/international-football-results-from-1872-to-2017