SHAP-uitlegbaarheid visualiseren

Explainable AI in Python

Fouad Trad

Machine Learning Engineer

Dataset

age gender bmi children smoker charges
19 0 27.900 0 1 16884.92
18 1 33.770 1 0 1725.55
28 1 33.000 3 0 4449.46
33 1 22.705 0 0 21984.47
32 1 28.880 0 0 3866.85

model: random forest-regressor om charges te voorspellen

import shap
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X)
Explainable AI in Python

Feature-importance-plot

  • Toont bijdrage van elke feature aan de modeloutput
shap.summary_plot(shap_values, X, plot_type="bar")

Plot met feature-importance die laat zien dat rookstatus de belangrijkste feature is.

Explainable AI in Python

Beeswarm-plot

  • Toont verdeling van SHAP-waarden
  • Benadrukt richting en grootte van elke feature op de voorspelling
    • Rood → hoge featurewaarde
    • Blauw → lage featurewaarde
    • SHAP-waarde > 0 → verhoogt uitkomst
    • SHAP-waarde < 0 → verlaagt uitkomst

Beeswarm-plot met SHAP-waardeverdeling per feature, met kleuren die featurewaarden aangeven.

Explainable AI in Python

Beeswarm-plot

  • Toont verdeling van SHAP-waarden
  • Benadrukt richting en grootte van elke feature op de voorspelling
    • Rood → hoge featurewaarde
    • Blauw → lage featurewaarde
    • SHAP-waarde > 0 → verhoogt uitkomst
    • SHAP-waarde < 0 → verlaagt uitkomst

Dezelfde beeswarm-plot die laat zien dat hoge featurewaarden van de 'smoker'-feature positieve SHAP-waarden hebben.

Explainable AI in Python

Beeswarm-plot

  • Toont verdeling van SHAP-waarden
  • Benadrukt richting en grootte van elke feature op de voorspelling
    • Rood → hoge featurewaarde
    • Blauw → lage featurewaarde
    • SHAP-waarde > 0 → verhoogt uitkomst
    • SHAP-waarde < 0 → verlaagt uitkomst
shap.summary_plot(shap_values, X, 
                  plot_type="dot")

Zelfde beeswarm-plot die laat zien dat lage featurewaarden van de 'smoker'-feature negatieve SHAP-waarden hebben.

Explainable AI in Python

Partial dependence-plot

  • Toont relatie tussen feature en voorspelde uitkomst
  • Laat impact van de feature over z’n bereik zien
  • Checkt of de relatie logisch is

Een generieke partial dependence-plot die de relatie toont als een dalende functie.

Explainable AI in Python

Partial dependence-plot

  • Voor elke sample:
    • Varieer de waarde van de gekozen feature
    • Houd andere features constant
    • Voorspel de uitkomst
  • Neem het gemiddelde over alle samples
shap.partial_dependence_plot("age", 
                             model.predict, 
                             X)

Partial dependence-plot voor de feature age die laat zien dat bij hogere leeftijd de voorspelde waarde stijgt.

Explainable AI in Python

Partial dependence-plot

  • Voor elke sample:

    • Varieer de waarde van de gekozen feature
    • Houd andere features constant
    • Voorspel de uitkomst
  • Neem het gemiddelde over alle samples

shap.partial_dependence_plot("age", 
                             model.predict, 
                             X)

Dezelfde partial dependence-plot met de verdeling van de age-waarden in de dataset gemarkeerd.

Explainable AI in Python

Laten we oefenen!

Explainable AI in Python

Preparing Video For Download...