Bias in ML-modellen detecteren
Beschermde kenmerken, disparate impact, fairlearn-metrieken, equalized odds, demographic parity.
Bias in ML-modellen detecteren is een gratis Leer AI met Python-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Leer AI met Python. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Leer AI met Python bevat in totaal 4 lessen.
Wat is algoritmische vooringenomenheid
Een model is vooringenomen wanneer zijn voorspellingen een groep die wordt gedefinieerd door een gevoelig kenmerk (geslacht, ras, leeftijd) systematisch benadelen. Vooringenomenheid ontstaat vaak door scheve trainingsgegevens en kan echte schade veroorzaken bij werving, kredietverlening of beslissingen in de gezondheidszorg.
Gevoelige kenmerken
Een gevoelig kenmerk is het attribuut waarmee we eerlijkheid meten, zoals geslacht of etniciteit. Eerlijkheidsmetrieken vergelijken het modelgedrag tussen de groepen die dit kenmerk definieert, zelfs als het kenmerk niet als invoer voor het model wordt gebruikt.
Demografische pariteit
Demografische pariteit vereist dat het percentage positieve voorspellingen in alle groepen gelijk is. Als een kredietmodel 60% van groep A goedkeurt, maar slechts 35% van groep B, is de demografische pariteit geschonden, ongeacht de werkelijke kredietwaardigheid van de aanvragers.
# P(prediction = 1 | group = A) == P(prediction = 1 | group = B)Gelijke odds
Gelijke odds zijn strenger: ze vereisen gelijke percentages echte positieven en valse positieven in alle groepen. Hierbij wordt rekening gehouden met de werkelijke uitkomst, waardoor verschillende selectiepercentages zijn toegestaan zolang het model voor elke groep even nauwkeurig is.
# TPR and FPR equal across groups
# P(pred=1 | y=1, A) == P(pred=1 | y=1, B)
# P(pred=1 | y=0, A) == P(pred=1 | y=0, B)Pariteit versus odds
Deze metrieken kunnen met elkaar botsen:
- Demografische pariteit negeert de werkelijke uitkomst en kan daardoor gelijke percentages afdwingen, zelfs wanneer de basispercentages echt verschillen
- Gelijke odds houden rekening met de werkelijke uitkomst, maar staan verschillende selectiepercentages toe
Geen enkele metriek is universeel de juiste keuze; dat hangt af van de context en de wet.
Kennismaken met fairlearn
fairlearn is een Python-bibliotheek voor het meten en beperken van oneerlijkheid. Het belangrijkste meetinstrument is MetricFrame, dat elke metriek uitgesplitst per gevoelige groep berekent.
import pandas as pd
from fairlearn.metrics import MetricFrame
from sklearn.metrics import accuracy_score, selection_rateEen MetricFrame bouwen
Je geeft een woordenboek met metrieken, de werkelijke labels, de voorspellingen en de sensitive_features door. fairlearn evalueert elke metriek per groep.
mf = MetricFrame(
metrics={
"accuracy": accuracy_score,
"selection_rate": selection_rate,
},
y_true=y_test,
y_pred=y_pred,
sensitive_features=X_test["gender"],
)Resultaten per groep
Het attribuut by_group retourneert een tabel met elke metriek per groep, waardoor verschillen direct zichtbaar worden.
print(mf.by_group)
# accuracy selection_rate
# gender
# female 0.81 0.34
# male 0.83 0.59Totaal en verschillen
fairlearn rapporteert ook samengevoegde overzichten: overall voor de volledige gegevensverzameling en hulpmethoden zoals difference() en ratio(), die het verschil tussen de best en slechtst presterende groepen samenvatten.
print(mf.overall)
print(mf.difference(method="between_groups"))
# selection_rate 0.25 -> 25 point gap between groupsVerschillen visualiseren
Een staafdiagram van by_group zet getallen om in een intuïtief beeld. Een groot verschil tussen balken voor dezelfde metriek is een duidelijke waarschuwing dat het model groepen verschillend behandelt.
mf.by_group.plot.bar(
subplots=True,
layout=[1, 2],
figsize=(10, 4),
title="Metrics by group",
)Van detectie naar mitigatie
Nadat je de vertekening hebt gekwantificeerd, biedt fairlearn mitigatie-algoritmen, zoals ExponentiatedGradient en nabewerking met ThresholdOptimizer, die het model opnieuw trainen of drempelwaarden aanpassen om aan een eerlijkheidsvoorwaarde te voldoen. Detectie komt altijd eerst: je kunt niet repareren wat je niet hebt gemeten.
Korte toets
Toets je kennis van eerlijkheid.
Samenvatting
Je hebt geleerd hoe je vertekening detecteert:
- Demografische pariteit maakt de percentages positieve voorspellingen in alle groepen gelijk
- Gelijke odds maken TPR en FPR gelijk, onder voorwaarde van de uitkomst
- fairlearn MetricFrame berekent een woordenboek met metrieken per
sensitive_features-groep - Visualiseer
by_groupom verschillen te herkennen en pas daarna mitigatie toe
Leer Python met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 53
- Lessen
- 225
Veelgestelde vragen
Is de les “Bias in ML-modellen detecteren” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Leer AI met Python, waaronder “Bias in ML-modellen detecteren”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Leer AI met Python bevat in totaal 4 lessen.
Wat leer ik in “Bias in ML-modellen detecteren”?
Beschermde kenmerken, disparate impact, fairlearn-metrieken, equalized odds, demographic parity. Je oefent met Leer AI met Python door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Leer AI met Python te beginnen?
Ervaring vooraf is niet nodig. Leer AI met Python op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Bias in ML-modellen detecteren”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Leer AI met Python?
Ja. Elke les over Leer AI met Python bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Bias in ML-modellen detecteren
- SHAP-waarden voor modeluitlegbaarheid
- LIME: lokaal interpreteerbare verklaringen
- Kaders voor AI-ethiek en governance