Wizualizacja wyjaśnialności SHAP

Wyjaśnialne AI w Pythonie

Fouad Trad

Machine Learning Engineer

Zbiór danych

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 losowego lasu do przewidywania kosztów

import shap
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X)
Wyjaśnialne AI w Pythonie

Wykres ważności cech

  • Pokazuje wkład każdej cechy w wynik modelu
shap.summary_plot(shap_values, X, plot_type="bar")

Wykres ważności cech pokazujący, że status palenia jest najważniejszą cechą.

Wyjaśnialne AI w Pythonie

Wykres beeswarm

  • Pokazuje rozkład wartości SHAP
  • Podkreśla kierunek i wielkość wpływu każdej cechy na predykcję
    • Kolor czerwony → wysoka wartość cechy
    • Kolor niebieski → niska wartość cechy
    • Wartość SHAP > 0 → zwiększa wynik
    • Wartość SHAP < 0 → zmniejsza wynik

Wykres beeswarm przedstawiający rozkład wartości SHAP dla każdej cechy; kolory wskazują wartości cech.

Wyjaśnialne AI w Pythonie

Wykres beeswarm

  • Pokazuje rozkład wartości SHAP
  • Podkreśla kierunek i wielkość wpływu każdej cechy na predykcję
    • Kolor czerwony → wysoka wartość cechy
    • Kolor niebieski → niska wartość cechy
    • Wartość SHAP > 0 → zwiększa wynik
    • Wartość SHAP < 0 → zmniejsza wynik

Ten sam wykres beeswarm pokazujący, że wysokie wartości cechy 'smoker' mają dodatnie wartości SHAP.

Wyjaśnialne AI w Pythonie

Wykres beeswarm

  • Pokazuje rozkład wartości SHAP
  • Podkreśla kierunek i wielkość wpływu każdej cechy na predykcję
    • Kolor czerwony → wysoka wartość cechy
    • Kolor niebieski → niska wartość cechy
    • Wartość SHAP > 0 → zwiększa wynik
    • Wartość SHAP < 0 → zmniejsza wynik
shap.summary_plot(shap_values, X, 
                  plot_type="dot")

Ten sam wykres beeswarm pokazujący, że niskie wartości cechy 'smoker' mają ujemne wartości SHAP.

Wyjaśnialne AI w Pythonie

Wykres częściowej zależności

  • Pokazuje zależność między cechą a przewidywanym wynikiem
  • Pokazuje wpływ cechy w całym jej zakresie
  • Weryfikuje, czy zależność jest zgodna z oczekiwaniami

Ogólny wykres częściowej zależności przedstawiający relację między cechą a wynikiem jako funkcję malejącą.

Wyjaśnialne AI w Pythonie

Wykres częściowej zależności

  • Dla każdej próbki:
    • Zmienia wartość wybranej cechy
    • Pozostałe cechy są stałe
    • Przewiduje wynik
  • Uśrednia wyniki ze wszystkich próbek
shap.partial_dependence_plot("age", 
                             model.predict, 
                             X)

Wykres częściowej zależności dla cechy age pokazujący, że wraz ze wzrostem wieku rośnie przewidywana wartość.

Wyjaśnialne AI w Pythonie

Wykres częściowej zależności

  • Dla każdej próbki:

    • Zmienia wartość wybranej cechy
    • Pozostałe cechy są stałe
    • Przewiduje wynik
  • Uśrednia wyniki ze wszystkich próbek

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

Ten sam wykres częściowej zależności pokazujący rozkład wartości cechy age w zbiorze danych.

Wyjaśnialne AI w Pythonie

Czas na ćwiczenia!

Wyjaśnialne AI w Pythonie

Preparing Video For Download...