Прогнозування Всіх Зірок НБА 2025

pic

(Фото від TJ Dragotta на Unsplash)

Оскільки голосування за Всіх Зірок офіційно завершено, я хочу поділитися своїми прогнозами щодо того, хто буде обраний (і моїми реальними думками після цього), до того, як стартери для Всіх Зірок будуть оголошені завтра. Застосовуючи просте середнє кількох моделей класифікації з використанням SKLearn в Python, я отримав деякі реалістичні висновки!

Весь код і дані, які я використовував, скоро будуть доступні на GitHub.

Як отримати "дійсні" дані?

Прогнозування Всіх Зірок — це не те саме, що прогнозування MVP з точки зору даних. Коли ви прогнозуєте MVP, дуже легко запустити скрапер на відомій баскетбольній базі даних і зібрати дані за весь сезон.

Ми можемо працювати лише з даними до завершення голосування за Всіх Зірок. Адже саме в цей період гравці справді оцінюються, навіть якщо Всіх Зірок оголошують пізніше. Ці дати є публічними для всіх. Наприклад, цього року голосування за Всіх Зірок завершилось в понеділок. Однак ефективно збирати дані, що залежать від дати (особливо просунуту статистику), з Інтернету — це складно. Я зупинився на дуже надійній nba-api, щоб (так би мовити) вирішити це, використовуючи спеціалізований метод для вилучення даних.

Були деякі обмеження. Деякі просунуті статистики, такі як PER (Player Efficiency Rating) і Win Shares, зазвичай обчислюються в кінці повного сезону, тому вони не були доступні. Це були б цінні характеристики для включення в нашу модель, але ми можемо обійтися й без них.

“Критерії” для відбору Всіх Зірок змінювались з часом. Існували цікаві приклади (Меджік Джонсон у 1992 році, Яо Мін у 2011 році тощо), які суперечать “логіці” того, що означає бути Всім Зіркою. Я б сказав, що “критерії” залишалися стабільними протягом останнього десятиліття (єдиними винятками насправді є Дірк Новіцкі та Двейн Уейд у 2019 році, коли вони пішли на пенсію). Отже, я зібрав дані з останніх 10 сезонів перед поточним роком як набір для навчання.

Що визначає Всіх Зірок?

Для цього проєкту збір даних становив більше 90% роботи. Найважливішим кроком до створення моєї моделі було визначення, які характеристики використовувати. Тобто, що робить Всіх Зірок Всім Зіркою?

По-перше, необхідно зіграти достатньо ігор та хвилин. Я автоматично відфільтрував набір даних, щоб включити лише тих, хто зіграв більше 15 хвилин за гру, з понад 10 іграми, в середньому заробляючи не менше 5 очок. Це вже відкидає половину доступних гравців.

Тепер переходимо до дії. Я зупинився на двох основних "категоріях": Навички та Репутація. Я приблизно визначив "навички" як результати гравця на полі. Існують деякі просунуті статистики, які призначені для вимірювання цієї здатності, але немає кращого способу "припустити" навички, ніж добре старе набивання очок, виміряне як очок за гру. Як давній голосувач за Всіх Зірок, я часто порівнював зіркових гравців за їхніми очками за гру (навіть якщо це не їхня основна здатність).

pic

Розподіли PPG, “Не обраний Всім Зіркою” (0.0) vs. “Всім Зіркою” (1.0), сезони 2015–2024 (зображення авторське)

Серед усіх характеристик, які я вибрав, PPG була найбільш пов'язана з тим, чи обраний гравець Всім Зіркою. На графіку вище це вже виглядає логічно. Більшість Всіх Зірок — майже завжди це найкращі снайпери ліги!

Однак, дивлячись на великі відхилення на графіку, PPG не може бути головною складовою. Ось інші характеристики "навичок", які я отримав:

  • “Простий” GameScore: агрегована статистика інших показників без штрафів; 0.7 • OREB + 0.3 • DREB + STL + 0.7 • AST + 0.7 • BLK.
  • Кількість зіграних ігор. Це було б "навичкою", оскільки рідко бачиш, щоб гравці потрапляли на велике свято без великої кількості ігор у регулярному сезоні.
  • Плюс-Мінус.
    Це проста статистика з коробкових результатів, яка зазвичай допомагає виявити ефективних гравців на переможних командах… яких ми зазвичай бачимо на грі Всіх Зірок.

Інші характеристики використовуються для визначення "репутації" гравця. Перш ніж перелічити їх усі, хочу виділити кілька:

Оцінка команди. Це в основному мій спосіб оцінки "популярності" команди, і вона важлива, особливо коли медіа складають 25% (!) остаточного голосування. Команди з великих ринків мають більшу ймовірність отримати відбір на Всіх Зірок, ніж команди з малих ринків. І це доведено за останнє десятиліття.

Розсіювальний графік між зростанням оцінки NBA команди (2015-сьогодні) та кількістю виборів до Всіх Зірок за цей період. (Інтерактивно, авторське зображення)

Можливо, це допоможе пояснити, чому деякі великі пропуски у голосуванні на Всіх Зірок (наприклад, Домантас Сабоніс у 2024 році) приходять з команд малих ринків. Ми можемо зробити висновок, що популярні гравці допомагають команді зростати в ринковій оцінці (Стефен Каррі з "Ворріорс", Кобі/Леброн з "Лейкерс")… це означає, що команди малих ринків насправді не залучають популярних гравців.

Популярність гравця. Це, по суті, те, що намагається відтворити 50% голосування фанатів у загальному відборі, і що справді визначає загальну репутацію гравця. Саме це приводить знайомі обличчя до великої гри кожного року. Є кілька методів вимірювання цього, які я відкинув: соціальні медіа (деякі популярні гравці, такі як Нікола Йокіч, не мають акаунтів), пошукові запити в Wikipedia (дуже важко обробляти з точки зору часу), навіть зарплата гравця (деякі популярні гравці мають контракти новачків!). Я зупинився на Google Trends. Python надає безкоштовне API (PyTrends), яке дозволяє мені відслідковувати "зацікавленість" гравця в пошуку з часом! Я обробив зважене середнє зацікавленості гравця з минулого тижня та з 28 днів перед цим:

pic

10 найпопулярніших гравців NBA в Google Trends з 18 грудня по 15 січня (зображення авторське).

Це або молоді гравці, активні в соціальних медіа, або знаменитості. Або й те, й інше. Чудово!

Ось інші характеристики:

  • Кількість попередніх відборів на Всіх Зірок. Це точно допоможе при розв’язанні суперечок між двома кандидатами.
  • Всіх Зірок минулого року? Допомагає внести деяку "свіжість".
  • Вікова категорія. Я визначив це приблизно як 4 "групи".
  • Перемоги команди. Не перемоги гравця. Фанати швидше побачать гравців у команді, що перемагає, а не "переможців".

Щоб визначити, чи підходять ці характеристики для моделі класифікації, я створив матрицю кореляції:

pic

(Зображення авторське)

Кореляції, які виділяються для мене: Очки проти Simple Game Score (оскільки високі снайпери зазвичай виділяються і в інших категоріях), Перемоги команди проти Плюс-Мінус (гравці з високим +/- зазвичай знаходяться в переможних командах), і Очки проти Зацікавленості (оскільки високі снайпери зазвичай популярніші). Я розглядав можливість видалення або Перемог команди, або Плюс-Мінус, але вирішив цього не робити, оскільки Плюс-Мінус також може виявити ефективних гравців у програших командах, які інколи потрапляють до складу.

Окрім очок за гру, як інші змінні корелюють з результатом?

pic

Кореляція з точкою-бісерією характеристик відносно бінарного класу. (Зображення авторське).

Є кілька активних відхилень: Ігри, Оцінка команди та Вік. Оскільки це кореляції характеристик, ці змінні не будуть дуже корисними в нашій моделі Логістичної регресії (оскільки вона припускає лінійні взаємозв’язки), але можуть мати вплив на моделі SVM і RandomForest. Ці змінні все ж зіграють роль у фінальному прогнозі.

Як ми прогнозуємо наших Всіх Зірок?

Оскільки ми прогнозуємо, чи є гравець Всім Зіркою, це проблема класифікації.
Є дуже розвинуті нейронні мережі, які можуть надавати надійні прогнози… але наш набір даних, з лише десятьма характеристиками та менше ніж 3000 екземплярів, не принесе значної користі від складних моделей, порівняно з простими, добре налаштованими моделями, що заощадить нам багато часу і ресурсів.

SKLearn популярний завдяки наданню таких моделей, і я обрав саме його. Я спробував три різні підходи: Логістичну регресію, Класифікатор підтримки векторів (SVC) та RandomForest. Навчаючи на 10 повних сезонах (2015-2024 роки) і тестуючи на поточному сезоні, ось результати після навчання, виміряючи точність моделі через перехресну перевірку:

pic

(Зображення авторське)

Використовуючи 5 фолдів, з огляду на відносно низьку варіацію (від ~0,3% до ~0,6%), ми можемо побачити, що наша модель правильно класифікує 95% зразків у валідаційних даних. Оскільки ми не маємо етикеток для наших тестових даних, ми змушені покладатися на ці метрики як оцінку очікуваної точності моделі.

Тепер, коли ми підтвердили надійність цих моделей, ми ще не протестували їх на даних. Важлива деталь перед подальшою роботою — я стандартизував усі свої характеристики та логарифмічно нормалізував ті, у яких спостерігаються викривлені розподіли. Для моделей, які працюють з обчисленнями на основі відстані, як SVM та логістична регресія, це важливий крок!

pic

pic

Порівняння "сирої" та стандартизованої форм PTS характеристики (Зображення авторське).

Хто є Всім Зіркою?

Отже, які прогнози дали мої моделі? Вони варіювались. Я знайшов, що краще покладатися на ймовірність етикетки, яка належить до певного класу, а не просто на те, чи є гравець Всім Зіркою чи ні. Щоб згладити індивідуальні упередження моделей та варіацію, я вирішив взяти середнє ансамблю ймовірностей трьох моделей, оскільки ми раніше бачили, що всі ці моделі майже однаково надійні. Оскільки 12 гравців з кожної конференції спочатку обираються на велику гру, без подальших затримок, ось найімовірніші 24 гравці моєї моделі (використовуючи середнє ймовірності моделі як показник):

pic

(Зображення авторське)

Дуже хороший результат на перший погляд! Очевидно, є два моменти, на які слід звернути увагу: (1) команди не просто структуровані таким чином, і (2) що з гравцями, які наступні на заміну травмованим Всім Зіркам?

Щоб виправити ці проблеми, я переробив фінальний вихід, щоб створити "команди Всіх Зірок" моїх моделей:

pic

Прогнози для Західної конференції (Зображення авторське).

pic

Прогнози для Східної конференції (Зображення авторське).

Значно краще! Вау, багато чого можна розглянути. І так само багато для критики!

Висновок + Мої думки

Прогнозування результатів у спорті, особливо в такому суб'єктивному змаганні, як гра Всіх Зірок, — це складно. Кожного року ми бачимо деякі шокуючі вибори, а деякі гравці залишаються поза грою, тож хто дійсно знає, хто розумніший?

Це стосується і мого підходу на основі ML, який мав свої недоліки. Очевидно, що було місце для покращення! Я вже згадував свої обмеження щодо даних, які можна покращити завдяки більш детальному веб-скрапінгу. Крім того, краще оцінювання вибору характеристик могло б покращити надійність моїх моделей. Якщо б я міг змінити одну річ у своїх характеристиках, то я б хотів додати надійний BPM (box plus-minus, відкориговану форму +/- що історично визначає гравців кращої якості).
Я впевнений, що з деяким удосконаленням, додавання цієї характеристики могло б стати можливим, можливо, зробивши модель ще надійнішою.

Тепер мої думки щодо результатів моделі:

  • Три центри, що стартують на заході? Я знаю, що це дозволено, оскільки три гравці передньої лінії голосуються. Джокіч, Вембі (!!!) та Ентоні Девіс — це зірки самі по собі. Але давайте не будемо дурити себе… Леброн точно буде стартувати цього року. Я думаю, популярність Вембі дозволяє йому бути стартером, а Леброн стартує замість Ентоні Девіса.
  • Стівен Каррі як потенційний замінник? Це означає, що він, ймовірно, не потрапить на гру Всіх Зірок. Як я це бачу, хоча це і не найкращий рік для нього, я все ще вважаю, що він буде обраний резервістом. Якби це мав бути вибір між гравцями задньої лінії… я б сказав Де'Аарон Фокс, суперзірка з малих ринків.
  • Чи Захід дійсно кращий за Схід, з точки зору гравців? Якщо поставити такого гравця, як Тайріс Голлібертон, на Захід, то він, ймовірно, не потрапить на гру Всіх Зірок (він переживає складний сезон!). Точно так само, досвідчений гравець, як Девін Букер чи Кайрі, ймовірно, буде резервістом на Сході. Просто подивившись на ймовірності для гравців у кожній конференції, це неймовірно!
  • Перші вибори? Мабуть, це рік, коли деякі ветерани можуть бути виключені на користь новачків! Кад Каннінгем, Джейлен Вільямс, Еван Моблі, Альперен Шенгюн… і, звісно, Вембі! Сподіваюся, це буде так.

Увесь цей процес, від збору даних до фінальних результатів, в цілому є просто цікавим проєктом. Я справді насолоджувався тим, що пробував нові підходи до вирішення цього досить старого питання в аналітиці баскетболу, і сподіваюся, що це принесло нові ідеї щодо того, як нетрадиційні характеристики можуть бути використані в таких моделях.

З нетерпінням чекаю, хто буде оголошений завтра!

Перекладено з: Predicting the 2025 NBA All-Stars

Leave a Reply

Your email address will not be published. Required fields are marked *