Begreper & referanser
Alle nøkkelbegrepene, formlene og referansene fra Forklarbar maskinlæring, samlet på én side. Bruk denne som oppslag når du leser, øver flashcards eller tar quiz.
Begreper
Sentrale begreper fra kapittelet med korte definisjoner.
I hvilken grad et menneske kan forstå hvordan modellens input henger sammen med prediksjonene.
En forklaring som gjelder én bestemt prediksjon eller et lite område rundt den.
En oppsummering av modellens overordnede oppførsel på tvers av mange observasjoner.
En enklere modell som trenes til å etterligne en mer kompleks modell lokalt eller globalt.
En metode som tilpasser en enkel, lokalt vektet surrogatmodell rundt observasjonen som skal forklares.
En familie av metoder som fordeler forskjellen fra en baseline på features ved hjelp av Shapley-prinsipper.
Et gjennomsnittlig marginalbidrag som tar hensyn til alle mulige rekkefølger features kan inngå i.
Et tallfestet bidrag fra en feature til en bestemt prediksjon eller modellscore.
Formler
Hver formel: hva den heter, hvordan den ser ut, og hva symbolene betyr.
Shapley-verdi
Shapley-verdien er feature sitt gjennomsnittlige marginalbidrag over alle rekkefølger av features.
LIME-mål
LIME balanserer lokal likhet med originalmodellen mot enkelheten til forklaringsmodellen .
Additiv forklaringsmodell
En additiv forklaring deler prediksjonen i en baseline og ett bidrag per feature.
Kodesnutter
Kodesnutter fra kapittelet, vist literal.
En lokal, vektet lineær surrogatmodell
import numpy as np rng = np.random.default_rng(4172)x0 = np.array([0.4, -0.7])naboer = x0 + rng.normal(0, 0.55, size=(300, 2)) def svart_boks(X): score = 1.4 * X[:, 0] - 0.9 * X[:, 1] + 0.8 * X[:, 0] * X[:, 1] return 1 / (1 + np.exp(-score)) y = svart_boks(naboer)avstand2 = np.sum((naboer - x0) ** 2, axis=1)vekt = np.exp(-avstand2 / 0.45)A = np.column_stack([np.ones(len(naboer)), naboer])Aw = A * np.sqrt(vekt[:, None])yw = y * np.sqrt(vekt)koeffisienter = np.linalg.lstsq(Aw, yw, rcond=None)[0] print("lokal baseline og helninger:", np.round(koeffisienter, 3))print("svart boks ved x0:", round(svart_boks(x0[None, :])[0], 3))Nabopunkter nær observasjonen får størst vekt. Resultatet beskriver modellens lokale oppførsel rundt x0, ikke en global lov eller en årsakseffekt.
Eksakte Shapley-bidrag for tre features
import itertoolsimport mathimport numpy as np x = np.array([1.2, -0.6, 0.8])baseline = np.zeros(3) def modell(v): return 0.25 + 0.7 * v[0] - 0.4 * v[1] + 0.3 * v[0] * v[2] d = len(x)phi = np.zeros(d)for j in range(d): andre = [k for k in range(d) if k != j] for r in range(len(andre) + 1): for S in itertools.combinations(andre, r): v_uten = baseline.copy() v_med = baseline.copy() v_uten[list(S)] = x[list(S)] v_med[list(S)] = x[list(S)] v_med[j] = x[j] koalisjonsvekt = math.factorial(r) * math.factorial(d - r - 1) / math.factorial(d) phi[j] += koalisjonsvekt * (modell(v_med) - modell(v_uten)) print("baseline:", modell(baseline))print("bidrag:", np.round(phi, 3))print("sum:", round(modell(baseline) + phi.sum(), 3), "modell:", modell(x))Med bare tre features kan alle koalisjoner summeres eksplisitt. Additiviteten kontrolleres ved at baseline pluss bidrag blir lik modellverdien.
Læringsmål
Hva du skal kunne etter å ha lest kapittelet.
- 01Skille lokale og globale forklaringsspørsmål og velge riktig analysenivå
- 02Forklare hvordan en surrogatmodell og LIME etterligner en svart-boks lokalt
- 03Beregne en liten Shapley-fordeling og kontrollere additivitet mot baseline
- 04Tolke SHAP-bidrag på riktig outputskala og med eksplisitt bakgrunnsdata
- 05Vurdere fidelity, stabilitet og realistiske perturbasjoner i en forklaring
- 06Forklare hvorfor featureattribusjon ikke i seg selv viser årsak, korrekthet eller fairness