Telegram Group Search
А тем временем, спортс решил меня забанить
👍9🖕3
👍9🤡1
OpenSTARLab

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


https://arxiv.org/pdf/2502.02785

https://github.com/open-starlab
👍5
Еще раз про OpenSTARLab

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

1) У вас есть несколько поставщиков данных, и у каждого – свой способ разметки. Каждая компания выкладывает в открытый доступ небольшой сэмпл своих данных. Однако по отдельности таких данных обычно не хватает для полноценного ресерча. Поэтому возникла идея: перевести все эти данные в единый формат, объединить их и получить более-менее большой датасет.

2) Библиотека якобы облегчает процесс обработки данных. Мол, вы скачали сырые данные, прогнали их через библиотеку – и получили предобработанные данные. С этой задачей разберемся сразу. На практике там включены примитивные функции, вроде чтения данных, перевода их в pandas или преобразования координат из 120×80 в 105×68. Непонятно, почему человек не может сделать это самостоятельно, особенно в эпоху ChatGPT.

Теперь подробнее о первой задаче, связанной с унификацией форматов. Тем более что в новой библиотеке есть похожий функционал. Проблема в том, что, например, данные WyScout и StatsBomb сильно отличаются друг от друга. StatsBomb размечает прием мяча — пусть и не очень подробно (просто точка и время), но всё же. А в WyScout разметка приема зависит от энтузиазма разметчика — то есть чаще всего её просто нет.

И вот представьте, что вы пытаетесь объединить такие данные. Одна часть датасета содержит приемы мяча, другая — нет. В итоге получается какая-то ерунда. Чтобы привести данные к единому формату, вам придется удалить все приемы мяча из StatsBomb, чтобы датасеты стали похожими. Но имеет ли это смысл? Если для получения дополнительных данных приходится выкидывать полезную информацию, проще тогда работать с хорошим, но маленьким датасетом.

Более того, судя по тексту и коду, похоже, что авторы библиотеки вообще не работали с данными WyScout. Например, они переводят эвент Touch в Dribble, но в WyScout этим тегом вообще размечают всё подряд: это может быть и дриблинг, и прием мяча, и владение мячом без продвижения. Более того, там фиксируется даже неудачный прием — например, когда передача идет, мяч попадает в колено и улетает в сторону. В принципе, никого не обманули, касание - оно и в Африке касание.

Вообще говоря, можно прописать код с кучей if-ов, то можно задать логику, где Touch – это прием мяча, где – неудачный прием, а где – дриблинг. Но просто утверждать, что каждый Touch в WyScout – это Dribble, некорректно.

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

В этом плане репозиторий очень полезен: человек, который не следит за темой, может зайти, быстро ознакомиться с кодом, открыть ссылки на статьи – и не тратить время на долгие поиски. Всё собрано в одном месте. К тому же, из текста статьи не всегда (или не сразу) понятно, что именно было сделано.

Возможно, выдаю желаемое за действительное, но это чем-то напоминает конференцию MIT Sloan допандемийного образца: ты мог весь год ничего не делать, а потом прийти, посмотреть 6–7 свежих статей – и снова быть в теме. Сейчас подобным центром является ежегодный список Ван Харена, но этот добряк включает туда всё подряд, так что время хоть и экономится, но не так сильно.

Опять-таки, тем же студентам: зашел, пробежался по статьям и имплементациям, обозначил проблему, сделал получше – вот тебе и готовый курсач.
4🔥1💯1
Бывает😊
😁7
Уже давно удивляет (хотя, впрочем, уже привык), что нередко при построении футбольных xG-моделей не учитывают предыдущее событие. Ведь важно понимать, как именно мяч был доведён до удара. Тем более в "соседнем" хоккее это кажется очевидным.
Machine Learning in Sports

Бесплатная книжка (хотя скорее обширный обзор литературы) от профессора университета Нагойи Keisuke Fujii

https://link.springer.com/book/10.1007/978-981-96-1445-5
73
Player Pressure Map -- A Novel Representation of Pressure in Soccer for Evaluating Player Performance in Different Game Contexts

Заслуживающая внимания статья о детекции и анализе прессинга — как командного, так и индивидуального.

https://arxiv.org/abs/2401.16235
2👍1
Не знаю, как я упустил этот момент.

Уже давно выложены трекинг-данные по 600 матчам NBA за сезон 2016/2017.

Да, игра с тех пор сильно поменялась, но ничего не мешает побаловаться с "просроченными" данными, а потом заново обучиться на новых.

https://github.com/linouk23/NBA-Player-Movements
3
Задача на статистическую интуицию

Пример — игрушечный, и понятно, что на практике такое невозможно.

Нужно определить, у какого игрока удар сильнее.

Первый игрок сделал 100 ударов "на технику" со скоростью 100 км/ч и 10 ударов "на силу" со скоростью 150 км/ч.

Второй игрок тоже выполнил 100 ударов "на технику" со скоростью 100 км/ч, но дополнительно сделал 50 ударов "на силу" со скоростью 140 км/ч.

Проблема как раз в этих ударах "на технику". Если бы каждый раз футболисты били изо всех сил, можно было бы просто посчитать среднюю скорость и сравнить. Но в данном случае нам приходится сравнивать максимумы. По сути, в реальности первый игрок бьёт сильнее.

Однако это — идеализированная ситуация, где мы знаем истинные скорости. На практике скорости почти наверняка будут измерены с ошибкой. Давайте сымитируем эту ошибку: добавим нормально распределённый шум к обоим векторам, с таким расчётом, чтобы средняя по модулю ошибка составляла 10. Формально, добавим шум с дисперсией 10/0.798. Это означает, что мы переходим от истинных значений v к значениям v±10 в среднем по модулю.

Если прогнать все это безобразие через кучу итераций Монте-Карло и на каждой итерации определять, у какого игрока наблюдается большее максимальное значение, то в какой доле экспериментов окажется, что максимальная скорость первого игрока выше, чем у второго?
Чему примерно равна вероятность, что у первого игрока максимальная скорость удара будет выше, чем у второго
Anonymous Poll
10%
80-100%
17%
60-80%
19%
40-60%
14%
20-40%
5%
0-20%
35%
Не хочу думать
Как посчитать вероятности того, какие места займут команды, если известно математическое ожидание голов для каждой из них в каждом матче?

Голы в футболе распределены примерно по Пуассону, с небольшими отклонениями, особенно в районе нуля (можно ознакомиться с моделью Dixon-Coles). Чтобы посчитать вероятности каждой возможной разницы в счёте — 0, 1, 2, 3 и так далее — нужно "вычесть" два пуассоновских распределения. В результате получится распределение Скеллама. Оно как раз и описывает разницу голов и позволяет определить вероятность победы, ничьей или поражения: отрицательная разница — победа, ноль — ничья, положительная — поражение.

Зная вероятности исходов всех матчей, остаётся запустить Монте-Карло симуляцию турнира, чтобы получить распределение мест команд.

Ну и, конечно, — ода ChatGPT, который особенно хорош, когда ты знаешь, что должно получиться. Всего за пару вопросов он сгенерировал код, который можно найти в комментариях.
👍91
Letter to ECML chairs.pdf
562.5 KB
Пару недель назад в публичной форме выразил презрение к вялым, однако социально активным членам сообщества футбольных дата-сайентистов.

История такая: отправил три статьи на конференцию ECML. Две — это отполированные версии моих препринтов:

arxiv.org/abs/2310.11459
arxiv.org/abs/2406.00814

В итоге получил три отказа. Третья статья недоделана, и текст там так себе, поэтому отказ по ней я ожидал. А вот отзывы на первые две статьи были совсем неадекватными. В итоге написал письмо-апелляцию на 40 страниц организаторам конфы — прикреплено к посту. Ответили шаблонной дичью, мол, всё понимаем, можете на наш воркшоп податься. В ответ я назвал их не настоящими исследователями, а приспособленцами, которые защищают таких же коллег-паразитов. (на слове "приспособленец" я немного завис, так как из головы английский аналог не подобрал. Переводчик предложил opportunist, что, по мне, не совсем корректно.) После этого мне один из организаторов таки ответил, однако не предложил никакого конкретного решения.

Однако я вижу проблему не в самой конфе, а в сообществе "публичных" футбольных дата-сайентистов в целом. Чуть подробнее — в постах ниже.

Вообще, это уже второй раз, когда мне отказывают по неадекватным причинам. Два года назад отправлял пропозал (идея исследования на 500 слов) в StatsBomb Conference с рейтингами единоборств — причём я там предлагал посчитать не только верховые, но и дриблинг с отборами. Не взяли, даже забыли отказ прислать. Через год вижу пост от этих кретинов, что они, мол, Glicko на верховых единоборствах посчитали. Написал им на почту — мол, прокомментируете? Ответил Chief Marketing Officer (какой важный курица), что мы эти рейтинги внутри компании уже года три шатали. Я ему в ответ: ты что, меня за дебила держишь? Вы вертикальную координату в xG добавите — и потом пару лет этим хвастаетесь. Короче, написал тогда пост в линкедине, где, обыграв их слоган Data Champions, назвал их Data Clowns. Реакции от представителей SB не последовало. Однако, если верить профилю в линкедине, тогдашний Head of Data Science спустя две недели после моего поста работать там перестал.

На сам StatsBomb я тогда полноценно злился/обижался дня два. Всё это в некотором роде перешло в насмешку. Мол, ну в чём проблема была — принять на конфу и заимплементить? Тогда мне казалось, что просто эти идиоты пытаются строить из себя каких-то открывателей-ресерчеров. Сейчас думаю, что это была инициатива конкретного человека, от которого, скорее всего, требовали придумать что-то новое, а не всем отделом xG по пять лет улучшать. Вот он и решил забраковать что-то стоящее и записать на себя чужие идеи.

В общем, подумал тогда: да и хуй с этой конфой. Всё равно там ничего реально стоящего никогда не публиковалось. А то, что моя идея в итоге пошла в прод, как раз и говорит о том, что она чего-то да стоит. Сильно сомневаюсь, что опубликованные статейки на этой конфе вообще где-то использовались в реальной индустрии. Думаю, что эти "исследования" и самим авторам не особо нужны: "учёным" — чтобы KPI закрыть, остальным — себя попиарить, сфоткаться на Уэмбли в окружении таких же дебилов. Цирк уродцев.

Сделал тогда вывод, что надо подаваться на нормальные конференции. И вроде бы Applied Track ECML казался приличным выбором.
5🔥4🤣2
Вряд ли кто-то захочет читать 40-страничный текст, поэтому изложу суть через призму двух крайностей.

Крайность первая — относительно объективная.

Рецензентам нужно было ответить на несколько вопросов. Один из них — прикрепил ли автор данные и код. Варианты ответов:

1) Нет, и статья так плохо написана, что непонятно, как вообще всё это воспроизвести.
2) Код и данные не прикреплены, но по уважительным причинам.
3) Код и данные прикреплены.

На практике в форме можно было прикрепить ZIP-архив. И если он не прикреплён — это сразу видно.

К статье с рейтингами я архив прикрепил, причём папка data лежала прямо в корне. Два из четырёх рецензентов отмечают, что я не прикрепил код и данные.

Когда одна из организаторов, Inês Dutra, всё-таки ответила, она написала что-то в духе: мол, peer-review процесс, конечно, скомпрометирован, но альтернатив нет. Да и вообще — наука уже давно погрязла в дерьме и прочие бла-бла-бла про академический мир.

Я ей написал, что изначально был пессимистично настроен по поводу своей жалобы. То, что у вас творится какая-то дичь — это и так очевидно. Но вот признать это официально — значит запустить хоть какие-то процессы. Если мы соглашаемся, что, как минимум, два рецензента были предвзяты, то их нужно кем-то заменить? А кем? Людей надо искать. Или, не дай бог, самой отзывы писать. А это лень. Так что вы — такая же часть этого академического мира, как и все остальные. Я ведь дал вам шанс этот мир хоть немного улучшить — но вы предпочли ничего не делать.
3
Крайность вторая — детективная.

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

1) К статье по рейтингам один из рецензентов порекомендовал мне почитать статейки из Springer Machine Learning Journal Soccer Prediction Challenge. На мой взгляд, довольно паршивые. Один из гостевых редакторов этого выпуска — Jesse Davis, руководитель лабы DTAI Sports Analytics Lab at KU Leuven.

2) К статье про EPV один из рецензентов толсто намекнул, что я плагиатчик, который не процитировал "ключевые" статьи:

a) Actions speak louder than goals: valuing player actions in soccer — авторы из всё той же DTAI, Jesse Davis среди соавторов.
b) un-xPass: Measuring Soccer Player's Creativity — снова DTAI и снова Jesse Davis.

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

3) По третьей статье я снова получаю настоятельную рекомендацию к un-xPass. Дополнительно упоминается отвратительная статья Towards maximizing expected possession outcome in soccer, где вторым автором значится бывший член DTAI — Jan Van Haaren.

4) Воркшоп, на который меня послали организаторы — тоже проводится людьми из DTAI.

5) Пока гуглил почты организаторов, внезапно обнаружил, что самая цитируемая статья вышеупомянутой Inês Dutra была написана в соавторстве с Jesse Davis.


Возможно, я параноик. Но вам не кажется, что чего-то многовато этого чувака в одном и том же месте, примерно в одно и то же время?

А если я всё-таки не параноик, то вырисовывается картина откровенно пиздецовая: когда представители одной лабы систематически пушат авторов цитировать свои убогие статьи, только потому что ты их не процитировал. Зато если процитируешь — добро пожаловать на воркшоп. А мы за твой счет цитируемость накрутим.

Если что, документ содержит негативные обзоры на вышеприведенные статьи.
6🤔2🤣1💊1
Trajectory Imputation in Multi-Agent Sports with Derivative-Accumulating Self-Ensemble

Был на ECML и позитивный момент. На ревью попалась действительно хорошая статья. Оценил в +2 при шкале [-3, +3], правда, организаторы дали три дня на оценку, поэтому пришлось поставить низкий уровень экспертизы.

В статье восстанавливаются траектории игроков за кадром для баскетбола, футбола и американского футбола. Решение вряд ли претендует на SOTA. Сам я так неплохо глаза выпучил, когда прочитал, что кубический сплайн перебил решение DeepMind. Но авторы признались, что у них просто данных мало было. Код выложен, собственно этим статья и понравилась. Если нужно будет относительно быстро решать похожую задачу, то способы уже есть.

Статья
Код
Ссылка на пост
2👍1
⚽️ Новая возможность работы в футболе - Computer Vision-стартап AIstats расширяет свою команду.

AIstats — стартап, который недавно привлёк $1.5M и уже сотрудничает с такими клубами как “Ньюкасл Юнайтед”, “Брентфорд”, “Комо” и “Ди-Си Юнайтед”. У любителей футбола из IT есть шанс присоединиться к команде, которая меняет подход к анализу игры.

AIstats обрабатывает видеотрансляции матчей из 150+ футбольных лиг и воссоздаёт полную 3D-модель игры, в которой трекаются координаты 20 ключевых точек на теле каждого игрока. Данные фиксируются с частотой 25 раз в секунду — всё это создаёт фундамент для более глубокой, недоступной ранее оценки действий на поле.

Одно из главных преимуществ подхода AIstats — высокая детализация ивентов. К примеру, для ивента отбор вместо примитивных параметров вроде успешности AIstats предоставляет десятки взглядов на это действие: по части тела (левая/правая нога и др.), типу отбора (подкат, корпусом, стоя, со спины) и по инициатору (атака, защита, обе стороны) и так далее. Кроме того, трёхмерный анализ позволяет выявлять уникальные события — такие как pitch scanning, 1-on-1 defending, push-on и другие — и давать более полную картину по важным для скаутинга (но плохо обсчитываемым ранее) компонентам: первое касание и игра под давлением.

Но наиболее инновационной разработкой AIstats является AI Scout, публичный релиз которого запланирован на Q1 2026 года. В этом видео компания показала, как они предлагают оптимизировать процесс анализа игроков и данных за счет применения ChatGPT-формата.

Команда AIstats уже насчитывает 25+ человек и в связи со скорым релизом активно ищет усиление среди футбольных энтузиастов по всем направлениям:

- Команда разработчиков (Data Scientists, CV/ML Engineers, Backend (Node.JS), Backend (Python), Data Engineers, Frontend (Vue.JS), DevOps)
- Продуктовая команда (Product/Project Managers, Data Analysts)
- А также специалистов поддержки и разметчиков данных

AIstats предлагает полностью удаленную работу и рассматривает кандидатов с любым уровнем знаний (от Junior до C-level).

📩 Оставляйте свои заявки через телеграм-бот @aistats_bot или почту [email protected] и станьте частью AIstats!
🔥5
Если что, дата сайентистов буду я собеседовать😊

Отдел Data Science включает в себя R&D, что, наверное, и так очевидно. Воспроизвести xG, xP и прочие PitchControl несложно, особенно если формат данных удобный. А вот придумать новую метрику или значительно улучшить условный EPV — уже посложнее. При этом важно понимать, что ресёрч не заканчивается написанием прототипа — модель нужно довести до продакшен-состояния.

По сути, необходимо уметь переводить футбольные бизнес-требования в модель или метрику. Отсюда идеальный кандидат выглядит так:

- опыт с табличными ML-моделями;
- чистый код на Python;
- знание теории вероятностей и математической статистики;
- опыт с deep learning;
- интерес к футболу;
- любовь к написанию тестов.

Если чего-то из этого не хватает — не беда. Если вы крутой ресёрчер в jupyter notebook — мы вам рады. Если с креативом не сложилось, но вы умеете надёжно писать полезную рутину, которая, например, автоматически исправляет ошибки в сырых данных — мы тоже вам рады.

Отбор будет состоять из трех этапов:

1. Отсев по резюме. Если есть github - пожалуйста, прикрепите.
2. Собеседование примерно на час-полтора. Поговорим о вашем предыдущем опыте. Также будет задача на подобие ML System Design. Никаких leetcode.
3. Знакомство с командой.
🔥13
Небольшие пояснения:
1) вопросы можно задавать через телеграм-бот @aistats_bot или почту [email protected]
2) Собеседования на DS-позиции раньше 11 августа не начнутся. Если есть желание, то есть время, чтобы почистить пет-проекты. В первую очередь касается кандидатов без опыта.
2025/08/27 19:58:37
Back to Top
HTML Embed Code: