Leer AI met Python · Les

SHAP-waarden voor modeluitlegbaarheid

shap.Explainer, TreeExplainer, force plots, beeswarm plots, rangschikking van featurebelang.

Les 2 van 413 stappen

SHAP-waarden voor modeluitlegbaarheid is een gratis Leer AI met Python-les op CoddyKit. Dit is les 2 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.

Waarom uitlegbaarheid

Complexe modellen zijn nauwkeurig, maar ondoorzichtig. Uitlegbaarheid beantwoordt de vraag "waarom heeft het model deze voorspelling gedaan?". Dat is essentieel voor vertrouwen, foutopsporing en naleving van regelgeving. SHAP is een van de meest gebruikte verklaringsmethoden.

Wat SHAP meet

SHAP (SHapley Additive exPlanations) wijst aan elk kenmerk een bijdrage aan één voorspelling toe. De waarden zijn gebaseerd op Shapley-waarden uit de coöperatieve speltheorie: elk kenmerk is een "speler" en de SHAP-waarde is het eerlijke aandeel van dat kenmerk in de voorspelling ten opzichte van een basiswaarde.

Additiviteit

SHAP-waarden zijn additief: de basiswaarde (de gemiddelde modeluitvoer) plus de som van alle SHAP-waarden van de kenmerken is gelijk aan de werkelijke voorspelling. Daardoor is elke uitleg een volledige, controleerbare verantwoording van de uitvoer.

# prediction = base_value + sum(shap_values_for_each_feature)

TreeExplainer

Voor boommodellen (XGBoost, LightGBM, random forests) berekent shap.TreeExplainer snel exacte SHAP-waarden door gebruik te maken van de boomstructuur.

import shap
import xgboost

model = xgboost.XGBClassifier().fit(X_train, y_train)
explainer = shap.TreeExplainer(model)

shap_values berekenen

explainer.shap_values(X_test) retourneert een matrix: één SHAP-waarde per kenmerk per rij. Dit zijn de ruwe bijdragen die je gaat visualiseren.

shap_values = explainer.shap_values(X_test)
print(shap_values.shape)  # (n_samples, n_features)

Het bijenzwermdiagram van summary_plot

shap.summary_plot maakt een bijenzwermdiagram: elke stip is één voorbeeld voor één kenmerk. De positie toont de SHAP-waarde (richting en omvang van het effect); de kleur toont de kenmerkwaarde. Kenmerken worden gerangschikt op basis van hun algemene belang.

shap.summary_plot(shap_values, X_test)

Het bijenzwermdiagram lezen

Zo lees je een bijenzwermdiagram:

  • De bovenste kenmerken zijn wereldwijd het belangrijkst
  • Stippen ver naar rechts verhogen de voorspelling; stippen ver naar links verlagen deze
  • De kleur laat de richting zien: hoge kenmerkwaarden (rood) aan de rechterkant betekenen bijvoorbeeld dat een hoge waarde de voorspelling verhoogt

Eén voorspelling uitleggen

SHAP komt vooral goed tot zijn recht op individueel niveau. Om één rij uit te leggen heb je de SHAP-waarden en de basiswaarde van het model nodig.

idx = 0
base = explainer.expected_value
row_shap = shap_values[idx]

force_plot

shap.force_plot toont één voorspelling als krachten die de basiswaarde omhoog of omlaag duwen: rode kenmerken verhogen de uitvoer, blauwe kenmerken verlagen deze. Het nettoresultaat komt uit op de uiteindelijke voorspelling.

shap.force_plot(
    explainer.expected_value,
    shap_values[0],
    X_test.iloc[0],
)

waterfall_plot

shap.waterfall_plot is de duidelijkste weergave van één voorspelling. De grafiek begint bij de basiswaarde en stapelt elke bijdrage van een kenmerk stap voor stap op totdat de uiteindelijke uitvoer is bereikt, gesorteerd op grootte.

shap.waterfall_plot(
    shap.Explanation(
        values=shap_values[0],
        base_values=explainer.expected_value,
        data=X_test.iloc[0],
    )
)

Globaal versus lokaal

SHAP voorziet in twee behoeften:

  • Globaal: summary_plot toont welke kenmerken het model in het algemeen sturen
  • Lokaal: force_plot en waterfall_plot leggen één specifieke voorspelling uit

Beide komen voort uit dezelfde SHAP-waarden, waardoor het verhaal op elk schaalniveau consistent blijft.

Korte toets

Toets je kennis van SHAP.

Samenvatting

Je hebt modeluitlegbaarheid met SHAP geleerd:

  • shap.TreeExplainer(model) berekent exacte waarden voor boommodellen
  • explainer.shap_values(X_test) retourneert bijdragen per kenmerk
  • Het bijenzwermdiagram van summary_plot toont het algemene belang
  • force_plot en waterfall_plot leggen één voorspelling uit
  • SHAP-waarden zijn additief: basiswaarde + bijdragen = voorspelling
Gratis beginnen

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 “SHAP-waarden voor modeluitlegbaarheid” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Leer AI met Python, waaronder “SHAP-waarden voor modeluitlegbaarheid”, 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 “SHAP-waarden voor modeluitlegbaarheid”?

shap.Explainer, TreeExplainer, force plots, beeswarm plots, rangschikking van featurebelang. 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 2 van 4.

Hoe lang duurt de les “SHAP-waarden voor modeluitlegbaarheid”?

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

  1. Bias in ML-modellen detecteren
  2. SHAP-waarden voor modeluitlegbaarheid
  3. LIME: lokaal interpreteerbare verklaringen
  4. Kaders voor AI-ethiek en governance
← Terug naar Leer AI met Python