Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: GloGlo 15. 08. 2022, 19:08:13

Název: AI: jak najít nejziskovější variantu?
Přispěvatel: GloGlo 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?
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: linuxak 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
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: GloGlo 15. 08. 2022, 21:11:44
Myslel sem si něco takovýho, ale neuměl to pojmenovat. Díky moc!
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: RDa 15. 08. 2022, 21:39:01
Tech 6% zisku je za podminky pausalniho poplatku na sazce? :P
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: GloGlo 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í.
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: mark42 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.
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: Karmelos 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....
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: GloGlo 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
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: panpanika 16. 08. 2022, 14:14:24
poradil bych ti precist tohle http://aima.cs.berkeley.edu/
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: L.. 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í?
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: GloGlo 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.
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: Karmelos 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.
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: honzako 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.
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: GloGlo 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

Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: honzako 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á.“.
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: _Jenda 16. 08. 2022, 22:16:30
Tech 6% zisku je za podminky pausalniho poplatku na sazce? :P
No vzhledem k předchozím dotazům bych se vůbec nedivil kdyby pomíchal trénovací / testovací / validační množiny (ne nutně explicitně, ale třeba jsou mezi zápasy závislosti, které defaultní rozdělovač nemůže podchytit, nebo používá validační množinu opakovaně až mu to jednou vyjde, atd.). Ono je vlastně divné že dostal jenom 6%…
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: murf 16. 08. 2022, 22:27:31
Citace
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

Však ta AI (předpokládám, že využíváte ANN) vám hledá tu funkci z nějakého prostoru funkcí tak, aby minimalizovala výsledek loss funkce (tzn. minimalizuje rozdíl mezi výstupem z hledané funkce a skutečným výsledkem). Já zde asi poradím pořádně nastudovat základy (např. zde https://www.coursera.org/specializations/machine-learning-introduction).

Naprosto souhlasím s ostatními, že je potřeba se zamyslet, jestli vůbec tento jev lze takto (už z principu) predikovat.
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: _Jenda 16. 08. 2022, 22:58:29
Naprosto souhlasím s ostatními, že je potřeba se zamyslet, jestli vůbec tento jev lze takto (už z principu) predikovat.
Samozřejmě že lze. Pokaždé, když jakákoli sázkovka vypisuje kurz, tak dělá právě takovou predikci, a docela se jim to daří. Tazatel si musí uvědomit, že se nesnaží predikovat výsledek zápasu (jednoduché), ale predikovat výsledek zápasu výrazně lépe než profesionální sázkovky (good luck).
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: GloGlo 17. 08. 2022, 00:45:01
Naprosto souhlasím s ostatními, že je potřeba se zamyslet, jestli vůbec tento jev lze takto (už z principu) predikovat.
Samozřejmě že lze. Pokaždé, když jakákoli sázkovka vypisuje kurz, tak dělá právě takovou predikci, a docela se jim to daří. Tazatel si musí uvědomit, že se nesnaží predikovat výsledek zápasu (jednoduché), ale predikovat výsledek zápasu výrazně lépe než profesionální sázkovky (good luck).

Pro sázkovku je nejideálnější situace, kdy souhrn všech vkladů na jeden tým odpovídá výplatě výher na druhý tým a opačně. V tom případě totiž vůbec neriskuje - proplatí výherní tikety z těch proherních a zbyde ji několik procent marže - zisk.

Takže kurzy sázkovek úplně dokonale nevyjadřujou pravědpodobnost výhry, je to primárně pokus rozdělit sázející na dvě skupiny tak, aby se to co nejvíc blížilo tomu stavu ekvilibria nejvýhodnějšímu pro sázkovku. Proto se (předzápasové) kurzy často v čase různě mění. Není to proto, že by se měnila pravděpodobnost výsledku, ale prostě tím sázkovky reagujou na to, že mají na jedné straně víc peněz než na druhé.
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: APhacker_mob 17. 08. 2022, 01:12:46
Nestacilo by se ridit podle pocatecniho kurzu?
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: APhacker_mob 17. 08. 2022, 01:13:28
Nestacilo by se ridit podle pocatecniho kurzu? Pokud ten je nastaveny podle pravdepodobnosti vysledku?
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: RDa 17. 08. 2022, 01:36:21
Nestacilo by se ridit podle pocatecniho kurzu? Pokud ten je nastaveny podle pravdepodobnosti vysledku?

Jakoze vzit vzdy tu nizsi variantu, kterou preferuje sazkovy provider? Tak to by mohl zopovedet OP velice jednoduse, protoze ma data (tedy jestli ma i ty puvodni kurzy)
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: GloGlo 17. 08. 2022, 20:18:54
Nestacilo by se ridit podle pocatecniho kurzu? Pokud ten je nastaveny podle pravdepodobnosti vysledku?

Jakoze vzit vzdy tu nizsi variantu, kterou preferuje sazkovy provider? Tak to by mohl zopovedet OP velice jednoduse, protoze ma data (tedy jestli ma i ty puvodni kurzy)

Jsou weby jako třeba oddsportal.com, kde se dá sledovat vývoj kurzů v čase.

Moje pointa každopádně byla, že ve všech kurzech (i v tom prvním) je kromě pravděpodobnosti výhry týmu započítána i nějaká korekce vyjadřující předpoklad toho toho, jak moc budou sázkaři na ten tým sázet. (Myslím, že přibližně platí, že 80% sázkařů vsází na favorita a 20% na outsidera.)

Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: honzako 17. 08. 2022, 20:53:02
Možná by jsi měl začít samostudiem statistiky, pravděpodobnosti a matematické analýzy.

https://www.youtube.com/watch?v=raaGKGyBmyo
https://youtu.be/tB_z17TBrNg?t=1324
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: APhacker_mob 17. 08. 2022, 22:25:01
Nestacilo by se ridit podle pocatecniho kurzu? Pokud ten je nastaveny podle pravdepodobnosti vysledku?

Jakoze vzit vzdy tu nizsi variantu, kterou preferuje sazkovy provider? Tak to by mohl zopovedet OP velice jednoduse, protoze ma data (tedy jestli ma i ty puvodni kurzy)

Jsou weby jako třeba oddsportal.com, kde se dá sledovat vývoj kurzů v čase.

Moje pointa každopádně byla, že ve všech kurzech (i v tom prvním) je kromě pravděpodobnosti výhry týmu započítána i nějaká korekce vyjadřující předpoklad toho toho, jak moc budou sázkaři na ten tým sázet. (Myslím, že přibližně platí, že 80% sázkařů vsází na favorita a 20% na outsidera.)

Potom by stacilo sazet vzdy na outsidera.
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: ondrej12345 14. 07. 2023, 14:48:40
Slysel jsi o arbitrazi? To je jediny zpusob jak matematicky spolehlive vzdycky neprohrat. Trik je jen v tom nebyt odhalen...
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: peete 14. 07. 2023, 21:38:14
Jak píše honzako, že mít hromadu informací, jak se hráč zrovna vyspal a podobně a podle toho předpovědět výsledek zápasu. No a co to samé burza? Stačí mít robota na sledování zpráv, vyhodnocovat pomocí AI sentiment a podle toho koupit/prodat? Akorát je to celé o rychlosti. Smůla, že Twitter zavřel API. Dělám někde v této úvaze chybu? Jde o to, že stalkovat hráče nelze, ale lze stalkovat firmy.
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: Josef Jindra 14. 07. 2023, 22:38:13
Zkus na to použít některou z metod shlukové analýzy.
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: _Jenda 15. 07. 2023, 01:14:52
Slysel jsi o arbitrazi? To je jediny zpusob jak matematicky spolehlive vzdycky neprohrat. Trik je jen v tom nebyt odhalen...
Já chápu arbitráž jako že najdu že na jednom místě se něco obchoduje za X a na jiném za Y, třeba X>Y, tak koupím na druhém a prodám na prvním; náklady na transakci musí být <(X-Y). Ale proč vadí být odhalen? Tohle se třeba v burzovním světě dělá furt a považuje se to za dobou věc, „generování likvidity“ a pomáhání propagace cenových signálů.

Jinak reagujete na rok staré vlákno, které oživil spammer.
Název: Re:AI: jak najít nejziskovější variantu?
Přispěvatel: _Jenda 15. 07. 2023, 01:16:43
No a co to samé burza? Stačí mít robota na sledování zpráv, vyhodnocovat pomocí AI sentiment a podle toho koupit/prodat? Akorát je to celé o rychlosti. Smůla, že Twitter zavřel API. Dělám někde v této úvaze chybu?
Děláš chybu v tom, že přesně tímto se již desítky let zabývají celé týmy geniálních odborníků (točí se v tom velké prachy, takže dokážou lákat nadané lidi) a jakoukoli novou zprávu, tweet, sentiment… okamžitě využijí. Tvůj robot vyrobený doma téměř jistě nebude lepší a rychlejší než oni a proto tě oškubou.