Привет, меня зовут Веня, и я фанат футбола. Поглощаю много матчей и околофутбольного контента каждую неделю. Плюс по работе связан со спортом в целом. Не напрямую, но связан.
Поэтому естественным образом погружаюсь в специфику футбола, метрик и аналитики. Но все равно не чувствую себя в этой теме хоть немного уверенней. Где-то между обычным обывателем, который раз в неделю под пивасик смотрит футбол и в целом может объяснить, что такое xG, и стажером-аналитиком, который способен проанализировать матч, нарисовать несколько красивых графиков и тепловых карт.
Решил, что хочу глубже в этой теме разбираться.
Обложился нейронками, сформировал план по изучению футбольной аналитики, ну и погнали.
Этот блог по сути мой дневник обучения и база знаний. Буду закидывать сюда структурированные мной знания и рассказывать, как получается с практикой.
Ну а в первой статье расскажу про план и инструменты, которыми обложился, чтобы учиться.
Плюс про то, как проходят первые две недели.
Итак.
Как я составил план
Я очень люблю нейросети и последнее время ничего не делаю без них, поэтому первым делом пошел в Клод с таким запросом:
Я хочу прокачаться в футбольной аналитике, то есть видеть цифры, статистику, уметь выявлять из нее паттерны и всякое такое
Но сначала мне нужен вообще фундамент какой-то От тебя нужна помощь в составлении плана, поиске материалов для погружения и т.д.
Но сначала задай вопросы, давай понимание задачи сформулируем
Через несколько итераций вопросов и уточнений получился план на 6 недель, разбитый по этапам.
Важное отступление: если я сильно чем-то увлекаюсь, то мне сложно следовать планам. Поэтому план для меня — это больше вектор, куда я иду, а не чек-лист, от которого нельзя отходить. К тому же я достаточно занятой (=ленивый) человек, и мне сложно будет соблюдать темп, который я себе задал. Для меня это не проблема, я сразу это знаю и сильно по этому поводу не переживаю. Отходить от плана для меня норма.
План
Этап 1 — Язык данных (недели 1–2)
Разобраться, какие бывают метрики, какие бывают данные и откуда их брать. В основном теория.
Цель этапа: своими словами объяснить 10 базовых метрик — что они показывают и где врут.
Метрики, которые нужно изучить:

Как учиться:
читать объяснения метрик в Opta Analyst: Metric Explainers
параллельно книгу The Expected Goals Philosophy,
курс на Stepik,
раз в неделю смотреть матч и сравнивать впечатление с xG-статистикой.
И вести свой глоссарий: метрика → объяснение своими словами → ограничения.
Прогресс:
Собрал в Обсидиане базу знаний, куда стараюсь записывать своими словами метрики и их значения. Плюс отдельные документы про виды данных и источники. В источники еще пишу их ограничения и собираю шаблоны в виде кода про то, как из них данные вытаскивать. В будущем планирую собрать небольшой интерфейс, который позволит не писать код каждый раз заново, а просто вытаскивать сходу данные, которые нужно.

Этап 2 — Данные руками (недели 3–6)
Самому выгружать данные матча и строить 4 базовых графика:
Карта ударов с xG: где били и насколько опасно.
xG-таймлайн матча: кто и когда доминировал.
Сеть передач: как команда строит игру, кто центр связей.
Тепловая карта прессинга: где команда отбирает мяч.
По плану код должен был писать Клод, а я — ставить задачу и проверять результат. В итоге решил писать сам: Клод помогает разобраться и дает задачки, чтобы я глубже погружался.
Для изучения выбрал финал Лиги чемпионов 18/19 — где мой любимый Ливерпуль обыграл Тоттенхем 2:0. Этот матч есть в StatsBomb.

Прогресс:
На первой же неделе своего обучения решил сходу в практику пойти, чтобы и интересней было и теорию закреплять на деле. Подключил через Гугл Колаб mplsoccer и подгрузил все нужные данные по матчу из StatsBomb, вытащил все удары с xG и non-penalty xG.
И построил первый график — карту ударов: где били и насколько опасно. Чем больше круг, тем выше xG удара, звездочки — голы.
Пока смотрится по колхозному, но моя цель — понять базу. Над красивыми графиками в стиле популярных блогов буду думать позже.

Из наблюдений: кажется, что не самый удачный матч для первого анализа взял. Ливерпуль забил с пенальти на первых минутах, что сильно повлияло на весь матч: без пенальти у Ливерпуля всего 0,42 xG, а у Тоттенхема — 0,92. В аналитике это вроде как называется game state — состояние счета для конкретной команды: ведет она, проигрывает или играет вничью. От этого команды действуют по-разному, и статистика матча искажается. Для меня пока рано так глубоко погружаться, но запомнил.
Решил все равно этот финал добить — посмотреть, что будет, и потом сравнить свои ощущения с другим матчем.
Этап 3 — Своя лига (с недели 7 и до бесконечности)
Взять одну лигу и учиться на ней. Цель — знать ее по цифрам лучше большинства болельщиков и регулярно находить в ней паттерны.
Этап 4 — Все что угодно
Если доберусь до этого этапа, то там видно будет, куда это все меня занесет.
Инструменты
— Клод (Claude). Главный помощник: собрал со мной план, объясняет непонятное, дает задачки и разбирает ошибки в коде. Если ошибся — подскажет где и почему.
— Обсидиан (Obsidian). База знаний по обучению: глоссарий метрик, заметки, рабочий код. Он хранит все в обычных md-файлах, а этот формат нейронки тоже уважают. Можно просто показать Клоду папку с заметками, и он понимает, на чем я остановился.
— Гугл Колаб (Google Colab). Лень поднимать инфраструктуру на компе, поэтому код пишу там. Бесплатно, прямо в браузере, все сохраняется на гугл диск, библиотеки ставятся одной строкой. Из минусов: если долго не трогать, Колаб забывает все переменные, и весь код приходится перезапускать с самого начала.
— Python + mplsoccer. Библиотека для футбольных графиков: рисует поле, карты ударов, тепловые карты и сама умеет загружать открытые данные StatsBomb.
— Степик (Stepik). Там есть бесплатный вводный курс по анализу футбольных данных.

Что успел понять за первые дни
Какие бывают данные:
Event data — каждое действие с мячом: пасы, удары, отборы, потери. С координатами, временем и игроком. Основа почти всех метрик. Минус: не видно, что происходит без мяча.
Tracking data — координаты всех игроков и мяча 10–25 раз в секунду. Видна вся структура игры, но бесплатно таких данных почти нет.
Снимки позиций (360 / freeze frames) — где стояли все игроки в момент конкретного события. Компромисс между первыми двумя.
Физические данные — пробег, спринты, ускорения.
Метаданные — составы, позиции, замены, тренеры.
Где брать данные:
StatsBomb Open Data — бесплатные event data по части матчей и турниров: несколько целых сезонов лиг, финалы Лиги чемпионов, ЧМ-2022, Евро-2024. На нем сейчас и учусь.
FBref — раньше был главным бесплатным источником, но в этом году Opta забрала у него продвинутую статистику. Половина старых туториалов на нем больше не работает.
Understat — xG по ударам для шести лиг, включая РПЛ. Только удары, без передач и обороны.
FotMob — много данных по матчам, но официального API нет.
Трансфермаркт — попробовал вытащить данные игроков скриптом, сайт не отдал: защита от ботов.
Вывод: для учебы бесплатного материала хватает, а для чего-то серьезного данные надо лицензировать.
Выводы за две недели
Стараюсь выделять по 1–1,5 часа каждый будний день. На выходных отдыхаю: смотрю футбол и пытаюсь делать это «аналитически».
Первый этап занял у меня один день сконцентрированной работы. Собрал список метрик, понял, откуда тянуть данные, и на второй день ушел в практику. Теория — хорошо, но лучше усваивается, когда делаешь руками. Да и интереснее так! Насколько это правильное решение, будет видно дальше.
Стараюсь не привязываться к плану. В процессе погружения появляется много новой инфы, которую закидываю себе в беклог обучения или сходу вникаю. Опять же: план → вектор, не чек-лист.
Понял, что без хоть какого-то базового понимания программирования будет сложно с нуля. Я немного знаю python, поэтому могу разобраться что к чему. Это выручает.
Все еще не понимаю, где брать открытые данные по текущему сезону. Но это проблема третьего этапа, сейчас не заморачиваюсь.
Чем глубже копаю, тем больше нахожу историй вокруг данных в футболе. Например, наткнулся на «data-дерби» Брентфорда и Брайтона: оба клуба принадлежат людям, которые строят команды на данных. Закинул в беклог — хочу изучить эту историю и, возможно, статью напишу про это.
Дальше буду писать про свой прогресс: метрики, первые графики, наблюдения и грабли.
Есть здесь те, кто тоже учится аналитике или недавно прошел этот путь? Поделитесь, с чего начинали и на чем спотыкались, что я не учел в своем плане. И если знаете, где брать открытые данные по текущем сезонам в топ лигах, буду благодарен за подсказку.





Комментарии
Но когда дойду до продвинутых метрик, попробую посчитать на каком-нибудь матче и сравнить с оценками Sofascore. Интересно, что получится.