Visualizzare l’explainability con SHAP

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 per prevedere charges

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

Feature importance plot

  • Mostra il contributo di ogni feature all’output del modello
shap.summary_plot(shap_values, X, plot_type="bar")

Grafico di importanza delle feature che mostra che lo status di fumatore è la feature più importante.

Explainable AI in Python

Beeswarm plot

  • Mostra la distribuzione dei valori SHAP
  • Evidenzia direzione e entità dell’impatto di ogni feature sulla previsione
    • Rosso → valore alto della feature
    • Blu → valore basso della feature
    • Valore SHAP > 0 → aumenta l’output
    • Valore SHAP < 0 → diminuisce l’output

Beeswarm plot che mostra la distribuzione dei valori SHAP per ogni feature, con colori che indicano i valori delle feature.

Explainable AI in Python

Beeswarm plot

  • Mostra la distribuzione dei valori SHAP
  • Evidenzia direzione e entità dell’impatto di ogni feature sulla previsione
    • Rosso → valore alto della feature
    • Blu → valore basso della feature
    • Valore SHAP > 0 → aumenta l’output
    • Valore SHAP < 0 → diminuisce l’output

Stesso beeswarm plot che mostra che i valori alti della feature "smoker" hanno valori SHAP positivi.

Explainable AI in Python

Beeswarm plot

  • Mostra la distribuzione dei valori SHAP
  • Evidenzia direzione e entità dell’impatto di ogni feature sulla previsione
    • Rosso → valore alto della feature
    • Blu → valore basso della feature
    • Valore SHAP > 0 → aumenta l’output
    • Valore SHAP < 0 → diminuisce l’output
shap.summary_plot(shap_values, X, 
                  plot_type="dot")

Stesso beeswarm plot che mostra che i valori bassi della feature "smoker" hanno valori SHAP negativi.

Explainable AI in Python

Partial dependence plot

  • Mostra la relazione tra feature e output previsto
  • Mostra l’impatto della feature lungo il suo range
  • Verifica se la relazione è come atteso

Un generico partial dependence plot che mostra la relazione tra una feature e un output come funzione decrescente.

Explainable AI in Python

Partial dependence plot

  • Per ogni campione:
    • Varia il valore della feature selezionata
    • Tieni le altre feature costanti
    • Predici l’output
  • Media i risultati su tutti i campioni
shap.partial_dependence_plot("age", 
                             model.predict, 
                             X)

Partial dependence plot per la feature age che mostra che all’aumentare di age cresce il valore previsto.

Explainable AI in Python

Partial dependence plot

  • Per ogni campione:

    • Varia il valore della feature selezionata
    • Tieni le altre feature costanti
    • Predici l’output
  • Media i risultati su tutti i campioni

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

Stesso partial dependence plot che evidenzia la distribuzione dei valori di age nel dataset.

Explainable AI in Python

Ayo berlatih!

Explainable AI in Python

Preparing Video For Download...