ML Atlas

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.

Ta ilustracja działa w przeglądarce z włączonym JavaScriptem: dokładne wartości Shapleya dla regresji logistycznej na pasażerach Titanica: u kobiety z 1. klasy płeć dodaje +30 pp, a klasa +27 pp do średniej 38,4%, a w całym zbiorze testowym najwięcej waży płeć (22,2 pp), potem klasa (16,3 pp).

Dane: Titanic

W praktyce

  • scikit-learn: coef_ po StandardScaler dla modeli liniowych; permutation_importance(model, X_val, y_val) dla dowolnego modelu; PartialDependenceDisplay dla 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

Zobacz też