Metody eksploracji danych 6. Klasyfikacja (kontynuacja) Piotr Szwed Katedra Inforatyki Stosowanej AGH 2016 Support Vector Machines k-nearest Neighbors
Support Vector Machines Maszyny Wektorów Wspierających P. Szwed: Metody eksploracji danych (2016) 2
Liniowa separowalność danych Rozważy zagadnienie binarnej klasyfikacji, w który zbiore etykiet jest { 1,1} Zbiór danych D = { x i, y i : i = 1,, }, gdzie x i R n jest linowo separowalny, jeżeli istnieje hiperpłaszczyzna w T x + b = 0, taka że: i: y i = +1. w T x i + b > 0 i: y i = 1. w T x i + b < 0 Powyższe dwa warunki ożna zapisać jako jeden: i: y i = sign(w T x i + b) W ty przypadku: w R n, b to eleent dotychczas oznaczny jako w 0. P. Szwed: Metody eksploracji danych (2016) 3
Liniowa separowalność danych W przypadku danych, które nie są bezpośrednio separowalne przez hiperpłaszczynę, ożliwe jest wprowadzenie nieliniowych cech h(x), np. wieloianów. W przestrzeni cech odel dalej jest liniowy i równanie hiperpłaszczyzny a postać: w T h x + b = 0 P. Szwed: Metody eksploracji danych (2016) 4
Liniowa separowalność danych Nieliniowe odele: Drzewa decyzyjne Sieci neuronowe Najbliżsi sąsiedzi (knn) Nieliniowe odele ogą zapewnić kształty regionów decyzyjnych zgodne z etykietai klas trudniejsze do uczenia ryzyko nadiernego dopasowania Regresja logistyczna Drzewo decyzyjne P. Szwed: Metody eksploracji danych (2016) 5
Koncepcja SVM Zakładając, że dane są separowalne, zazwyczaj istnieje (nieskończenie) wiele hiperpłaszczyzn π(w, b) rozdzielających dane. Kryteriu wyboru: π(w 1, b 1 ) jest lepszą granicą klas niż π(w 2, b 2 ) jeżeli obserwacje są od niej bardziej odległe. (Mniejsza podatność na szu i nadierne dopasowanie) π(w 1, b 1 ) π(w 2, b 2 ) P. Szwed: Metody eksploracji danych (2016) 6
Margines Hiperpłaszczyznę separującą klasy ożna rozsuwać w obie strony (linie przerywane), aż do oentu, w który pojawią się na nich obserwacje. Margines to odległość poiędzy hiperpłaszczyznai oznaczonyi liniai przerywanyi Wielkość arginesu zależy od ułożenia hiperpłaszczyzny P. Szwed: Metody eksploracji danych (2016) 7
Model ateatyczny Załóży, że zbiór uczący D = { x i, y i : i = 1,, } jest linowo separowalny przez hiperpłaszczyznę o arginesie ρ. Wówczas: 1. w T x i + b ρ 2 jeżeli y i = 1 2. w T x i + b + ρ 2 jeżeli y i = +1 Oba warunki ożna zapisać jako: y i (w T x i + b) ρ 2 Przeskalujy w i b dzieląc obie strony przez ρ. Równanie (po 2 przeskalowaniu) a postać: y i (w T x i + b) 1 P. Szwed: Metody eksploracji danych (2016) 8
Wektory wspierające Wektory wspierające (nośne, ang. support vectors) to obserwacje, dla których nierówność y i (w T x i + b) 1 jest równością, czyli zachodzi: x s : y s w T x s + b = 1 Obliczy odległość wektora wspierającego od hiperpłaszczyny: 1 w r = wt x s + b w = y s(w T x s + b) w = 1 w 1 w 1 w Czyli argines dla przeskalowanych w i b oże być wyrażony jako: ρ = 2r = 2 w P. Szwed: Metody eksploracji danych (2016) 9
Optyalna hiperpłaszczyzna Zagadnienie optyalizacji Znajdź w i b takie, że: ρ = 2r = 2 w przeforułowane jako: jest aksyalizowane (funkcja celu) przy ograniczeniach: i = 1, : y i (w T x i + b) 1 Zagadnienie optyalizacji kwadratowej Znajdź w i b takie, że: Φ w = 1 2 wt w jest inializowane (funkcja celu) przy ograniczeniach: i = 1, : y i (w T x i + b) 1 Kwadratowa funkcja celu: zienne to w i b Z liniowyi ograniczeniai (y i i x i odgrywają rolę współczynników) P. Szwed: Metody eksploracji danych (2016) 10
Proble optyalizacji Proble optyalizacji z ograniczeniai rozwiązuje się przez zastosowanie tzw. nożników Lagrange a [Także https://en.wikipedia.org/wiki/karush%e2%80%93kuhn%e2%80%93tucker_conditions ]. W punkcie optyalny spełniający ograniczenia wektory gradientów funkcji i aktywnych ograniczeń uszą być równoległe i przeciwnie skierowane g 1 (x 1,x 2 ) 0 g 2 (x 1,x 2 ) 0 f(x 1,x 2 ) (x 1 *x 2 *) L x 1, x 1, α = f x 1, x 2 α i g i (x 1, x 2 ) α i - nożniki Lagrange a Ograniczenie g 1 nie jest aktywne w punkcie optyalny. Stąd: g 1 x 1, x 2 < 0 oraz α 1 = 0 Ograniczenie g 2 jest aktywne w punkcie optyalny, czyli spełnione będzie g 2 (x 1, x 2 ) = 0 oraz α 2 0 i P. Szwed: Metody eksploracji danych (2016) 11
Mnożniki Lagrange a Funkcja Lagrange a dla zgadnienia SVM: L w, b, α = 1 2 w 2 α i (y i w T x i + b 1) 1 w 2 to oryginalna funkcja celu 2 i=1 α i y i ( w T x i + b 1) to ograniczenia wynikające z obserwacji w zbiorze uczący. Zauważy, że α i = 0, dla obserwacji nie będących wektorai wspierającyi oraz α i 0 dla wektorów wspierających. Rozwiązanie polega na: obliczeniu pochodnych L w, b, α względe ziennych w i b przyrównaniu pochodnych do 0 (warunek konieczny) wstawieniu otrzyanych zależności na w i b do L w, b, α rozwiązaniu probleu dualnego aksyalizacji L w, b, α w przestrzeni współczynników α. w, b, α jest punkte siodłowy, będący iejsce iniu L w, b, α względe w i b oraz aksiu L w, b, α względe α. P. Szwed: Metody eksploracji danych (2016) 12
Mnożniki Lagrange a 1. Obliczay pochodne i przyrównujey do 0: i=1 L w, b, α = 1 2 w 2 α i (y i w T x i + b 1) L w,b,α = w w j i=1 α i y i x ij j L w,b,α L w,b,α, stąd = 0 w w j = i=1 α i y i x ij w = i=1 α i y i x i j b = 0 i=1 α i y i = 0 2. Podstawiay do wzoru L w, b, α : L α = 1 α 2 i=1 i y i x 2 i i=1 α i y i ( j=1 α j y j x j ) T x i i=1 α i y i b + i=1 α i 1 L α = 1 2 i=1 α i y i x i L α = i=1 α i 1 2 2 ( j=1 α j y j x j ) T i=1 α i y i x i + i=1 α i 1 i=1 α i y i x i 2 P. Szwed: Metody eksploracji danych (2016) 13
Zagadnienie dualne Zagadnienie dualne aksyalizacji ax α i=1 przy ograniczeniach: α i 0 oraz α i 1 2 i=1 α i y i x i i=1 α i y i = 0 2 Postać alternatywna ax α Składnik i=1 α i odpowiada aksyalizacji arginesu, który jest ograniczany przez odległości poiędzy wektorai wspierającyi (drugi składnik). Pierwsza postać wydaje się bardziej efektywna (ale druga jest preferowana): suuje się wektorów i oblicza ich iloczyn skalarny. w drugiej wersji oblicza się 2 iloczynów skalarnych i=1 α i 1 2 przy ograniczeniach: α i 0 oraz i=1 i=1 α i i=1 α i y i = 0 α j y i y j (x i T x j ) P. Szwed: Metody eksploracji danych (2016) 14
Model SVM Hiperpłaszczyzna wx + b = 0 wyznacza granicę klas. Stąd funkcja decyzyjna a postać: f x = sign wx + b. i=1 Podstawiając w = α i y i x i, otrzyujey: f x = sign i=1 α i y i x T x i + b Oznaczy przez S zbiór indeksów wektorów wspierających S = {i: α i 0}. Postać funkcji decyzyjnej ożna uprościć Składnik b = 1 S f x = sign α i y i x T x i + b i S (y i i S j=1 α j y j (x T i x j )) Model klasyfikatora SVM jest reprezentowany przez: zbiór wektorów wspierających: {x j : j S} zbiór współczynników probleu dualnego α j : j S współczynnik b (intercept) Nie jest konieczne jawne wyznaczanie wektora w P. Szwed: Metody eksploracji danych (2016) 15
Przykład Niezależnie od liczby obserwacji, w obu przypadkach odel składa się z 3 wektorów wspierających wykorzystywanych przez funkcję decyzyjną. Ogólnie: liczba wektorów wspierających S n + 1, czyli zależy od wyiarów probleu (dla liniowo separowalnych obserwacji). P. Szwed: Metody eksploracji danych (2016) 16
Obserwacje na ogół nie są liniowo separowalne Dwie ożliwości: Transforacja zagadnienia, w który obserwacje x i R n do postaci w przestrzeni cech h x i R N, gdzie N będzie wystarczająco duże, aby zapewnić separowalność h x i. Na przykład transforacja oże polegać na wyznaczeniu czynników wieloianowych wybranego stopnia Wprowadzenie iękkiego arginesu: dopuszczenie obserwacji naruszających separowalność i uwzględnienie ich w funkcji celu jako kary za przekroczenie ograniczeń. W praktyce stosuje się kobinację obu rozwiązań P. Szwed: Metody eksploracji danych (2016) 17
Transforacja do przestrzeni cech - przykład Nieseparowalne dane w R Separowalne obserwacje w przestrzeni R 2 Niech h x R 2, gdzie h 1 x) = x h 2 (x) = x 2 Transforacja pozwala na odseparowanie obserwacji w R 2 P. Szwed: Metody eksploracji danych (2016) 18
Funkcja jądra (kernel) Po transforacji do przestrzeni cech funkcja decyzyjna a postać: f x = sign α i y i h x T h(x i ) + b i S Oznaczy K(x i, x j ) = h x T h(x i ). Po podstawieniu: f x = sign α i y i K(x, x i ) + b i S Czynnik K(x i, x j ) to tzw. jądro (kernel), czyli funkcja odpowiedzialna za obliczanie iloczynu skalarnego w przestrzeni cech. Przykład: Dwuwyiarowy wektor x = x 1 x 2 Kernel K(x, z) = 1 + x T z 2 K x, z = 1 + 2x 1 z 1 + 2x 2 z 2 + 2x 1 z 1 x 2 x 2 + x 1 2 z 1 2 + x 2 2 z 2 2 = 1 2x 1 2x 2 2x 1 x 2 x 1 2 x 2 2 T 1 2z 1 2z 2 2z 1 z 2 z 1 2 z 2 2 Czyli h(x) = 1 2x 1 2x 2 2x 1 x 2 x 1 2 x 2 2 Kernel w niejawny sposób odwzorowuje przestrzeń X do przestrzeni cech h(x) bez konieczności ich wyznaczania. Jest to tzw. kernel trick P. Szwed: Metody eksploracji danych (2016) 19
Kernel Liniowy Stosowane funkcje jądra K(x i, x j ) = x i T x j Odwzorowuje h(x) = x Wieloian stopnia p K(x i, x j ) = 1 + x i T x j p Funkcja Gaussa (RBF, radial basis function) Sigoidalny n + p 1 Wyiar h(x) to. p Jest to liczba rzędu n p. Np. dla n = 100 i p = 6 N = 1 609 344 100 2 K(x i, x j ) = e x i x j 2σ 2 Wektor cech jest nieskończeniewyiarowy. Granicą klas jest kobinacja funkcji obliczana dla wektorów wspierających K(x i, x j ) = tanh γ x i T x j + r Uczenie SVM wyaga obliczenia K(x i, x j ) dla wszystkich par obserwacji. Aby funkcja ogła być użyta jako kernel wyagane jest, aby acierz [K(x_i,x_j)] była nieujenie określona dla dowolnych wektorów (x_i,i=1,,). Dalsze inforacje: acierz Graa i twierdzenie Mercera. P. Szwed: Metody eksploracji danych (2016) 20
Przykłady Granice klas i arginesy dla różnych funkcji jądra (kerneli) Najlepsze rezultaty dla kernela gaussowskiego (RBF) ale równocześnie duża liczba wektorów wspierających W przypadku kernela wieloianowego, stopień wynosił 3 W rzeczywistości uczenie odelu z użycie iękkich arginesów (patrz dalej). Widoczne dla kernela sigoidalnego. P. Szwed: Metody eksploracji danych (2016) 21
Miękkie arginesy Jeżeli w zbiorze uczący występują obserwacje (x i, y i ), oraz x j, y j takie, że x i = x j i y i y j, dane nigdy nie będą liniowo separowalne, nawet po transforacji do przestrzeni cech o dowolnej złożoności. Miękkie arginesy są rozwiązanie, które pozwala w taki przypadku zbudować klasyfikator SVM (ale a ono charakter bardziej ogólny). 1 2 3 4 W odelu dopuszcza się obserwacje leżące po niewłaściwej stronie hiperpłaszczyzn wyznaczających arginesy. W funkcji celu wprowadza się współczynniki kary ξ i za przekroczenie ograniczeń. P. Szwed: Metody eksploracji danych (2016) 22
Zagadnienie optyalizacji Znajdź w, b, takie, że: Miękkie arginesy Φ w, b, = 1 2 wt w + C i=1 i jest inializowane przy ograniczeniach: i = 1, : y i w T x i + b i = 1, : i 0 1 i Paraetr C pozwala na kontrolowanie koproisu poiędzy cele aksyalizacji arginesu oraz dopasowanie do danych uczących Jeżeli stała C jest ała wybierany jest szeroki argines koszte dopasowania do danych uczących Jeżeli stała C jest duża, argines staje się ały i następuje dobre dopasowanie do danych uczących P. Szwed: Metody eksploracji danych (2016) 23
Funkcja celu: Hinge loss Φ = 1 2 wt w + C l(w T x + b, y i ) i=1 Złożoność odelu Błąd uczenia Dla odelu z iękkii arginesai drugi składnik a postać funkcji składanej z dwóch półprostych (z zawiase ). Nachylenie półprostej zależy od stałej C l(w T x i +b, y i ) 1 y i (w T x i +b) P. Szwed: Metody eksploracji danych (2016) 24
Przykłady P. Szwed: Metody eksploracji danych (2016) 25
Optyalizacja Wprowadzenie stałej C w funkcji celu w niewielki stopniu zienia dualną postać probleu (dodatkowe ograniczenie) ax α J α = i=1 α i 1 2 przy ograniczeniach: 0 α i C oraz Optyalizacja i=1 i=1 α i α j y i y j (x T i x j ) i=1 α i y i = 0 Ze względu na ograniczenie i=1 α i y i = 0 nie jest ożliwa optyalizacja wzdłuż współrzędnych, jeśli 1 współczynników jest ustalonych, nie ożna optyalizować -tego [Patrz dla porównania etoda Gaussa Seidla/coordinate descent] Muszą być optyalizowane co najniej dwa współczynniki na raz Najbardziej popularny algoryte jest SMO (Sequential inial optiization) while (nie stop): 1. Wybierz parę α i i α j naruszającą ograniczenia (etoda wyboru heurystyczna). 2. Popraw wartość J α, dla ziennych α i i α j, zachowując pozostałe współczynniki stałe. W taki przypadku J α jest zwykłą funkcją kwadratową jednego ze współczynników α i lub α j Patrz np: http://brain.fuw.edu.pl/edu/index.php/uczenie_aszynowe_i_sztuczne_sieci_neuronowe/wyk%c5%82ad_9#algoryt_smo_- _sekwencyjnej_inialnej_optyalizacji P. Szwed: Metody eksploracji danych (2016) 26
knn Algoryt najbliższych sąsiadów P. Szwed: Metody eksploracji danych (2016) 27
Algoryt najbliższych sąsiadów Algoryt najbliższych sąsiadów opiera się na prosty poyśle przewidywane wartości wyjściowe ogą być ustalane na podstawie podobieństw do obserwacji w zbiorze uczący. jaka klasa? x k Na przykład etykieta klasy dla nieznanej obserwacji (na rys. oznaczonej robe) oże być ustalona na podstawie etykiety najbliższego sąsiada. Po prawej zbiór punktów V(x k ) których odległość od pozostałych obserwacji x i jest większa od odległości od x k. Obszar V(x k ) = {x R 2 : i. d x, x k d x, x i } nazywany jest koórką Woronoja (ang. Voronoi cell) P. Szwed: Metody eksploracji danych (2016) 28
Diagra Woronoja Podział przestrzeni na koórki Woronoja nazywany jest diagrae Woronoja (ang. Voronoi tessalation) Granice poiędzy dwoa obszarai wyznaczają syetralne odcinków łączących dwa punkty (w 2D) W przestrzeni wielowyiarowej koórki są wielobokai wypukłyi, a ich ściany eleentai hiperpłaszczyzn P. Szwed: Metody eksploracji danych (2016) 29
Odległość + Odległość (etryka): to funkcja d: X X R 0 spełniająca 3 warunki 1. Identyczność d x, y = 0 x = y 2. Syetria d(x, y) = d(y, x) 3. Nierówność trójkąta: d x, z d x, y + d(y, z) Przykłady: Metryka Minkowskiego (X = R n ): d(x, y) = x i y i p n i=1 n i=1 Metryka Manhattan (p = 1): d(x, y) = x i y i n Metryka Euklidesa (p = 2): d(x, y) = x i y 2 i=1 i Metryka Czebyszewa (p = ): d(x, y) = ax x i y i i 1 p P. Szwed: Metody eksploracji danych (2016) 30
Podobieństwo Podobieństwo si: X X R jest funkcją o charakterze przeciwny do odległości (dla blisko położonych obiektów, d(x, y) = 0, si(x, y) przyjuje duże wartości. Często podobieństwo jest skalowane do przedziału [0,1]. Podobieństwo ające własność rozróżnialności obiektów spełnia: 1. si x, y = 1 x = y 2. si x, z si x, y + si y, z 1 Przykład: dla x, y R n podobieństwo cosinusowe: Nie zapewnia rozróżnialności obiektów si(x, y) = xt y x y Podobieństwo oże zostać przekształcone w (pół)etrykę : d(x, y) = 1 si(x, y) Warunek trójkąta nie usi być spełniony (stąd półetryka, ang. seietrc). Podobieństwo oże być zdefiniowane dla różnego typu obiektów bez konieczności wyznaczania ich cech w R n : ciągów syboli, zbiorów, grafów, itd. Funkcje jądra (kernele) K(x, y) ogą być postrzegane jako rodzaj podobieństwa. P. Szwed: Metody eksploracji danych (2016) 31
Różne iary odległości/podobieństwa Dla ziennych binarnych lub noinalnych d(x i, x j ) = 1 I(x i, x j ), gdzie I(a, b) to tzw. funkcja wskaźnikowa: I(a, b) = Dla ziennych będących zbiorai: odległość to tzw. odległość Hainga d(x i, x j ) = x i \x j (x j \x i ) podobieństwo definiuje się jako indeks Jaccarda: si x i, x j = x i x j x i x j 0, gdy a b 1, gdy a = b Dla ciągów syboli (np. tekstów) x j = (x 11,, x 1k ), x 2 = (x 21,, x 2 ), gdzie x 1j, x 2i A odległość Levenshteina to najniejsza liczba edycji: usunięć, zaian, przestawień przekształcających ciąg x 1 w x 2. P. Szwed: Metody eksploracji danych (2016) 32
Brakujące dane Przy obliczaniu odległości poiędzy obserwacjai x i i x j oże zdarzyć się, że dla pewnego atrybutu k dane nie są określone (reprezentowane przez sybol? ). Czyli na przykład x ik =? Strategia zachowawcza: Dla ziennych noinalnych zawsze I?, = I,? = 1 Dla ziennych nuerycznych, gdy x ik =? wybierana jest najbardziej odległa w stosunku do x jk wartość ze zbioru uczącego x ik arg ax x k X(k) { x k x jk } gdzie X(k) = {x ik : j = 1,, } Jeśli obie wartości nueryczne są nieokreślone, składnik odległości to: sup X k inf X(k) Strategia optyistyczna Dla ziennych noinalnych zawsze I?, = I,? = 1, ale I(?,? ) = 0 (równoważne dodaniu dodatkowej ziennej noinalnej?) Zastąpienie brakujących wartości średnii: x ik ean(x k ) Jeśli obie wartości nieokreślone, ich różnica wynosi 0 P. Szwed: Metody eksploracji danych (2016) 33
K najbliższych sąsiadów Niech D = { x i, y i : i = 1,, } będzie zbiore danych (uczący) Dla danej nieznanej obserwacji x uporządkujy D w postaci ciągu D(x) = ((x j, y j ): j = 1,, ), takiego, że j = 1, 1. d x, x j d(x, x j+1 ) Pierwszych k wyrazów ciągu D x definiuje N k (x), czyli k-eleentowe sąsiedztwo x: N k (x) ={(x k, y k ),, (x k, y k )} Dla zagadnienia regresji przewidywana wartość wyjściowa jest wartością średnią y w sąsiedztwie: Dla zagadnienia klasyfikacji: y x = 1 k x,y N k x y p(y = y x) = 1 k x,y N k x I(Y = y ) y x = arg ax p(y = y x) y Czyli przewidywaną klasą jest etykieta przeważająca wśród sąsiadów w N k (x). P. Szwed: Metody eksploracji danych (2016) 34
Przykłady P. Szwed: Metody eksploracji danych (2016) 35
Wagi Idea wprowadzenia wag polega na uwzględnieniu odległości klasyfikowanej obserwacji x od obserwacji w zbiorze najbliższych sąsiadów N k (x) x,y N w(x, x )I(Y = y ) p(y = y x) = k x w(x, x ) x,y N k x Waga w(x, x ) jest najczęściej odwrotnością odległości w x, x = 1 d(x,x ) lub funkcją w(d(x, x )) zdefiniowaną przez użytkownika. Ziana regionów decyzyjnych po zastosowaniu wag będących odwrotnością odległości P. Szwed: Metody eksploracji danych (2016) 36
Wyszukiwanie najbliższych sąsiadów Czas uczenia algorytu knn jest zerowy (odel jest po prostu zbiore instancji) Czas wyszukiwania najbliższych sąsiadów jest proporcjonalny do wielkości zbioru uczącego O(k n ). Działanie algorytu oże być wolne, jeżeli jest duże, np. 16 6, obserwacje przechowywane są w bazie danych itd. Metody przyspieszania wyszukiwania: Reprezentacja zbioru uczącego w postaci drzew: kd-tree lub ball tree Heurystyki ograniczające obliczanie odległości Ograniczanie zbioru analizowanych obserwacji P. Szwed: Metody eksploracji danych (2016) 37
kd-tree (k-wyiarowe drzewo) kd-tree jest drzewe binarny, w który kolejne węzły reprezentują podziały przestrzeni wzdłuż jednego z wyiarów Algoryt wyszukiwania najbliższych sąsiadów polega na: przejściu przez drzewo od korzenia do liścia (bloku, który zawiera badany punkt) znalezieniu najbliższego sąsiada sprawdzeniu, czy kula S o proieniu równy odległości od najbliższego sąsiada przecina węzeł bliźniaczy do liścia sprawdzenie przecięć dla węzłów bliźniaczych względe węzłów nadrzędnych i ich potoków (różowy czerwony zielony szarozielony) P. Szwed: Metody eksploracji danych (2016) 38
Przykład Ostatecznie przeszukane zostaną kreskowane obszary poziou 6 (Rysunek na podstawie kodu zaczerpniętego z http://www.astrol.org/ ) P. Szwed: Metody eksploracji danych (2016) 39
Konstrukcja kd-tree Algoryt rekurencyjny kdtree D: dane, N: node : 1. Jeżeli liczba punktów w węźle D in stop 2. Wybór kierunku podziału j: cyklicznie dla kolejnych wyiarów lub w kierunku największej zienności wartości 3. Podziel dane węzła na dwie części D 1 = {x D: x j < v j } i D 2 = {x D: x j v j }. Wartość podziału v j ustala się poprzez posortowanie danych i wyznaczenie ediany wartości jako wartość średnią 4. Utwórz dwa węzły potone N 1 i N 2 i wywołaj kdtree(d 1, N 1 ) i kdtree(d 2, N 2 ) P. Szwed: Metody eksploracji danych (2016) 40
Ball tree W drzewie Ball tree węzły reprezentują kule otaczające punkty w przestrzeni n-wyiarowej Ze względu na kształt bloków przypisanych węzło łatwiej jest wykluczyć przecięcia i przez to w rzeczywistych zastosowaniach (zwłaszcza dla większych wyiarów przestrzeni) złożoność wyszukiwania spada Porównanie liczby przecięć dla kd tree (czarna linia przerywana, 4 obszary) i Ball tree (niebieska linia przerywana dwie kule) P. Szwed: Metody eksploracji danych (2016) 41
Ball tree: algoryt wyszukiwania Algoryt przeszukuje rekurencyjnie drzewo składując znalezione punkty w kolejce sortowanej alejąco według odległości. Odcinane są kule, których środek jest bardziej odległy niż najdalszy punkt w kolejce. search(x, q: queue, n: node): if d x, n. center d(x, q. first()): return if(leaf(n)): przeszukaj punkty x w n i dodaj do q, jeśli d(x, x ) < d(x, q. first()) else: search(x, q, node. left) search(x, q, node. right) P. Szwed: Metody eksploracji danych (2016) 42
Ball tree - przykład Przeszukane zostaną kule przecinające się z różową elpsą P. Szwed: Metody eksploracji danych (2016) 43
Inne opcje przyspieszenia obliczeń Częściowe wyznaczanie odległości r 2 Dla r < n oblicza się: d r (x, x ) = i=1 x i x i. Jeżeli d r (x, x ) > sup {d x, x : x N k (x)} (czyli częściowo wyznaczona odległość jest większa, niż do najdalszego sąsiada w bieżący otoczeniu) nie a sensu dalej prowadzić obliczeń. Redukcja zbioru obserwacji bez ziany granic regionów decyzyjnych (editing) Źródło: https://www.isll.uni-hildeshei.de/lehre/l-07w/skript/l-2up-03-nearest-neighbor.pdf P. Szwed: Metody eksploracji danych (2016) 44
Typowe opcje knn Biblioteki ipleentujące knn zazwyczaj oferują następujące opcje: Przeszukanie wszystkich eleentów (brute force). Złożoność czasowa O n Ball tree Złożoność czasowa O n log kd-tree Dla ałych n 20, złożoność rzędu O n log Dla dużych n wzrasta do O n i ze względu na czas/zużycie paięci przy budowie drzewa oże być niej efektywne niż brute force Dodatkowe inforacje i dyskusja zależności od: paraetru k progu określającego inialną liczbę obserwacji w węźle potencjalnej liczby zapytań http://scikit-learn.org/stable/odules/neighbors.htl P. Szwed: Metody eksploracji danych (2016) 45