Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 07. 08. 2022 03:16 — Editoval lordcong (07. 08. 2022 03:54)

lordcong
Příspěvky: 33
Škola: PF UK
Pozice: student
Reputace:   
 

Jakým algoritmem vyřešit?

Nejsem kloudně schopnej svůj problém matematicky vyjádřit, tak se omlouvám, že to asi bude trochu kostrbatější.

Mám data vygenerovaný určitým algoritmem z určitých dat.

Data vypadají takto:

[62819, 42.41231475542653, [1, 3, 3, 1, 3]]
[63560, 42.912601694629174, [1, 3, 3, 1, 4]]
[64554, 43.583701853289675, [1, 3, 3, 1, 5]]
[62830, 42.419741417142085, [1, 3, 3, 1, 6]]
[60725, 40.99854842521014, [1, 3, 3, 2, 1]]
[61566, 41.56635047091787, [1, 3, 3, 2, 2]]
[54853, 37.034061371231815, [1, 3, 3, 2, 3]]
[62819, 42.41231475542653, [1, 3, 3, 2, 4]]
[63560, 42.912601694629174, [1, 3, 3, 2, 5]]

V podstatě jde o to, že pro hodnoty [1, 3, 3, 1, 3] je úspěšnost metody 42.41%, pro hodnoty [1, 3, 3, 1, 4] 42.91% atd.

No a mým cílem je najít takový hodnoty toho třetího sloupečku, aby byla úspěšnost metody co nejvyšší. Ty hodnoty nemusí být v tom rozmezí 1-6, je úplně jedno, jaký jsou, klidně to může být i float. Ale každopádně úspěšnost tý metody závisí na kombinaci těch čísel.

Mně zatím napadlo jen zkoušet to hrubou silou (nechat to počítat tisíce možných kombinací), ale nejsem si vůbec jistej, že to je nejlepší řešení a navíc to žere zdroje (výpočet každý položky trvá asi sekundu).

Z matematického hlediska vůbec nevím, jak to řešit :(

Offline

 

#2 07. 08. 2022 10:39

Stýv
Vrchní cenzor
Příspěvky: 5696
Reputace:   215 
Web
 

Re: Jakým algoritmem vyřešit?

lordcong napsal(a):

Mám data vygenerovaný určitým algoritmem z určitých dat.

Vzdycky je lepsi vedet, kde se data vzaly a co znamenaji.

Offline

 

#3 07. 08. 2022 17:42 — Editoval lordcong (07. 08. 2022 17:52)

lordcong
Příspěvky: 33
Škola: PF UK
Pozice: student
Reputace:   
 

Re: Jakým algoritmem vyřešit?

Mám data o sportovních zápasech. Na jedné straně výsledek a na druhé různé statistické údaje. Cílem je zkombinovat ty statistické údaje tak, aby se z nich dalo co nejlépe predikovat výsledek. Statistických údajů mám hodně, ale je to nerovnoměrné, u některých zápasů jich je mnohonásobně víc než u jiných. A protože s tím začínám a pořádně nevím, jak postupovat, tak jsem to celé hodně zredukoval.

Na jedné straně výsledek a ten redukuju do podoby favorit vyhrál ANO/NE. Na druhé straně pět různých faktorů A, B, C, D, E, přičemž v některém zápase ten faktor vůbec být nemusí (byť obvykle je), ale každopádně pokud je, tak je vždycky jen u jednoho týmu, to je pevně dané. Příklad je třeba výhoda domácího hřiště. Pokud je zápas na neutrální půdě, tak tu výhodu nemá žádný z týmů, ale pokud se zápas nehraje na neutrální půdě, tak se vždy hraje na půdě jednoho z týmů, ne obou současně.

No a teď jde o to, že hlavní věc na kterou se snažím přijít je, jak moc je každý z těch faktorů A, B, C, D, E důležitý - jak moc velkou roli na výsledku hraje.

Postupuju tak, že zkouším různé kombinace, viz výše. Takže v třeba v tom prvním případě:

[62819, 42.41231475542653, [1, 3, 3, 1, 3]]

Toto by znamenalo: faktor A - 1 bod, faktor B 3 body, faktor C 3 body, faktor D 1 bod, faktor E 3 body.

Jak jsem psal, tak ten faktor může mít vždy jeden z týmů nebo ho nemusí mít žádný tým. Dejme tomu, že v určitém zápase favorit má faktory B, C a outsider faktor E. Faktory A a D nemá žádný z týmů. Když se to posčítá, tak favorit má 3+3 body za faktory B, C a outsider 3 body za faktor E. Čili predikce je, že vyhraje favorit (má víc bodů). No a pak se to porovná s výsledkem. Pokud je predikce vyhraje favorit a on opravdu vyhrál, tak je to úspěšná predikce. Úspěšná predikce může samozřejmě být i vyhraje outsider a on pak vyhrál.

Každý zápas je samozřejmě úplně jiný, takže v jednom zápase má třeba favorit faktory B, C, v druhém A, E a ve třetím třeba žádný. Totéž pro outsidera.

No a zápasů mám hodně, asi 150 tisíc. Když tu bodovou kombinaci faktorů [1, 3, 3, 1, 3] aplikuju na všechny z těch cca 150 tisíc zápasů, tak mi v součtu vyjde, že cca 42,41% predikcí je úspěšných. Když potom změním tu bodovou kombinaci na např. [1, 3, 3, 2, 3], tak je úspěšnost cca 37.03% .. atd.

Cílem je najít takovou kombinaci těch faktorů A, B, C, D, E aby byla celková úspěšnost co nejvyšší. Přičemž jak jsem psal, tak ty hodnoty mohou být libovolné.

Offline

 

#4 07. 08. 2022 20:51

Stýv
Vrchní cenzor
Příspěvky: 5696
Reputace:   215 
Web
 

Re: Jakým algoritmem vyřešit?

Zkusil bych logistickou regresi.

Offline

 

#5 07. 08. 2022 23:59

check_drummer
Příspěvky: 4939
Reputace:   106 
 

Re: Jakým algoritmem vyřešit?

↑ lordcong:
Ahoj, co znamenají v řádku
[62819, 42.41231475542653, [1, 3, 3, 1, 3]]
první dvě čísla, tj. 62819 a 42.41231475542653. A jak z toho řádku poznám, kdo vyhrál? (Předpokládám, že každý řádek reprezentuje nějaký zápas.)


"Máte úhel beta." "No to nemám."

Offline

 

#6 08. 08. 2022 00:00

check_drummer
Příspěvky: 4939
Reputace:   106 
 

Re: Jakým algoritmem vyřešit?

Jinak asi je to téma do kategorie statistiky a pravděpdoobnosti.


"Máte úhel beta." "No to nemám."

Offline

 

#7 08. 08. 2022 01:20

lordcong
Příspěvky: 33
Škola: PF UK
Pozice: student
Reputace:   
 

Re: Jakým algoritmem vyřešit?

check_drummer napsal(a):

↑ lordcong:
Ahoj, co znamenají v řádku
[62819, 42.41231475542653, [1, 3, 3, 1, 3]]
první dvě čísla, tj. 62819 a 42.41231475542653. A jak z toho řádku poznám, kdo vyhrál? (Předpokládám, že každý řádek reprezentuje nějaký zápas.)

Ne, jsou to data pro všechny zápasy dohromady, kterých je přibližně 150 tisíc, konkrétně tedy 148115, jak se i z tohoto dá vypočítat. Takže v tomto případě byla predikce u 62819 zápasů z 148115 dobrá, jinými slovy ve 42.41231475542653 %

Offline

 

#8 08. 08. 2022 01:50

check_drummer
Příspěvky: 4939
Reputace:   106 
 

Re: Jakým algoritmem vyřešit?

↑ lordcong:
Máme tedy 5 faktorů.

Jsem schopen pro libovolné konkrétní koeficienty, např. [2,2,2,2,2], spočítat úspěšnost predikce (byť bych musel projít všech 150tis. případů)? Pokud toho schopen jsem, jak takový výpočet proběhne? Je u každého zápasu dáno jaké faktory soupeři měli a kdo nakonec vyhrál?

Pokud budu měnit jen jeden koeficient (budu ho chápat jako proměnnou x), např. [x, 3, 3, 1, 3] bude funkce závislosti úspěšnosti predikce na x rosoucí/klesající? Pokud ne, může mít tato funkce více (lokálních) extrémů?

Zatím se mi to jeví jako optimalizační úloha v R5 z jisté funkce, kterou není zcela snadné (rychlé) vyčíslit. Zkoušel bych asi metodu gradientu. Ale neznám tolik metod, asi poradí někdo povolanější.


"Máte úhel beta." "No to nemám."

Offline

 

#9 08. 08. 2022 02:15

check_drummer
Příspěvky: 4939
Reputace:   106 
 

Re: Jakým algoritmem vyřešit?

Ta logistická regrese vypadá v principu zajímavě. Ale není z toho jasné (čtu to na české wikipedii) jak volit ten vektor x - předpokládám, že každý faktor se musí nějak převést na číslo (aby bylo možné provést skalární součin s vektorem [mathjax]\beta[/mathjax]) a že by asi mezi hodnotami jednoho faktoru mělo být nějaké lineární uspořádání... Ale to asi nemusíme řešit, když v našem případě je faktor jen hodnota 0/1.

Ale že jde o optimalizační úlohu je tam skryto v tom, že se musí vektor [mathjax]\beta[/mathjax] určit aby dával co "nejlepší" výsledky - navrhována je metoda max. věrohodnosti.


"Máte úhel beta." "No to nemám."

Offline

 

#10 08. 08. 2022 02:47 — Editoval lordcong (08. 08. 2022 02:53)

lordcong
Příspěvky: 33
Škola: PF UK
Pozice: student
Reputace:   
 

Re: Jakým algoritmem vyřešit?

check_drummer napsal(a):

↑ lordcong:
Máme tedy 5 faktorů.

Jsem schopen pro libovolné konkrétní koeficienty, např. [2,2,2,2,2], spočítat úspěšnost predikce (byť bych musel projít všech 150tis. případů)? Pokud toho schopen jsem, jak takový výpočet proběhne? Je u každého zápasu dáno jaké faktory soupeři měli a kdo nakonec vyhrál?

Pokud budu měnit jen jeden koeficient (budu ho chápat jako proměnnou x), např. [x, 3, 3, 1, 3] bude funkce závislosti úspěšnosti predikce na x rosoucí/klesající? Pokud ne, může mít tato funkce více (lokálních) extrémů?

Zatím se mi to jeví jako optimalizační úloha v R5 z jisté funkce, kterou není zcela snadné (rychlé) vyčíslit. Zkoušel bych asi metodu gradientu. Ale neznám tolik metod, asi poradí někdo povolanější.

Mám data v databázi a pro tyto potřeby jsem si to vyexportoval, zatím to mám v JSONu, celý bych to měl asi udělat líp, protože tam jsou zbytečný duplikáty a měl bych to dát do np.array, no - ale to je na jinou diskuzi :)

Každopádně data jednoho zápasu pro tyto potřeby v tuto chvíli vypadají takto:

{"odds_home": 2.5, "odds_away": 1.54, "scores_home": 3, "scores_away": 4, "h1": [false, false, false, false, false], "h3": [false, false, false, false, false], "h4": [false, false, false, false, false], "h5": [false, false, false, true, false], "h6": [false, false, false, false, false], "h7": [true, true, false, false, false], "h9": [false, false, false, false, false], "h10": [false, false, false, false, false], "h11": [false, false, true, false, true], "h12": [false, false, false, false, false] }

Asi je jasný, že jsou 2 týmy, jeden je home a druhej away. Favorit je ten, kterej má nižší kurz, kdo je vítěz je jasný.

V každým tom listu je to [A, B, C, D, E] a každej index má vždycky jen jednou true. Jak je vidět, tak A je true pod h7, B taky pod h7, C pod h11, D pod h5, E pod h11.

Favorit má h1, h3, h6, h10 a h11, outsider má h7, h9, h12, h4 a h5. Takže favorit by měl C a E a outsider A, B a D.

V případě [2,2,2,2,2] by měl tedy favorit 2+2 body a outsider 2+2+2 body, čili predikce by byla vyhraje outsider. Ale jak je vidět, tak zápas vyhrál host a host byl favorit, takže v tomto případě predikce nebyla úspěšná. Pro jiný data, třeba [2, 2, 5, 2, 5] by predikce úspěšná byla.

Toto je zhruba jak probíhá vypočet predikce jednoho zápasu a ano, je potřeba to zhruba 150tisíckrát zopakovat, aby se dospělo k tomu výsledku ve formě [62819, 42.41231475542653, [1, 3, 3, 1, 3]]

Na ty zbývající otázky nedokážu bohužel zodpovědět. Umím sice základy programování, ale jinak jsem orientovanej spíš na humanitní předměty a co se týče matiky - no, jak to říct. Na gymplu nejsem více než 10 let, většinu věcí sem zapomněl a toto jsme se stejně ani myslím neučili :D

Offline

 

#11 08. 08. 2022 03:28

lordcong
Příspěvky: 33
Škola: PF UK
Pozice: student
Reputace:   
 

Re: Jakým algoritmem vyřešit?

check_drummer napsal(a):

↑ lordcong:
Máme tedy 5 faktorů.

Jsem schopen pro libovolné konkrétní koeficienty, např. [2,2,2,2,2], spočítat úspěšnost predikce (byť bych musel projít všech 150tis. případů)? Pokud toho schopen jsem, jak takový výpočet proběhne? Je u každého zápasu dáno jaké faktory soupeři měli a kdo nakonec vyhrál?

Pokud budu měnit jen jeden koeficient (budu ho chápat jako proměnnou x), např. [x, 3, 3, 1, 3] bude funkce závislosti úspěšnosti predikce na x rosoucí/klesající? Pokud ne, může mít tato funkce více (lokálních) extrémů?

Zatím se mi to jeví jako optimalizační úloha v R5 z jisté funkce, kterou není zcela snadné (rychlé) vyčíslit. Zkoušel bych asi metodu gradientu. Ale neznám tolik metod, asi poradí někdo povolanější.

tady je průběh tý funkce pro hodnoty [x, 3, 3, 1, 3], kde x je -10 až +10.. ale nemyslím si, že tohle k něčemu je :D

https://colab.research.google.com/drive … sp=sharing

Offline

 

#12 08. 08. 2022 18:54

MichalAld
Moderátor
Příspěvky: 5071
Reputace:   126 
 

Re: Jakým algoritmem vyřešit?

To by mě docela zajímalo co to je za výpočet, že to z pěti čísel počítá výsledek vteřinu. Protože to na dnešním počítači je nějaká miliarda operací, nebo kolik.

Pokud je to opravdu takto, bude se extrém hledat blbě.

Další věc je, jestli je tak funkce aspoň trochu spojitá, tj že když změníš ty vstupní čísla jen trochu, změní se výsledek taky jen trochu. Pokud né, tak to jinak než hrubou silou asi nepůjde.

Pokud ano - už tu někdo navrhoval gradientní metodu. Což znamená, že spočítáš hodnotu funkce v nějakém bodu X, a potom v jeho okolí v každém z těch pěti "směrů" a zjistíš, který směr vykazuje nejvyšší přírustek (nemusí to být přímo směr některé z proměnných, může to být obecný směr). A v tom směru posuneš o vhodný kousek svoje X. A tak pořád dokola. Trochu problém je určit, o jaký kousek se to má posouvat.

Nicméně pokud ti výpočet trvá vteřinu, stejně to bude neúnosně dlouhé, takže první krok by měl být zoptimalizování toho výpočtu...nějak to jít musí.

Offline

 

#13 08. 08. 2022 19:09

lordcong
Příspěvky: 33
Škola: PF UK
Pozice: student
Reputace:   
 

Re: Jakým algoritmem vyřešit?

MichalAld napsal(a):

To by mě docela zajímalo co to je za výpočet, že to z pěti čísel počítá výsledek vteřinu. Protože to na dnešním počítači je nějaká miliarda operací, nebo kolik.

Pokud je to opravdu takto, bude se extrém hledat blbě.

Další věc je, jestli je tak funkce aspoň trochu spojitá, tj že když změníš ty vstupní čísla jen trochu, změní se výsledek taky jen trochu. Pokud né, tak to jinak než hrubou silou asi nepůjde.

Pokud ano - už tu někdo navrhoval gradientní metodu. Což znamená, že spočítáš hodnotu funkce v nějakém bodu X, a potom v jeho okolí v každém z těch pěti "směrů" a zjistíš, který směr vykazuje nejvyšší přírustek (nemusí to být přímo směr některé z proměnných, může to být obecný směr). A v tom směru posuneš o vhodný kousek svoje X. A tak pořád dokola. Trochu problém je určit, o jaký kousek se to má posouvat.

Nicméně pokud ti výpočet trvá vteřinu, stejně to bude neúnosně dlouhé, takže první krok by měl být zoptimalizování toho výpočtu...nějak to jít musí.

Mechanismus jsem tu popisoval o 2 posty výš. "Pomalé" je to proto, že to není jeden výpočet, ale zhruba 150tisíc výpočtů. Nicméně zrychlit by to šlo a to podstatně, to mi je jasný. Ono to vlastně úplně zbytečně pokaždý počítá data, který by stačilo spočítat jednou a pak vždycky jen načíst :D

Nicméně stejně to musím řešit jinak než střílet náhodný hodnoty a vypadá to, že opravdu logická regrese to řeší. Začal sem to studovat, nejlepší zdroj, co sem našel, je asi https://realpython.com/logistic-regression-python/ - ale jako je to pro mě těžký, protože moje znalosti matiky jsou skoro nulový :D

Offline

 

#14 08. 08. 2022 19:35

check_drummer
Příspěvky: 4939
Reputace:   106 
 

Re: Jakým algoritmem vyřešit?

Jak už bylo řečeno - k urychlení výpočtudojde dát to do vhodné paměťové struktury a odstranit případné duplicity.

Ještě mám otázku: Asi je možné, že pro stejné faktory mohl jednou zápas vyhrát domácí a podruhé host, že?

Tedy faktorů je 5 a každý může nabývat hodnoty řekněme -1,0,1?
A jsou ty faktory vypovídající? Podstatné je přece hlavně kdo proti komu hraje a ne, zda se to hraje třeba na domácím hřišti. Když budu mít nějaký tým z první ligy a tým z okresníhio přeboru, tak i kdyby všechny faktory hrály pro tým z okresního přeboru, tak bych si tipl, že vyhraje tým z první ligy.

A taky třeba v první lize může nějaký faktor mít významnější roli než v okresním přeboru, takže pro každou soutěž může být dobré volit jinou sadu těch koeficientů.


"Máte úhel beta." "No to nemám."

Offline

 

#15 08. 08. 2022 20:41

lordcong
Příspěvky: 33
Škola: PF UK
Pozice: student
Reputace:   
 

Re: Jakým algoritmem vyřešit?

check_drummer napsal(a):

Jak už bylo řečeno - k urychlení výpočtudojde dát to do vhodné paměťové struktury a odstranit případné duplicity.

Ještě mám otázku: Asi je možné, že pro stejné faktory mohl jednou zápas vyhrát domácí a podruhé host, že?

Tedy faktorů je 5 a každý může nabývat hodnoty řekněme -1,0,1?
A jsou ty faktory vypovídající? Podstatné je přece hlavně kdo proti komu hraje a ne, zda se to hraje třeba na domácím hřišti. Když budu mít nějaký tým z první ligy a tým z okresníhio přeboru, tak i kdyby všechny faktory hrály pro tým z okresního přeboru, tak bych si tipl, že vyhraje tým z první ligy.

A taky třeba v první lize může nějaký faktor mít významnější roli než v okresním přeboru, takže pro každou soutěž může být dobré volit jinou sadu těch koeficientů.

Ono není skoro vůbec důležitý jestli vyhrál domácí nebo host, ale spíš jestli vyhrál favorit nebo outsider. A ano, poměr mezi těmi týmy bude hrát hodně velkou roli a až se toto naučím líp zpracovávat, tak to nějak do toho algoritmu zapracuju. Těchto pět faktorů je pro začátek a je to hrozně velký zjednodušení (ve skutečnosti těch faktorů mám mnohem víc - desítky), ale když to neumím řešit matematicky a zkouším to hrubou silou, tak nemá smysl přidávat hodně faktorů, protože pak je tolik kombinací, že bych je stejně nezpracoval.

Offline

 

#16 09. 08. 2022 15:42

lordcong
Příspěvky: 33
Škola: PF UK
Pozice: student
Reputace:   
 

Re: Jakým algoritmem vyřešit?

Jestli jsem tuhle stránku pochopil správně - zatím jsem to nezkoušel a nezkoumal, jak to prakticky implementovat - https://www.datasklr.com/logistic-regre … regression

tak v podstatě by stačilo mít data pro těch 150 tisíc zápasů ve formě 6 proměnných [FavoritVyhralNeboNe , A, B, C, D, E]

první proměnná by byla 0/1 a A, B, C, D, E by bylo -1, 0 nebo 1... kdy -1 by bylo faktor nemá žádný z týmů, 0 má ho favorit, 1 má ho outsider

Pak to narvat do modelu LogisticRegression a ono by mi to spočítalo nejvyšší možnou míru accuracy a ty koeficienty, přičemž tedy ta accuracy by v podstatě byla nejvyšší možná dosažitelná míra úspěšnosti predikce a ty koeficienty to, co se pokouším najít?

Nějak se mi nezdá, že by to v podstatě bylo tak jednoduchý, když člověk ví, jak na to :D

Offline

 

#17 09. 08. 2022 16:33

Stýv
Vrchní cenzor
Příspěvky: 5696
Reputace:   215 
Web
 

Re: Jakým algoritmem vyřešit?

↑ lordcong: Je to vcelku standardni uloha, takze existuji nastroje, jak ji jednoduse vyresit. Akorat bacha na ty faktory. Tak, jak jsi to napsal, by to znamenalo priblizne to, ze je nejaka zakladni pst. kdyz ma faktor favorit, a pokud faktor nema zadny z tymu, tak je ta pst. o x nizsi a pokud ho ma outsider, tak je o x vyssi. Pokud uz dava smysl to nejak radit, tak spis outsider-nikdo-favorit. Nebo jeste lepe nechovat se k tomu jako k ciselnym hodnotam a definovat pro kazdy faktor dva 0/1 sloupce (nema/ma ho outsider, nema/ma ho favorit). Mela by na to jit pouzit funkce pandas.get_dummies().

Offline

 

#18 09. 08. 2022 21:16

lordcong
Příspěvky: 33
Škola: PF UK
Pozice: student
Reputace:   
 

Re: Jakým algoritmem vyřešit?

Stýv napsal(a):

↑ lordcong: Je to vcelku standardni uloha, takze existuji nastroje, jak ji jednoduse vyresit. Akorat bacha na ty faktory. Tak, jak jsi to napsal, by to znamenalo priblizne to, ze je nejaka zakladni pst. kdyz ma faktor favorit, a pokud faktor nema zadny z tymu, tak je ta pst. o x nizsi a pokud ho ma outsider, tak je o x vyssi. Pokud uz dava smysl to nejak radit, tak spis outsider-nikdo-favorit. Nebo jeste lepe nechovat se k tomu jako k ciselnym hodnotam a definovat pro kazdy faktor dva 0/1 sloupce (nema/ma ho outsider, nema/ma ho favorit). Mela by na to jit pouzit funkce pandas.get_dummies().

OK, tak sem to zkusil, jestli byste se na to někdo chtěl mrknout, zajímalo by mě, kde to mám špatně... nebo jestli to celý špatně chápu?

Ukazuje mi to Accuracy Score 0.6093332442544094 - to jako je 60,9%? To by pro mě bylo skvělý číslo.

Jenže když s těma koeficientama, co to vypočítalo, pak zkusím spočítat úspěšnost tý metody, tak mi to ukazuje jen 47.57 %...

Zde je celej kód včetně odkazu na data: https://colab.research.google.com/drive … sp=sharing

Offline

 

#19 10. 08. 2022 17:13

Stýv
Vrchní cenzor
Příspěvky: 5696
Reputace:   215 
Web
 

Re: Jakým algoritmem vyřešit?

↑ lordcong: Parametry jednoho modelu samozrejme nemuzes pouzit v uplne jinym modelu. Na tu svoji puvodni metodu proste zapomen.

Offline

 

#20 10. 08. 2022 18:18 — Editoval lordcong (10. 08. 2022 18:20)

lordcong
Příspěvky: 33
Škola: PF UK
Pozice: student
Reputace:   
 

Re: Jakým algoritmem vyřešit?

Stýv napsal(a):

↑ lordcong: Parametry jednoho modelu samozrejme nemuzes pouzit v uplne jinym modelu. Na tu svoji puvodni metodu proste zapomen.

Nevím, jestli jsem to pochopil správně, ale přijde mi, že ta logická regrese teda vlastně jen dospěla k tomu, že nejúspěšnější metoda je vždy předpovídat, že vyhraje favorit... což je samozřejmě pravda, ale na takový "geniální" objev nepotřebuju logickou regresi :D

Asi bych se měl vrátit k původní otázce a to se prej typově jmenuje klasifikace hypercube.

Offline

 

#21 10. 08. 2022 20:47

Stýv
Vrchní cenzor
Příspěvky: 5696
Reputace:   215 
Web
 

Re: Jakým algoritmem vyřešit?

1) Je to logisticka regrese.
2) Zrejme jsou ty tvoje faktory vyrazne slabsi, nez to, kdo je favorit.

Offline

 

#22 11. 08. 2022 00:51

lordcong
Příspěvky: 33
Škola: PF UK
Pozice: student
Reputace:   
 

Re: Jakým algoritmem vyřešit?

Stýv napsal(a):

1) Je to logisticka regrese.
2) Zrejme jsou ty tvoje faktory vyrazne slabsi, nez to, kdo je favorit.

Jo, logistická, a to sem to psal asi 10x do googlu :D

Jinak ty parametry, který sem hledal, aby to dávalo stejný číslo jako Accuracy Score tý logistický regrese, mi spočítala funkce scipy.optimize.minimize za použití method='Powell' a to poměrně hodně rychle, až se tomu sám divím. Dokonce i když sem to rozšířil na 24 parametrů, tak to trvalo jen asi minutu.

Offline

 

#23 11. 08. 2022 18:38

check_drummer
Příspěvky: 4939
Reputace:   106 
 

Re: Jakým algoritmem vyřešit?

↑ lordcong:
150 tisíc záznamů není ve statistice zas tolik. :-)


"Máte úhel beta." "No to nemám."

Offline

 

#24 11. 08. 2022 19:18

lordcong
Příspěvky: 33
Škola: PF UK
Pozice: student
Reputace:   
 

Re: Jakým algoritmem vyřešit?

check_drummer napsal(a):

↑ lordcong:
150 tisíc záznamů není ve statistice zas tolik. :-)

Jako je to zajímavý. Těch 5 parametrů rozdělených na 2 podle rady Stýva teda v součtu mělo nižší míru úspěšnosti než 60% (což je číslo, kdy ve všech sportech dohromady vyhraje favorit).

Ale když sem vzal asi třetinu parametrů ze své databáze, rozdělil je do různejch podkategorií, takže mi to dalo asi 400 parametrů 0/1.. a takhle to narval do modelu.. tak už mi to najednou ukazuje úspěšnost asi 86,9% což je naprosto mega hustý.. musím to samozřejmě ověřit, protože sem možná někde udělal chybu.. ale kdyby to fungovalo, no tak sem myslím doopravdy génus a sázením podle této metody si vydělám hodně peněz :D :D :D

Offline

 

#25 11. 08. 2022 21:12

check_drummer
Příspěvky: 4939
Reputace:   106 
 

Re: Jakým algoritmem vyřešit?

↑ lordcong:
A jsi u každého zápasu, na který chceš vsadit, schopen určit všecny ty parametry?
A jak se pozná předem kdo je favorit a kdo outsider?
Kolik procent z těch 150tis. zápasů vyhrál favorit? Pokud kolem 80%, tak ta predikce zas asi tolik nepřinese...


"Máte úhel beta." "No to nemám."

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson