Een model zegt bij elk geval hoe zeker het is. Pas als die zekerheid klopt, kun je zeggen: boven deze grens kijk ik niet meer na. Deze werkbank legt de zekerheid naast de werkelijke uitkomst en rekent uit wat je ermee kunt.
Werkt op elk model dat een getal tussen 0 en 1 teruggeeft — een classificatie-API, een logprob, of een model dat je zelf om een cijfer vraagt. Ook op je eigen inschatting.
Een zekerheidsgetal is niet vanzelf een kans. Van alle gevallen waarbij een model 0,90 zei, zou 90 procent goed moeten zijn. Bij taalmodellen is dat na de nabehandeling structureel niet zo: ze zeggen bijna altijd iets tussen 0,8 en 1,0, en hebben het minder vaak bij het rechte eind dan dat getal belooft.
Het gevolg is duurder dan het lijkt. Kies je een drempel op een getal dat niet klopt, dan laat je precies de gevallen ongezien door waarvan het model overtuigd én fout is — en die vind je nooit meer terug, want je hebt ze niet nagekeken.
Plak per regel twee waarden: de zekerheid die het model gaf (0 tot 1, of een percentage) en de werkelijke uitkomst (1/0, ja/nee, goed/fout, waar/onwaar). Scheiden mag met komma, puntkomma, tab of spatie. Een kopregel wordt overgeslagen.
Elke poort moet open voor de volgende iets betekent. Een ijking op te weinig gevallen meet ruis; een ijking op een model dat niet onderscheidt, levert keurige kansen die allemaal gelijk zijn aan het gemiddelde.
Op de horizontale as wat het model beloofde, verticaal wat er werkelijk uitkwam. Ligt een punt onder de stippellijn, dan was het model te stellig; erboven te voorzichtig. De verticale streepjes zijn het 95-procentsinterval van die bin — hoe korter de steekproef, hoe langer die streepjes.
De ijkcurve verzwijgt hoevéél gevallen er in elke bin zitten. Deze verdeling laat dat zien, met per staaf de werkelijke afloop. Een model dat alles op 0,9 en hoger zet, geeft je maar één knop om aan te draaien.
Twee grenzen, drie bakken. Boven de bovengrens laat je automatisch door, onder de ondergrens wijs je automatisch af, en wat ertussen valt kijk je met de hand na. Schuif tot het aantal fouten dat doorglipt acceptabel is.
Lees de laatste kolom als het echte prijskaartje: dat zijn de gevallen die het model met overtuiging goedkeurde en die toch fout waren.
Als een model wél onderscheidt maar systematisch te stellig is, valt dat met één knop te corrigeren: deel alle log-odds door een getal T. Boven de 1 maakt dat de kansen voorzichtiger, eronder juist stelliger. De ordening van de gevallen blijft exact gelijk — je verandert de getallen, niet het oordeel.
Rond getypeerde uitvoer hangt een claim die makkelijk verkeerd gelezen wordt. Structured output, JSON-mode en constrained decoding garanderen dat het antwoord in het schema past: er komt een van je labels uit, geen proza, geen verzonnen veld. Dat is echte winst — het scheelt een broze regex die op een dag stil stopt met werken.
Wat het niet garandeert, is dat het gekozen label klopt. TypeSafe, dat zijn model rond precies deze vorm bouwt, schrijft het in zijn eigen documentatie onomwonden op: typed output guarantees the interface, not truth. Een garantie op de vorm is geen garantie op de inhoud, en een zekerheidsgetal dat in het schema past, is daarmee nog niet geijkt.
Praktisch gevolg: de twee winstpunten zijn los van elkaar te halen. Het schema haal je vandaag binnen door je model getypeerd te laten antwoorden. De ijking haal je alleen binnen door te meten, op je eigen gevallen, met je eigen labels — precies wat hierboven gebeurt.
IJkfout — de gevallen gaan in tien bakjes van 0,1 breed. Per bakje het verschil tussen de gemiddelde belofte en het werkelijke aandeel goed; die verschillen worden gewogen met het aantal gevallen per bakje opgeteld. Dat is de gebruikelijke expected calibration error. De grootste afwijking is dat verschil in het slechtste bakje met minstens tien gevallen.
Brier-score — het gemiddelde kwadraat van het verschil tussen belofte en uitkomst, over alle gevallen los. Lager is beter; 0,25 is wat je krijgt door overal 0,5 in te vullen. De ontleding in betrouwbaarheid, scherpte en grondonzekerheid gebruikt dezelfde tien bakjes en benadert de Brier-score daardoor; het verschil staat er als restterm bij.
Onderscheid — de kans dat een willekeurig goed geval een hogere zekerheid kreeg dan een willekeurig fout geval, gelijke scores half meegeteld. 0,5 is munt opgooien, 1,0 is perfecte ordening. Bekend als de oppervlakte onder de ROC-curve.
Interval per bin — Wilson, 95 procent. Betrouwbaarder dan het gewone interval bij kleine aantallen en bij fracties dicht tegen 0 of 1, waar je hier nu juist zit.
Correctie — één parameter T op de log-odds, gezocht door de aannemelijkheid te maximaliseren. De gevallen op even posities dienen als pasdata, die op oneven posities als toetsdata; daarna omgekeerd, en het gemiddelde van beide staat in de uitkomst.
De drie voorbeeldsets zijn gegenereerd, niet gemeten: ze zijn er om de drie patronen te laten zien waarin een echte meting kan vallen. Je eigen cijfers zijn het enige dat over jouw model iets zegt. Geen enkel getal op deze pagina is een aanbeveling om iets wel of niet automatisch door te laten — dat hangt af van wat een fout bij jou kost.
Bronnen: GPT-4 Technical Report (figuur 8) · Wired for Overconfidence, Zhao e.a., juli 2026 · Rethinking Verbalized Confidence for LLM-as-a-Judge, september 2026 · TypeSafe-documentatie.