Two soccer coaches reviewing strategies on the field during the day.
fot. Franco Monsalvo / Pexels

Bot do obstawiania meczów — jak działa typowanie AI

Model analizuje mecze piłkarskie i wystawia typy, a każdy z nich jest rozliczany i zostaje w historii. Poniżej to, na czym się uczy, co dokładnie liczy i jaki ma bilans — łącznie z rynkami, które wychodzą mu słabo.

Rozliczonych typów
7851
w 41 ligach
Skuteczność, 30 dni
56.4%
na 919 typach
Skuteczność, 90 dni
52.6%
na 2130 typach

Czym taki bot jest, a czym nie jest

Bot do obstawiania to model statystyczny, nie wyrocznia. Liczy prawdopodobieństwo wyniku na podstawie danych historycznych i porównuje je z kursem bukmachera. Jeśli widzi zdarzenie jako bardziej prawdopodobne, niż sugeruje kurs, typ trafia na listę.

Nie ma tu pewniaków. Model, który trafia sześć spotkań na dziesięć, jest bardzo dobry — i nadal myli się cztery razy na dziesięć. Każdy, kto obiecuje więcej, sprzedaje historię, nie analizę.

Na czym model się uczy

  • Forma i wyniki — ostatnie mecze, bilans u siebie i na wyjeździe, seria bez porażki
  • Siła drużyn — rankingi Elo aktualizowane po każdej kolejce, osobno dla każdej ligi
  • Statystyki meczowe — strzały, strzały celne, posiadanie, rzuty rożne, kartki
  • Kursy rynkowe — porównanie własnej oceny prawdopodobieństwa z wyceną bukmachera
  • Kontuzje i absencje — braki w składzie zgłoszone przed spotkaniem

Każda liga dostaje własny zestaw wag, uczony na jej własnej historii. Powód jest praktyczny i opisaliśmy go osobno w analizie przewagi własnego boiska: charakterystyki rozgrywek różnią się na tyle, że jeden model na wszystko myliłby się systematycznie.

Jak model liczy prawdopodobieństwo

Punktem wyjścia nie jest pytanie „kto wygra", tylko „jak często wygrałby, gdyby ten mecz rozegrać sto razy". Odpowiedź powstaje w trzech krokach.

Krok pierwszy: siła drużyn

Każda drużyna ma ocenę siły w systemie Elo, znanym z szachów i dostosowanym do piłki. Zasada jest prosta: po każdym meczu zwycięzca zabiera punkty przegranemu, a ile dokładnie — zależy od tego, jak bardzo wynik był zaskakujący. Pokonanie lidera ligi przesuwa ocenę mocniej niż pokonanie ostatniej drużyny, bo niesie więcej informacji.

Elo ma przewagę nad tabelą ligową: reaguje od razu i uwzględnia, z kim grało się o punkty. Drużyna z ósmego miejsca, która przegrała trzy mecze z czołówką, może być realnie mocniejsza niż piąta, która ograła trzy zespoły z dołu. Tabela tego nie widzi, Elo tak.

Ocena jest zapisywana w stanie sprzed meczu. To drobiazg, który decyduje o uczciwości całej reszty — gdyby model uczył się na ocenach uwzględniających wynik, który ma przewidzieć, wyglądałby świetnie w testach i tragicznie w praktyce.

Krok drugi: ile padnie goli

Dla rynków bramkowych liczy się nie zwycięzca, tylko rozkład liczby goli. Model szacuje, ile bramek statystycznie strzela gospodarz i ile gość, biorąc pod uwagę ich formę ofensywną, szczelność obrony rywala i charakterystykę ligi. Z tych dwóch wartości wylicza prawdopodobieństwo każdego wyniku — a z nich dopiero szanse na „powyżej 2.5 gola" czy „obie drużyny strzelą".

To dlatego dwa mecze z tym samym faworytem mogą mieć zupełnie inne typy bramkowe. Spotkanie dwóch drużyn grających otwarcie i spotkanie dwóch zespołów broniących wyniku to inne rozkłady, choć tabela może sugerować podobny układ sił.

Tak to wygląda w liczbach. Poniżej rozkład dla średniej ligowej z ostatnich dwunastu miesięcy — gospodarze strzelają w niej średnio 1.63 gola, goście 1.31, czyli razem 2.93 na mecz:

Rozkład liczby goli w meczu 27% 14% 0% linia 2.5 gola 0 goli: 5.3% 5.3% 0 1 goli: 15.6% 15.6% 1 2 goli: 22.9% 22.9% 2 3 goli: 22.4% 22.4% 3 4 goli: 16.4% 16.4% 4 5 goli: 9.6% 9.6% 5 6+ goli: 7.7% 7.7% 6+ liczba goli w meczu

Najbardziej prawdopodobny wynik to dwa albo trzy gole — ale żaden pojedynczy wynik nie przekracza jednej czwartej szans. To jest obraz tego, jak bardzo piłka jest losowa: nawet znając średnie, najlepsze, co można zrobić, to rozłożyć prawdopodobieństwo, a nie wskazać wynik.

Pionowa linia przy 2.5 pokazuje, gdzie przebiega popularny rynek bramkowy. Dla tej średniej ligowej „powyżej 2.5 gola" wychodzi 56.1%, „poniżej" — 43.9%. Model liczy dokładnie to samo dla każdego meczu z osobna, tyle że zamiast średniej ligowej podstawia tempo strzelania i szczelność obrony obu konkretnych drużyn. Dlatego przy jednej parze wyjdzie 62%, a przy innej 41%, choć obie grają w tej samej lidze.

Krok trzeci: zderzenie z rynkiem

Sama ocena prawdopodobieństwa jeszcze nic nie znaczy. Dopiero zestawienie jej z kursem bukmachera mówi, czy zakład ma sens. Kurs da się przełożyć na prawdopodobieństwo implikowane i porównać z własnym szacunkiem — typ pojawia się tam, gdzie te dwie liczby wyraźnie się rozjeżdżają.

Bukmacher nie jest naiwny i w większości meczów jego wycena jest dobra. Dlatego typów jest mniej, niż meczów w terminarzu.

Dlaczego każda liga uczy się osobno

Wspólny model dla wszystkich rozgrywek jest wygodny w utrzymaniu i kosztuje dokładnością. Ligi różnią się średnią liczbą goli, rozpiętością poziomu, kalendarzem i przewagą gospodarzy — pokazaliśmy to liczbowo w analizie przewagi własnego boiska.

Model wytrenowany na uśrednionych danych przenosiłby charakterystykę jednej ligi do drugiej i mylił się systematycznie w obie strony. Dlatego każda liga dostaje własny zestaw wag, uczony na własnej historii, a wspólna zostaje tylko architektura.

Skąd biorą się dane

  • Terminarze i wyniki — pobierane cyklicznie, wyniki rozliczają się automatycznie po gwizdku
  • Statystyki meczowe — strzały, strzały celne, posiadanie, rzuty rożne, kartki, dociągane po zakończeniu spotkania
  • Kursy — odświeżane przed meczami, z kilku rynków naraz
  • Kontuzje i absencje — zgłoszenia o brakach w składzie przed spotkaniem
  • Składy i ustawienia — gdy są opublikowane przed meczem

Wszystko ląduje w jednej bazie, na której pracują modele i z której liczone są nasze analizy publiczne. Te same wyniki, te same mecze, żadnego osobnego zbioru „do prezentacji".

Słownik rynków

  • 1X2 — zwycięstwo gospodarza, remis albo zwycięstwo gościa. Najprostszy rynek i zarazem ten, w którym remis zjada jeden wynik na cztery.
  • Powyżej / poniżej 2.5 gola — czy w meczu padną co najmniej trzy bramki. Nie interesuje nas, kto wygra.
  • Obie drużyny strzelą — czy każda ze stron zdobędzie przynajmniej jednego gola.

Rynki bramkowe bywają wygodniejsze przy meczach, w których trudno wskazać zwycięzcę, bo omijają najbardziej nieprzewidywalną część spotkania — to, po której stronie padnie rozstrzygająca bramka.

Dlaczego nie publikujemy kursów poniżej 1.30

Legalny bukmacher w Polsce pobiera 12% podatku od stawki. Stawiając 100 zł, realnie gra się 88 zł, więc próg opłacalności to nie 1 / kurs, tylko 1 / (0,88 × kurs).

Przy kursie 1.25 ten próg wynosi około 91%. Żaden model piłkarski nie utrzymuje dziewięćdziesięcioprocentowej skuteczności w dłuższym okresie — piłka jest na to za bardzo losowa. Typ po takim kursie może wyglądać bezpiecznie, ale jest matematycznie nie do obrony, niezależnie od tego, jak pewny wydaje się mecz. Dlatego takie typy w ogóle nie trafiają na listę. Policzysz to dla własnego kuponu w kalkulatorze podatku.

Ten sam rynek, inna liga, inna szansa

Najlepiej widać to na rynku bramkowym. Próg „powyżej 2.5 gola" jest wszędzie taki sam, ale prawdopodobieństwo jego przekroczenia zależy od tego, ile goli pada w danej lidze. Poniżej szansa policzona z samej średniej ligowej — bez patrzenia na konkretne drużyny:

Szansa na powyżej 2.5 gola według średniej ligowej Super League (Szwajcaria) 3.44 gola/mecz · 218 meczów Super League (Szwajcaria): 66.8% 66.8% Eredivisie (Holandia) 3.29 gola/mecz · 291 meczów Eredivisie (Holandia): 63.8% 63.8% Bundesliga (Niemcy) 3.28 gola/mecz · 278 meczów Bundesliga (Niemcy): 63.7% 63.7% UEFA Champions League 3.24 gola/mecz · 253 meczów UEFA Champions League: 62.8% 62.8% Eliteserien (Norwegia) 3.23 gola/mecz · 228 meczów Eliteserien (Norwegia): 62.6% 62.6% Super League 1 (Grecja) 2.54 gola/mecz · 217 meczów Super League 1 (Grecja): 46.7% 46.7% Liga I (Rumunia) 2.53 gola/mecz · 292 meczów Liga I (Rumunia): 46.3% 46.3% Serie A (Włochy) 2.51 gola/mecz · 353 meczów Serie A (Włochy): 45.9% 45.9% Premier League (Ukraina) 2.48 gola/mecz · 224 meczów Premier League (Ukraina): 45.0% 45.0% First League (Bułgaria) 2.46 gola/mecz · 259 meczów First League (Bułgaria): 44.7% 44.7%

Rozpiętość sięga dwudziestu punktów procentowych. Obstawiając „powyżej 2.5 gola" w lidze szwajcarskiej i w rumuńskiej, podejmuje się dwie zupełnie różne decyzje przy tej samej nazwie zakładu — a bukmacher doskonale o tym wie i wycenia to w kursie.

To jest powód, dla którego model nie ma jednego progu na wszystko. Średnia ligowa to dopiero punkt wyjścia; do niej dochodzi tempo strzelania obu drużyn, szczelność ich obron i forma z ostatnich tygodni.

Skala i tempo

Model pracuje na 41 ligach i ma w bazie 3011 nadchodzących meczów na najbliższy tydzień. Na dzisiaj wystawił 66 typów. Kursy odświeżają się cyklicznie, składy i absencje pobieramy przed spotkaniami, a wyniki rozliczają się automatycznie po gwizdku.

Jak liczymy skuteczność

  • każdy typ zapisujemy w bazie przed rozpoczęciem meczu, razem z kursem i pewnością modelu
  • rozliczenie jest automatyczne, na podstawie wyniku z API — bez ręcznego korygowania
  • w zestawieniach są wszystkie rozliczone typy z okresu, także serie nietrafione
  • zawsze podajemy wielkość próby, bo skuteczność bez niej nie niesie informacji

Czego model nie wie

Uczciwy opis narzędzia to taki, z którego wiadomo, gdzie są jego granice:

  • Nie zna kontekstu spoza danych — konfliktu w szatni, zmiany trenera dzień przed meczem, motywacji drużyny, która zapewniła sobie utrzymanie
  • Nie widzi rotacji przed pucharami, jeśli nie zapowiedziano jej w oficjalnych informacjach o składzie
  • Słabiej radzi sobie z małymi ligami, gdzie historia jest krótka, a dane meczowe niepełne
  • Nie przewiduje zdarzeń losowych — czerwonej kartki w piątej minucie, rzutu karnego w doliczonym czasie, rykoszetu

To nie są usterki do naprawienia, tylko właściwość zjawiska. Piłka ma dużą składową losową i model, który twierdzi inaczej, po prostu nie został sprawdzony na wystarczająco długim okresie.

Najczęstsze pytania

Czy bot do obstawiania meczów gwarantuje wygraną?

Nie. Model liczy prawdopodobieństwa, a nie pewniaki. Nawet bardzo dobra skuteczność oznacza, że część typów przepada — dlatego publikujemy pełny bilans, razem z rynkami, które wychodzą nam słabo.

Na jakiej podstawie AI typuje mecze?

Na danych: forma i wyniki z ostatnich spotkań, rankingi Elo drużyn, statystyki meczowe (strzały, posiadanie, rzuty rożne), kontuzje oraz kursy rynkowe. Model porównuje własną ocenę prawdopodobieństwa z wyceną bukmachera.

Ile typów dostaję za darmo?

Darmowe konto daje dwa typy dziennie. Pozostałe rynki i pełna historia są w planie płatnym, ale zapowiedzi meczów, forma i statystyki są jawne dla każdego.

Czy skuteczność podana na tej stronie jest liczona uczciwie?

Liczymy ją z rozliczonych typów zapisanych w bazie — każdy ma datę wystawienia sprzed meczu. Podajemy też wielkość próby, bo skuteczność bez liczby typów nic nie znaczy.

Czy bot obstawia za mnie?

Nie. Serwis pokazuje analizy i typy, nie zawiera zakładów i nie ma dostępu do żadnego konta bukmacherskiego. Decyzję i ryzyko bierze na siebie użytkownik.

Najbliższe 3011 meczów jest już w bazieZapowiedzi, forma i statystyki są jawne. Typy modelu zobaczysz po założeniu darmowego konta — 2 dziennie bez opłat.