AI: jak najít nejziskovější variantu?

AI: jak najít nejziskovější variantu?
« kdy: 15. 08. 2022, 19:08:13 »
Mám dataset s asi 130k sportovními zápasy a různé informace o těch zápasech - samozřejmě výsledek (1/0/2), kurs na favorita/remízu/outsidera a různé statistické údaje.

Dataset jsem zkompiloval s cílem zkusit zapojit AI jestli mi v tom nenajde nějaký vzorce, který by šly využít při sázení.

Dal jsem to do modelu a ten umí předpovědět výsledek s úspěšností kolem 60% - no jenže to přesně odpovídá tomu, kdy vyhraje favorit - a takyže jo, model teda vlastně ve 100% případech předpoví, že vyhraje favorit, a protože vyhraje v 60% případech, tak má v 60% případech pravdu :) Jak geniální, že? .. Jenže samozřejmě sázet vždy na favorita se statisticky absolutně nevyplatí a kdyby někdo vsadil 1000 Kč na favorita ve všech těch 130k zápasech, tak skončí necelý 3 miliony v mínusu.

Takže se mi zdálo, že prostě ty moje parametry jsou slabý a vlastně to celý byla jen ztráta času. A jen sem si tak hrál s parametrama toho modelu - má různý solvery a ty dávaly drobně jiný výsledky. A pak sem si všiml, že jedna kombinace (solver+penalty) sice taky má úspěšnost kolem 60%, ale aspoň ve všech případech neurčí, že vyhraje favorit - výhru favorita předpoví "pouze" ve 122k případech a asi ve 4,5k případech předpoví remízu a ve 3,5k výhru outsidera. (To jsou samozřejmě stále velmi slabý čísla - reálně favorit z těch 130k zápasů vyhraje 78,5k, remíz je asi 17k a favorit vyhraje asi 34,5k)

... Pořád by to nebylo nic, co stojí za zmínku.. jenže sem zkusil udělat kalkulaci a podle kurzů, kdyby někdo vsadil na outsidera ve všech těch případech, kdy to model předpověděl, tak by to bylo ziskový! Celkovej zisk z těch 3,5k sázek by teda byl "jen" asi 219000 Kč, což odpovídá cca 60 Kč na zápas a tedy ziskovost asi 6%. No ale ale na druhou stranu... Vlastně to není vůbec špatný.

Hlavní věc ovšem je, že jsem tuto kombinaci vlastně objevil náhodou a ne tak, že bych ji cíleně hledal, a tak si říkám, že kdybych ten model udělal nějak líp, tak by mi mohl najít třeba i ziskovější varianty.

Jenže vlastně vůbec netuším, jak něco takovýho udělat. Uměl byste někdo poradit?


Re:AI: jak najít nejziskovější variantu?
« Odpověď #1 kdy: 15. 08. 2022, 20:37:18 »
Poradím ti a ani za to nebudu chtít provizi ;).

Podle toho co píšeš, tak model učíš predikovat výsledek zápasu. Zároveň ale píšeš, že tě to vůbec nezajímá a chceš model učit tak, aby maximalizoval zisk. Z toho plyne, že máš úplně špatnou loss funkci.

Model chceš učit na to, aby maximalizoval zisk (minimalizoval ztrátu) a potřebuješ custom loss funkci: https://towardsdatascience.com/machine-learning-for-sports-betting-not-a-basic-classification-problem-b42ae4900782

Re:AI: jak najít nejziskovější variantu?
« Odpověď #2 kdy: 15. 08. 2022, 21:11:44 »
Myslel sem si něco takovýho, ale neuměl to pojmenovat. Díky moc!

RDa

  • *****
  • 2 709
    • Zobrazit profil
    • E-mail
Re:AI: jak najít nejziskovější variantu?
« Odpověď #3 kdy: 15. 08. 2022, 21:39:01 »
Tech 6% zisku je za podminky pausalniho poplatku na sazce? :P

Re:AI: jak najít nejziskovější variantu?
« Odpověď #4 kdy: 15. 08. 2022, 21:48:48 »
Tech 6% zisku je za podminky pausalniho poplatku na sazce? :P

Poplatky se u většiny on-line sázkovek už pár let neplatí.


mark42

  • ***
  • 130
    • Zobrazit profil
    • E-mail
Re:AI: jak najít nejziskovější variantu?
« Odpověď #5 kdy: 16. 08. 2022, 11:56:47 »
Inak vies o tom, ze ak najdes AI pattern v doterajsich datach, tak to nezarucuje ze ten pattern bude do buducnosti platny?
Len pre istotu :) Inak skus aj cvicenie, kde si obmedzis vstupny dataset napr. na nahodnu polovicu/tretinu, z jednej casti dat vymyslis AI pattern, ktory napr. nebude tipovat vsetky zapasy ale len subset, kde ma najvacsiu istotu, a jeho presnost overis na zvysku dat.

Karmelos

  • *****
  • 1 061
    • Zobrazit profil
    • E-mail
Re:AI: jak najít nejziskovější variantu?
« Odpověď #6 kdy: 16. 08. 2022, 12:14:46 »
No a nebo se zkusit zaměřit na zápasy, který by mohl chtít outsider cinknout aby zvítězil. 
Třeba v tom je taky nějakej pattern ;-) Zisk by pak byl mnohonásobně větší než u těch zápasů s jistotou výhry favorita....
Gréta je nejlepší.

Re:AI: jak najít nejziskovější variantu?
« Odpověď #7 kdy: 16. 08. 2022, 14:01:10 »
Poradím ti a ani za to nebudu chtít provizi ;).

Podle toho co píšeš, tak model učíš predikovat výsledek zápasu. Zároveň ale píšeš, že tě to vůbec nezajímá a chceš model učit tak, aby maximalizoval zisk. Z toho plyne, že máš úplně špatnou loss funkci.

Model chceš učit na to, aby maximalizoval zisk (minimalizoval ztrátu) a potřebuješ custom loss funkci: https://towardsdatascience.com/machine-learning-for-sports-betting-not-a-basic-classification-problem-b42ae4900782

Je to fakt zajímavý. Zatím jsem teda používal hlavně jednodušší modely scikit-learn a Keras vůbec, takže to neumím. Každopádně jsem si s tím pár hodin hrál a zkoušel to nacpat svejma datama, kdy mám o mnoho víc parametrů než autor (třeba 300 parametrů)
1) U velkýho datasetu (všech 130k zápasů) jsem vždycky dostával loss: nan - val_loss: nan - abych dostával nějaký výsledky a ne pořád ty nan, musel jsem ten dataset hooodně zmenšit, třeba na 1000 zápasů - nejspíš to souvisí s regularizací(?)
2) Nejlepší výsledky jsem dostával u opravdu "malýho" datasetu s cca 700 zápasy - tam mi to v některých případech ukazovalo opravdu mimořádně skvělý výsledky, rekord snad byl ziskovost 35% na zápas (!) - Jenže na druhou stranu když sem to opakovaně spouštěl se stejným zadáním, tak sem někdy dostával úplně jiný výsledky (!) - takže to celý asi je hodně o náhodě, jaký zápasy vybere na trénink a který na validaci (?)
3) Když to trochu zprůměruju, tak u datasetu se 700 zápasy sem dostával i 20-35% na zápas, u 1000 zápasů max. kolem 10%, u 1500 zápasů max. 2-3% a pak dál už vždycky jen ty nan
4) Zatím mě napadá, že bych teda pro každou predikci mohl najít třeba 700 nejpodobnějších zápasů a z nich vytvořit model jen pro účely jedný konkrétní predikce. Ale otázka je, do jaký míry by to pak bylo reprezentativní/ziskový (?)
5) Celkově vzato je to opravdu zajímavý a možná v tom je i velkej potenciál, ale nejspíš budu muset strávit hrozně moc času tím, než příjdu na to, jak to vytunit, aby to dávalo ty nejlepší možný výsledky

Re:AI: jak najít nejziskovější variantu?
« Odpověď #8 kdy: 16. 08. 2022, 14:14:24 »
poradil bych ti precist tohle http://aima.cs.berkeley.edu/

L..

  • ****
  • 310
    • Zobrazit profil
    • E-mail
Re:AI: jak najít nejziskovější variantu?
« Odpověď #9 kdy: 16. 08. 2022, 14:37:36 »
Jen takový malý dotaz: Víte, že sázkové společnosti podezřele úspěšné sázkaře odstřihávají?

Re:AI: jak najít nejziskovější variantu?
« Odpověď #10 kdy: 16. 08. 2022, 15:19:01 »
Jen takový malý dotaz: Víte, že sázkové společnosti podezřele úspěšné sázkaře odstřihávají?

Největší problém je, že si v Česku kvůli debilní regulaci, kterou prosadil Bureš jako ministr financí, můžeš legálně vsadit jen u sázkovky s českou licencí, kterých je jen pár. U těch zahraničních tě z české IP adresy většinou ani nenechají zaregistrovat, spousta zahraničních sázkovek ani z české IP adresy není dostupná.

Co se týče blokování úspěšných sázkařů, tak jsem slyšel o tom, že se to děje, a znám někoho, kdo kvůli tomu podal podnět na ministerstvo financí, tam mu řekli, že to je nelegální a že by s tou sázkovkou mohli zahájit proces odnětí licence, ať jim dá nějaký důkazy, ale pak už to ten dotyčnej dál neřešil - prostě se mu nechtělo.

Karmelos

  • *****
  • 1 061
    • Zobrazit profil
    • E-mail
Re:AI: jak najít nejziskovější variantu?
« Odpověď #11 kdy: 16. 08. 2022, 19:12:32 »
Největší problém je to, že sázení je dostupné víceméně každému a stát téměř nereguluje kdo a kde smí sázet.
Jelikož se na tom vytváří závislost a produkuje to nemalé procento lidí v exekuci a následně bezdomovců je velmi pravděpodobné, že na tom zázračně ani s ai nezbohatnete.
A pokud někdo mermomocí chce vyhodit penízez okna, doporučil bych raději burzu.
Gréta je nejlepší.

Re:AI: jak najít nejziskovější variantu?
« Odpověď #12 kdy: 16. 08. 2022, 20:16:23 »
Používat AI, a nebo jakékoliv ML na náhodu nejde.
Prostě protože to je náhodný stav.

Něco jiného je kdyby jsi zpracovával data která ovlivňují výsledek.
Např. mentální rozpoložení konkrétního hráče a to vždy při zápasu, nebo těsně před. Dále např. stav jeho rodinného zázemí, stav jeho osobní spokojenosti, stav jeho zdravotních problémů, vazbu klimatických podmínek na hráče, týmovou náladu, informace z přípravy a místa utkání atd.

Prostě potřebuješ dostat měřitelnou hodnotu např. hráč X dává góly když mu manželka před zápasem zahejbá, zároveň se dozvěděl že mu vybrala bankovní konto, hrají venku kde nikoho nezná, ale je tam dobrá nemocnice, proto se nebude bát jít ostřeji do osobních soubojů, a venku je pro něho ideální počasí které odpovídá jeho rýmě a dítě jeho milenky dostalo pětku ve škole. A zároveň ho trenér seřval a spoluhráč ho kopnul do levé nohy.

No a takto získáš statistický profil konkrétních hráčů a protihráčů, kde samozřejmě ještě "vypočítáš" další kvanta ukazatelů ve vztahu hráč k hráči, a k ostatním hráčům a pak i k protihráčům. Např. stačí jednoduchý příklad, bude Ronaldo nahrávat Messimu nebo/a nebo pouze Neymarovi a nebo bude radši sám střílet z pozice s úspěšností pod 40% i když ostatní mají úspěšnost >60% a když bude nasazený až v druhém poločase,  (netuším jestli všichni tři hrají za PSG - to je pouze jmenný příklad)?!

Toto je pouze taková okamžitá hypotéza, možná že je to kravina.
Samozřejmě že je to kravina, protože množství dat které by musely být sledovány a sbírány k vyhodnocení by zaváněly stalkingem apod.

Re:AI: jak najít nejziskovější variantu?
« Odpověď #13 kdy: 16. 08. 2022, 21:28:09 »
Něco jiného je kdyby jsi zpracovával data která ovlivňují výsledek.

Tak samozřejmě jde o to, že se pokouším zpracovávat data, který ovlivňují výsledek. Resp. domnívám se, že ovlivňují výsledek, mohu se taky mýlit. V principu jde každopádně o to, že aby byl člověk v zisku, tak musí zpracovávat data, s nimiž nepracují bookmakeři - kdyby měl člověk stejný data jako oni, tak by potom pravděpodobně dospěl zhruba ke stejným výsledkům jako oni (pokud některá ze stran neudělala chybu) a pak nemůže být dlouhodobě v plusu, protože sázkovky snižují kurzy o svou marži.

Já teda svoji metodu vyvíjím necelej rok a zatím mám úspěšnost 48%, takže mi to nefunguje. Ale vlastně jde o to, že mám různý faktory a každej má jinou váhu a ty koeficienty mezi nima jsem víceméně určil metodou pokus omyl a někde i dost arbitrárně a pravděpodobně blbě. Těch vzájemnejch kombinací je ale tolik, že to prostě nemělo smysl dál zkoušet "manuálně" a tak sem se začal učit AI, aby mi s tím pomohla.

Ale teďka si říkám - vždyť v podstatě AI modely nepotřebuju, jde mi o nalezení maxima nějaký hrozně složitý funkce s hrozně moc proměnnejma. Ale asi jednodušší než než se učit celou AI, udělat model a pak ho tunit, by bylo uděla svoji loss funkci se všema těma proměnnejma/koeficientama a pustit na ní scipy.optimize.minimize :D


Re:AI: jak najít nejziskovější variantu?
« Odpověď #14 kdy: 16. 08. 2022, 22:08:02 »
Toto je pro tebe pochopitelnější:
https://wikisofia.cz/wiki/Mot%C3%BDl%C3%AD_efekt

V podstatě ty volbu na výsledek nejsi schopný ovlivnit, pouze jsi schopný provést tip. A k tomu tipu musíš mít informace a zkušenosti a hlavně finanční zázemí. Bookmejtři vydělávají na tom, že rizika ovlivňují tvorbou kurzu (a maximem Kč co přijmou na tip a nevyhodnotí to jako "sázku na jistotu" = víš více než oni) a množstvím hráčů.

A možná upřesní tento zákon, ale je samozřejmě jak by se dal aplikovat na tvůj způsob a netuším zda je to přesně to co ti chci říci, ale je to stejné jako v kasínu kdy začneš počítat karty, nebo jiným způsobem je analyzovat, a zvýší se ti neobvykle pravděpodobnost výhry. Výsledkem je že si tě vyfotí, vyhodí a zakážou vstup.

§ 2873 zákona č. 89/2012 Sb., občanský zákoník, zní: „(1) Sázkou se alespoň jedna strana zavazuje vůči druhé plnit výhru, ukáže-li se nesprávným její tvrzení o skutečnosti stranám neznámé nebo ukáže-li se tvrzení druhé strany o této události správným. (2) Má-li strana, jejíž tvrzení se ukáže správným, jistotu o výsledku a zatají-li to druhé straně, je sázka neplatná.“.