Построение диаграмм-сонаров передач. Проблемы и решения | Контрпресс.ру — сайт о футбольной тактике Построение диаграмм-сонаров передач. Проблемы и решения — Контрпресс.ру — сайт о футбольной тактике
Статистика
Серия А
31 мая 2020, 16:08
31 мая 2020, 16:08
Построение диаграмм-сонаров передач. Проблемы и решения
Егор Гумин презентует бота, рисующего сонары передач, и объясняет ход его создания.
Содержание
01Проблема 1. Связь точности и длины передач
02Проблема 2. Графическое выделение точности передач
03Проблема 3. А как нормировать?
04Телеграм-бот

В современной футбольной аналитике диаграммы-сонары – один из самых популярных способов графического отображения диапазона передач игрока или команды. Основная задача сонаров – показать, в каких зонах игрок активен с мячом и как он продвигает мяч. Поле делится на 30 зон, 6 по горизонтали и 5 по вертикали, в каждой из которых строится polar-chart. Polar-chart – это диаграмма, которая состоит из секторов. В нашем случае длина/размер сектора показывает, как много передач было сделано из зоны, в котором находится диаграмма в направлении этого сектора.

Первая версия сонара, созданная Даниэлем Жолковским

Цвет показывает среднюю длину передач для каждого из секторов. А чем ближе чёрная полоска на секторе к его внешней границе, тем выше точность пасов в этом секторе.

В этой вариации графиков я заметил несколько проблем.

Проблема 1. Связь точности и длины передач

Точность передач разной длины может сильно отличаться. Разберем на примере зоны 18. Разделим передачи в зоне на 8 равных долей по направлению (углу). Синим цветом обозначим передачи «вперед», оранжевым «вперед влево», зеленым – «назад».

Теперь посмотрим, как изменяется точность передач в зависимости от направления и длины. Для этого мы возьмем выборку из ~1 660 000 передач топ-4 лиг сезонов 2018/19 и 2019/20. Возможно, такого объема данных было бы недостаточно для построения моделей анализа передач, но нам нужно лишь сделать выводы об общем характере передач, чтобы сделать графику нагляднее.

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

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

Воспользуемся статистикой по нашей выборке, чтобы определиться с границами длин. Давайте расположим все передачи в нашей выборке по возрастанию длины и разделим получившийся ряд на три равные части. Точки разделения и будут ограничителями длины между короткими, средними и длинными передачами.

Обратимся к графику для наглядности. Он показывает, какая доля пасов (по вертикальной оси) меньше, чем соответствующая длина (по горизонтальной оси). Таким образом, если мы выберем случайную длину, скажем, 30 метров и проведем линию до графика, то узнаем, какая доля пасов имеет длину меньше 30 метров – это примерно 0.85. То есть 85% пасов короче 30 метров.

У нас же обратная задача – разделить график на три равные части по вертикальной оси, то есть узнать, какой максимальной длины пасы, входящие в ~33% и ~66%. По графику видно, что треть – это ~11 метров, а две трети – ~20 метров.

Эти цифры нам постоянно нужно будет держать в голове во время анализа диаграмм, поэтому давайте подберем что-нибудь круглое, не жертвуя при этом разделением на равные доли. После нескольких попыток получаем: в 11.5 м попадает 33.33% передач, в 20 м – 66% передач. Таким образом, будем считать короткими передачи (0-11.5] м, средними (11.5-20] м, длинными – 20 м+.

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

Проблема 2. Графическое выделение точности передач

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

Наша идея в том, чтобы показывать точные и неточные передачи разными оттенками цветов. Например, точные короткие передачи темно-зеленого цвета, а неточные короткие – светло-зеленого. Так можно будет рассмотреть точность даже на мелких секторах, если подобрать контрастные цвета.

Для проверки метода выберем две команды с разным стилем пасов. «Аякс» в сезоне-18/19 – команда с наименьшей средней длиной паса. «Витория Сетубал» – с наибольшей. Построим графики за весь сезон для каждой из команд.

Сонар передач «Аякса»

Сонар передач «Витории Сетубал»

По беглому взгляду на графики стили игры команд легко отличимы. При этом для «Аякса» видны зоны длинных передач, а для «Витории» – коротких. Точность тоже легко читается – сразу видно большое количество неточных длинных пасов в штрафную у «Витории», большой процент точных коротких и средних пасов в середине поля у «Аякса».

Проще всего читать такие диаграммы, пользуясь алгоритмом Ричарда Хендрикса «Из центра наружу». Возьмем, к примеру, зону 25 на диаграмме «Аякса», самый большой сектор (зона на левом фланге в финальной трети). Начинаем с центра, там много темно-зеленого и немного светло-зеленого, то есть много точных коротких передач. По соотношению размеров секторов можно примерно понять, что точность коротких передач около 90%. Двигаемся наружу – темно-синяя зона и очень тонкая полоска светло-синего. Это значит, что средние передачи очень точные, почти 100%, но по соотношению синего и зеленого видно, что коротких передач больше. На краях сектора красные длинные передачи. Светло-красного немного больше, чем темно-красного, значит, приблизительная точность длинных передач в этом секторе 40-45%. При этом длинных передач немного меньше, чем средних. Таким образом, двигаясь из центра наружу, можно быстро прочитать сектор.

Проблема 3. А как нормировать?

Размер секторов ограничен, мы не можем бесконечно их увеличивать, так как они начнут накладываться друг на друга. Как оптимально распорядиться этим пространством?

В идеале хотелось бы зафиксировать максимальный размер сектора, чтобы графики по матчам и сезонам можно было бы удобно сравнивать между собой – сразу было бы видно, кто и из каких зон отдает больше передач. После анализа базы передач мы выяснили, что в 99% случаев из одного сектора за матч игроки делают до 7 пасов. Но иногда случаются и аномальные ситуации – например, в матче против «Шеффилд Юнайтед» ван Дейк отдал 24 паса из одного сектора.

Если закладывать с запасом и считать, что из сектора могут отдать 25-40 пасов, то для 99% остальных случаев сектора получатся слишком мелкими. Если заложить 5 или 10 как максимальный размер сектора – графика будет некорректна для 1% случаев. Мы решили, что избежим неточностей и будем определять размер сектора по максимальному в этом матче. Максимальное количество пасов в секторе указано в нижнем правом углу как «Max in sector».

Теперь графики не так удобно сравнивать между собой, но мы планируем сделать для сравнения игроков и команд отдельные типы диаграмм.

Телеграм-бот

Мы разработали телеграм-бота @xGlabBot, где вы сможете строить такие сонары. Сейчас доступен только режим просмотра игрока в одном матче, но мы планируем добавить также следующие режимы:

  • Игрок за сезон (если по ходу сезона игрок сменил команду, будет две отдельных диаграммы)
  • Команда в матче
  • Команда за сезон
  • Команда между двумя произвольными датами (будет полезно, если интересно отследить изменения с приходом нового тренера)

В базу матчей загружены матчи сезона-2019/20 топовых лиг Англии, Испании, Германии, Италии, Франции и России.

Если есть предложения, как улучшить бота, если нужно добавить ещё какие-то лиги или если что-то сломалось, пишите мне в телеграм: @egorgumin

В разработке участвовали:

Егор Гумин – автор статьи, собирал и обрабатывал данные. Админ телеграм-бота.

Даниил Гумин – разработал графическую библиотеку для отрисовки сонаров и закодил телеграм-бота.

Даниэль Жолковский – первый в нашем сообществе заинтересовался применением сонаров и закодил первую версию, учитывающую длину передач.

Сергей Титов – оценивал и консультировал по разработке графики и бота.