2013-03-20 14 views
9

Jestem wielkim fanem piłki nożnej i interesuje się również uczeniem się maszyn. Jako projekt dla kursu ML próbuję zbudować model, który przewidywałby szansę wygranej dla drużyny gospodarzy, biorąc pod uwagę nazwy drużyny gospodarzy i gości (Zapytam mój zestaw danych i odpowiednio utworzę punkty danych na podstawie poprzednich meczów między tymi 2 zespołami)Przewidywanie zwycięzców meczu piłki nożnej na podstawie wcześniejszych danych tego samego meczu

Mam dane przez kilka sezonów dla wszystkich drużyn, ale mam następujące kwestie, które chciałbym poradzić sobie z .. EPL (angielska Premier League) ma 20 godzin, które grają w domu i na wyjeździe (380 wszystkich gier w sezonie). Tak więc, każdego sezonu, 2 drużyny grają ze sobą tylko dwa razy.

Mam dane z ostatnich 10 lat, co daje 2 * 10 = 20 punktów danych dla dwóch drużyn. Nie chcę jednak przejść przez ostatnie 3 lata, ponieważ wierzę, że zespoły zmieniają się znacznie z biegiem czasu (ManCity, Liverpool), a to tylko wprowadziłoby więcej błędów do systemu.

To daje około 6-8 punktów danych dla każdej pary drużyn. Mam jednak kilka funkcji (do 20+) dla każdego punktu danych, takich jak cele w pełnym wymiarze godzin, cele na połowie, karnety, strzały, żółcienie, czerwienie itp. Dla obu drużyn, więc mogę dołączyć funkcje takie jak niedawny formularz, ostatni dom formularz, ostatnia forma wyjazdu itp.

Jednak wydaje mi się, że pomysł dotyczący jedynie 6-8 punktów danych do treningu wydaje mi się niepoprawny. Wszelkie przemyślenia na temat tego, w jaki sposób mogę przeciwdziałać temu problemowi (jeśli jest to problem na pierwszym miejscu, tj.)

Dzięki!

EDYCJA: FWIW, oto link do mojego raportu, który skompilowałem na zakończenie mojego projektu. https://www.dropbox.com/s/ec4a66ytfkbsncz/report.pdf. Nie są to "świetne" rzeczy, ale uważam, że niektóre z tych spostrzeżeń, które udało mi się uzyskać, były całkiem fajne (jak moje prognozy sprawdzały się bardzo dobrze w Bundeslidze, ponieważ Bayern wygrywał ligę przez cały czas).

+0

Bardzo interesujące. Czy twoje zbiory danych są publiczne, aby inni mogli z nimi eksperymentować? – schreon

+3

Używam tych http://www.football-data.co.uk/data.php – keithxm23

+0

@ keithxm23 jakich narzędzi użyłeś? WEKA czy szybki górnik? – user2137186

Odpowiedz

4

To interesujący problem, który moim zdaniem nie ma wyjątkowego rozwiązania. Jest jednak kilka małych rzeczy, które mógłbym wypróbować, gdybym był na twojej pozycji.

Dzielę się sprawami dotyczącymi około 6-8 punktów na zajęcia, które są zbyt mało danymi, aby zbudować wiarygodny model. Próbowałbym więc nieco inaczej modelować problem. Aby mieć więcej danych dla każdej klasy, zamiast mieć 20 klas, miałbym tylko dwa (dom/wyjazd) i dodałbym dwie funkcje, jedną dla zespołu będącego domem i drugą dla drużyny wyjazdowej. W tej konfiguracji nadal możesz przewidzieć, która drużyna wygra, jeśli gra w domu lub na wyjeździe, a Twój problem zawiera więcej danych, aby uzyskać wynik.

Innym pomysłem byłoby pobranie danych z innych europejskich lig. Odtąd zespoły są funkcją, a nie klasą, nie powinny dodawać zbyt wiele hałasu do twojego modelu i możesz skorzystać z dodatkowych danych (zakładając, że te funkcje są ważne w innych ligach).

+0

Hej dziękuję za wejście Pedrom .. Tak, myślałem o modelowaniu moich danych w ten sposób .. To pozwoliłoby mi mieć około 380 punktów danych w każdym sezonie i to mogłem mieć tysiące punktów danych do pracy. Jednak problem, który rozwiąże ten problem, to po prostu "Szansa wygrania gry przez drużynę gospodarzy" .. Zwróciłaby tę samą wartość, powiedzmy, drużynie trzeciej ligi w drużynie Ligi Mistrzów lub dowolnej drużynie grającej w inne Zespół w ogóle .. – keithxm23

+1

@ keithxm23 Hej, miło słyszeć od ciebie ... "Szansa wygrania meczu przez drużynę gospodarzy", niekoniecznie. Biorąc pod uwagę, że twoje funkcje obejmują drużynę domową i drużynę gości (i jeśli uwzględnisz każdy podział jako dodatkowe funkcje jeszcze lepiej), wynik wyświetliłby "Szanse na wygraną drużyny gospodarzy * podanej *, że drużyna gospodarzy jest A i nieobecna zespół to B ". Czy jest sens? – Pedrom

+0

Oh! Oznacza to, że dla drużyny gospodarzy, przewiduj szansę wygranej, biorąc pod uwagę jej ostatnią formę domową, a następnie dla drużyny wyjazdowej, przewiduj szansę wygranej, biorąc pod uwagę jej ostatnią formę wyjazdową .. a następnie porównaj te 2 zmienne i przeprowadź prognozę. To bardzo dobry pomysł. Tak więc zastanawiałem się nad tym, jak uwzględnić wiedzę, szczególnie o poprzednich meczach pomiędzy dwiema drużynami (A i B), ponieważ jestem pewien, że miałoby to ogromną wartość ... Pomyślałem więc o tym, że po obliczeniu w pewnym momencie "formy domu" i "formy wyjazdowej" dla obu drużyn, obliczyć także, jak każda drużyna radziła sobie ... – keithxm23

1

Nie wiem, czy jest to nadal przydatne, ale funkcje takie jak cele w pełnym wymiarze czasu, cele na półmetku, podania, strzały, żółcienie, czerwienie itp. to funkcje, których nie masz w nowym meczu, który chcesz sklasyfikować.

Będę traktować to jako problem z klasyfikacją (chcesz zaklasyfikować mecz w jednej z 3 kategorii: 1, X lub 2) i dodać więcej funkcji, które możesz zastosować do nowego dopasowania. tj. liczba zaginionych zawodników (z powodu kontuzji/czerwonych kart), liczba zwycięstw/remisów/porażek, które każda z drużyn odniosła bezpośrednio z rzędu PRZED meczem, którym jest drużyna gospodarzy (już wspomniana), bramki zdobyte w kilka ostatnich meczów w domu i na wyjeździe ...

Posiadanie 6-8 meczów to prawdziwy problem.Ten zbiór danych jest bardzo mały i byłoby zbyt dopasowanych, ale jeśli korzystasz z funkcji takich jak te, o których wspomniałem, myślę, że możesz również użyć starszych danych.

1

Mam podobny system - dobrą bazą danych źródłowych jest football-data.co.uk. Użyłem ostatnich N sezonów dla każdej ligi i zbudowałem model (uwierz mi, ponad 3 lata to konieczność!). Zależy od twojej funkcji kryterialnej - jeśli kryterium jest najlepsze dopasowanie lub maksymalny zysk, możesz zbudować swój własny model predykcyjny.

Jedną z bardzo dobrych rzeczy jest to, że każda liga jest inna, bukmacher daje także inne wygrane w domu na faworyta w Belgii niż w piątej angielskiej lidze, gdzie można znaleźć naprawdę wartościowe kursy na przykład.

Z tego można skompilować interesujący model, taki jak betting tips, aby pokonać bukmacherów w określonych meczach, używając wzoru i mieć wartościowe zakłady. Możesz też spróbować zdobyć jak najwięcej wygrywających wskazówek, ale prawdopodobnie zarabiasz mniej (remisy przynoszą dużo pieniędzy, mimo że wygrywa mniej losowań).

Mam nadzieję, że podałem ci kilka pomysłów, bo więcej możesz o to zapytać.