Vizualizace vysvětlitelnosti SHAP

Explainable AI v Pythonu

Fouad Trad

Machine Learning Engineer

Datová sada

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: regressor náhodného lesa pro predikci nákladů

import shap
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X)
Explainable AI v Pythonu

Graf důležitosti příznaků

  • Zobrazuje příspěvek každého příznaku k výstupu modelu
shap.summary_plot(shap_values, X, plot_type="bar")

Graf důležitosti příznaků ukazující, že stav kuřáka je nejdůležitějším příznakem.

Explainable AI v Pythonu

Beeswarm graf

  • Zobrazuje distribuci hodnot SHAP
  • Zvýrazňuje směr a velikost vlivu každého příznaku na predikci
    • Červená barva → vysoká hodnota příznaku
    • Modrá barva → nízká hodnota příznaku
    • Hodnota SHAP > 0 → zvyšuje výsledek
    • Hodnota SHAP < 0 → snižuje výsledek

Beeswarm graf zobrazující distribuci hodnot SHAP pro každý příznak, s barvami indikujícími hodnoty příznaků.

Explainable AI v Pythonu

Beeswarm graf

  • Zobrazuje distribuci hodnot SHAP
  • Zvýrazňuje směr a velikost vlivu každého příznaku na predikci
    • Červená barva → vysoká hodnota příznaku
    • Modrá barva → nízká hodnota příznaku
    • Hodnota SHAP > 0 → zvyšuje výsledek
    • Hodnota SHAP < 0 → snižuje výsledek

Stejný beeswarm graf zvýrazňující, že vysoké hodnoty příznaku 'smoker' mají kladné hodnoty SHAP.

Explainable AI v Pythonu

Beeswarm graf

  • Zobrazuje distribuci hodnot SHAP
  • Zvýrazňuje směr a velikost vlivu každého příznaku na predikci
    • Červená barva → vysoká hodnota příznaku
    • Modrá barva → nízká hodnota příznaku
    • Hodnota SHAP > 0 → zvyšuje výsledek
    • Hodnota SHAP < 0 → snižuje výsledek
shap.summary_plot(shap_values, X, 
                  plot_type="dot")

Stejný beeswarm graf zvýrazňující, že nízké hodnoty příznaku 'smoker' mají záporné hodnoty SHAP.

Explainable AI v Pythonu

Graf částečné závislosti

  • Zobrazuje vztah mezi příznakem a predikovaným výsledkem
  • Ukazuje vliv příznaku v celém jeho rozsahu
  • Ověřuje, zda je vztah očekávaný

Obecný graf částečné závislosti zobrazující vztah mezi příznakem a výsledkem jako klesající funkci.

Explainable AI v Pythonu

Graf částečné závislosti

  • Pro každý vzorek:
    • Mění hodnotu vybraného příznaku
    • Ostatní příznaky jsou konstantní
    • Predikuje výsledek
  • Průměruje výsledky všech vzorků
shap.partial_dependence_plot("age", 
                             model.predict, 
                             X)

Graf částečné závislosti pro příznak věku zobrazující, že s rostoucím věkem roste predikovaná hodnota.

Explainable AI v Pythonu

Graf částečné závislosti

  • Pro každý vzorek:

    • Mění hodnotu vybraného příznaku
    • Ostatní příznaky jsou konstantní
    • Predikuje výsledek
  • Průměruje výsledky všech vzorků

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

Stejný graf částečné závislosti zvýrazňující distribuci hodnot věku v datové sadě.

Explainable AI v Pythonu

Pojďme si procvičit!

Explainable AI v Pythonu

Preparing Video For Download...