Skip to content

Evalueren van AI-oplossingen

Evaluatie gaat verder dan alleen kijken of een metric "hoog genoeg" is. Een goede evaluatie vereist dat je begrijpt wat je meet, wat die waarde betekent, en hoe dit zich vertaalt naar bruikbaarheid in de praktijk. Daarnaast moet je verder kijken dan pure performance — aspecten als fairness, uitlegbaarheid en duurzaamheid zijn minstens zo belangrijk.


Verder denken dan de metric

De valkuil van hoge getallen

Een accuracy van 95% klinkt indrukwekkend, maar zegt op zichzelf weinig. Stel jezelf altijd de volgende vragen:

Vraag Waarom belangrijk
Wat meet deze metric precies? Accuracy meet iets anders dan precision, recall of F1
Is dit de juiste metric voor mijn probleem? Bij ongebalanceerde data kan accuracy misleidend zijn
Wat betekent deze waarde in de praktijk? 95% accuracy = 5% fouten. Bij 10.000 voorspellingen zijn dat 500 fouten
Wie wordt geraakt door de fouten? False positives en false negatives hebben verschillende gevolgen
Hoe presteert de huidige oplossing (baseline)? 95% is slecht als een simpele regel 93% haalt

Van metric naar praktijk

Metric-waarde Technische interpretatie Praktische vraag
Precision = 0.90 90% van de positieve voorspellingen is correct Hoeveel tijd verspillen gebruikers aan false positives?
Recall = 0.85 85% van de werkelijke positieven wordt gevonden Welke 15% missen we, en wat zijn de gevolgen?
Latency = 200ms Gemiddelde responstijd Is dit snel genoeg voor real-time gebruik?
F1 = 0.87 Harmonisch gemiddelde van precision en recall Maar is de balans tussen precision/recall juist voor deze use case?

!!! warning "Hoge metric ≠ goed model" Een model dat altijd "negatief" voorspelt in een dataset met 99% negatieve cases heeft 99% accuracy — maar is compleet nutteloos voor het vinden van de positieve cases.


CRISP-ML(Q) kwaliteitsdimensies

Het CRISP-ML(Q) framework gaat verder dan alleen modelperformance en definieert bredere kwaliteitsaspecten voor ML-systemen.

Overzicht dimensies

Dimensie Kernvraag
Performance Hoe goed presteert het model op de taak?
Robustness Hoe stabiel is het model bij afwijkende input?
Fairness Behandelt het model alle groepen eerlijk?
Explainability Kunnen we begrijpen waarom het model iets voorspelt?
Sustainability Wat is de milieu- en resource-impact?
Security Is het model bestand tegen aanvallen?
Privacy Worden persoonsgegevens adequaat beschermd?

Performance metrics

Performance blijft belangrijk, maar kies de juiste metric voor je probleem.

Classificatie

Metric Formule Wanneer gebruiken
Accuracy (TP + TN) / Totaal Gebalanceerde datasets
Precision TP / (TP + FP) Als false positives kostbaar zijn
Recall TP / (TP + FN) Als false negatives kostbaar zijn
F1-score 2 × (Precision × Recall) / (Precision + Recall) Balans tussen precision en recall
AUC-ROC Area under ROC curve Vergelijken van modellen, threshold-onafhankelijk

Regressie

Metric Wat het meet
MAE (Mean Absolute Error) Gemiddelde absolute afwijking
MSE (Mean Squared Error) Gemiddelde kwadratische afwijking (straft grote fouten zwaarder)
RMSE Wortel van MSE (zelfde eenheid als target)
Proportie verklaarde variantie

Fairness

Fairness gaat over de vraag of het model bepaalde groepen systematisch benadeelt.

Waarom fairness meten?

  • Modellen kunnen bestaande maatschappelijke biases versterken
  • Wettelijke eisen (bijv. non-discriminatie in kredietbeslissingen)
  • Ethische verantwoordelijkheid
  • Reputatierisico's

Fairness metrics

Metric Definitie Voorbeeld
Demographic Parity Gelijke positieve voorspellingen per groep Evenveel goedgekeurde leningen voor alle demografische groepen
Equal Opportunity Gelijke true positive rate per groep Als je ziek bent, wordt dit even vaak gedetecteerd ongeacht je achtergrond
Equalized Odds Gelijke TPR én FPR per groep Zowel detectie als false alarms zijn gelijk verdeeld
Predictive Parity Gelijke precision per groep Een positieve voorspelling is even betrouwbaar voor alle groepen

Fairness evalueren

1
2
3
4
5
6
7
from fairlearn.metrics import demographic_parity_difference, equalized_odds_difference

# Demographic parity
dp_diff = demographic_parity_difference(y_true, y_pred, sensitive_features=gender)

# Equalized odds
eo_diff = equalized_odds_difference(y_true, y_pred, sensitive_features=gender)

!!! note "Trade-offs" Verschillende fairness-definities kunnen niet altijd tegelijk worden vervuld. Kies bewust welke definitie past bij jouw context en documenteer deze keuze.


Explainability

Explainability (uitlegbaarheid) gaat over de vraag of we kunnen begrijpen waarom een model een bepaalde voorspelling doet.

Waarom uitlegbaarheid?

Reden Toelichting
Vertrouwen Gebruikers vertrouwen een systeem meer als ze het begrijpen
Debugging Inzicht helpt bij het vinden van fouten
Compliance Wettelijke eisen (bijv. GDPR: recht op uitleg)
Verantwoording Bij belangrijke beslissingen moet je kunnen uitleggen waarom

Methoden

Methode Type Wat het doet
Feature Importance Globaal Welke features zijn over het algemeen belangrijk?
SHAP Lokaal/Globaal Bijdrage van elke feature aan individuele voorspellingen
LIME Lokaal Lokale benadering met interpreteerbaar model
Partial Dependence Plots Globaal Effect van één feature op de voorspelling
Counterfactual Explanations Lokaal "Wat had anders moeten zijn voor een andere uitkomst?"
1
2
3
4
5
6
7
import shap

explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X_test)

# Visualiseer feature importance
shap.summary_plot(shap_values, X_test)

Robustness

Robustness meet hoe goed een model omgaat met afwijkende of onverwachte input.

Aspecten van robustness

Aspect Vraag
Out-of-distribution Hoe presteert het model op data die afwijkt van de training?
Noise sensitivity Hoe gevoelig is het model voor ruis in de input?
Adversarial robustness Is het model bestand tegen opzettelijke manipulatie?
Edge cases Hoe gedraagt het model zich bij extreme waarden?

Testen op robustness

  • Test op data van andere tijdsperiodes
  • Voeg synthetische ruis toe aan input
  • Test met incomplete of corrupte data
  • Gebruik adversarial examples

Sustainability

Sustainability kijkt naar de milieu- en resource-impact van AI-systemen.

Waarom duurzaamheid meenemen?

  • Training van grote modellen verbruikt enorme hoeveelheden energie
  • CO2-uitstoot van datacenters
  • Maatschappelijke verantwoordelijkheid
  • Kosten correleren vaak met energieverbruik

Wat te meten?

Aspect Metrics
Training Energieverbruik (kWh), CO2-uitstoot, trainingstijd
Inference Latency, throughput, energie per voorspelling
Model size Aantal parameters, geheugengebruik

Duurzamere keuzes

Keuze Effect
Kleinere modellen gebruiken Minder compute, snellere inference
Transfer learning Minder training nodig
Model pruning/quantization Kleiner model, lagere energie
Efficiënte architecturen Betere performance-per-watt
Groene datacenter-locaties Lagere CO2-uitstoot

Security

Security betreft de beveiliging van het model tegen aanvallen.

Aanvalstypen

Type Beschrijving
Data poisoning Aanvaller manipuleert trainingsdata
Model stealing Reverse-engineering van het model via queries
Adversarial attacks Input manipuleren om verkeerde voorspelling uit te lokken
Model inversion Trainingsdata reconstrueren uit het model

Privacy

Privacy gaat over de bescherming van persoonsgegevens in het ML-proces.

Aandachtspunten

  • Bevat de trainingsdata persoonlijke informatie?
  • Kan het model individuen onthullen (memorization)?
  • Voldoet het systeem aan GDPR/AVG?
  • Is er toestemming voor het gebruik van de data?

Privacy-bevorderende technieken

Techniek Beschrijving
Differential Privacy Ruis toevoegen zodat individuele datapunten niet te achterhalen zijn
Federated Learning Model trainen zonder data te centraliseren
Data anonymization Identificerende kenmerken verwijderen
Synthetic data Trainingsdata genereren die origineel niet bevat

Holistische evaluatie

Breng alle dimensies samen in een complete evaluatie:

Evaluatie-checklist

Dimensie Vragen om te stellen
Performance Zijn de metrics geschikt voor de use case? Hoe verhoudt het zich tot de baseline?
Robustness Werkt het ook bij afwijkende input? Wat zijn de edge cases?
Fairness Zijn er dispariteiten tussen groepen? Welke fairness-definitie is relevant?
Explainability Kunnen we uitleggen waarom het model iets voorspelt? Is dit nodig voor deze use case?
Sustainability Wat is de carbon footprint? Zijn er efficiëntere alternatieven?
Security Welke aanvallen zijn relevant? Hoe beschermen we ons?
Privacy Welke data gebruiken we? Voldoen we aan wetgeving?

Van evaluatie naar conclusie

  1. Verzamel resultaten voor alle relevante dimensies
  2. Weeg de dimensies — wat is belangrijkst voor deze toepassing?
  3. Identificeer trade-offs — waar moeten we kiezen?
  4. Formuleer aanbevelingen — go/no-go, verbeterpunten
  5. Documenteer — leg vast wat je hebt gemeten en waarom

!!! tip "Denk vanuit de gebruiker" Vertaal je evaluatie altijd terug naar de praktijk. Een model met 92% accuracy en goede uitlegbaarheid kan beter zijn dan een model met 95% accuracy dat niemand begrijpt of vertrouwt.