power kirjoitti:
Tarkoittaako tyhjästä aloittaminen siis täysin eri menetelmiin perustuvaa laskentaa? Sinullahan on odotusarvot olleet aina melko realistisia markkinaan nähden, joten tuskin siellä mitään kovin pahasti on pielessä ollut. Lisäksi omat kokemukseni samanlaisesta projektista olivat se, että mitä monimutkaisemmiksi kehitin systeemejäni pbp-datan ja kaikkien eri osatekijöiden osalta, sitä huonompia olivat tulokset. Tosin MLB:ssä on minulla aina tulokset tulleet hirveissä putkissa, joten ehkä minulle osui vain se huono putki juuri testausvaiheissa.
Menetelmät pysyvät ainakin perusidealtaa samana mutta kun aloitan puhtaalta pöydältä niin tutkin ja tarkistan kaikki laskennan välivaiheet uudestaan ilman että siirrän mitään laskennan osa-alueita vanhasta systeemistä itsestäänselvyytenä.
On mahdollista että mitä monimutkaisempi ja läpinäkymättömämpi systeemi on niin se tuottaa heikompaa tulosta tai ainakin virheiden analysointi on hankalampaa mutta pidetään ainakin toistaiseksi tavoitteet korkealla eikä lähdetä vielä yksinkertaistamaan hommaa.
Tämä olisikin kiva. Olen odotellut milloin saisit viime kauden seurannan päivitettyä. Muistaakseni loppukausi meni hyvin, joten plussalle taisi päätyä? Se ei ole mikään huono lähtökohta uudellekaan systeemille, joten ihan tyhjästä ei ehkä kannata aloittaa.
Ai niin, tuokin on unohtunut. Täytyy yrittää päivittää tässä lähiaikoina. Seurannan ja vetojen päivitys on ehkä paras esimerkki siitä minkälaisen manuaalisen työn haluan poistaa kokonaan, vanhassakin systeemissä seuranta pyöri melkein automaattisesti mutta tuossakin piti säätää syöttäjävaihdoksien, erikoisvetojen, otteluiden peruutusten yms. sälän kanssa niin että seurannan päivitys meni usein jäljessä.
Mitenkäs tämä onnistuu? Itselläni loukkaantumiset+kokoonpanojen tarkastelu vie selvästi eniten aikaa, ja kun matseja on 15 päivässä niin meinaa tuskastua. Varsinkaan kun ei siitä tunnu mitään hyötyä olevan, paitsi ehkä pullpenin kohdalla. Lopulliset kokoonpanoarvauksetkin menee yleensä silti pieleen ja lähes samaan pääsee, kun käyttää vain edellisen matsin rotaatiota.
Loukaantumiset tulee olemaan iso haaste enkä ole täysin varma miten tuo onnistuu, todennäköisesti tuo tulee menemään sillä tasolla että dl-keikat systeemi pystyy haistelemaan itse ja poimimaan todennäköisen korvaajan mutta yksittäisten päivien loukkaantumiset tai epäsäännölliset lepuutukset joutuu päivittämään käsin.
Mutta tästä tulevan pelin lineupin arvailusta paljon lisää kunhan pääsen sen tarkempaa suunnitteluun asti.
Oletko ajatellut lähestyä laskentaa eri tulosvaihtoehtojen todennäköisyyksien kautta. Silloin saa kerralla suurimman osan vetomuodoista laskettua samalla menetelmällä ja riippuvuussuhteetkin eri vetomuotojen suhteen tulee automaattisesti otettua huomioon. Itse olen saanut simulointimallinnuksella tulosjakaumat ihan nätisti, lähtöarvoissa vaan on hiomista aika paljon.
Jos et hae simuloinnilla itse pelitilanteiden mallinnusta vaan vuoroparien juoksumäärien simulointia esim koko pelin juoksuodotusarvojen kautta niin aikalailla samoilla periaateilla olen suunnitellut tekeväni lähtöarvioiden muuttamisen prosenteiksi.
Jos taas puhut varsinaisen pelinkulun simuloinnista niin ainakaan toistaiseksi tuota ei ole tarkoitus toteuttaa, joskus olen tuollaista pyöritellyt ja ehkä se tulee vaihtoehtoisena laskentatapana myöhemmin mutta ei näin alkuvaiheessa.
Tästä voisikin hyvin jatkaa kirjoittamalla pikaisen kuvauksen perusarvioiden suunnitellusta laskentalogiikasta. Otteluarvioissa muodostetaan ensin juoksuodotusarvot joukkueille joiden perusteella laskentaan ml, tasoitus, u/o yms. arviot.
Juoksuodotusarvojen laskenta tulisi yksinkertaistettuna menemään seuraavan mallin tyylisesti:
1. Muodostetaan joukkueelle lineup projektio jossa arvioituna kuinka monta PA:ta kukakin pelaaja saa ja missä tilanteissa. Lineup projektion muodostuksessa käytetään kauden alussa arvioitua joukkueen oletuslineuppia, edellisten pelien peluutuksia, mahdollista l/r matchuppia, pelaajien lepuutuksia, personal catcheraita ja loukkaantumisia. Avaan tätä vaihetta tarkemmin myöhemissä viesteissä.
2. Arvioidun lineupin perusteella muodostetaan lyöntipelaajien perusteella arvio kuinka monta juoksua joukkue tekisi liigan keskivertoa syöttäjää vastaan neutraalilla stadionilla. Lyöntipelaajien "voimalukuina" käytetään jonkin tarjoalla olevan player projection lähteen tietoja(Esim: BP, Zips, Marcel jne..) joita korjataan kauden sisällä pelaajien todellisten suoritusten mukaan. Projektioista käytetään nimenomaan stadion neutraaleja lukuja.
3. Aloittavan syöttäjän "voimaluvut" tulevat pääasiassa projectioista(Esim: BP, Zips, Marcel jne..) jota korjataan levon, mahdollisen loukkaantumisen ja kauden edeltävien pelien tilastojen mukaan. Syöttäjälle arvioidaan myös syötettyjen vuorojen määrä jossa huomioidaan vastustajat lyöntiteho, stadioni, syöttäjät historia ja sää.
4. Bullpenin tapauksessa tehdään lineup projektion kaltainen pelaajien arvioitu käyttö mutta yksinkertaistettuna. Riippuen siitä kuinka pitkälle aloittavan syöttäjän oletetaan syöttävän, onko kyseessä tasainen/epätasainen peli, koti/vieras saadaan kaikille bp:n syöttäjille arviot.
5. Yhdistetään edellisistä vaiheista saadut luvut joukkueet juoksuodotusarvoksi neutraalilla stadionilla. Yksinkertainen esimerkkikaava:
JuoksuOA = (LyöntipeliJuoksuOA / LiiganKeskiarvoJuoksumäärä) * (AloittajanJuoksuOA * (AloittajanArvioidutSyöttövuorot / 9)) + (BullpenJuoksuOA * (BullpeninArvioidutSyöttövuorot / 9)) / LiiganKeskiarvoJuoksumäärä)
6. Huomioidaan stadion korjaus. Tämän vaiheen oikeus toteuttamisessa on vielä paljon tutkittavaa, aikaisemmin olen huomioinut stadionilta päivä/ilta pelien erot, edun l/r lyöjille sekä tuuli ja lämpötilaolot mutta kuten muutkin monimutkaisemmat asiat niin park factorien käsittely täytyy tutkia ja toteuttaa täysin uudestaan tähän systeemiin jotta vanhojen järjestelmien virheistä ei jäisi turhaa painolastia.
Yksinkertaisuuden vuoksi en mieti vielä tässä vaiheessa fieldingin huomiointia sekä kaikkia muita pikku hienouksia, katsotaan myöhemmin miten nuo saadaan mukaan laskentaan.
Siihen miten juoksuodotusarvoista saadaan % arviot eri pelimuotoihin palataan myöhemmin koska kyseessä ei ole mitään erityisen simppeli juttu.
Edellisen viestin jälkeen päädyin lisäämään systeemin vaatimuksiin tuen käyttäjähallinalle. Eli tarvittaessa systeemiin voi luoda useita eri käyttäjätilejä eri oikeuksin. Subjektiivinen data kuten arviot, vedot yms. linkittyy käyttäjän alle joten usea käyttäjä voi tehdä toisista riippumattomia arviota.
Kantarakenne on vielä pahasti vaiheessa joten sitä en pääse julkaisemaan vielä ~viikkoon.