Speelomgeving

Bouw de kans op.

Verplaats de spelers. Bekijk hoe posities de invoer en de schatting veranderen.

Door Leonardo Ferreira

Keuzes, bewijs en beperkingen

Achter de schatting

Een speelomgeving om scoringskansen te begrijpen en te zien hoe gegevens, modelkeuzes en software samen het getal op het scherm bepalen.

Wat het getal betekent

Een schatting van 0,20 xG staat volgens dit model voor ongeveer 20 doelpunten uit 100 vergelijkbare schoten. Dit is geen exacte kans voor een bepaalde speler. De verzonnen situatie vereenvoudigt de werkelijke context.

Bron en populatie

We gebruiken StatsBomb Open Data met waargenomen doelpunten en niet-doelpunten; de xG van de bron is nooit de doelvariabele. De populatie bestaat uit schoten met de voet van mannen in open spel. Kopballen, strafschoppen en andere situaties zijn uitgesloten van de training. Eventframes vormen de primaire waarneming; eventuele 360-gegevens garanderen niet dat alle verdedigers zichtbaar zijn. Situaties zonder zichtbare keeper en singuliere gevallen op de doellijn worden uitgesloten, zonder imputatie.

StatsBomb Open Data

Acht positievariabelen

Geometrie beschrijft de kans; aantallen en afstanden beschrijven waargenomen tegenstanders. De schotdriehoek is de begrensde driehoek tussen het schot en de doelpalen. Posities worden in meters uitgedrukt, onafhankelijk van SVG. Zonder verdedigers wordt de velddiagonaal als speciale afstandswaarde gebruikt, naast het expliciete aantal. Andere aanvallers, identiteit, voorkeursvoet, techniek, snelheid en tijdscontext worden niet meegenomen.

VariabeleOnderbouwing
Schotafstand (m)Afstand tot het midden van het doel.
Openingshoek van het doel (°)Opening tussen de doelpalen.
Zijdelingse afwijking (m)Zijdelingse asymmetrie zonder onderscheid tussen links en rechts.
Weergegeven verdedigersAantal weergegeven tegenstanders.
Verdedigers in schotdriehoekBezetting van de schotdriehoek.
Dichtstbijzijnde verdediger (m)Nabijheid van de dichtstbijzijnde waargenomen tegenstander.
Keeper tot doel (m)Positie van de keeper ten opzichte van het doel.
Keeper tot schot (m)Afstand tussen keeper en schot.

Training, selectie en vastzetten

Volledige wedstrijden worden gescheiden voor training, kalibratie, selectie en test, zodat events uit dezelfde wedstrijd niet over groepen worden verdeeld. De begrensde zoekprocedure gebruikt vijf folds, uitsluitend op de trainingsdata; de schaling voor logistische regressie wordt binnen elke fold aangepast. Drie logistische regressies onderzoeken geometrie, verdedigers en alle variabelen afzonderlijk. Ondiepe XGBoost-bomen testen niet-lineaire interacties. Er is geen klassenbalancering of hertraining na selectie.

Verdeling van wedstrijden
DeelverzamelingWedstrijdenSchotenDoelpunten
Kalibratie1833.440314
Selectie1803.643324
Eindtest3637.160Niet geopend tijdens selectie
Training1.08720.7771.966

De vooraf vastgelegde regel selecteerde XGBoost op basis van de waargenomen prestaties en een grens voor verslechtering van de Brier-score om eenvoud te verkiezen. De selectie-intervallen bewezen geen doorslaggevende superioriteit. Sigmoïdekalibratie voldeed niet aan de criteria voor toepassing. Vastzetten betekent dat invoer, voorbewerking, bomen en kalibratie worden vastgelegd voordat de eindtest wordt geopend; de interface voert alleen die parameters uit.

XGBoost
300 bomen · diepte 2 · leersnelheid 0,05 · minimaal gewicht van een kindknoop 5
Kalibratie
Geen herkalibratie (identiteit)

Validatie en eindtest

Log loss bestraft onjuiste kansen die met grote zekerheid worden voorspeld; Brier meet de gekwadrateerde kansfout. Lager is beter. Selectie kiest het model; de eindtest beoordeelt het reeds vastgelegde model en is niet gebruikt om het opnieuw af te stellen. De 95%-intervallen worden berekend door volledige wedstrijden opnieuw te bemonsteren, zodat afhankelijkheid tussen schoten behouden blijft.

Selectie — niet de eindtest

ModelSchotenDoelpuntenLog lossBrier
Constante doelfrequentie3.6433240,3002650,08106
Logistisch: geometrie3.6433240,2458760,069567
Logistisch: verdedigers3.6433240,2402040,067658
Volledige logistische regressie3.6433240,2383550,067612
Volledig XGBoost3.6433240,2352080,066974

Eindtest apart gehouden tot het vastzetten

ModelSchotenDoelpuntenLog lossBrier
Volledig XGBoost7.1606550,2399650,068339
Volledige logistische regressie7.1606550,2428710,069261
Constante doelfrequentie7.1606550,3060080,083122

Gepaarde verschillen op de eindtest

XGBoost min referentie: negatieve waarden zijn gunstig voor XGBoost. De totale intervallen zijn op deze test gunstig voor het kandidaatmodel; dit garandeert geen voordeel in elke deelgroep of overdraagbaarheid naar andere competities of situaties.

ReferentieScoreVerschil95%-interval
Constante doelfrequentieBrier-0,014783[-0,017492; -0,012139]
Constante doelfrequentieLog loss-0,066043[-0,075388; -0,056869]
Volledige logistische regressieBrier-0,000922[-0,001781; -0,000067]
Volledige logistische regressieLog loss-0,002906[-0,005424; -0,000343]

Kalibratie en kleine steekproeven

De diagonaal staat voor overeenstemming tussen het voorspelde gemiddelde en de waargenomen frequentie. Balken tonen op wedstrijden gebaseerde 95%-intervallen van de waargenomen frequentie; open punten markeren intervallen met weinig schoten. Geen interval met voldoende gegevens werd gemarkeerd, maar hoge kansen hebben weinig voorbeelden en onderbouwen geen nauwkeurigheid voor extreme situaties.

Kalibratie en kleine steekproevenDe diagonaal staat voor overeenstemming tussen het voorspelde gemiddelde en de waargenomen frequentie. Balken tonen op wedstrijden gebaseerde 95%-intervallen van de waargenomen frequentie; open punten markeren intervallen met weinig schoten. Geen interval met voldoende gegevens werd gemarkeerd, maar hoge kansen hebben weinig voorbeelden en onderbouwen geen nauwkeurigheid voor extreme situaties.0%0%25%25%50%50%75%75%100%100%Voorspeld gemiddeldeWaargenomen frequentie
De diagonaal staat voor overeenstemming tussen het voorspelde gemiddelde en de waargenomen frequentie. Balken tonen op wedstrijden gebaseerde 95%-intervallen van de waargenomen frequentie; open punten markeren intervallen met weinig schoten. Geen interval met voldoende gegevens werd gemarkeerd, maar hoge kansen hebben weinig voorbeelden en onderbouwen geen nauwkeurigheid voor extreme situaties.
Kalibratie en kleine steekproeven
VoorspellingsintervalSchotenVoorspeld gemiddeldeWaargenomen frequentie95%-intervalWeinig gegevens
0%–10%5.3243,5%3,7%3,1% – 4,2%Voldoende gegevens
10%–20%81814,3%13,6%11,2% – 15,9%Voldoende gegevens
20%–30%42924,8%21,7%17,9% – 25,6%Voldoende gegevens
30%–40%28234,4%33,7%28,2% – 39,6%Voldoende gegevens
40%–50%16444,4%47%39,6% – 53,5%Voldoende gegevens
50%–60%6954,7%49,3%37,3% – 60,3%Weinig gegevens
60%–70%4164%58,5%44,2% – 73,3%Weinig gegevens
70%–80%1774,2%82,4%62,5% – 100%Weinig gegevens
80%–90%985,3%55,6%20% – 87,5%Weinig gegevens
90%–100%791,8%100%100% – 100%Weinig gegevens

Ook de ongunstige deelgroep telt

Met twee verdedigers binnen de schotdriehoek presteerde XGBoost op deze test slechter dan de volledige logistische regressie. Dit betreft het aantal in de driehoek, niet het totaal op het veld. Dit resultaat blijft zichtbaar; algemene gemiddelden wissen lokale tekortkomingen niet uit.

Schoten: 815 · Voldoende gegevens

XGBoost − Volledige logistische regressie
ScoreVerschil95%-interval
Brier0,000877[-0,000344; 0,002305]
Log loss0,005375[0,000098; 0,011708]

Illustratieve situaties en overdraagbaarheid

De beschrijvende referentie gebruikt nabije voorbeelden in gestandaardiseerde variabelen uit uitsluitend de trainingsdata, met een drempel van 99% en een aparte groep zonder verdedigers. We publiceren geen referentierijen; de interface berekent daarom niet voor elke wijziging de gezamenlijke ondersteuning door trainingsdata. Vier beginsituaties in open spel vallen buiten deze referentie; binnen de referentie vallen bewijst evenmin realisme. Zeldzame situaties blijven verkenbaar. Vergelijkingen zijn geen causale effecten; gedeeltelijke zichtbaarheid, weinig verdedigers en andere domeinen beperken de interpretatie.

Uitvoering en reproduceerbaarheid

TypeScript berekent dezelfde acht invoervariabelen als de Python-pijplijn. De loader valideert en bewaart onveranderlijke parameters; XGBoost behoudt float32-vergelijkingen en -accumulatie binnen een tolerantie van 1e-7. Kleine verplaatsingen kunnen dezelfde boomuitkomst behouden. Ongeldige invoer of niet-beschikbare modellen krijgen geen vervangende heuristiek. Strafschoppen gebruiken de vaste conventie van 0,76, los van het aangeleerde model.

De wetenschappelijke beoordeling is met beperkingen aanvaard; verspreiding van het exacte modelbestand is beoordeeld voor gratis, niet-commercieel gebruik. De oorspronkelijke automatische status blijft ‘beoordeling nodig’; beoordeling geeft geen toestemming voor publicatie. Private training en volledige reproductie zijn lokaal uitgevoerd en gerapporteerd. De aggregaten en controles zijn beoordeeld zonder de private data opnieuw te verwerken.

Identiteit en beoordeling
Modelbestand
758526873b8a3a2681f655c064dee52f8bd33749accd499d015420dbe8e11b9a
Trainingsrun
222909fe801f4865897fea3541e023fed626f6736dca6ef69ceada1f7c57945a
Bewijs
e579e10f9699077ddf05e7433af5ed63edf0e03c3ea8c7ca295844951d74ea08
Wetenschappelijke beoordeling · 11 okt 2026
Aanvaard met beperkingen
Oorspronkelijke automatische status
Beoordeling nodig
Toestemming voor publicatie
Nee
Eindtest apart gehouden tot het vastzetten
7.160 Schoten · 655 Doelpunten