04 · Ocena · 4 min czytania · Interaktywne · aktualizacja
Jak działa permutation importance i dlaczego jest lepsze od wbudowanej ważności cech w lesie losowym?
W skrócie
Ważność permutacyjna mierzy, o ile pogarsza się wynik modelu, gdy losowo przetasujemy wartości jednej cechy. Działa dla każdego modelu i na danych testowych.
Co to jest
Ważność permutacyjna (permutation feature importance) to miara znaczenia cechy dla wytrenowanego modelu: przetasowujemy losowo wartości tej jednej cechy w zbiorze danych, ponownie liczymy wynik modelu i sprawdzamy, o ile się pogorszył. Duży spadek oznacza, że model mocno polega na tej cesze; brak spadku — że mógłby się bez niej obejść. Metodę zaproponował Breiman dla lasów losowych, ale działa z dowolnym modelem i dowolną metryką.
Intuicja: tasowanie kolumny zachowuje jej rozkład (te same wartości, ta sama średnia), ale niszczy jej związek z celem i z pozostałymi cechami. To jak podmiana odpowiedzi na jedno pytanie w ankiecie na odpowiedź losowej innej osoby. Jeśli przewidywania się sypią, to pytanie było ważne.
Mechanizm — dlaczego tak działa
Procedura jest prosta: (1) policz wynik bazowy modelu na zbiorze oceny; (2) dla każdej cechy j przetasuj kolumnę j, policz wynik, wróć do oryginału; (3) ważność = wynik bazowy − wynik po przetasowaniu; (4) powtórz tasowanie kilka–kilkadziesiąt razy i uśrednij. Model nie jest trenowany ponownie, więc metoda jest tania i agnostyczna — wymaga tylko funkcji predict.
Dlaczego jest lepsza od wbudowanej ważności drzew (MDI, mean decrease in impurity)? MDI liczy, ile każdy podział na danej cesze zmniejszył nieczystość węzłów w danych treningowych. Ma dwie znane wady. Po pierwsze, faworyzuje cechy ciągłe i o wielu unikalnych wartościach, bo dają one więcej możliwych punktów podziału — także czysto przypadkowych. Po drugie, mierzy to, czego model użył do dopasowania treningu, a nie to, co pomaga przewidywać nowe dane. Ważność permutacyjna policzona na zbiorze testowym mierzy właśnie to drugie: cechy wykorzystane tylko do zapamiętania szumu dostają wynik bliski zeru.
Zastrzeżenia są poważne. Cechy skorelowane dzielą się ważnością: gdy przetasujemy jedną, model korzysta z drugiej, która niesie podobną informację, więc obie wyglądają na mniej ważne, niż są razem. Ponadto tasowanie tworzy nierealistyczne kombinacje (np. trzylatek z wysokim dochodem), a model musi przewidywać w obszarach, których nie widział, co może zawyżać ważność. Wreszcie ważność opisuje model, nie świat: mówi, na czym ten model polega, a nie, co jest przyczyną zjawiska. Inny równie dobry model może polegać na innych cechach.
Rozrzut z powtórzeń tasowania pokazuje tylko niepewność samego tasowania. Nie obejmuje niepewności wynikającej z tego, że zbiór testowy jest skończony. Przy kilkuset przykładach testowych różnice rzędu 0,01–0,02 w trafności mogą być szumem.
Na przykładzie
Zbiór Titanic (891 pasażerów), cechy: klasa, płeć, wiek (braki uzupełnione medianą), rodzeństwo/małżonkowie, rodzice/dzieci, opłata, plus jedna celowo dodana kolumna czystego szumu z rozkładu normalnego. Podział warstwowy 75/25 z random_state=0, las losowy z 300 drzew (trafność 100% na treningu, 82,1% na teście). Wbudowana ważność MDI uszeregowała cechy: płeć 0,257, opłata 0,208, szum 0,193, wiek 0,173, klasa 0,090. Kolumna losowych liczb zajęła trzecie miejsce, wyprzedzając klasę podróży — bo jako cecha ciągła daje mnóstwo podziałów, którymi głębokie drzewa dopasowują pojedynczych pasażerów.
Ważność permutacyjna na zbiorze testowym (30 tasowań, spadek trafności): płeć 0,172, wiek 0,067, klasa 0,065, opłata 0,044, rodzeństwo 0,018, szum 0,016 ± 0,009, rodzice/dzieci 0,005. Szum spadł na koniec stawki, choć w tym podziale jego wynik jest przypadkowo dodatni. Gdy powtórzyłem eksperyment dla 10 różnych losowań szumu, jego ważność permutacyjna wahała się od −0,015 do +0,016 (średnio −0,002), a MDI za każdym razem wynosiła 0,19–0,20. Ta sama metoda policzona na zbiorze treningowym dała szumowi 0,093 — model naprawdę się na nim opierał, ale tylko po to, by zapamiętać trening.
Dane: Titanic
W praktyce
permutation_importance(model, X_test, y_test, n_repeats=30, random_state=0, scoring=...)zsklearn.inspection; wynik ma polaimportances_meaniimportances_std.- Licz na zbiorze testowym lub walidacyjnym. Porównanie z wynikiem na treningu pokazuje cechy używane do przeuczenia.
- Dodaj kolumnę losowego szumu jako próg odniesienia: cechy nie lepsze od szumu nie wnoszą informacji dla tego modelu.
- Przy silnie skorelowanych cechach grupuj je (np. klasteryzacja hierarchiczna korelacji Spearmana) i tasuj grupy razem albo zostaw jednego reprezentanta.
- Dla
Pipelinepodawaj suroweX— tasowane są wtedy oryginalne kolumny, a nie cechy po kodowaniu. - Typowy błąd: interpretowanie ważności jako wpływu przyczynowego albo jako kierunku działania cechy — do kierunku służą wykresy zależności częściowej lub wartości SHAP.
Najczęstsze pytania
- Czy ważność permutacyjna może być ujemna?
- Tak. Oznacza, że model wypadł lepiej po przetasowaniu cechy — zwykle przez przypadek, gdy cecha jest dla modelu nieistotna. Ujemne wartości bliskie zeru traktuj jak zero; duże ujemne wartości sugerują, że cecha szkodzi uogólnianiu.
- Czym ważność permutacyjna różni się od usuwania cechy i ponownego trenowania?
- Usunięcie i ponowny trening (drop-column importance) mierzy, ile informacji wnosi cecha, gdy model może się do jej braku dostosować. Jest dokładniejsze przy skorelowanych cechach, ale wymaga tylu treningów, ile cech. Permutacja opisuje konkretny, już wytrenowany model.
- Na zbiorze treningowym czy testowym?
- Na testowym, jeśli pytasz, co pomaga przewidywać nowe dane. Na treningowym, jeśli chcesz zobaczyć, na czym model się oparł podczas uczenia. Duża różnica między nimi to diagnoza przeuczenia na konkretnej cesze.
Źródła
- Breiman L. (2001). Random Forests. Machine Learning, 45(1).
- Strobl C., Boulesteix A.-L., Zeileis A., Hothorn T. (2007). Bias in random forest variable importance measures: Illustrations, sources and a solution. BMC Bioinformatics, 8.
- Fisher A., Rudin C., Dominici F. (2019). All Models are Wrong, but Many are Useful: Learning a Variable’s Importance by Studying an Entire Class of Prediction Models Simultaneously. Journal of Machine Learning Research, 20.
- Molnar C. „Interpretable Machine Learning”, rozdz. Permutation Feature Importance — https://christophm.github.io/interpretable-ml-book/
- Dokumentacja scikit-learn: Permutation feature importance — https://scikit-learn.org/stable/modules/permutation_importance.html