Visualizar la explicabilidad con SHAP

IA explicable en Python

Fouad Trad

Machine Learning Engineer

Conjunto de datos

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 para predecir charges

import shap
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X)
IA explicable en Python

Gráfico de importancia de features

  • Muestra la contribución de cada feature al output del modelo
shap.summary_plot(shap_values, X, plot_type="bar")

Gráfico de importancia de features que muestra que el estado de fumador es la feature más importante.

IA explicable en Python

Gráfico beeswarm

  • Muestra la distribución de valores SHAP
  • Destaca dirección y magnitud de cada feature en la predicción
    • Rojo → valor de feature alto
    • Azul → valor de feature bajo
    • SHAP > 0 → aumenta el resultado
    • SHAP < 0 → reduce el resultado

Gráfico beeswarm que muestra la distribución de valores SHAP por feature, con colores que indican los valores de la feature.

IA explicable en Python

Gráfico beeswarm

  • Muestra la distribución de valores SHAP
  • Destaca dirección y magnitud de cada feature en la predicción
    • Rojo → valor de feature alto
    • Azul → valor de feature bajo
    • SHAP > 0 → aumenta el resultado
    • SHAP < 0 → reduce el resultado

Mismo beeswarm plot resaltando que los valores altos de la feature 'smoker' tienen valores SHAP positivos.

IA explicable en Python

Gráfico beeswarm

  • Muestra la distribución de valores SHAP
  • Destaca dirección y magnitud de cada feature en la predicción
    • Rojo → valor de feature alto
    • Azul → valor de feature bajo
    • SHAP > 0 → aumenta el resultado
    • SHAP < 0 → reduce el resultado
shap.summary_plot(shap_values, X, 
                  plot_type="dot")

Mismo beeswarm plot resaltando que los valores bajos de la feature 'smoker' tienen valores SHAP negativos.

IA explicable en Python

Gráfico de dependencia parcial

  • Muestra la relación entre feature y resultado predicho
  • Muestra el impacto de la feature en todo su rango
  • Verifica si la relación es la esperada

Un gráfico de dependencia parcial genérico que muestra la relación entre una feature y un resultado como una función decreciente.

IA explicable en Python

Gráfico de dependencia parcial

  • Para cada muestra:
    • Variar el valor de la feature elegida
    • Mantener las demás constantes
    • Predecir el resultado
  • Promediar los resultados de todas las muestras
shap.partial_dependence_plot("age", 
                             model.predict, 
                             X)

Gráfico de dependencia parcial para la feature age que muestra que, al aumentar age, aumenta el valor predicho.

IA explicable en Python

Gráfico de dependencia parcial

  • Para cada muestra:

    • Variar el valor de la feature elegida
    • Mantener las demás constantes
    • Predecir el resultado
  • Promediar los resultados de todas las muestras

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

Mismo gráfico de dependencia parcial resaltando la distribución de los valores de age en el conjunto de datos.

IA explicable en Python

¡Vamos a practicar!

IA explicable en Python

Preparing Video For Download...