Először is nem mondhatom, hogy kifejezetten jól működik. De meg tudom magyarázni a folyamatot. Tudományos ember vagyok, így nagy része úgy érzi, hogy „erről van szó”. Remélem, hogy mások, akiknek más stratégiájuk van, vagy valami hozzáfűznivalójuk van, előre tudnak lépni és beszállnak.

Sok tanácsot láttam a DFS-sel kapcsolatban, amelyek úgy tűnik, nem tartalmaznak konkrétumokat – „maximalizálja a szórást” Hogyan!? Tehát az a célom, hogy legalább néhány konkrétumot közöljek.

Jelenleg előrejelzéseket használok, majd optimalizálok. A maximális várható érték elérése érdekében történő optimalizálás egyszerű. Egy kis programozást igényel – kétféleképpen csinálhatom. Az egyik lényegében a bináris lineáris programozás – a csapat kiszámítása a maximális várható értékkel. Én pythonnal csináltam. http://github.com/mwfd541/nba nbaopt.py. Általánosságban elmondható, hogy a bináris lineáris program kissé drága – ha sokkal több játékos lenne, akkor ez sokkal több időt vehet igénybe. A második módszer a lineáris programozás: Véletlenszerűen megzavarja az előrejelzéseket, megzavarja a kényszereket, oldja meg a lineáris programot (ami gyors), majd próbálja meg egy tényleges csapathoz illeszteni. (A probléma itt az, hogy általában a kapott csapat egy csomó játékos töredékéből áll.) Ennek az a jó tulajdonsága, hogy egy csomó csapatot hoz létre, amelyek közel optimális értékkel rendelkeznek. Az is érdekes tulajdonsága, hogy 1000-szer lefuttathatod és hozzáadhatod a játékosok maradékát, és ha helyesen beállítottad a paramétereket, akkor egy olyan disztribúciót kapsz, amely nagyon közel áll az adott versenyhez képest.

Tehát az előrejelzésekhez: Először az nba.com-ról lekaparom az összes idei adatot, és a tavalyi átlagokat is. Felépítek egy pár funkciót (otthon, idegenben, napok/pihenő, ellenfél), majd futtatom az xgboost-ot, hogy előrejelzéseket kapjak. Számos dolog van, amit úgy döntök, hogy megjósolok. Amit most a legfontosabbnak tartok, az a következő. Először: FDpont / perc, majd perc. Ennek az az előnye, hogy jóval az xgboost lefutása után, ha a játékos várható percei valamilyen okból megváltoznak (a csapattársa megsérült), akkor ezt könnyen módosíthatja kézzel, és jó előrejelzést kaphat az FD pontokról a következő meccsre. . A várható FD pontokat közvetlenül is kiszámítom, és megpróbálom megjósolni a mögöttes statisztikákat, majd ezeket megfelelően összegezni. Úgy tűnik, hogy az utóbbi az összes játékos átlagára jellemző, ezért azt hiszem, nem fogok vesződni a számítással.

Eddig csak próbálok olyan előrejelzéseket szerezni, amelyek minimalizálják az RMSE-t, ami gyakori dolog. Sajnos valószínűleg nem ezt kellene minimalizálnom. Játszhatsz az xgboost veszteségfüggvénnyel, és tetszőleges hibafüggvényt állíthatsz be. Kipróbáltam néhány más dolgot is, de nehéz megmondani, melyik stratégia a leghasznosabb, ha tudod, hogy egy kis csapatot választasz, és egy csomó más feltételezhetően okos emberrel versenyezsz.