Visualisering av SHAP-förklarbarhet

Förklarbar AI i Python

Fouad Trad

Machine Learning Engineer

Datamängd

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 för att förutsäga kostnader

import shap
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X)
Förklarbar AI i Python

Diagram över särdragets betydelse

  • Visar varje särdrag's bidrag till modellens utdata
shap.summary_plot(shap_values, X, plot_type="bar")

Diagram över särdragets betydelse som visar att rökningsstatus är det viktigaste särdragen.

Förklarbar AI i Python

Beeswarm-diagram

  • Visar fördelningen av SHAP-värden
  • Belyser riktning och storlek hos varje särdrag på förutsägelsen
    • Röd färg → högt särdragsvärde
    • Blå färg → lågt särdragsvärde
    • SHAP-värde > 0 → ökar utfallet
    • SHAP-värde < 0 → minskar utfallet

Beeswarm-diagram som visar fördelningen av SHAP-värden för varje särdrag, med färger som indikerar särdragsvärden.

Förklarbar AI i Python

Beeswarm-diagram

  • Visar fördelningen av SHAP-värden
  • Belyser riktning och storlek hos varje särdrag på förutsägelsen
    • Röd färg → högt särdragsvärde
    • Blå färg → lågt särdragsvärde
    • SHAP-värde > 0 → ökar utfallet
    • SHAP-värde < 0 → minskar utfallet

Samma beeswarm-diagram som belyser att höga särdragsvärden för 'smoker'-särdragen har positiva SHAP-värden.

Förklarbar AI i Python

Beeswarm-diagram

  • Visar fördelningen av SHAP-värden
  • Belyser riktning och storlek hos varje särdrag på förutsägelsen
    • Röd färg → högt särdragsvärde
    • Blå färg → lågt särdragsvärde
    • SHAP-värde > 0 → ökar utfallet
    • SHAP-värde < 0 → minskar utfallet
shap.summary_plot(shap_values, X, 
                  plot_type="dot")

Samma beeswarm-diagram som belyser att låga särdragsvärden för 'smoker'-särdragen har negativa SHAP-värden.

Förklarbar AI i Python

Partiellt beroendediagram

  • Visar sambandet mellan särdrag och förutsagt utfall
  • Visar särdragets påverkan över hela sitt värdeintervall
  • Kontrollerar om sambandet stämmer med förväntningarna

Ett generiskt partiellt beroendeplot som visar sambandet mellan ett särdrag och ett utfall som en avtagande funktion.

Förklarbar AI i Python

Partiellt beroendediagram

  • För varje sampel:
    • Variera värdet för det valda särdragen
    • Håll övriga särdrag konstanta
    • Förutsäg utfallet
  • Beräkna medelvärdet av alla sampels resultat
shap.partial_dependence_plot("age", 
                             model.predict, 
                             X)

Partiellt beroendediagram för särdragen ålder som visar att det förutsagda värdet ökar när åldern ökar.

Förklarbar AI i Python

Partiellt beroendediagram

  • För varje sampel:

    • Variera värdet för det valda särdragen
    • Håll övriga särdrag konstanta
    • Förutsäg utfallet
  • Beräkna medelvärdet av alla sampels resultat

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

Samma partiella beroendediagram som belyser fördelningen av åldersvärdena i datamängden.

Förklarbar AI i Python

Nu kör vi en övning!

Förklarbar AI i Python

Preparing Video For Download...