Predikcia výsledkov futbalových zápasov pomocou NN Július Kočiš 5.roč. UI 2005 / 2006
ABSTRAKT Cieľom práce je vytvoriť prostredie pre predikciu výsledkov futbalových zápasov a vykonať konkrétné experimenty s predikciou. Prínosom práce je preskúmanie úlohy predikcie pre dáta typu "skóre" a predikcie z viacrozmerných dát.
ÚLOHY 1. Vytvoriť prostredie pre konverziu futbalových dát do trenovacich množín. 2. Realizovať experimenty s predikciou na týchto dátach. 3. Napísať report z realizovaných experimentov.
ÚVOD (1) zameranie na 1.českú futbalová ligu získavanie dát http://www.betexplorer.com/soccer/czech-republic/ tabuľky, výsledky, dátum, priemerný kurz z kurzov vyše 40 európskych stávkových kancelárií 30.7.1999 – 12.12.2005 1567 zápasov na experimenty – 1504 zápasov
ÚVOD (2)
SPRACOVANIE DÁT
Spracovanie dát – 1. krok (1) výber údajov z www stránok pomocou jazyka Perl Most SpartaPraha 0:3 4.89 3.22 1.95 12.12.2005 PlzenViktoria Blsany 2:0 1.81 3.20 3.99 11.12.2005 ...
Spracovanie dát – 2. krok (2) zmena poradia zápasov, vyhodenie kurzov a dňa z dátumu - pomocou jazyka C ... PlzenViktoria Blsany 2:0 12.2005 Most SpartaPraha 0:3 12.2005
Spracovanie dát (3) výsledok 1. a 2. kroku - 7 súborov pre každý ročník (1999/ 2000, 2001/2002, ... 2005 / 2006) 1999.txt, 2000.txt,....2005.txt
Spracovanie dát – 3. krok (4) spojenie predchádzajúcich súborov do súborov, v ktorom budú zápasy: od 1999 – 2005 ... 9012345.txt od 2000 – 2005 ... 012345.txt ... od 2004 – 2005 ... 45.txt od 2005 ... 5.txt pridanie informácie o počte zápasov v súbore
Spracovanie dát (5) Ukážka zo súboru 2345.txt 784 SpartaPraha Teplice 1:0 07.2002 ... Liberec Olomouc 2:0 10.2005
VSTUPY A VÝSTUPY NN
Názov mužstva (1) od roku 1999 hralo v českej lige 22 mužstiev, podľa zoznamu sa priradí každému mužstvu nasledujúce identifikačné číslo: 1. Blšany 2. Mladá Boleslav 3. Brno 4. Jablonec 5. Jihlava 6. Liberec 7. Most 8.Olomouc 9. Ostrava Baník 10. Plzeň Viktória 11. Příbram 12. Slavia Praha 13. 1.FC Slovácko 14. Sparta Praha 15. Teplice 16. Zlín 17. Č. Budejovice 18. Opava 19. Drnovice 20. Žižkov Viktória 21. Bohemians Praha 22. Hradec Králové
Názov mužstva (2) Názov jedného mužstva predstavuje 22 neurónov. Ak má mužstvo identifikačné číslo 15, 15-ty neurón bude mať hodnotu „6“, zvyšných 21 neurónov „-6“. Mužstvo 15. Teplice sa zapíše takto: -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 6 -6 -6 -6 -6 -6 -6 -6
Dátum - mesiac (1) Podobne ako pri názve mužstva Máme 12 mesiacov => 12 neurónov Ak se jedná napr. o zápas odohraný v septembri – 9.mesiaci, 9. neurón bude mať hodnotu „6“, zvyšných 11 neurónov hodnotu „-6“ -6 -6 -6 -6 -6 -6 -6 -6 6 -6 -6 -6
Dátum - rok (2) Zápas môže byť z 8 rokov => 8 neurónov (1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006) Ak se jedná napr. o zápas odohraný v roku 2001– 3.roku, 3. neurón bude mať hodnotu „6“, zvyšných 7 neurónov hodnotu „-6“ -6 -6 6 -6 -6 -6 -6 -6
Výsledok (1) Výsledok predstavuje výstupy z NN 3 typy výsledkov, t.j. na výstupe budú 3 neuróny: Výhra domácich 1 0 0 Remíza 0 1 0 Výhra hostí 0 0 1
Podľa počtu a typu vstupov som rozdelil trénovacie množiny na : trénovacie množiny 1.typu - názvy mužstiev, výsledok, dátum trénovacie množiny 2.typu - názvy mužstiev, výsledok, dátum - skóre a počet bodov
Ukážka jednej trénovacej vzorky z množiny 1.typu: -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 6 -6 -6 -6 -6 -6 -6 -6 1 0 0 -6 -6 -6 -6 -6 -6 6 -6 -6 -6 -6 -6 -6 -6 -6 6 -6 -6 -6 -6 Vysvetlenie: 1.r. „6“ na pozícii č.14 = Sparta Praha 2.r. „6“ na pozícii č.15 = Teplice 3.r. 1 0 0 znamená výhru domácih 4.r. „6“ na pozícii č.7 = júl 5.r. „6“ na pozícii č.4 = 2002
Ukážka jednej trénovacej vzorky z množiny 2.typu: -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 6 -6 -6 -6 -6 -6 -6 -6 -6 8.00 3.11 1.72 1.00 0.69 0.63 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 6 -6 -6 -6 -6 -6 -6 -6 0.17 0.71 1.00 0.00 0.26 0.43 1 0 0 -6 -6 -6 -6 -6 -6 6 -6 -6 -6 -6 -6 -6 -6 -6 6 -6 -6 -6 -6 1., 4., 7., 8., 9.r. – analogické ako pri 1.type
-6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 6 -6 -6 -6 -6 -6 -6 -6 -6 8.00 3.11 1.72 1.00 0.69 0.63 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 6 -6 -6 -6 -6 -6 -6 -6 0.17 0.71 1.00 0.00 0.26 0.43 2.r. - pomer skóre (pre domáce mužstvo) posledné 3 zápasy, akt.ročník, od 1.zápasu v trénovacej množine 3.r. – percento získaných bodov (pre domáce mužstvo) 5.r. - pomer skóre , 6.r. percento získaných bodov (pre hostí)
FÁZA UČENIA NN
Parametre siete (1) metóda spätného šírenia chyby aktivačná funkcia – sigmoidálna funkcia 2 skryté vrstvy - počty neurónov zadáva užívateľ gamu, alfu, počet cyklov – zadáva užívateľ počet neurónov na výstupnej vrstve – 3
Parametre siete (2) Počet neurónov na vstupnej vrstve: trénovacia množina 1.typu nezahrnúť dátum – 44 (22+22) zahrnúť rok – 52 (22+22+8) zahrnúť dátum – 64 (22+22+20) trénovacia množina 2.typu nezahrnúť dátum – 56 (22+6+22+6) zahrnúť rok – 64 (22+6+22+6+8) zahrnúť dátum – 76 (22+6+22+6+20)
Parametre siete (3)
FÁZA ŽIVOTA NN - PREDIKCIA VÝSLEDKOV
učenie končí po dosiahnutí užívateľom zadaného počtu cyklov počas učenia sa neustále zaznamenáva číslo cyklu s najmenšou chybou a do súboru vahy_best.txt sa ukladajú hodnoty váh v tomto cykle. Ak užívateľ zadá napr. počet cyklov 10000 a najmenšia chyba bola v cykle v 8000, nie je nutné sieť učiť ešte raz, ale sa načítajú váhy zo súboru a dochádza k predikcii výsledkov.
Testovacia množina v českej lige hrá 16 mužstiev => predikujú sa výsledky na 8 zápasov štruktúra testovacej množiny je podobná trénovacej množine 1 rozdiel – chýba zápis výsledku -6 -6 -6 -6 -6 -6 -6 -6 6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 1.50 0.82 1.03 0.44 0.33 0.45 -6 -6 -6 -6 -6 6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 1.50 0.75 1.08 0.44 0.33 0.46 -6 -6 -6 -6 -6 6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 -6 6 -6 -6
Výsledok predikcie
Parametre učenia
Experimenty (1) na 9.kolo, 15. - 17. 10. 2005 Výsledky 9. kola: Očakávané výsledky: 1.FC Slovácko – Ostrava Baník 0:0 → 0 1 0 Most – Slavia Praha 0:3 → 0 0 1 Sparta Praha – Blšany 5:2 → 1 0 0 Příbram – Zlín 3:0 → 1 0 0 Jihlava – Teplice 0:4 → 0 0 1 Brno – Jablonec 1:1 → 0 1 0 Ml. Boleslav – Plzeň Viktoria 2:2 → 0 1 0 Liberec – Olomouc 2:0 → 1 0 0
Experimenty – 1.typ tr.množín (1) A B C D E F G 1264 1 20, 8 10 000 540 44.38% 37.5 % 1264 2 20, 8 20 000 9893 78.88% 25.0 % 1264 3 20, 8 10 000 2118 93.35% 25.0 % 1024 1 20, 8 10 000 305 48.93% 50.0 % 1024 2 20, 8 8 000 3345 80.66% 62.5 % 1024 3 20, 8 8 000 3113 92.09% 12.5 % 784 1 20, 8 8 000 381 52.81 % 25.0 % 784 2 20, 8 8 000 7227 85.59 % 25.0 % 784 3 20, 8 8 000 7901 88.65 % 62.5 % A – počet vzoriek ,B – 1 - netrénoval sa dátum, 2 – trénoval sa rok, 3 – trénoval sa dátum C – počet neurónov na 1.skrytej vrstve, na 2. skyrtej vrstve D – počet cyklov,E – počet cyklov, v ktorom bola najmenšia chyba F – úspešnosť testovania pri prahu 0.40, F – úspešnosť predikcie
Experimenty – 1.typ tr.množín (2) A B C D E F G 544 1 20,8 8 000 298 62.13 % 62.5 %. 544 2 20,8 8 000 4597 86.21 % 25.0 % 544 3 20,8 8 000 282 97.24 % 50.0 % 304 1 20,8 4 000 1918 84.54 % 37.5 % 304 2 20,8 4 000 944 86.51 % 25.0 % 304 3 20,8 4 000 4000 100.00 % 75.0 % 64 1 20,8 1 500 1500 100.00 % 62.5 % 64 2 20,8 1 000 1000 100.00 % 62.5 % 64 3 20,8 1 500 1500 100.00 % 25.0 % 64 3 20,8 3 000 3000 100.00 % 25.0 %
Experimenty – 2.typ tr.množín (1) A B C D E F G 1504 1 40, 15 5 000 4647 80.25% 62.5 % 1504 1 40, 15 10 000 9262 92.75% 50.0 % 1504 2 30, 10 10 000 9453 96.74% 25.0 % 1504 2 40, 15 20 000 19041 98.94% 25.0 % 1504 3 30, 10 5 000 3408 94.95% 37.5 % 1504 3 40, 15 10 000 8218 99.93% 37.5 % 1264 1 40, 15 5 000 4691 86.39% 50.0 % 1264 2 30, 10 10 000 9893 98.26% 25.0 % 1264 3 30, 10 10 000 2118 94.94% 62.5 % 1264 3 40, 15 10 000 3947 99.13% 37.5 %
Experimenty – 2.typ tr.množín (2) A B C D E F G 1024 1 40, 15 5 000 4871 91.21 % 37.5 % 1024 2 40, 15 5 000 4990 98.93 % 37.5 % 1024 3 30, 10 10 000 1845 92.19% 37.5 % 1024 3 40, 15 5 000 5000 100.00% 50.0 % 784 1 40, 15 5 000 3753 95.66 % 37.5 % 784 2 40, 15 6 000 5872 98.21% 50.0 % 784 3 40, 15 1602 1602 100.00% 75.0 % A – počet vzoriek ,B – 1 - netrénoval sa dátum, 2 – trénoval sa rok, 3 – trénoval sa dátum C – počet neurónov na 1.skrytej vrstve, na 2. skyrtej vrstve D – počet cyklov, E – počet cyklov, v ktorom bola najmenšia chyba F – úspešnosť testovania pri prahu 0.40, F – úspešnosť predikcie
Vyhodnotenie experimentov (1) trénovacie množiny 1.typu fakt, či sa sa priviedol na vstup aj dátum alebo nie, výsledky predikcie neovplyvnil, ale zjavne ovplyvnil úspešnosť testovania siete na trénovacích vzorkách pri počte neurónov na skrytých vrstvách 20 a 8 sa sieť dala naučiť v priemere len na 80-90%, okrem experimentov, kde počet trénovacích vzoriek bolo 64. Pri počte trénovacích vzoriek 544 to činí len 462 správne predikovaných výsledkov.
Vyhodnotenie experimentov (2) trénovacie množiny 2.typu na rozdiel od 1.typu trénovacích množín bola schopná sieť sa naučiť na 90-100%. Buď to bolo spôsobené väčším počtom neurónov na skrytých vrstvách, alebo tým, že 2.typ trénovacích množín obsahuje informácie o skóre a počte bodov. fakt, či sa priviedol na vstup aj dátum alebo nie, výsledky predikcie výrazne neovplyvnil (aj keď vo väčšine prípadov bola úspešnosť predikcie vyššia v prípadoch ak sa dátum započítal), ale v situáciach keď sa dátum priviedol na vstup, potrebovala sieť menší počet cyklov na dosiahnutie podobných hodnôt úspešností testovania ako keď sa dátum na vstup nepriviedol.
Ďakujem za pozornosť !!!