🧭 Klasyfikator decyzji biznesowych — regresja logistyczna na żywo
Granica regresji logistycznej wygina się, by rozdzielić dwie klasy wyników, gdy działa gradient prosty — obserwuj aktualizację wag i ruch linii decyzyjnej, punkt po punkcie.
O tej symulacji
Granica regresji logistycznej wygina się, by rozdzielić dwie klasy wyników, gdy działa gradient prosty — obserwuj aktualizację wag i ruch linii decyzyjnej, punkt po punkcie.
📖 O symulacji
Regresja logistyczna to koń roboczy stojący za ogromną częścią prawdziwych klasyfikatorów biznesowych — przewidywanie odejść klientów, zatwierdzanie kredytów, oznaczanie oszustw, ocena leadów. Bierze ważoną sumę cech wejściowych, z = w1·x1 + w2·x2 + b, i ściska ją przez funkcję sigmoidalną, by wyprowadzić prawdopodobieństwo przynależności klienta do klasy pozytywnej. Trenowanie oznacza dostosowywanie w1, w2 i b za pomocą gradientu prostego, tak by binarna strata entropii krzyżowej, uśredniona po zbiorze danych, ciągle malała.
🎮 Jak korzystać
Ta symulacja trenuje na żywo dwucechowy model regresji logistycznej na syntetycznym zbiorze danych biznesowych: 'wskaźnik zaangażowania klienta' na jednej osi i 'liczba zgłoszeń do wsparcia' na drugiej, podzielone na dwie klasy wyników (wysokie vs. niskie ryzyko odejścia). Każdy krok treningu pobiera mini-partię, oblicza gradient straty względem w1, w2 i b oraz popycha wagi w dół. Obserwuj, jak prosta linia decyzyjna obraca się i wsuwa na miejsce, zacienione półpłaszczyzny zaostrzają pewność, a krzywa straty spada wraz ze wzrostem dokładności.
Najczęściej zadawane pytania
Czym jest regresja logistyczna?
Regresja logistyczna to klasyfikator liniowy: oblicza ważoną sumę z = w1·x1 + w2·x2 + b cech wejściowych, a następnie przepuszcza z przez funkcję sigmoidalną, by uzyskać p = σ(z), prawdopodobieństwo w przedziale (0, 1), że przykład należy do klasy 1. Predykcję uzyskuje się przez progowanie p, zwykle na poziomie 0,5. Mimo nazwy jest to metoda klasyfikacji, a nie regresja w zwykłym sensie — 'regresja' odnosi się do leżącej u podstaw liniowej kombinacji wag.
Dlaczego akurat funkcja sigmoidalna?
Sigmoid σ(z) = 1/(1 + e^(–z)) odwzorowuje dowolną liczbę rzeczywistą na otwarty przedział (0, 1), więc jej wynik można odczytać wprost jako prawdopodobieństwo. Jest gładka i różniczkowalna wszędzie, czego wymaga gradient prosty, a jej pochodna ma wygodną postać zamkniętą σ'(z) = σ(z)(1 – σ(z)), wykorzystywaną przy obliczaniu gradientu straty. Jej kształt litery S oznacza też, że predykcje blisko granicy decyzyjnej zmieniają się płynnie, a nie skokowo.
Co mierzy binarna strata entropii krzyżowej?
Binarna entropia krzyżowa to L = –[y·log(p) + (1–y)·log(1–p)], uśredniona po partii. Mocno karze pewne błędne predykcje — gdy p → 0 dla prawdziwej etykiety y = 1, strata dąży do nieskończoności — podczas gdy pewne poprawne predykcje kosztują niemal nic. Dla ustalonego zbioru danych strata entropii krzyżowej jako funkcja w1, w2, b jest wypukła, więc gradient prosty ma pojedyncze globalne minimum, do którego dąży, zamiast utknąć w minimach lokalnych.
Dlaczego liniowa granica nie zawsze może rozdzielić klasy?
Ponieważ granica decyzyjna regresji logistycznej — zbiór punktów, w których p = 0,5 — jest zawsze dokładnie linią prostą (w1·x + w2·y + b = 0) lub hiperpłaszczyzną w wyższych wymiarach. Gdy dwie klasy wyników naprawdę się nakładają (jak w presecie 'Nakładające się') lub prawdziwy wzorzec rozdzielający jest zakrzywiony lub nieliniowy, żaden wybór w1, w2, b nie może sprowadzić straty do zera. Trenowanie nadal zbiega — znajduje pojedynczą prostą minimalizującą całkowitą entropię krzyżową — po prostu nie może osiągnąć idealnej dokładności na danych, które nie są liniowo separowalne.
Co się dzieje, gdy współczynnik uczenia jest zbyt wysoki lub zbyt niski?
Współczynnik uczenia η skaluje każdy krok gradientu: w ← w – η·∂L/∂w. Ponieważ powierzchnia straty entropii krzyżowej dla regresji logistycznej to gładka wypukła miska, zbyt duże η powoduje, że aktualizacje przekraczają minimum, sprawiając, że krzywa straty oscyluje lub rozbiega się zamiast się ustabilizować. Zbyt małe η sprawia, że każdy krok ledwo porusza wagami, więc trenowanie pełznie ku zbieżności i marnuje znacznie więcej kroków niż to konieczne — choć, w przeciwieństwie do głębokich sieci, ostatecznie tam dotrze, ponieważ istnieje tylko jedno minimum do znalezienia.
Jakie gradienty faktycznie oblicza tu gradient prosty?
Dla każdego przykładu treningowego termin błędu to e = p – y (przewidywane prawdopodobieństwo minus prawdziwa etykieta). Gradienty to ∂L/∂w1 = e·x, ∂L/∂w2 = e·y i ∂L/∂b = e, uśrednione po mini-partii. Wynikają one bezpośrednio z zastosowania reguły łańcuchowej przez stratę logarytmiczną i sigmoid — ta sama mechanika co propagacja wsteczna, tyle że dla sieci bez warstw ukrytych. Każdy krok aktualizacji odejmuje η razy te uśrednione gradienty od w1, w2 i b.
Jak wizualizowana jest granica decyzyjna i zacieniony obszar?
Każdy piksel wykresu odpowiada hipotetycznej parze (wskaźnik zaangażowania, zgłoszenia do wsparcia). Przejście w przód oblicza przewidywane prawdopodobieństwo modelu p w tym punkcie; piksel jest zabarwiany na czerwono, jeśli p < 0,5 (przewidywane wysokie ryzyko), lub na niebiesko, jeśli p ≥ 0,5 (przewidywane niskie ryzyko), z przezroczystością skalowaną do |p – 0,5| × 2, tak by pewnie sklasyfikowane obszary wyglądały żywo, a obszar blisko granicy zanikał. Ciągła linia śledzi dokładnie miejsce, gdzie p = 0,5 — samą liniową granicę decyzyjną.
Dlaczego są trzy presety zbioru danych?
'Separowalny' umieszcza dwa klastry daleko od siebie z niską wariancją, więc linia może osiągnąć niemal 100% dokładności — przydatne do obserwowania czystej, szybkiej zbieżności. 'Nakładający się' zbliża klastry z większym rozrzutem, więc niektóre punkty zawsze znajdą się po złej stronie dowolnej prostej — pokazując stratę stabilizującą się powyżej zera, co jest oczekiwanym i poprawnym zachowaniem, a nie błędem. 'Zaszumiony' zachowuje separowalny układ, ale losowo odwraca około 12% etykiet, naśladując rzeczywisty szum etykiet i pokazując, jak kilka błędnie oznaczonych punktów może trwale ograniczyć osiągalną dokładność.