Lær AI med Python · leksjon

SHAP-verdier for forklaring av modeller

shap.Explainer, TreeExplainer, kraftdiagrammer, beeswarm-diagrammer og rangering av egenskapers betydning.

Leksjon 2 av 413 trinn

SHAP-verdier for forklaring av modeller er en gratis leksjon i Lær AI med Python på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Lær AI med Python, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.

Hvorfor forklarbarhet er viktig

Komplekse modeller er nøyaktige, men ugjennomsiktige. Forklarbarhet svarer på spørsmålet «Hvorfor ga modellen denne prediksjonen?», noe som er avgjørende for tillit, feilsøking og overholdelse av regelverk. SHAP er en av de mest brukte metodene for forklaring.

Hva SHAP måler

SHAP (SHapley Additive exPlanations) tildeler hver egenskap et bidrag til én enkelt prediksjon. Verdiene er basert på Shapley-verdier fra kooperativ spillteori: Hver egenskap er en «spiller», og SHAP-verdien er dens rettferdige andel av prediksjonen sammenlignet med en baseline.

Additivitet

SHAP-verdier er additive: Baselineverdien (modellens gjennomsnittlige resultat) pluss summen av alle SHAP-verdiene for egenskapene er lik den faktiske prediksjonen. Dette gjør hver forklaring til en komplett og etterprøvbar redegjørelse for resultatet.

# prediction = base_value + sum(shap_values_for_each_feature)

TreeExplainer

For tremodeller (XGBoost, LightGBM, random forests) beregner shap.TreeExplainer eksakte SHAP-verdier raskt ved å utnytte trestrukturen.

import shap
import xgboost

model = xgboost.XGBClassifier().fit(X_train, y_train)
explainer = shap.TreeExplainer(model)

Beregne shap_values

explainer.shap_values(X_test) returnerer en matrise: én SHAP-verdi per egenskap per rad. Dette er de rå bidragene du skal visualisere.

shap_values = explainer.shap_values(X_test)
print(shap_values.shape)  # (n_samples, n_features)

summary_plot som beeswarm

shap.summary_plot lager et beeswarm-diagram: Hvert punkt er ett utvalg for én egenskap. Plasseringen viser SHAP-verdien (påvirkningens retning og størrelse), mens fargen viser egenskapsverdien. Egenskapene rangeres etter samlet viktighet.

shap.summary_plot(shap_values, X_test)

Tolke beeswarm-diagrammet

Slik tolker du et beeswarm-diagram:

  • Egenskapene øverst er viktigst globalt
  • Punkter langt til høyre trekker prediksjonen opp, mens punkter langt til venstre trekker den ned
  • Fargen viser retningen. Hvis høye egenskapsverdier (røde) ligger til høyre, betyr det for eksempel at «høy verdi øker prediksjonen»

Forklare én prediksjon

SHAP er særlig nyttig på individnivå. For å forklare én enkelt rad trenger du SHAP-verdiene og modellens basisverdi.

idx = 0
base = explainer.expected_value
row_shap = shap_values[idx]

force_plot

shap.force_plot viser én prediksjon som krefter som trekker fra basisverdien: Røde egenskaper trekker resultatet opp, mens blå egenskaper trekker det ned. Nettovirkningen ender på den endelige prediksjonen.

shap.force_plot(
    explainer.expected_value,
    shap_values[0],
    X_test.iloc[0],
)

waterfall_plot

shap.waterfall_plot er den mest lettleste visningen av én enkelt prediksjon. Den starter ved basisverdien og legger sammen hvert egenskapsbidrag trinn for trinn til den når det endelige resultatet, sortert etter størrelse.

shap.waterfall_plot(
    shap.Explanation(
        values=shap_values[0],
        base_values=explainer.expected_value,
        data=X_test.iloc[0],
    )
)

Globalt versus lokalt

SHAP dekker to behov:

  • Globalt: summary_plot viser hvilke egenskaper som påvirker modellen totalt sett
  • Lokalt: force_plot og waterfall_plot forklarer én bestemt prediksjon

Begge bygger på de samme SHAP-verdiene, noe som gir en konsistent forklaring på tvers av skalaer.

Kort test

Test kunnskapen din om SHAP.

Oppsummering

Du har lært om modellforklarbarhet med SHAP:

  • shap.TreeExplainer(model) beregner eksakte verdier for tremodeller
  • explainer.shap_values(X_test) returnerer bidrag per egenskap
  • Beeswarm-diagrammet summary_plot viser global viktighet
  • force_plot og waterfall_plot forklarer én enkelt prediksjon
  • SHAP-verdier er additive: basisverdi + bidrag = prediksjon
Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
53
Leksjoner
225

Ofte stilte spørsmål

Er leksjonen «SHAP-verdier for forklaring av modeller» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lær AI med Python, inkludert «SHAP-verdier for forklaring av modeller», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.

Hva lærer jeg i «SHAP-verdier for forklaring av modeller»?

shap.Explainer, TreeExplainer, kraftdiagrammer, beeswarm-diagrammer og rangering av egenskapers betydning. Du øver på Lær AI med Python med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Lær AI med Python?

Ingen tidligere erfaring er nødvendig. Lær AI med Python på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «SHAP-verdier for forklaring av modeller»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Lær AI med Python-leksjonen?

Ja. Alle Lær AI med Python-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Deteksjon av skjevhet i ML-modeller
  2. SHAP-verdier for forklaring av modeller
  3. LIME: Lokale tolkbare forklaringer
  4. Etikk og styringsrammeverk for KI
← Tilbake til Lær AI med Python