04 · Ocena · 6 min czytania · aktualizacja
LIME — jak lokalnie wyjaśnić pojedynczą prognozę modelu?
W skrócie
LIME dopasowuje prosty model liniowy wokół jednego przykładu. Dla guza z Breast Cancer ze 100 próbkami 20 ziaren dało 5 różnych zestawów cech, z 5000 — jeden.
Co to jest
LIME (Local Interpretable Model-agnostic Explanations) to metoda wyjaśniania pojedynczej prognozy dowolnego modelu. Zaproponowali ją Ribeiro, Singh i Guestrin w 2016 roku. Pomysł jest prosty: model jako całość może być bardzo złożony, ale w małym otoczeniu jednego przykładu daje się go przybliżyć czymś prostym, najczęściej modelem liniowym z kilkoma cechami. Współczynniki tego prostego modelu są wyjaśnieniem.
Intuicja: krzywa linia brzegu oglądana z bliska wygląda jak odcinek prosty. LIME nie próbuje opisać całego wybrzeża, tylko ten kawałek, przy którym stoi wyjaśniany przypadek. Metoda nie zagląda do wnętrza modelu — potrzebuje tylko możliwości pytania go o prognozy, więc działa tak samo dla lasu losowego, boostingu czy sieci neuronowej.
Mechanizm — dlaczego tak działa
Algorytm ma cztery kroki. Najpierw tworzy wiele sztucznych przykładów wokół wyjaśnianego punktu x, zaburzając jego cechy. Potem pyta model o prognozę dla każdego z nich. Następnie waży te przykłady jądrem bliskości: im dalej od x, tym mniejsza waga, zwykle w = exp(−d² / σ²), gdzie d to odległość, a σ to szerokość jądra. Na koniec dopasowuje ważoną regresję liniową (często grzbietową) na niewielkiej liczbie cech wybranych spośród wszystkich. W pracy oryginalnej jest to kompromis dwóch celów: wierność modelowi w otoczeniu x i prostota wyjaśnienia.
Każdy z tych kroków wymaga decyzji, której metoda sama nie podejmuje: jak zaburzać cechy, jak mierzyć odległość, jak szerokie ma być jądro, ile cech pokazać i ile przykładów wylosować. Od tych decyzji zależy wynik.
Gdzie to się psuje. Po pierwsze, „otoczenie” jest umowne. Zbyt wąskie jądro zostawia prawie całą wagę na samym punkcie x i regresja nie ma z czego się uczyć, zbyt szerokie zamienia wyjaśnienie lokalne w globalne. Po drugie, wynik jest losowy: inne ziarno losowania daje inne próbki, a przy małej ich liczbie — inne cechy w wyjaśnieniu. Po trzecie, zaburzanie cech niezależnie od siebie tworzy przykłady niemożliwe w rzeczywistości, np. guz o dużym promieniu i małym obwodzie albo ujemnym polu. Model jest pytany tam, gdzie nigdy nie widział danych. Po czwarte, przy silnie skorelowanych cechach wybór „najważniejszej” z grupy bywa przypadkowy. Wreszcie współczynnik LIME to lokalne nachylenie — mówi, jak prognoza zmieniłaby się przy zmianie cechy, a nie ile ta cecha wniosła do obecnej prognozy w porównaniu z typowym przypadkiem.
Na przykładzie
Las losowy rozpoznaje złośliwe guzy piersi w zbiorze Breast Cancer Wisconsin (569 przypadków, 30 cech) i na zbiorze testowym trafia w 94,4%. Wyjaśniamy pierwszy przypadek testowy, dla którego model się waha: daje mu 0,627 prawdopodobieństwa złośliwości, a guz w rzeczywistości jest łagodny. Model się więc myli i chcemy wiedzieć dlaczego.
LIME z 5000 próbkami wskazuje pięć cech: najgorsze pole (+0,055 na jedno odchylenie standardowe), najgorszy obwód (+0,054), najgorsze punkty wklęsłe (+0,053), najgorszy promień (+0,052) i średnie punkty wklęsłe (+0,041). „Najgorsze” to średnia z trzech największych wartości w obrazie. Wszystkie nachylenia są dodatnie: większy guz i więcej wklęsłości to w otoczeniu tego przypadku wyższe ryzyko. Prosty model wyjaśnia 62% ważonej zmienności prognoz, więc przybliżenie jest dalekie od idealnego.
Stabilność zależy od liczby próbek. Przy 100 próbkach 20 różnych ziaren dało 5 różnych zestawów pięciu cech, a współczynnik pola wahał się od 0,036 do 0,071. Przy 500 próbkach zestaw był zawsze ten sam, ale na pierwszym miejscu stało pole (8 razy), obwód (7) albo promień (5). Te trzy cechy są ze sobą skorelowane na co najmniej 0,94, więc LIME nie ma jak rozstrzygnąć, która z nich „naprawdę” działa. Dopiero przy 5000 próbkach pole wygrało w 19 z 20 losowań.
Jeszcze silniej działa szerokość jądra. Zaburzone punkty leżą zwykle od x w odległości 4,3–6,6 odchylenia standardowego (to typowe w 30 wymiarach). Przy σ = 1,37 niemal całą wagę ma sam punkt x: efektywna liczba próbek spada do 1,2, dopasowanie wyjaśnia 3,5% zmienności, a współczynniki są bliskie zera. Przy σ = 2 zmienia się kolejność cech (obwód przed polem), a przy σ = 16,4 wyjaśnienie jest prawie takie samo jak przy 4,11 — jądro przestało być lokalne.
Prosty widok okluzji odpowiada na inne pytanie. Gdy pojedynczą cechę zastąpimy średnią ze zbioru treningowego, prognoza spada najbardziej po „uśrednieniu” najgorszych punktów wklęsłych (o 0,18) i średnich punktów wklęsłych (o 0,12), a po uśrednieniu najgorszego pola rośnie o 0,11. Pole tego guza jest bowiem nieco poniżej średniej, więc ciągnie prognozę ku łagodności, choć jego lokalne nachylenie jest dodatnie. Uśrednienie po wszystkich wartościach treningowych daje podobny obraz: na czele średnie i najgorsze punkty wklęsłe (0,149 i 0,108). LIME mówi więc „model jest tu wrażliwy na wielkość guza”, a okluzja — „to wklęsłości przesunęły ten przypadek w stronę złośliwości”.
Jak to policzono
- Dane:
load_breast_cancer(569 przypadków: 212 złośliwych, 357 łagodnych; 30 cech);train_test_split(test_size=0.25, stratify=y, random_state=0)→ 426 treningowych, 143 testowe; scikit-learn 1.9.1, NumPy 2.5.3. - Model:
RandomForestClassifier(n_estimators=300, random_state=0), trafność testowa 94,4%. Wyjaśniane wyjście: prawdopodobieństwo klasy „złośliwy”. - Przypadek: pierwszy przypadek testowy (indeks 13 w zbiorze testowym) z prognozą między 0,3 a 0,7; prognoza 0,627, prawdziwa klasa łagodna.
- LIME napisany w NumPy: próbki x + ε · s, gdzie ε ~ N(0, 1) z
np.random.default_rng(ziarno), s to odchylenia standardowe cech w zbiorze treningowym; pierwsza próbka to sam x. Odległość euklidesowa w jednostkach s, jądro exp(−d² / σ²), domyślnie σ = 0,75 · √30 = 4,11.Ridge(alpha=1)z wagami na wszystkich 30 cechach, wybór 5 o największym |współczynniku|, ponowneRidge(alpha=1)na tych 5; R² ważony. - Wynik (5000 próbek, ziarno 0): pole +0,0549, obwód +0,0543, punkty wklęsłe (najgorsze) +0,0527, promień +0,0522, punkty wklęsłe (średnie) +0,0409; wyraz wolny 0,550; ważony R² 0,619; efektywna liczba próbek (Σw)² / Σw² = 4220.
- Stabilność, ziarna 0–19: 100 próbek — 5 różnych zestawów (najczęstszy 15 razy), średni indeks Jaccarda par 0,85, współczynnik pola 0,036–0,071; 500 próbek — 1 zestaw, pierwsza cecha: pole 8, obwód 7, promień 5; 5000 próbek — 1 zestaw, pole pierwsze 19 razy, współczynnik 0,054–0,058.
- Szerokość jądra (5000 próbek, ziarno 0): σ = 1,37 — R² 0,035, efektywna liczba próbek 1,2; σ = 2 — R² 0,596, 125,5; σ = 16,4 — R² 0,615, 4996. Odległości próbek od x: kwantyle 5%, 50%, 95% = 4,3; 5,4; 6,6. W 51% próbek co najmniej jedna cecha jest ujemna.
- Korelacje Pearsona między średnim i najgorszym promieniem, obwodem i polem (zbiór treningowy): najmniejsza 0,944.
- Okluzja: cecha zastąpiona średnią treningową, zmiana = f(x) − f(x z podmianą): najgorsze punkty wklęsłe +0,18, średnie punkty wklęsłe +0,12, najgorsze pole −0,11. Podmiana na każdą z 426 wartości treningowych i uśrednienie: średnie punkty wklęsłe +0,149, najgorsze punkty wklęsłe +0,108, średnia wklęsłość +0,063, najgorszy obwód +0,053, najgorsza wklęsłość +0,037, najgorsze pole −0,031.
Dane: Breast Cancer Wisconsin (diagnostyka raka piersi)
W praktyce
- Gotowe implementacje (np. pakiet
limeautorów metody) mają własne domyślne sposoby zaburzania i ważenia; sprawdź je, zanim porównasz wyniki z innym narzędziem albo z liczbami z tego hasła. - Zawsze podawaj liczbę próbek, szerokość jądra i ziarno. Uruchom wyjaśnienie dla kilku ziaren: jeśli lista cech się zmienia, nie pokazuj jej jako pewnej.
- Patrz na jakość lokalnego dopasowania (ważone R²). Niskie R² znaczy, że prosty model słabo naśladuje złożony w tym miejscu.
- Skorelowane cechy grupuj albo pokazuj razem: przy korelacji powyżej 0,9 kolejność w grupie jest w dużej mierze przypadkowa.
- Do globalnego obrazu modelu lepiej nadaje się ważność permutacyjna albo zależność częściowa; LIME jest narzędziem do jednego przypadku.
- Dla tekstu i obrazów LIME zaburza słowa lub fragmenty obrazu (superpiksele), co bywa bardziej naturalne niż losowanie wartości cech liczbowych.
Najczęstsze pytania
- Czym LIME różni się od SHAP?
- SHAP dzieli prognozę na wkłady cech, które sumują się dokładnie do różnicy między prognozą a średnią, i ma uzasadnienie aksjomatyczne. LIME dopasowuje lokalny model zastępczy, którego współczynniki nie muszą się sumować do niczego i zależą od jądra. KernelSHAP to w istocie LIME ze szczególnie dobranym jądrem (jądro Shapleya), kwadratową funkcją straty i bez regularyzacji, liczony na binarnej reprezentacji „cecha obecna / zastąpiona”.
- Czy wyjaśnienie LIME pokazuje przyczyny?
- Nie. Opisuje zachowanie modelu w pobliżu jednego punktu. Jeśli model nauczył się fałszywego skrótu, LIME ten skrót pokaże — i do tego bywa najbardziej przydatny — ale nie powie nic o tym, co naprawdę powoduje chorobę.
- Dlaczego dwa uruchomienia dają różne wyjaśnienia?
- Bo próbki są losowe. Przy małej liczbie próbek i skorelowanych cechach regresja na każdym zestawie próbek może wybrać inną cechę z grupy. Pomaga zwiększenie liczby próbek, ustalenie ziarna i raportowanie zmienności po kilku ziarnach.
- Jak wybrać szerokość jądra?
- Nie ma reguły, która zawsze działa. Sprawdź, w jakiej odległości od x leżą próbki, i dobierz σ tak, by efektywna liczba próbek była rzędu setek. Potem porównaj wyjaśnienia dla kilku szerokości; jeśli się różnią, napisz to wprost.
Źródła
- Ribeiro M. T., Singh S., Guestrin C. „»Why Should I Trust You?«: Explaining the Predictions of Any Classifier”, Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD 2016), s. 1135–1144. https://doi.org/10.1145/2939672.2939778 (arXiv:1602.04938)
- Lundberg S. M., Lee S.-I. „A Unified Approach to Interpreting Model Predictions”, Advances in Neural Information Processing Systems 30 (NIPS 2017).
- Wolberg W., Mangasarian O., Street N., Street W. „Breast Cancer Wisconsin (Diagnostic)”, UCI Machine Learning Repository, 1993. https://doi.org/10.24432/C5DW2B
- Dokumentacja scikit-learn,
load_breast_canceriRandomForestClassifier: https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_breast_cancer.html
Czy to było pomocne?
Dzięki! To pomaga nam poprawiać Atlas.