witam wszystkich
nieco się zastanawiałem (zastanawiam się wciąż) pisząc te słowa, czy jest sens spowiadać się z sekretów obliczeniowych, ale wygląda na to, że utknąłem w miejscu i mam nadzieję że ktoś z was (ktokolwiek) napisze coś, co doda mi kopa
no więc zaczynam:
jak liczę moje procenty? pewnie niektórzy wiedzą że całość opiera się na rankingu ELO, aczkolwiek dość mocno zmodyfikowanym
wyjaśnię pokrótce, jak to robię - zbieram ile się da sezonów wstecz danej ligi i zaczynając od najstarszego wyliczam ratingi dla każdego z zespołów, które następnie zmieniają się dynamicznie wraz z każdym rozegranym meczem wg algorytmu:
każdy zespół zaczyna od 0 pkt
obliczam oczekiwaną różnicę bramek = 0,33 + 0,24 * (rankingHome - rankingAway)
modyfikuję ranking o sign(różnicaReal - róznicaOczek) * log(1 + abs(różnicaReal - różnicaOczek) ; 1000)
i tak w kółko
rankingi przechodzą na sezon następny, beniaminkowie i spadkowicze dostają na początek 0
następnie zbieram ostatnie 1000 spotkań z danej ligi (zaokrąglając do początku sezonu) i obliczam p dla każdego z rozstrzygnięć (1, X i 2) korzystając z funkcji simgoidalnej:
1/(1+a1*exp(-(a2+a3*(rankingHome-rankingAway))))
wykorzystując jako funkcję straty minimalizację średniej geometrycznej:
L=-log(abs(1-OBS-PRED))
------------------
pytania:
czy ktoś widzi tu jakiś potężny błąd?
czy istnieje może jakaś lepsza metoda rankingowa? (jeżeli ktoś coś poleca, to prosiłbym o korelację z wybranego sezonu - różnicy ratingów (czy też innego sposobu wyznaczania różnicy siły zespołów) i różnicy bramkowej wyniku spotkania)
jak można rozwiązać problem beniaminków (spadkowiczów)?
jak rozwiązać (i rozpoznać) problem 'coś ewidentnie idzie nie tak z danym zespołem'?
czy istnieje może lepszy sposób szacowania p niż f-cja sigmoidalna i minimalizacja średniej geometrycznej?
jak rozwiązać problem przechodzenia ratingów na następny sezon (długa przerwa i zwiększenie niepewności oszacowania siły zespołów) - tak samo z przerwą zimową?
------------------
co próbowałem zrobić i nie wyszło za specjalnie:
dodać osobne ratingi dla Home/Away
dodać osobne ratingi dla danego sezonu (każdy zaczyna od 0pkt)
dodać rating dotyczący strzelonych bramek (nie różnicy) i strzelonych + straconych (to w celu oszacowania szans u/o i remisów - jak wiadomo im mniejsze szanse na bramki tym większe na remis)
dopasować oczekiwaną różnicę bramek do specyfiki ligi (to przyznaję nie do końca)
dodać statystyki strzałów na bramkę (zupełnie nie działa w niższych angielskich - z innych lig brak danych)
policzyć wg klasycznego ELO
dodać większą wagę dla zmian ratingów w początkowych okresach sezonu
dodać zmianę rankingu w ostanim meczu jako metodę obliczania siły zespołu
------------------
co chciałbym zrobić:
dodać info o poważnych ubytkach składów, bankructwach, kłopotach finansowych, motywacji - nie wiem jak to jednak zrobić/skąd wziąć info
rozwiązać problem beniaminków/spadkowiczów
ps. już na wstępie zauważyłem co mogę zrobić żeby było lepiej - dla X f-cja powinna mieć wygląd: 1/(1+a1*exp(-(a2+a3*abs(rankingHome-rankingAway+a4))))
tak że na coś moje wywody się chyba przydały
