Vizualizarea explicabilității SHAP

AI Explicabil în Python

Fouad Trad

Machine Learning Engineer

Setul de date

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 de tip random forest pentru predicția costurilor

import shap
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X)
AI Explicabil în Python

Grafic de importanță a caracteristicilor

  • Afișează contribuția fiecărei caracteristici la ieșirea modelului
shap.summary_plot(shap_values, X, plot_type="bar")

Grafic de importanță a caracteristicilor arătând că statutul de fumător este cea mai importantă caracteristică.

AI Explicabil în Python

Grafic beeswarm

  • Afișează distribuția valorilor SHAP
  • Evidențiază direcția și magnitudinea fiecărei caracteristici asupra predicției
    • Culoarea roșie → valoare ridicată a caracteristicii
    • Culoarea albastră → valoare scăzută a caracteristicii
    • Valoare SHAP > 0 → crește rezultatul
    • Valoare SHAP < 0 → scade rezultatul

Grafic beeswarm afișând distribuția valorilor SHAP pentru fiecare caracteristică, cu culori indicând valorile caracteristicilor.

AI Explicabil în Python

Grafic beeswarm

  • Afișează distribuția valorilor SHAP
  • Evidențiază direcția și magnitudinea fiecărei caracteristici asupra predicției
    • Culoarea roșie → valoare ridicată a caracteristicii
    • Culoarea albastră → valoare scăzută a caracteristicii
    • Valoare SHAP > 0 → crește rezultatul
    • Valoare SHAP < 0 → scade rezultatul

Același grafic beeswarm evidențiind că valorile ridicate ale caracteristicii „smoker" au valori SHAP pozitive.

AI Explicabil în Python

Grafic beeswarm

  • Afișează distribuția valorilor SHAP
  • Evidențiază direcția și magnitudinea fiecărei caracteristici asupra predicției
    • Culoarea roșie → valoare ridicată a caracteristicii
    • Culoarea albastră → valoare scăzută a caracteristicii
    • Valoare SHAP > 0 → crește rezultatul
    • Valoare SHAP < 0 → scade rezultatul
shap.summary_plot(shap_values, X, 
                  plot_type="dot")

Același grafic beeswarm evidențiind că valorile scăzute ale caracteristicii „smoker" au valori SHAP negative.

AI Explicabil în Python

Grafic de dependență parțială

  • Afișează relația dintre caracteristică și rezultatul prezis
  • Arată impactul caracteristicii pe tot intervalul său
  • Verifică dacă relația este cea așteptată

Un grafic de dependență parțială generic care arată relația dintre o caracteristică și un rezultat ca funcție descrescătoare.

AI Explicabil în Python

Grafic de dependență parțială

  • Pentru fiecare eșantion:
    • Variază valoarea caracteristicii selectate
    • Menține celelalte caracteristici constante
    • Prezice rezultatul
  • Calculează media rezultatelor tuturor eșantioanelor
shap.partial_dependence_plot("age", 
                             model.predict, 
                             X)

Grafic de dependență parțială pentru caracteristica vârstă, arătând că odată cu creșterea vârstei, valoarea prezisă crește.

AI Explicabil în Python

Grafic de dependență parțială

  • Pentru fiecare eșantion:

    • Variază valoarea caracteristicii selectate
    • Menține celelalte caracteristici constante
    • Prezice rezultatul
  • Calculează media rezultatelor tuturor eșantioanelor

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

Același grafic de dependență parțială evidențiind distribuția valorilor vârstei din setul de date.

AI Explicabil în Python

Să exersăm!

AI Explicabil în Python

Preparing Video For Download...