X

Adatvédelem & cookie-k

ez az oldal cookie-kat használ. A folytatással elfogadja azok használatát. Tudj meg többet, beleértve a cookie-k kezelésének módját is.

Megvan!

reklámok

1.Megjegyzés: Ez a fantasy league csapatok építéséről szóló kétrészes bejegyzés 1. része. Először olvassa el ezt, majd olvassa el a részt 2 itt.

2. megjegyzés: Bár a cím azt mondja: “Fantasy Football”, Az alábbiakban ismertetett modell elvileg módosítható, hogy bármilyen fantasy bajnoksághoz illeszkedjen bármilyen sporthoz.

football a közelmúltban több ember (néhány diák, néhány barát) megkereste a fantasy football ligák optimális csapatainak létrehozását. A fogadási oldalak, például a Fan Duel és a Draft Kings közelmúltbeli hullámával ez több millió (vagy mondhatnám, milliárd?) dollár ipar. Ezért úgy gondoltam, hogy leírok egy egyszerű receptet, amely mindenkinek segít. Arra készülünk, hogy előíró elemzéseket használjunk a sport fogadására. Készen van? Csináljuk! A matematikai modellel kezdem, majd megmutatom, hogyan lehet mindezt egy táblázat segítségével működtetni.

a szabályok

a fantasy football team szabályai kimondják, hogy egy csapatnak a következőkből kell állnia:

  • 1 hátvéd (QB)
  • 2 running backs (RB)
  • 3 wide receivers (WR)
  • 1 tight end (TE)
  • 1 kicker
  • 1 defense

néhány ligában van úgynevezett “flex player” is, amely lehet RB, WR vagy te. Az alábbiakban elmagyarázom, hogyan kell kezelni a flex lejátszót. Ezenkívül a játékosoknak költségeik vannak, a csapatot létrehozó személynek pedig költségvetése van, hívja B, hogy betartsa (általában B 50 000 vagy 60 000 dollár).

az adatok

minden játékos számára i, megkapjuk a fent említett költségeket, hívjuk c_i, és egy pontvetítés p_i. Ez utóbbi annak becslése, hogy hány pontot várunk el az adott játékostól egy adott héten vagy meccsen. Amikor a védekezésről van szó, bár nem mindig szerez gólt, van egy módja annak is, hogy kiszámítsuk a pontokat (pl. Hogyan lehet ezeket a pont előrejelzések kap számított, lehet kérni? Itt jön be a prediktív elemzés. Ez lényegében előrejelzés. Megnézed a múltbeli / közelmúltbeli teljesítményt, megnézed a közelgő ellenfelet, megnézed a játékosok egészségét stb. Vannak olyan webhelyek, amelyek biztosítják ezeket az előrejelzéseket, vagy kiszámíthatja a sajátját. Minél pontosabb vagy ezeken az előrejelzéseken, annál valószínűbb, hogy beváltja a fogadásokat. Itt ezeket a számokat adjuk meg.

az optimalizálási modell

a főbb döntések egyszerűek: melyik játékosnak kell lennie a csapatunkban? Ez lehet modellezni, mint egy igen/nem döntés változó minden játékos. Tehát hozzunk létre egy x_i nevű bináris változót, amely csak két értéket vehet fel: egyenlő az 1 értékkel, ha i játékos a csapatunkban van, és egyenlő a nulla értékkel, ha i játékos nincs a csapatunkban. A i (a játékos azonosítója) értéke 1-től a rendelkezésünkre álló játékosok teljes számáig terjed.

célunk, hogy olyan csapatot hozzunk létre, amely a lehető legnagyobb összesített értékkel rendelkezik. Vagyis maximalizálni akarjuk a csapatba felvett összes játékos pont-előrejelzéseinek összegét. Ez a képlet így néz ki:

\max \displaystyle \sum_{\text{all } i} p_i x_i

a fenti képlet azért működik, mert ha egy játékos a csapatban van (x_i=1), akkor a p_i eggyel megszorozódik és hozzáadódik az összeghez, ha pedig egy játékos nincs a csapatban (x_i=0), akkor a p_i megszorozzuk nullával, és nem adjuk hozzá a végső összeghez. Az imént leírt mechanizmus a fő gondolat, ami a modell összes képletét működteti. Például, ha az első 3 játékos pont-előrejelzései 12, 20 és 10, akkor a maximalizációs függvény a következőképpen kezdődik:  \ max 12x_1 + 20x_2 + 10x_3 + \ cdots

a költségvetési megszorítás úgy írható le, hogy a csapatunk összes játékosának költségeinek összege kisebb vagy egyenlő a költségvetésünkkel B, mint ez:

\displaystyle \ sum_ {\text{all }i} c_i x_i \ leq B

például, ha az első 3 játékos 9000, 8500 és 11000 dollárba kerül, és a költségvetésünk 60 000, a fenti képlet így néz ki: 9000x_1 + 8500x_2 + 11000x_3 + \cdots \leq 60000.

annak érdekében, hogy a csapat minden pozícióban megfelelő számú játékossal rendelkezzen, pozícióról pozícióra tesszük. Például, hogy megköveteljük, hogy a csapatnak legyen egy hátvédje, írunk:

\displaystyle \ sum_ {\text{all } i \ text{ a hátvédek}} x_i = 1

ahhoz, hogy megköveteljük, hogy a csapatnak két futóhátvédje és három elkapója legyen, írunk:

\displaystyle \ sum_ {\text{all } i \ text{ futó hátlapok}} x_i = 2

\displaystyle \ sum_ {\text{all } i \ text{ széles vevőkészülékek}} x_i = 3

a fennmaradó pozíciók korlátai a következők lennének:

\displaystyle \ sum_ {\text{all } i \ text{ tight endek}} x_i = 1

\displaystyle \ sum_ {\text{all } i \ text{ Kickers}} x_i = 1

\displaystyle \ sum_ {\text{all } i \ text{ amelyek védelem}} x_i = 1

a Flex lejátszó kíváncsi esete

a flex lejátszó érdekes csavart ad ehhez a modellhez. Ez egy olyan játékos, aki, ha jól értem, átveszi a kicker helyét (vagyis nem lenne fent a kicker kényszer), és lehet RB, WR vagy TE. Ezért azonnal új döntést kell hoznunk: milyen játékosnak kell lennie a flex-nek? Hozzunk létre három új Igen / Nem változót a döntés ábrázolásához:  f_{\text{RB}},  f_{\text{WR}}és f_{\text{TE}}. Ezek a változók azt jelentik: a flex RB?, a flex WR? és a flex TE? Annak jelzésére, hogy ezek közül csak egy lehet igaz, az alábbiakban írjuk a korlátozást:

 f_ {\text{RB}} + f_ {\text{WR}} + f_ {\text{TE}} = 1

ezenkívül a flex lejátszó használata egyenértékű az RB, WR és TE számát számoló korlátok jobb oldalának növelésével, de csak egyetlen ilyen korlátozás esetén. Ezt úgy érjük el, hogy ezeket a korlátozásokat a fenti formátumról a következőkre változtatjuk:

\displaystyle \ sum_ {\text{all } i \ text{ futó hátlapok}} x_i = 2 + F_ {\text{RB}}

\displaystyle \ sum_ {\text{all } i \ text{ széles vevőkészülékek}} x_i = 3 + F_ {\text{WR}}

\displaystyle \ sum_ {\text{all } i \ text{ tight endek}} x_i = 1 + f_ {\text{TE}}

ne feledje, hogy mivel a f változók közül csak az egyik lehet egyenlő 1-gyel, a fenti három korlátozás közül csak az egyiknek lesz jobb oldala az eredeti 2, 3 vagy 1 értékéhez képest.

egyéb lehetséges követelmények

személyes preferenciák, bennfentes információk vagy más ezoterikus megfontolások miatt érdemes lehet más követelményeket is belefoglalni ebbe a modellbe. Például, ha azt akarom, hogy a legjobb csapat, amely tartalmazza a 8-as számú játékost, és kizárja a 22-es játékost, egyszerűen ki kell kényszerítenem a 8-as Játékos x változóját 1-re, a 22-es játékos x változóját pedig nullára. Egy másik kényszer, amely hasznos lehet, ha azt mondjuk, hogy ha a 9.játékos a csapatban van, akkor a 10. játékosnak is a csapatban kell lennie. Ezt úgy érik el, hogy:

 x_9 \ leq x_{10}

ha az ellenkezőjét akarta, vagyis ha a 9. játékos a csapatban van, akkor a 10. játékos nincs a csapatban, írnál:

x_9 + x_{10} \ leq 1

ezen vonalak mentén más feltételek is lehetségesek.

mindent összerakva

ha elég türelmes voltál ahhoz, hogy végig itt maradj velem, alig várod, hogy ez a matematika működjön. Csináljuk a Microsoft Excel használatával. Először töltse le ezt a táblázatot, és nyissa meg a számítógépen. Itt van, amit tartalmaz:

  • oszlop: listája játékos nevét.
  • B oszlop: Igen/Nem döntések arról, hogy egy játékos a csapatban van-e (ezek az X változók, amelyeket az Excel Solver kiszámít nekünk).
  • C-H oszlopok: zászlók, amelyek jelzik, hogy egy játékos adott típusú-e (0 = Nem, 1 = igen).
  • I és J oszlop: az egyes játékosok költség-és pontvetítései.

most görgessen lefelé, hogy láthassa a 144-150 sorokat. A B oszlop cellái jelenleg üresek, mert még nem választottuk ki, mely játékosokat adjuk hozzá a csapathoz. De ha ezeket a döntéseket meghozták volna (vagyis ha a B oszlopot 0-val és 1-gyel töltöttük volna meg), a B oszlopot a C oszlopmal megszorozva cellánként, és mindezt összeadva megmondaná, hogy hány hátvédje van. Ezt a szorzást a C144 cellába beépítettem a SUMPRODUCT képlet segítségével. Hasonló módon a d144:H144 cellák kiszámítják, hogy hány játékosunk lenne, ha a B oszlop cellái értékeket kapnak. A csapat teljes költségének és a csapat összes tervezett pontjának kiszámítása hasonló a korábbi számításokhoz, és a SUMPRODUCT képletet is használja (lásd az I144 és J144 cellákat). Meg lehet próbálni szedés néhány játékos kézzel (üzembe 1-es néhány cellában a B oszlop), hogy az értékek a sejtek sorban 144 változni fog.

ha most megnyitja az Excel Solver ablakot (az Adatok lapon, ha a Solver bővítmény aktív), látni fogja, hogy már a teljes modellt beállítottam az Ön számára. Ha még soha nem használta az Excel Solver programot, akkor a következő kétrészes videó kezdi meg vele: 1. és 2. rész.

az objektív cella J144, és ez az, amit maximalizálni akarunk. A változók (más néven változó cellák) a B oszlop játékosválasztásai, valamint a flex-player típusú döntések (d147 cellák:F147). A megszorítások azt mondják, hogy: (1) az egyes típusú játékosok tényleges száma (C144:H144) megegyezik az egyes típusok kívánt számával (C146:H146), (2) a csapat teljes költsége (I144) nem haladja meg a költségvetést (I146), (3) A három flex-player bináris változó összeadódik 1 (D150 = F150), és (4) a probléma összes változója bináris. (A G146 cellában a szükséges számú rúgót nullára állítottam, mert a flex-player opciót használjuk. Ha lehet mind flex lejátszó, mind kicker, csak írja be az a 1-et a g146 cellába.) Ha rákattint a “megoldás” gombra, látni fogja, hogy a legjobb válasz egy olyan csapat, amely pontosan 50 000 dollárba kerül, és a teljes tervezett pontértéke 78,3. A flex játékos végül, hogy egy RB.

ez a modell elég kicsi ahhoz, hogy meg tudom oldani az Excel Solver ingyenes hallgatói verziójával (amely alapértelmezés szerint minden irodai telepítéshez tartozik). Ha több játékosod van, és a teljes változó számod meghaladja a 200-at, az ingyenes megoldó nem fog működni. De ne ess kétségbe! Létezik egy nagyszerű megoldó bővítmény az Excel számára, amely szintén ingyenes, és nincs méretkorlátja. Opensolvernek hívják, és pontosan ugyanazzal a beállítással fog működni, mint itt.

Articles

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.