Какво прогнозираме
За всеки предстоящ мач в нашия център на прогнозите Liga.bg публикува четири вероятностни прогнози преди първия съдийски сигнал:
- Краен резултат (1Х2): вероятност за победа на домакина, равен и победа на госта, сумиращи се до 100%.
- И двата отбора да отбележат (БТС): вероятност всеки отбор да отбележи поне един гол.
- Над / Под 2.5 гола: вероятност мачът да завърши с 3 или повече гола общо.
- Най-вероятен точен резултат: единичният резултат с най-висока вероятност според модела.
Всяка вероятност се показва до прогнозата. Никога не публикуваме „избор“ без подлежащата вероятност — за да можеш сам да прецениш увереността ни.
Безплатният модел: ELO + Поасон
Безплатната прогноза, която виждаш на всеки мач (със зелена рамка и етикет „Безплатна прогноза“), е собствена реализация, която съчетава две добре изучени идеи от спортната аналитика:
1. ELO рейтинги на отборите
Всеки отбор има числов рейтинг на силата. След всеки приключил мач рейтингите на двата отбора се обновяват според резултата и разликата в рейтингите преди мача. Силни отбори, които побеждават слаби, печелят малко; слаби отбори, които побеждават силни — печелят много. K-факторът контролира колко бързо рейтингите реагират на нови резултати; използваме по-висок K за нови отбори и го намаляваме с натрупването на изиграни мачове.
Разликата в рейтингите между два отбора съответства на базова вероятност за победа по стандартната логистична ELO крива. Отбор с 100 ELO точки преимущество има базова вероятност около 64% за победа на неутрален терен.
2. Поасонов модел за голове
Върху ELO базата, очакваните голове за всеки отбор се извличат от Поасоново разпределение, чиято средна стойност идва от средното за първенството (текущ сезон), модулирано чрез атакуващи/защитни коефициенти, изведени от разликата в рейтингите и коригирани спрямо предимството на домакина. Конволюцията на двете Поасонови разпределения дава пълна вероятностна матрица за всички възможни резултати (0:0, 1:0, 1:1, …). От тази матрица сумираме съответните клетки, за да изведем:
- 1Х2 — сума на резултатите, при които голове на домакина > / = / < голове на госта
- БТС — сума на резултатите, при които и двата отбора са отбелязали поне веднъж
- Над 2.5 — сума на резултатите, при които общите голове ≥ 3
- Точен резултат — клетката с най-висока вероятност (argmax)
Това, което показваме, е цялата вероятностна матрица, не мнение върху нея. Няма ръчно намесване в стойностите.
Pro AI прогноза: новият модел (XGBoost)
Pro AI прогноза, която виждаш отгоре на всеки мач (с градиентна синьо-лилаво-розова рамка и значка „Pro AI прогноза“), е отделен модел, обучен върху хиляди приключили мачове. Това не е надстройка на ELO + Поасон, а паралелна, независима имплементация.
Алгоритъм
Pro AI използва XGBoost, gradient boosted decision trees, които в момента са златният стандарт в спортната аналитика. Това е същият клас алгоритъм, който водещите статистически прогнози в света използват за прогнозиране на футбол, защото улавя нелинейни взаимодействия (например „почивка под 3 дни + дълго пътуване + повишен брой контузени“) по начин, който една логистична крива не може.
Изграждаме три отделни XGBoost модела за всеки мач:
- 1Х2 модел: мултикласова класификация (softmax probabilities за победа на домакин / равенство / победа на гост).
- БТС модел: бинарна класификация (да / не).
- Над 2.5 модел: бинарна класификация (да / не).
Всеки модел има 500 дървета, дълбочина 3, learning rate 0.04 и L2 регуляризация 2.0. Тези хиперпараметри са фиксирани след предварителни експерименти с настройка по holdout log-loss.
23 входни променливи (вместо 2)
Докато безплатният модел разчита най-вече на ELO разлика и Поасонова средна на първенството, Pro AI взема под внимание 23 пред-мачови сигнала за всяка прогноза:
- Силови рейтинги: вътрешно поддържан Elo за всеки отбор (K=20, бонус за домакин +60), плюс изведената Elo вероятност за победа.
- Форма за последните 5 и 10 мача: точки (Победа = 3, Равенство = 1, Загуба = 0), отделно за всеки отбор.
- Голове за / против за последните 10 мача: средно за един мач, плюс изведената атакуваща и защитна разлика между двата отбора.
- Форма по терен: домакински рейтинг на домакина, гостуващ рейтинг на госта (последни 5 мача в съответния тип).
- Дни почивка: от последен мач до предстоящия, ограничени до 30 дни.
- Преки срещи: последните 5 мача между двата отбора (победи на всеки и равенства).
Калибрация и валидация
Точността, която виждаш в долната част на Pro AI картата за всяка лига, се изчислява чрез 5-кратна стратифицирана кръстосана валидация (StratifiedKFold). Това означава, че всеки мач, върху който мерим точността, е оценен от модел, който НЕ е виждал този мач по време на обучението. Това е честната, неоптимистична оценка, не само резултат от тренировка.
За приключили мачове в архива публикуваме out-of-fold прогнозата (зеленото или червено квадратче „Прогнозата позна / не позна“ с крайния резултат под лентата с увереност). По този начин виждаш не само какво моделът смята сега, а какво е смятал предварително и дали е било правилно.
Експлайнъбилити: четирите водещи фактора
Под основната лента Pro AI картата показва четирите променливи с най-голяма тежест за конкретната прогноза, в полето „Защо моделът смята така“. Тежестта се изчислява като значимост на променливата × нормализирана стойност за този мач, кратка апроксимация на SHAP. Това превръща моделът от „черна кутия“ в нещо, което можеш да оспориш с очите си.
Обновяване
Pro AI се преобучава всяка нощ в 03:30 UTC върху пълния архив от приключили мачове. Прогнозите за предстоящите мачове в следващите 7 дни се преизчисляват всеки час. Точността по лиги се обновява всяка нощ в 04:00 UTC.
Разлика: старо срещу ново
Двата модела работят паралелно на всяка страница на мач. Не сме изтрили стария — той остава като честен втори глас. Ето защо това има значение и в какво се различават:
| Аспект | Безплатна (ELO + Поасон) | Pro AI (XGBoost) |
|---|---|---|
| Алгоритъм | Логистична Elo крива + конволюция на Поасонови | Gradient boosted decision trees (3 модела) |
| Входни сигнали | Elo разлика, средна на първенството, предимство на домакина | 23 променливи, включително форма, голове за/против, преки срещи, почивка, форма по терен |
| Нелинейни взаимодействия | Не (всичко е затворена форма) | Да (дървета моделират пресечни точки автоматично) |
| Калибрация | Аналитична (от Поасоновата матрица) | 5-fold стратифицирана кръстосана валидация |
| Експлайнъбилити | Цялата вероятностна матрица за резултатите | Топ 4 фактора на прогноза + честна точност по лиги |
| Обновяване | В реално време след всеки приключил мач (Elo update) | Нощно преобучение (03:30 UTC) + почасови прогнози |
| Подходящо за | Бърз преглед, прозрачност на математиката | Точност, ситуации с фини сигнали (форма + почивка + контузии) |
Кой е по-точен?
Кратко: зависи от лигата и обема на данни, който имаме. В момента Pro AI работи на тренировъчен прозорец от около 6 месеца (общо 2,837 приключили мача). За богато покрити първенства Pro AI показва точност на 1Х2 от 50% до 67% (топ лиги, в които имаме повече от 150 мача като пробив). За първенства с по-малко мачове в архива точността пада към 38 до 42%, защото моделът няма достатъчно примери да научи местните закономерности. Безплатният Elo + Поасон е по-стабилен на тънки данни, защото има по-малко свобода да обърка.
Затова показваме точност по лиги, а не глобална стойност. Така виждаш честно колко да вярваш на Pro AI за конкретното първенство.
Защо държим и двата
- Независим втори глас: ако и двата модела сочат един и същи изход, увереността нараства. Ако спорят, ситуацията е по-сложна, отколкото изглежда.
- Различни режими на провал: Поасонов модел може да греши систематично по първенства с екстремна голова продуктивност. XGBoost може да греши по мачове, които изглеждат като предишни мачове, но всъщност са нови (нов треньор, нов отбор). Когато моделите се различават значително, имаш предупреждение, че нещо е извън профила.
- Без скрита промяна: не сме „надстроили“ безплатния модел в нещо ново зад гърба ти. Старият си стои както винаги. Новият е допълнение.
Променливи, които моделът използва
- Текущ ELO рейтинг на всеки отбор (най-силната единична променлива).
- Скорошна форма: последните 5 мача на отбор. Формата е заложена имплицитно в ELO обновяването, а не като отделна претеглена променлива.
- Предимство на домакина: добавка за първенство към очакваните голове на домакина, прекалибрирана при смяна на сезоните.
- Голова среда в първенството: средните голове на мач за текущия сезон на съответното състезание, използвани като база за Поасоновия модел.
- Национален / международен флаг: международните мачове (приятелски, квалификации, Световно първенство) използват отделен пул от рейтинги, защото клубната и националната сила не са преносими.
Променливи, които съзнателно не използваме
- Коефициенти на букмейкъри. Не правим обратно инженерство на пазарните вероятности. Нашите прогнози идват само от данните за мача — точно това ги прави сравними (и оценяеми) спрямо пазара.
- Информация за контузии. Наличието на състави би подобрило прогнозите, но процесът ни още няма надежден поток за контузии. Това е известно ограничение (виж по-долу).
- Време. Ефектите са малки и шумни на популационно ниво.
- Идентичност на треньора. Следим мениджърите за съдържание, но не ги използваме като променлива в модела.
Кога моделът се обновява
- ELO рейтинги се обновяват след всеки приключил мач в момента, в който крайният съдийски сигнал се отрази в потока ни от данни (обикновено в рамките на ~60 секунди).
- Голова среда в първенството (Поасонова база) се преизчислява ежедневно от приключилите мачове в текущия сезон.
- K-фактори и константи за предимството на домакина се ревизират в началото на всеки голям сезон и след всеки международен турнир. Текущите стойности и датата им на последна ревизия живеят в кода на плъгина — за възпроизводим одит.
Няма претрениране на модел в дълбоко-обучаващия смисъл. Моделът е параметричен и се обновява непрекъснато, а не на периодични партиди.
Рекорд
Всеки приключил мач с предматчова прогноза се оценява в базата ни и се агрегира в моментната снимка по-долу. Не редактираме исторически прогнози. Числото, което сме показали в деня преди мач, е числото, с което се оценяваме. Можеш да разгледаш всички публикувани прогнози в страницата с футболните прогнози.
| Маркет | Извадка | Точност на топ-избора | Наивна базова линия | Brier score |
|---|---|---|---|---|
| 1Х2 (краен резултат) | 1823 | 49,0% | 33.3% | 0,633 |
| И двата отбора да отбележат | 1823 | 54,5% | 50.0% | — |
| Над / Под 2.5 гола | 1823 | 55,7% | 50.0% | — |
| Точен резултат | 1823 | 11,1% | ~8% (1/12) | — |
Как да четеш числата
- Точност на топ-избора е процентът от приключилите мачове, в които изходът с най-висока вероятност съвпада с реалния. Случаен избор между три изхода би дал средно 33,3%.
- Brier score измерва квадратното разстояние между вероятностите, които сме издали, и реалния бинарен изход, сумирано по Домакин / Равен / Гост. По-ниско е по-добре. Равномерният приор „1/3 за всеки“ дава ~0,667; пазарните коефициенти обикновено са 0,55–0,60 след преобразуване във вероятности.
- Извадка е броят приключили мачове, които сме оценили, откакто започнахме да записваме резултати. Моделът се подобрява с растежа на извадката. Не редактираме историческите прогнози; можеш да ни оценяваш по същите числа, които сме показали преди първия съдийски сигнал.
- Суровите данни за всеки мач са достъпни през REST крайната точка
/wp-json/sm/v1/predictions/accuracy— за всеки, който иска да одитира изчислението.
Източник на данните: /wp-json/sm/v1/predictions/accuracy. Таблицата по-горе подкрепя всяко число на тази страница — нищо не е ръчно подбрано.
Ограничения, които искаме да знаеш
- Размерът на извадката все още е малък. Започнахме оценени снимки след пускането на функцията за прогнози. Числата по-горе ще стават по-надеждни с растежа на извадката. Третирай текущия Brier score като предварителен.
- Уклон към домакинска победа. Текущият параметричен набор клони към избор на домакински победи при близки двубои в по-нискообемни първенства. Знаем за това и калибрираме.
- Без данни за контузии / наказания. Стартов вратар, отстранен заради купа, може да измести справедливата цена с 10–15%; моделът ни няма как да знае.
- Студен старт за отбори. Новопромотираните или международните отбори с малко мачове в извадката имат по-голяма несигурност, докато ELO се стабилизира.
- Купи. Едночастови купови двубои (особено със значителна ротация) са по-трудни от мачовете в първенство. Очаквай по-широки граници на грешка.
Отказ от отговорност
Футболните прогнози на Liga.bg са статистически оценки — не съвет и не типове. Те отразяват какво публикуван модел смята за вероятността на всеки изход при дадените входни данни. Не са препоръка за залог. Минали резултати не предсказват бъдещи; победа с 60% вероятност може и редовно се проваля.
Футболът по своята същност е несигурен. Всеки отделен мач може да противоречи на всеки модел. Ако решиш да използваш тези вероятности, за да оформиш залог, моля:
- Залагай само това, което можеш да си позволиш да загубиш.
- Задай лимити на депозитите и времето при оператора преди да започнеш.
- Ако залагането спре да е забавление или гониш загуби — спри и поговори с някого.
Безплатна и поверителна подкрепа при проблемно залагане:
- Великобритания: GambleAware / National Gambling Helpline 0808 8020 133
- Република Ирландия: Problem Gambling Ireland / 089 241 5401
- САЩ: National Council on Problem Gambling / 1-800-GAMBLER
- Австралия: Gambling Help Online / 1800 858 858
Liga.bg няма никакви търговски партньорства с букмейкъри, никакви афилейт връзки за коефициенти и не печели нищо, ако решиш да заложиш. Стимулът ни е да публикуваме точни вероятности, а не да насочваме обем на залози.