ML Atlas

05 · Bez nadzoru · 5 min czytania · aktualizacja

Estymacja gęstości jądrowej (KDE) — jak z próby odtworzyć rozkład?

W skrócie

KDE sumuje małe krzywe normalne postawione na każdej obserwacji. Dla 342 pingwinów szerokość h = 3,94 mm daje dwa szczyty: 191,5 i 214,3 mm.

Co to jest

Estymacja gęstości jądrowej (kernel density estimation, KDE) to sposób, by z próby narysować gładką krzywą gęstości bez zakładania, że rozkład jest normalny czy jakikolwiek inny. Pomysł jest prosty: na każdej obserwacji stawiamy małą „górkę” — jądro, zwykle krzywą normalną — i wszystkie górki sumujemy. Tam, gdzie obserwacji jest gęsto, górki nakładają się w wysoki grzbiet; tam, gdzie ich brak, krzywa opada.

Wzór: f̂(x) = 1/(n·h) · Σ K((x − xᵢ)/h), gdzie K to jądro (pole pod nim równe 1), a h to szerokość pasma (bandwidth). Metodę zaproponował Murray Rosenblatt w 1956 roku, a Emanuel Parzen w 1962 roku zbadał jej własności, także szacowanie mody; stąd nazwa „okno Parzena”.

KDE to gładszy krewny histogramu. Histogram też liczy, ile obserwacji leży w okolicy, ale wynik zależy od szerokości przedziałów i od tego, gdzie zaczyna się pierwszy. KDE nie ma punktu startowego — każda obserwacja ma własne okno wyśrodkowane na sobie.

Mechanizm — dlaczego tak działa

suma górek nad obserwacjamicienkie: jądro nad każdą obserwacją · grube: sumamałe h: fałszywe szczytyduże h: wszystko się zlewa
Schemat: suma górek nad obserwacjami

Dlaczego to w ogóle estymuje gęstość? f̂(x) to w istocie uśredniony udział obserwacji leżących blisko x, podzielony przez szerokość okolicy. Gdy próba rośnie, a h maleje (ale wolniej niż rośnie liczba punktów w oknie), f̂ zbiega do prawdziwej gęstości — to wykazali Rosenblatt i Parzen.

Najważniejszy jest wybór h, a nie kształt jądra. Małe h: krzywa idzie za każdą obserwacją, pełno fałszywych szczytów — duża wariancja. Duże h: wszystko się zlewa, prawdziwe szczyty znikają — duże obciążenie. To ten sam kompromis obciążenie–wariancja co w uczeniu nadzorowanym.

Reguły kciuka zakładają, że dane są w przybliżeniu normalne. Reguła odniesienia do rozkładu normalnego (Scott, 1992; także Silverman, 1986): h = 1,06 · σ · n^(−1/5) — optymalna dla danych normalnych. Reguła Silvermana: h = 0,9 · min(σ, IQR/1,34) · n^(−1/5) — mniejsza, bo przy rozkładzie dwumodalnym lub skośnym ta pierwsza wygładza za mocno. Wykładnik −1/5 mówi, że czterokrotnie większa próba pozwala zmniejszyć h tylko o 24%.

Zamiast reguły można wybrać h z danych: maksymalizować log-wiarygodność obserwacji odłożonych (lub pominiętych po jednej, leave-one-out). To szuka h, które najlepiej przewiduje nowe punkty — niekoniecznie takiego, które daje najczytelniejszy obraz.

Gdzie to się psuje. Brzegi: gdy zmienna nie może być ujemna (czas, dochód), jądro „wylewa” masę za granicę i zaniża gęstość tuż przy niej. Dane zaokrąglone: przy wartościach całkowitych walidacja krzyżowa może premiować zbyt wąskie h. Wymiary: liczba danych potrzebnych do tej samej dokładności rośnie lawinowo z wymiarem (liczby w przykładzie), więc KDE stosuje się głównie w kilku wymiarach.

Na przykładzie

Długość skrzydła (płetwy) 342 pingwinów Palmera: od 172 do 231 mm, średnio 200,9 mm, odchylenie standardowe 14,1. W danych są trzy gatunki: Adeli (średnio 190,0 mm), maskowe (195,8) i białobrewe (217,2). Pierwsze dwa mocno na siebie zachodzą, więc spodziewamy się dwóch garbów.

KDE liczona ręcznie z jądrem normalnym. Reguła Silvermana daje h = 3,94 mm, reguła normalna 4,64 mm. Obie dają dokładnie dwa szczyty: 191,5 i 214,3 mm (przy 4,64 mm — 191,6 i 214,3), z dołkiem przy 205 mm. Za wąskie pasmo h = 1 mm daje 9 szczytów, h = 0,5 mm aż 23 — szum. Za szerokie h = 8 mm zlewa wszystko w jeden szczyt przy 192,4 mm i chowa białobrewe.

Wybór z danych. Log-wiarygodność leave-one-out jest największa przy h = 1,5 mm (średnio −3,935 na pingwina wobec −3,952 przy regule Silvermana). Na losowej połowie danych odłożonej do testu najlepsze jest h = 2,25 mm, a w 200 losowych podziałach mediana najlepszego h to 2,0 mm. Przy h = 2 mm pojawia się trzeci, mały szczyt przy 229 mm. Walidacja wybiera więc pasmo węższe niż reguły. Różnica wiarygodności jest jednak mała (0,017 na pingwina), a pojedynczy rozkład normalny jest wyraźnie gorszy: −4,085 wobec −3,947 dla najlepszej KDE na tej samej połowie testowej. Wymiana wartości całkowitych na rozmyte o ±0,5 mm nie zmienia wyboru (mediana 1,5 mm), więc to nie efekt zaokrągleń.

Histogram dla porównania: przedziały co 5 mm od 170 mm pokazują dwa szczyty, te same przedziały przesunięte o 2,5 mm — trzy, a przedziały co 2 mm — siedem. Punkt startowy zmienia obraz, czego KDE nie robi.

Granice w liczbach. Brzeg: 342 losowania z rozkładu wykładniczego (gęstość 1 w zerze), KDE z regułą Silvermana szacuje gęstość w zerze na 0,35 i umieszcza 7,8% masy poniżej zera. Wymiar: aby w rozkładzie normalnym błąd względny gęstości w środku spadł poniżej 10%, potrzeba 4 obserwacji w 1 wymiarze, 19 w 2, 768 w 5 i około 842 000 w 10.

Jak to policzono
  • Dane: data/raw/penguins.csv, kolumna flipper_length_mm, 342 niepuste wartości (wszystkie całkowite, 55 różnych). σ = 14,062 (ddof=1), IQR = 23 (numpy.percentile), IQR/1,34 = 17,16.
  • KDE: f̂(x) = Σ scipy.stats.norm.pdf((x − xᵢ)/h) / (n·h) na siatce 160–240 mm co 0,01 mm; szczyty = lokalne maksima na siatce. Zgodność z scipy.stats.gaussian_kde (to samo h): różnica ≤ 2·10⁻¹⁶.
  • h Silvermana 0,9·14,062·342^(−0,2) = 3,940; h normalne 1,06·14,062·342^(−0,2) = 4,640. Szczyty: 3,94 → 191,5 i 214,3 (minimum 204,8); 4,64 → 191,6 i 214,3; 2 → 190,6, 215,0, 229,0; 1 → 9; 0,5 → 23; 8 → 1 (192,4); 15 → 1 (197,8).
  • Średnia log-wiarygodność leave-one-out, siatka h = 0,5–15 co 0,25: maksimum h = 1,5 (−3,9351); h = 3,94: −3,9517; h = 8: −4,0261; h = 15: −4,1775; h = 0,5: −3,9658. Rozmycie ±0,5 mm (numpy.random.default_rng(s).uniform, s = 0–19): najlepsze h od 0,75 do 1,75, mediana 1,5.
  • Połowa do testu: numpy.random.default_rng(0).permutation(342), 171 + 171. Najlepsze h = 2,25 (−3,9468); reguły liczone na połowie treningowej: Silverman 4,43 (−3,9626), normalna 5,22 (−3,9744); rozkład normalny ze średnią i σ połowy treningowej −4,0846. 200 podziałów (default_rng(s), s = 0–199): mediana najlepszego h 2,0, 10. i 90. percentyl 1,2 i 3,5.
  • Histogram, liczba lokalnych maksimów liczebności: co 5 mm od 170 — 2, od 167,5 — 3; co 2 mm od 170 — 7; co 10 mm — 2.
  • Brzeg: default_rng(0).exponential(1, 342), h Silvermana 0,269, f̂(0) = 0,346, masa poniżej 0 = 7,8%.
  • Wymiar: standardowy rozkład normalny w d wymiarach, jądro normalne, najlepsze h, wzór dokładny na błąd średniokwadratowy f̂ w zerze; najmniejsze n z błędem względnym (MSE/f²) < 0,1: d = 1: 4; 2: 19; 3: 67; 5: 768; 10: 841 566. To odtwarza tabelę z książki Silvermana (1986).

Dane: Palmer Penguins (pingwiny z Antarktydy)

W praktyce

  • Python: scipy.stats.gaussian_kde(x) (domyślnie bw_method="scott", czyli h = σ·n^(−1/5), bez stałej 1,06; "silverman" to w 1D około 1,06·σ·n^(−1/5)), sklearn.neighbors.KernelDensity (jawne h, wiele jąder, szybkie drzewa), w wykresach seaborn.kdeplot.
  • Zawsze sprawdź, jakie h wybrała biblioteka — w przykładzie trzy „reguły” dają 3,94, 4,38 i 4,64 mm.
  • Do wykresu poglądowego reguła kciuka; do oceny gęstości nowych punktów (np. wykrywanie anomalii) wybór h walidacją z log-wiarygodnością.
  • Zmienne dodatnie: estymuj gęstość logarytmu i przekształć z powrotem albo użyj korekty brzegowej (odbicie).
  • Liczbę szczytów traktuj ostrożnie: zależy od h. Porównaj kilka szerokości, zanim ogłosisz, że rozkład jest dwumodalny.
  • Ponad kilka wymiarów: model mieszanin gaussowskich albo redukcja wymiaru przed KDE.

Najczęstsze pytania

Czym KDE różni się od histogramu?
Histogram przypisuje obserwację do jednego przedziału o sztywnych granicach, więc wynik zależy od szerokości i początku przedziałów. KDE rozkłada każdą obserwację gładko wokół niej samej. Obie metody mają parametr wygładzania: szerokość przedziału albo h.
Które jądro wybrać?
Kształt jądra zmienia wynik mniej niż h. Jądro normalne jest domyślne i gładkie; jądro Epanechnikova jest optymalne w sensie średniego błędu, ale zysk jest niewielki. Najpierw dobierz h.
Czy KDE nadaje się do grupowania?
Pośrednio: szczyty gęstości wyznaczają skupiska, a punkty można przypisać do szczytu, do którego prowadzi wspinaczka po gęstości (mean shift). U pingwinów KDE widzi dwa szczyty, choć gatunki są trzy — Adeli i maskowe za bardzo się nakładają.
Czemu walidacja wybrała węższe h niż reguła kciuka?
Reguły zakładają rozkład zbliżony do normalnego, a ten jest mieszaniną trzech gatunków. Log-wiarygodność nagradza dokładne przewidywanie gęstości, także drobnych garbów, a nie czytelność obrazu.

Źródła

Zobacz też

Mieszanina gaussowska i algorytm EM InteraktywneMieszanina gaussowska zakłada, że dane pochodzą z kilku rozkładów normalnych. Algorytm EM na zmianę zgaduje przynależność punktów i poprawia rozkłady.Rozkład normalny InteraktywneRozkład normalny to krzywa dzwonowa opisana średnią i odchyleniem standardowym. Płetwy pingwinów Adeli pasują do niej: 70,9% ptaków leży w pasie ±1σ.Eksploracyjna analiza danych (EDA) InteraktywneEDA to oglądanie danych przed modelowaniem. Na pingwinach Palmer korelacja długości i głębokości dzioba to −0,24, a w każdym gatunku jest dodatnia, do +0,65.Metoda największej wiarygodności InteraktywneNajwiększa wiarygodność wybiera parametry, przy których dane są najbardziej prawdopodobne. Na Breast Cancer: +1 odchylenie wklęsłości to 56 razy większa szansa.Walidacja krzyżowa InteraktywneWalidacja krzyżowa dzieli dane na k części i każdą z nich po kolei traktuje jako zbiór walidacyjny. Daje stabilniejszą ocenę modelu niż jeden podział.Kompromis obciążenie–wariancja InteraktywneBłąd na nowych danych to obciążenie, wariancja i szum. Na 20 zaszumionych punktach wielomian stopnia 3 ma błąd testowy 0,107, a stopnia 12 już 0,503.Przekleństwo wymiarowości InteraktywneWraz z liczbą wymiarów przestrzeń pustoszeje, a odległości stają się prawie równe. Na winach po dołożeniu 200 kolumn szumu kNN spada z 98% do około 77%.Wykrywanie anomalii InteraktywneWykrywanie anomalii szuka obserwacji niepasujących do reszty, zwykle bez etykiet. Na 357 łagodnych i 20 złośliwych guzach Isolation Forest ma ROC AUC 0,945.Predykcja konformalnaPredykcja konformalna ustala szerokość przedziału z błędów na odłożonych danych. Na zbiorze Diabetes przedział 90% pokrył średnio 90,4% pacjentów.