Cześć.
Co roku FIFA wybiera najlepszego piłkarza na świecie. Mam na myśli ranking, w którym zawsze wygrywa Ronaldo albo Messi, a Neymar jest na trzecim miejscu. Na końcu ostatniego roku, kiedy znowu wybierany był najlepszy piłkarz, pomyślałem o niedoskonałościach sposobu, w jaki jest dokonywany wybór. Najlepszy piłkarz jest wybierany poprzez głosy dziennikarzy i trenerów, więc jeżeli przykładowo najwięcej dziennikarzy jest z Hiszpanii, to największe szanse mają piłkarze z ligi hiszpańskiej (nie wiem dokładnie w jaki sposób to działa, ale na pewno nie jest to doskonały sposób). Pomyślałem o tym, jak to powinno być zrobione i napisałem program, który używa maszynowego uczenia się do tego by nauczyć się, jakie są umiejętności piłkarzy i kto jest najlepszym piłkarzem na świecie.
Co to znaczy, że dany piłkarz jest dobry? Piłka nożna to sport zespołowy, zatem opieram się na założeniu, że najlepszy piłkarz to taki, który najbardziej zwiększa prawdopodobieństwo wygranej drużyny poprzez swoją obecność w składzie.
W tym artykule dzielę się z Wami wynikami wygenerowanymi przez program.
Algorytm przeanalizował 23788 meczy. To są dane, które algorytm otrzymał na temat każdego analizowanego meczu (na podstawie tych danych algorytm stworzył ranking):
- Zawodnicy grający od pierwszej minuty w pierwszym zespole.
- Zawodnicy grający od pierwszej minuty w drugim zespole.
- Wynik meczu.
- Długość meczu (czasami więcej niż 90 minut z powodu dogrywki).
- Dokonane zmiany (kto wszedł, za kogo, w której minucie).
- Gole (która drużyna strzeliła, w której minucie).
- Kiedy odbył się mecz.
Zauważ, że algorytm NIE posiada informacji o tym, kto strzelił gole (posiada tylko informacje, który zespół strzelił gola i w której minucie), który piłkarz jest znany albo który piłkarz jest najbardziej przystojny. Zatem algorytm jest obiektywny. Bierze pod uwagę tylko, kto był na boisku w danej minucie i w jakiej minucie została strzelona bramka dla którego zespołu.
Jak trafna jest ocena algorytmu?
Z jednej strony jest bardziej trafna niż ocena człowieka - algorytm analizuje wszystkie mecze, człowiek ogląda tylko kilka meczy ligi mistrzów. Ocena człowieka jest bardzo subiektywna i jest wiele rzeczy, których człowiek nie zauważa, jak na przykład ciężka praca obrońcy, który regularnie rozgrywa dobre mecze pozostając w cieniu napastników, którzy strzelają bramki.
Z drugiej strony jest wiele rzeczy, których algorytm nie widzi, bo nie ogląda meczu - pomyłki sędziowskie, to że ktoś zaliczył asystę albo że ktoś strzelił bramkę w trudnej sytuacji.
Dlatego należy zsumować wyniki algorytmu z tym co wiemy i wtedy można uzyskać trafną ocenę (sugerując się bardziej tym co wiemy).
Wyniki
Algorytm przeanizował 23788 meczy i wziął pod uwagę 25196 zawodników - wszystkie mecze i wszystkich zawodników z poniższych lig i turniejów w przeciągu ostatnich 5 lat (dane są pobierane z API sportmonks.com):
World Cup Qualification Worldwide (all of the continents) + World Cup, Copa America, European Championship, Champions league (including qualifications), Europa league, English league, German league, French league, Italian league, Spanish league, Brazilian league, Argentinian league, Dutch league, Portuguese leauge, Scottish league, Turkish league, Fifa Club World Cup, Copa Libertadores, CONCACAF Champions League, CONCACAF Gold Cup, Confederations Cup, Africa Cup of Nations.
Jeżeli jakiś piłkarz nie występował w którychś z powyższych rozgrywek w ciągu ostatnich 5 lat, to nie został uwzględniony.
Poniższy ranking pokazuje 10 najlepszych piłkarzy na świecie (stan na 17 kwietnia 2018 r., przed półfinałami ligi mistrzów) wg algorytmu maszynowego uczenia się:
![NE8yHRsRxO71W9PLiHLrKwPPf3kpLoqR21FeWRX.jpg](https://www.wykop.pl/cdn/c0834752/NE8yHRsRxO71W9PLiHLrKwPPf3kpLoqR21FeWRX.jpg)
Jak możesz zobaczyć, najlepszym piłkarzem wg algorytmu jest Mohammed Salah z Liverpoolu. Zwróć uwagę, że algorytm wybrał go spośród 25 000 piłkarzy nie posiadając informacji o popularności danego piłkarza ani o tym kto strzelał bramki w danym meczu, posiadając tylko informację o tym kto był na boisku i kiedy padła bramka dla którego zespołu.
Pod tym linkiem możesz znaleźć ranking 50 najlepszych piłkarzy wg algorytmu:
50 najlepszych piłkarzy (2018-04-17)
Chciałbym zaznaczyć, że te wyniki są dosyć płynne, tzn. różnica pomiędzy zawodnikami jest niewielka i pozycje zawodników zmieniają się w krótkim czasie. Piłkarz, który w tej chwili jest na pierwszym miejscu za pół roku może być na 20.
Zaskoczeniem może się się wydawać, że w pierwszej 10 nie ma Leo Messiego (a Neymar jest 12, jakby się ktoś pytał). Algorytm uznał, że Messi ma już swoje najlepsze za sobą i obecnie jest na 28 miejscu. Uruchomiłem program również dla poprzednich lat i gdyby algorytm decydował o tym, kto ma otrzymać złotą piłkę, to Messi otrzymałby ich najwięcej od 2010 roku.
Oto kto otrzymałby Złotą Piłkę wg algorytmu dla każdego roku:
![NE8yHRsRxO71W9PLiHLrKwPPf3kpLoqR51FeVwW.jpg](https://www.wykop.pl/cdn/c0834752/NE8yHRsRxO71W9PLiHLrKwPPf3kpLoqR51FeVwW.jpg)
Tak naprawdę powyższa tabela nie pokazuje, kto był najlepszy w całym roku, tylko kto był najlepszym piłkarzem (lub drugim albo trzecim piłkarzem na świecie) na końcu danego roku.
Tutaj możesz znaleźć szczegółowe wyniki dla poprzednich lat:
2010-01-01
2011 01 01
2012 01 01
2013 01 01
2014 01 01
2015 01 01
2016 01 01
2017 01 01
2018 01 01
Na koniec graf pokazujący wynik piłkarzy (ich umiejętności porównując do innych zawodników w danym czasie) w każdym roku. W grafie zostali uwzględnieni wszyscy piłkarze, którzy przynajmniej raz zdobyli Złotą Piłkę wg algorytmu oraz Mohammed Salah, który obecnie jest najlepszym piłkarzem na świecie wg algorytmu.
![NE8yHRsRxO71W9PLiHLrKwPPf3kpLoqR41FeVaG.jpg](https://www.wykop.pl/cdn/c0834752/NE8yHRsRxO71W9PLiHLrKwPPf3kpLoqR41FeVaG.jpg)
Jak działa algorytm?
Jeżeli chcesz wiedzieć, jak działa algorytm, to jest to wytłumaczone w pliku Readme.md w repozytorium projektu na Github:
https://github.com/damc/football
Pozdrawiam,
Damian (damianc1092[at]gmail.com).
Komentarze (175)
najlepsze
Ale jedna sugestia - powinieneś oceniać cały rok a nie premiowac ostatnie mecze. Kluczowy jest kwiecień, maj i jak jest mundial to czerwiec/lipiec. To tam wszyscy szykują formę. Jeśli wazniejszy od wiosny jest grudzień w podsumowaniu roku, a tam nikt o nic nie gra to wyniki są nie miarodajne
Jak widzisz na szczycie rankingu są piłkarze najlepszych drużyn, więc to nie tak. Mówiąc "najbardziej zwiększa prawdopodobieństwo wygranej drużyny poprzez obecność w składzie" mam na myśli, że jeżeli umieścisz go z jakimiś losowymi zawodnikami, to najlepszy jest ten, który najbardziej zwiększy szanse wygranej. Chociaż algorytm nie bada dokładnie jak danymi piłkarz gra z losowymi zawodnikami, bo bazuje na danych, gdzie zawodnik grał z innymi zawodnikami ze swojej drużyny (czyli np.
Swoją drogą, takie czysto teoretyczne pytanie, jakby ranking zareagował na drużynę, która wygrałaby wszystkie mecze w sezonie?
To byłoby coś! Tu człowiek jest zbyt subiektywny kierując się sympatiami, takie staty byłyby na wagę złota.