04 · Ocena · 4 min czytania · Interaktywne · aktualizacja
Jak zmierzyć, która cecha ma największy wpływ na decyzję modelu?
W skrócie
Wpływ cechy mówi, o ile zmienia się odpowiedź modelu po zmianie jednej cechy. W modelu liniowym to waga po standaryzacji, w innych — permutacja lub SHAP.
Co to jest
Wpływ cechy (feature influence, ważność cechy) to miara tego, jak bardzo odpowiedź modelu zależy od danej cechy wejściowej. W modelu liniowym jest nim współczynnik przy cesze, porównywalny między cechami po ich standaryzacji.
W modelach nieliniowych — sieciach, drzewach, boostingu — wpływ trzeba oszacować: przez zmianę cechy i obserwację odpowiedzi (gradient, wykres zależności cząstkowej), przez losowe przestawianie kolumny (ważność permutacyjna) albo przez wartości SHAP. To podstawowe narzędzie interpretowalności modeli i wykrywania wycieków danych.
Mechanizm — dlaczego tak działa
W modelu liniowym odpowiedź to suma waga × cecha, więc wpływ cechy j na wynik (np. logit) to dokładnie w_j: zmiana cechy o jednostkę zmienia wynik o w_j niezależnie od pozostałych cech. Wagi można porównywać tylko po standaryzacji — inaczej waga 0,001 przy cesze mierzonej w tysiącach i waga 1 przy cesze w jednostkach znaczą to samo.
W sieci z warstwą ukrytą pojedyncza waga nie mówi nic: jej skutek przechodzi przez aktywacje i kolejne warstwy i zależy od wartości innych cech. Wpływ jest lokalny — mierzy się go w konkretnym punkcie jako różnicę odpowiedzi przy zmianie cechy albo gradient wyjścia po wejściu. Wykres zależności cząstkowej (PDP) uśrednia odpowiedź po pozostałych cechach dla kolejnych wartości cechy j. Średnia potrafi skłamać: gdy cecha działa w jedną stronę w jednej podgrupie, a w przeciwną w drugiej (interakcja), jej średni wpływ wychodzi bliski zera, choć model bez niej nie działa. Stąd krzywe dla pojedynczych przykładów (ICE) i interakcyjne wartości SHAP.
Ważność permutacyjna (Breiman 2001) nie zależy od modelu: losowo przestaw kolumnę j w zbiorze walidacyjnym i zmierz spadek metryki. Duży spadek oznacza, że model polegał na tej cesze. Pułapka: przy cechach skorelowanych przestawienie tworzy nierealne kombinacje, a ważność rozkłada się między skorelowane cechy przypadkowo.
Ważność „impurity” w drzewach (suma spadków nieczystości przy podziałach na danej cesze) liczy się na treningu i faworyzuje cechy ciągłe o wielu wartościach, bo mają więcej kandydatów na próg — także wtedy, gdy są czystym szumem.
SHAP (Lundberg i Lee 2017) rozdziela różnicę między odpowiedzią modelu a średnią odpowiedzią na wkłady cech według wartości Shapleya z teorii gier kooperacyjnych — jedynego podziału spełniającego aksjomaty efektywności, symetrii, zerowego wkładu cech nieużywanych i addytywności.
Zastrzeżenie: wpływ mierzy, czego model używa, a nie co jest przyczyną w świecie. Cecha może mieć duży wpływ, bo jest skrótem albo zastępuje przyczynę, której w danych nie ma.
Na przykładzie
Na zbiorze Titanic (891 pasażerów; cechy: klasa, płeć, wiek uzupełniony medianą, liczba rodzeństwa lub małżonków, rodziców lub dzieci, cena biletu) dodaliśmy kolumnę czystego szumu z rozkładu normalnego. Las losowy (300 drzew, random_state=0, podział 70/30) miał 100% na treningu i 83% na teście.
Wbudowana ważność feature_importances_ dała: płeć 0,25, cena biletu 0,22, szum 0,20, wiek 0,17, klasa 0,09 — losowa kolumna wylądowała na trzecim miejscu, przed klasą podróży. Ważność permutacyjna na teście (30 powtórzeń) uporządkowała to inaczej: przestawienie płci obniża trafność o 19,7 punktu, wieku o 7,1, klasy o 4,8, ceny biletu o 2,4, a szumu tylko o 1,6 ± 1,2. Regresja logistyczna na standaryzowanych cechach dała zgodny obraz: współczynniki −1,26 dla płci męskiej, −0,91 dla klasy, −0,51 dla wieku i praktycznie 0 dla szumu.
Dane: Titanic
W praktyce
- scikit-learn:
coef_poStandardScalerdla modeli liniowych;permutation_importance(model, X_val, y_val)dla dowolnego modelu;PartialDependenceDisplaydla PDP i ICE. - XGBoost/LightGBM:
feature_importances_typu „gain” jest obciążona w stronę cech ciągłych — preferuj SHAP (shap.TreeExplainer) lub permutację na walidacji. - Sieci: gradient wyjścia po wejściu (saliency), integrated gradients,
shap.DeepExplainer; zawsze na danych walidacyjnych. - Dodaj kontrolną kolumnę szumu: cecha mniej ważna od szumu prawdopodobnie nic nie wnosi.
- Cecha o podejrzanie dużym wpływie (identyfikator, data, numer wiersza) to sygnał wycieku danych, nie odkrycie.
Najczęstsze pytania
- Jak policzyć ważność cech w sieci neuronowej?
- Nie z wag — poza modelem liniowym nic nie mówią. Użyj ważności permutacyjnej na walidacji, gradientów wyjścia po wejściu w konkretnych punktach albo SHAP. Porównuj metody między sobą; zgodność zwiększa zaufanie.
- Czym różni się SHAP od feature importance w XGBoost?
- Ważność typu gain sumuje zyski podziałów po cechach na zbiorze treningowym — faworyzuje cechy ciągłe i nie pokazuje kierunku wpływu. SHAP rozdziela każdą predykcję na wkłady cech zgodnie z aksjomatami Shapleya, działa dla pojedynczych przykładów i pokazuje kierunek.
- Czy duża ważność cechy oznacza związek przyczynowy?
- Nie. Oznacza, że model używa tej cechy do przewidywania. Cecha może być skutkiem, pośrednikiem albo przypadkową korelacją w danych treningowych. Wnioski przyczynowe wymagają założeń lub eksperymentu.
Źródła
- Breiman, L. (2001). "Random forests". Machine Learning 45, 5–32 (ważność permutacyjna).
- Lundberg, S., Lee, S.-I. (2017). "A unified approach to interpreting model predictions". NeurIPS. arXiv:1705.07874
- Molnar, C. (2022). Interpretable Machine Learning, 2nd ed., rozdziały "Permutation feature importance" i "SHAP". https://christophm.github.io/interpretable-ml-book/
- Hastie, T., Tibshirani, R., Friedman, J. (2009). The Elements of Statistical Learning, 2nd ed., Springer, rozdz. 10.13 "Interpretation" (relative importance, partial dependence).
- scikit-learn: "Permutation feature importance". https://scikit-learn.org/stable/modules/permutation_importance.html