Algorytm k-nn
Naiwny klasyfikator Bayesa brał pod uwagę jedynie najbliższe otoczenie. Lecz czym jest otoczenie? Jak je zdefiniować? Jak daleko są położone obiekty od siebie?
knn k nearest neighbours jest odpowiedzią na te problemy. Jest to równie prosty klasyfikator (ściślej: algorytm regresji nieparametrycznej używany w statystyce do prognozowania wartości pewnej zmiennej losowej). Klasyfikacja nowych przypadków jest realizowana na bieżąco, tj. gdy pojawia się potrzeba klasyfikacji nowego przypadku. Schemat algorytmu: Poszukaj obiektu/ów najbliższego w stosunku do obiektu klasyfikowanego. Określ klasę nowego obiektu na podstawie klasy obiektu/ów najbliższego.
ścisłowiec ścisłowiec humanista humanista ścisłowiec czy humanista? ścisłowiec
By wyznaczyć przynależność nowego przypadku (obiektu) do danej klasy należy: Obliczyć odległość między nowym obiektem a wszystkimi innymi obiektami w zbiorze. Wybrać k-najbliższych obiektów (sąsiadów). Przyporządkować nowy obiekt do najczęściej występującej klasy w obrębie jego k-najbliższych sąsiadów. Najbliżej nowej osoby są fotograf, nauczycielka i urzędnik. To oni tworzą jego sąsiedztwo. ścisłowiec ścisłowiec Wśród tych 3 osób najczęściej występują humaniści, więc nowa osoba to też raczej humanista. humanista humanista HUMANISTA ścisłowiec
Nie zawsze mamy pełną siatkę obiektów. Który obiekt jest najbliżej czerwonego? 1 2 3 4 5 6 1 2 3 4 5 6
Nie zawsze mamy pełną siatkę obiektów. Który obiekt jest najbliżej czerwonego? Wg miary Euklidesowej: D CZ, N = 2 2 + 2 2 = 2 2 = 2,83 D CZ, Z = 3 2 = 3 D CZ, Ż = 2 2 + 1 2 = 5 = 2,24 1 2 3 4 5 6 1 2 3 4 5 6
Nie zawsze mamy pełną siatkę obiektów. Który obiekt jest najbliżej czerwonego? Wg miary Euklidesowej: D CZ, N = 2 2 + 2 2 = 2 2 = 2,83 D CZ, Z = 3 2 = 3 D CZ, Ż = 2 2 + 1 2 = 5 = 2,24 Ale już wg miary Manhattan: D CZ, N = 2 + 2 = 4 D CZ, Z = 3 D CZ, Ż = 2 + 1 = 3 1 2 3 4 5 6 1 2 3 4 5 6
Więcej na: http://en.wikipedia.org/wiki/distance
Parametr k jest wybierany przed rozpoczęciem działania algorytmu i przybiera wartości od 1 do liczby obiektów w zbiorze Jeśli k=1, wtedy algorytm jest trywialny: obiektowi badanemu przypisywana jest klasa zgodna z klasą najbliższego sąsiada. Dla przykładu obok obiekt czerwony będzie miał przypisaną klasę niebieski 1 2 3 4 5 1 2 3 4 5 6 6
Jeśli k jest różne od 1, wtedy należy odszukać k najbliższych sąsiadów obiektu, a następnie ustawić jego klasę na taką, która jest potwierdzana przez największą liczbę sąsiadów Aby to wykonać, należy wykonać prosty algorytm (przykład dla miary Euklidesa, k=3) 1 2 3 4 5 6 1 2 3 4 5 6
1. Wylicz odległości wszystkich obiektów w stosunku do próbki (przykład dla miary Euklidesa): D a, X = 3 2 2 + 3 1 2 = 5 = 2,2 D b, X = 3 5 2 + 3 1 2 = 2 2 = 2,8 D c, X = 3 6 2 + 3 3 2 = 3 D d, X = 3 1 2 + 3 4 2 = 5 = 2,2 D e, X = 3 2 2 + 3 4 2 = 2 = 1,4 D f, X = 3 5 2 + 3 5 2 = 2 2 = 2,8 D g, X = 3 2 2 + 3 6 2 = 10 = 3,2 1 2 3 4 5 6 1 b 2 a 3 X c 4 d e 5 f 6 g
2. Wyznacz k (3) najmniejszych wartości (czyli najbliższe sąsiedztwo): D a, X = 3 2 2 + 3 1 2 = 5 = 2,2 D b, X = 3 5 2 + 3 1 2 = 2 2 = 2,8 D c, X = 3 6 2 + 3 3 2 = 3 D d, X = 3 1 2 + 3 4 2 = 5 = 2,2 D e, X = 3 2 2 + 3 4 2 = 2 = 1,4 D f, X = 3 5 2 + 3 5 2 = 2 2 = 2,8 D g, X = 3 2 2 + 3 6 2 = 10 = 3,2 1 2 3 4 5 6 1 b 2 a 3 X c 4 d e 5 f 6 g
3. Wyznacz wartości liczbowe określające stopień wsparcia dla poszczególnych klas przez sąsiadów: 1. Niebieski: 2 2. Zielony: 1 3. Żółty: 0 4. Wyznacz klasę obiektu X na podstawie klas k najbliższych sąsiadów: Obiekt X będzie niebieski 1 2 3 4 5 6 1 b 2 a 3 X c 4 d e 5 f 6 g
Imię Wiek Przychód Liczba kart kredytowych VIP Tomek 28 25000 1 NIE Natalia 52 32000 2 NIE Wiesław 45 120000 4 TAK Anna 33 20000 1 NIE Emilia 37 45000 3 TAK Odległość od Czesława sqrt[(28-22) 2 + (25000-10000) 2 + (1-1) 2 ] = 15000 sqrt[(52-22) 2 + (32000-10000) 2 + (2-1) 2 ] = 22000 sqrt[(45-22) 2 + (120000-10000) 2 + (4-1) 2 ] = 110000 sqrt[(33-22) 2 + (20000-10000) 2 + (1-1) 2 ] = 10000 sqrt[(37-22) 2 + (45000-10000) 2 + (3-1) 2 ] = 35000 Czesław 22 10000 1 NIE
Drzewo klasyfikacyjne k-nn Wiek < 37 TAK VIP = nie NIE Przychód < 45000 NIE NIE NIE TAK NIE TAK NIE TAK VIP = nie VIP = tak Model klasyfikuje dużo szybciej!
Zalety Prosty w użyciu i implementacji W łatwy sposób można wyjaśnić jak doszło do ustalenia (predykcji) klasy Odporny na wartości izolowane przez ocenę najbliższych sąsiadów Wady: Posiada duże wymogi pamięciowe musi przechować informacje o wszystkich przypadkach testowych w pamięci. Konieczność podania wartości k (liczby sąsiadów). Jest ona zależna od typu i specyfiki danych. Dla wartości k = 1, algorytm charakteryzuje się dużą podatnością na wstępowanie szumu informacyjnego. Czas dokonania klasyfikacji zwiększa się wraz z powiększaniem się zbioru danych, ponieważ zawsze trzeba wyliczyć odległość do wszystkich obiektów ze zbioru danych. Jest on zazwyczaj dużo dłuższy niż z użyciem modelu do klasyfikacji.
Jeśli nie zostanie dokonana normalizacja danych do przedziału 0-1, odległość między obiektami może zostać zdominowana przez wartości pewnych atrybutów (choć jest to też zależne od przyjętej miary odległości). Wiek = 45 Przychód = 120000 Liczba kart = 4 Wiek = 37 Przychód = 45000 Liczba kart = 3 Wiesław Emilia Odległość Wiesław, Emilia = 45 37 2 + 120000 45000 2 + 4 3 2 Ten czynnik ma największy wpływ na wartość całego wyrażenia, reszta jest pomijalna
Imię Wiek Przychód Liczba kart kredytowych Tomek 28/52 = 0.54 Natalia 52/52 = 1 Wiesław 45/52 = 0.86 Anna 33/52 = 0.63 Emilia 37/52 = 0.71 Czesław 22/52= 0.42 25000/120000 = 0.21 32000/120000 = 0.27 120000/120000 = 1 20000/120000 = 0.17 45000/120000 = 0.37 10000/120000 = 0.08 VIP 1/4 = 0.25 NIE 2/4 = 0.5 NIE 4/4 = 1 TAK 1/4 = 0.25 NIE 3/4 = 0.75 TAK 1/4 = 0.25 NIE Odległość Wiesław, Emilia = 0.86 0.37 2 + 1 0.37 2 + 1 0.75 2
Wskazany stan prawda Wskazany stan fałsz Rzeczywisty stan prawda TP FN Rzeczywisty stan fałsz FP TN TP liczba obserwacji, które były prawdziwe i zostały wskazane jako prawdziwe FP liczba obserwacji które były fałszywe, a zostały wskazane jako prawdziwe FN liczba obserwacji które były prawdziwe, ale zostały wskazane jako fałszywe TN liczba obserwacji które były fałszywe i zostały wskazane jako fałszywe Dobry klasyfikator to taki, który minimalizuję liczbę błędów (FN oraz FP)
Liczba błędów (ang. error rate) miara całkowitej liczby błędów zadana jako: FN + FP Error rate = TP + FN + FP + TN Czułość (ang. sensitivity) ocenia jako dobrze klasyfikator przewiduje stan prawda: TP Sensitivity = TP + FN Specyficzność (ang. specificity) określa jako dobrze klasyfikator przewiduje stan fałszywy: TN Specificity = TN + FP
Do zbioru punktów określonych tabelą dodano dodatkową obserwację o współrzędnych (5,5). Do jakiej klasy będzie należeć? Używając odległości Euklidesowej, k=3 Używając miary Manhattan, k=2 Użyj programu Calc/Excel aby rozwiązać to zadanie automatycznie! Nr X Y Klasa 1 1 10 + 2 8 7-3 3 6 + 4 0 8 + 5 7 3-6 3 7-7 10 3-8 8 5-9 1 8-10 6 10 +
Pamiętasz SWI? Tam było coś takiego jak funkcja korelacji, czy to Ci czegoś nie przypomina? Mając dane następujące opisy dokumentów oraz ich klasyfikację do grup, sprawdź za pomocą korelacji cosinusowej do której grupy trafi nowy dokument o opisie [2,1,0,5,3,0]. Przyjmij k=3. Dok. Opis Grupa 1 [0,5,5,1,3,1] A 2 [5,0,0,4,1,5] B 3 [0,0,0,6,5,1] C 4 [0,3,3,1,1,2] A 5 [0,4,4,0,2,0] A 6 [0,0,1,6,0,3] B 7 [0,1,1,3,1,2] B 8 [0,0,1,4,5,0] C 9 [1,2,1,5,3,0] C
Mając dane wyniki klasyfikacji dokonaj znanymi Ci miarami oceny jej jakości. Rzeczywistość Predykcja 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1
Dla następującego zbioru danych: zastosuj algorytm 5-NN do oszacowania ceny domu: