Можем ли да използваме машинно обучение, за да предвидим точно изхода от двубой по смесени бойни изкуства (ММА)?

В света на спортния хазарт има ожесточена конкуренция за алгоритми за намиране на баланс между генерирането на печалба на техните собственици, като същевременно предлагат конкурентни коефициенти на клиентите. Със знанията, които придобих по време на моя Data Science Bootcamp във Flatiron School, реших да сравня различни класификационни модели на машинно обучение по отношение на способността им да избират победителя в ММА битка.

MMA данни

Популярността на MMA бързо нарасна през последните няколко години, като Ultimate Fighting Championship (UFC) беше пионер в промоцията и се утвърди като лидер в привличането на най-добрите спортисти и най-големите наградни фондове. Бяха събрани данни от FightMetric за над 4500 UFC двубоя и близо 2500 UFC бойци. Данните включват характеристики като възрастта на всеки боец ​​по време на битката, техния ръст, обсег, както и бойни статистики като точност на удара или защита при сваляне.

Сравнение на модели

За да се опростят изчисленията, прогнозите на моделите бяха направени на двоичен клас (боец 1 печели или боец ​​2 печели). Точността беше избрана като показател за ефективност, тъй като ние просто искаме да знаем какъв процент от двубоите точно прогнозира моделът и фалшивите положителни резултати имат равна цена на фалшивите отрицателни. 7 класификационни модела бяха сравнени с базов модел с нулева степен на точност от 0,5 (базовият модел просто избра боец ​​1 да печели всеки път). Сравнените модели бяха както следва:

  • Модели за проста класификация: K-най-близки съседи и логистична регресия
  • Ансамбъл модели: Random Forest, Ada Boost, eXtreme Gradient Boost (XG Boost)
  • Последователни невронни мрежи с функция за активиране на хиперболичен тангенс (tanh) или Relu.

Печеливш модел в действие

Моделът XGBoost постигна най-висока точност със 73,7%. След това това беше разгърнато във функция за прогнозиране на резултата от бъдеща битка. По-долу можем да видим функцията в действие.

Бъдеща работа

  • Точност — всички модели се бориха да достигнат 75% точност. Това предполага, че може да се нуждаем от някои други данни, като например дали имаш несъответствие в бойните стилове или дали боецът се бие в родния си град и има някакво предимство в родния си град
  • Внедряване като приложение/уебсайт — Сега, когато функцията работи, използването на нещо като Flask като рамка на уеб приложение може да направи функцията по-достъпна за потребителите.
  • MultiClass Резултат — Данните бяха опростени до само 2 резултата. В действителност битка може да завърши наравно, както и без състезание (напр. един боец ​​използва неправилен ход). Тези класове могат също така да включват как е приключила битката (напр. с нокаут или решение)