03 · Nadzorowane · 5 min czytania · aktualizacja
Regresja logistyczna czy drzewo decyzyjne — co wybrać do klasyfikacji?
W skrócie
Regresja logistyczna wygrywa, gdy wpływ cech jest w miarę liniowy i potrzebne są wiarygodne prawdopodobieństwa. Drzewo wygrywa przy progach i interakcjach.
Co to jest
Regresję logistyczną wybierz, gdy efekty cech są w przybliżeniu addytywne i monotoniczne, danych jest niewiele, a potrzebujesz stabilnego modelu i dobrze skalibrowanych prawdopodobieństw; drzewo decyzyjne — gdy decyzja zależy od progów i interakcji cech, a model ma się dać przeczytać jako lista reguł. W pięciu z sześciu klasycznych zbiorów referencyjnych regresja logistyczna jest dokładniejsza od pojedynczego drzewa, ale na Titanicu przegrywa — dokładnie z powodu interakcji.
Oba modele są „przejrzyste”, tylko w inny sposób. Regresja logistyczna mówi: każda cecha przesuwa logarytm szansy o stałą wartość, niezależnie od reszty. Drzewo mówi: najpierw zapytaj o płeć, potem — zależnie od odpowiedzi — o klasę albo o wiek. Pierwsza opowieść jest gładka i globalna, druga schodkowa i lokalna.
To porównanie jest też pytaniem o założenia. Każdy model jest dobry dokładnie tam, gdzie jego założenia pasują do świata, i słaby tam, gdzie nie pasują.
Mechanizm — dlaczego tak działa
Kształt granicy decyzyjnej. Regresja logistyczna liczy p = σ(w·x + b), więc granica p = 0,5 to hiperpłaszczyzna: prosta w dwóch wymiarach. Drzewo dzieli przestrzeń na prostokąty prostopadłe do osi. Gdy prawdziwa granica jest skośna (np. „suma pomiarów powyżej progu”), drzewo musi ją przybliżać schodkami i potrzebuje do tego wielu liści, czyli wielu danych. Gdy granica jest schodkowa albo zależy od kombinacji warunków, regresja logistyczna nie odtworzy jej bez ręcznie dodanych cech.
Interakcje. Model liniowy zakłada, że efekt cechy jest wszędzie taki sam. Drzewo modeluje interakcje automatycznie: każda gałąź to osobny podmodel. Jeśli klasa biletu ma ogromne znaczenie dla kobiet, a niewielkie dla mężczyzn, drzewo to „zobaczy”, a regresja logistyczna uśredni te dwa efekty.
Wariancja. Regresja logistyczna ma mało parametrów (jedną wagę na cechę) i wypukłą funkcję straty, więc jej rozwiązanie jest jednoznaczne i zmienia się płynnie z danymi. Drzewo wybiera podziały zachłannie: drobna zmiana danych na górze drzewa zmienia cały kształt poniżej. To duża wariancja — dlatego pojedyncze drzewa uśrednia się w las losowy.
Prawdopodobieństwa. Regresja logistyczna minimalizuje log loss, więc jej wyniki są zwykle przyzwoicie skalibrowane. Drzewo zwraca odsetek klasy w liściu; czyste liście dają 0 albo 1, czyli pewność, której model nie ma. Kara log loss za pewną pomyłkę jest ogromna.
Przygotowanie danych. Drzewo nie wymaga skalowania ani przekształceń monotonicznych i naturalnie radzi sobie z progami. Regresja logistyczna potrzebuje standaryzacji (dla regularyzacji i zbieżności), kodowania kategorii i ewentualnie przekształceń (log, splajny), gdy zależność nie jest liniowa.
Na przykładzie
Sześć zbiorów, powtarzana warstwowa walidacja krzyżowa (5 części × 10 powtórzeń, random_state=0), trafność. Regresja logistyczna ze standaryzacją; drzewo pełne, drzewo o głębokości 3 oraz drzewo strojone siatką (max_depth, min_samples_leaf) wewnątrz każdej części walidacji.
| Zbiór | Regresja logistyczna | Drzewo pełne | Drzewo, głębokość 3 | Drzewo strojone |
|---|---|---|---|---|
| Titanic | 0,796 | 0,784 | 0,816 | 0,812 |
| Breast Cancer | 0,977 | 0,925 | 0,925 | 0,927 |
| Iris | 0,955 | 0,951 | 0,945 | 0,940 |
| Wine | 0,980 | 0,905 | 0,912 | 0,902 |
| Palmer Penguins | 0,987 | 0,963 | 0,946 | 0,960 |
| Digits 8×8 | 0,969 | 0,854 | 0,467 | 0,853 |
Na Titanicu drzewo wygrywa, bo przeżycie zależy od kombinacji płci i klasy: kobiety z 1. klasy przeżyły w 96,8%, z 3. klasy w 50,0%, mężczyźni z 1. klasy w 36,9%, z 3. w 13,5%. Spadek szans z klasą jest u kobiet zupełnie inny niż u mężczyzn. Dodanie do regresji jednej cechy interakcji (płeć × klasa) podnosi jej wynik z 0,796 do 0,806 — połowa straty do drzewa znika. Uwaga: głębokość 3 wybrałem po fakcie; uczciwie strojone drzewo daje 0,812.
Na Wine, Breast Cancer i Digits granice są skośne i rozłożone na wiele cech — tu drzewo traci od 5 do 12 punktów procentowych. Na Breast Cancer różnica w jakości prawdopodobieństw jest jeszcze większa: przy 5-krotnej walidacji ROC AUC 0,994 wobec 0,899 (drzewo głębokości 4), wynik Briera 0,021 wobec 0,080, log loss 0,081 wobec 1,886.
Stabilność: na 200 próbkach bootstrapowych Titanica drzewo głębokości 3 używało za każdym razem trochę innego zestawu cech — najczęstszy zestaw pojawił się tylko w 45% próbek. W regresji logistycznej znak wag dla płci, klasy, wieku i rodzeństwa był ten sam w 100% próbek.
Dane: Titanic Iris (irysy Fishera) Palmer Penguins (pingwiny z Antarktydy) Breast Cancer Wisconsin (diagnostyka raka piersi) Wine (wina z Piemontu) Digits (ręcznie pisane cyfry 8×8)
W praktyce
Reguła wyboru:
- Mało danych (setki wierszy), cechy liczbowe, potrzebne prawdopodobieństwa → regresja logistyczna:
make_pipeline(StandardScaler(), LogisticRegression(C=1.0, max_iter=1000)). - Decyzja z progów i wyjątków, model ma być czytany przez ludzi jako reguły → płytkie drzewo:
DecisionTreeClassifier(max_depth=3, min_samples_leaf=20)iexport_text(tree, feature_names=cols). - Liczy się sama trafność → żaden z nich osobno; sprawdź las losowy albo boosting, a te dwa modele zostaw jako punkty odniesienia.
- Podejrzewasz interakcje, ale chcesz zostać przy modelu liniowym → dodaj cechy iloczynowe albo
PolynomialFeatures(degree=2, interaction_only=True); drzewo możesz potraktować jako detektor, które interakcje warto dodać. - Drzewo zwraca pewne 0 i 1 → zanim użyjesz jego prawdopodobieństw, skalibruj je:
CalibratedClassifierCV(tree, method="isotonic", cv=5). - Głębokość drzewa dobieraj walidacją krzyżową (
GridSearchCV), nigdy na zbiorze testowym.
Najczęstsze pytania
- Który model jest bardziej interpretowalny?
- Zależy od odbiorcy. Płytkie drzewo da się pokazać jako schemat „jeśli… to…”, zrozumiały bez statystyki. Regresja logistyczna daje ilorazy szans dla każdej cechy, co jest precyzyjniejsze i stabilniejsze, ale wymaga wyjaśnienia skali logitowej. Głębokie drzewo (setki liści) przestaje być interpretowalne.
- Czy przy dużej liczbie danych drzewo dogania regresję logistyczną?
- Często tak. Perlich, Provost i Simonoff (2003) pokazali na krzywych uczenia, że regresja logistyczna zwykle wygrywa przy małych próbach, a drzewa przy dużych, bo wtedy mają z czego zbudować wiele liści bez przeuczenia. Punkt przecięcia zależy od zbioru.
- Dlaczego nie użyć po prostu lasu losowego?
- Często warto, ale traci się czytelność i prostotę wdrożenia. Model liniowy to kilka liczb, które można sprawdzić, zapisać w arkuszu i przetłumaczyć na regulamin. Gdy las daje tylko punkt procentowy więcej, prostszy model bywa lepszą decyzją.
Źródła
- James G., Witten D., Hastie T., Tibshirani R. „An Introduction to Statistical Learning”, 2nd ed., Springer 2021, rozdz. 4.3 i 8.1 (w tym 8.1.3: drzewa a modele liniowe).
- Hastie T., Tibshirani R., Friedman J. „The Elements of Statistical Learning”, 2nd ed., Springer 2009, rozdz. 4.4 i 9.2.
- Breiman L., Friedman J., Olshen R., Stone C. „Classification and Regression Trees”, Wadsworth 1984.
- Perlich C., Provost F., Simonoff J. S. „Tree Induction vs. Logistic Regression: A Learning-Curve Analysis”, Journal of Machine Learning Research 4, 2003, s. 211–255.
- Dokumentacja scikit-learn, „Decision Trees”: https://scikit-learn.org/stable/modules/tree.html