Sztuczna inteligencja : Algorytm KNN
Transkrypt
Sztuczna inteligencja : Algorytm KNN
Sztuczna inteligencja : Algorytm KNN Przemysław Juszczuk Instytut Informatyki Uniwersytetu Śląskiego 23 kwietnia 2012 Przemysław Juszczuk Sztuczna inteligencja : Algorytm KNN 1 Algorytm 1 NN 2 Algorytm knn 3 Zadania Przemysław Juszczuk Sztuczna inteligencja : Algorytm KNN Klasyfikacja obiektów w oparciu o najbliższe obiekty: Algorytm 1-NN - najbliższego sąsiada. Parametr wejściowy, to zbiór obiektów, na podstawie których będzie przebiegała klasyfikacja. obiekt do zaklasyfikowania Parametr wyjściowy to klasa decyzyjna, do której zaklasyfikowany zostanie obiekt. Schemat algorytmu: 1 Poszukaj obiektu najbliższego w stosunku do obiektu klasyfikowanego. 2 Określenie klasy decyzyjnej na podstawie obiektu najbliższego. Przemysław Juszczuk Sztuczna inteligencja : Algorytm KNN Algorytm k-NN - k najbliższych sąsiadów. Podobny do powyższego algorytmu Bardziej odporny na szumy - w poprzednim algorytmie obiekt najbliższy klasyfikowanemu może być zniekształcony - tak samo zostanie zaklasyfikowany nowy obiekt. Konieczność ustalenia liczby najbliższych sąsiadów. Wyznaczenie miary podobieństwa wsród obiektów (wiele miar podobieństwa). Przemysław Juszczuk Sztuczna inteligencja : Algorytm KNN Dobór parametru k - liczby sąsiadów: Jeśli k jest małe, algorytm nie jest odporny na szumy - jakość klasyfikacji jest niska. Jeśli k jest duże, czas działania algorytmu rośnie - większa złożoność obliczeniowa. Należy wybrać k, które daje najwyższą wartość klasyfikacji. Przemysław Juszczuk Sztuczna inteligencja : Algorytm KNN Wyznaczanie odległości obiektów: odległość euklidesowa odległość miejska odległość taksówkowa Manhattan Pierwsza z nich wyraża się wzorem: p dij = Σpk=1 (xik − xjk )2 Z kolei odległość miejska: dij = Σpk=1 |xik − xjk | Przemysław Juszczuk Sztuczna inteligencja : Algorytm KNN Przykład: Tablica: Tabela danych Tablica: Tabela danych X1 5 7 5 7 3 5 5 3 7 5 X2 5 7 3 3 3 4 2 1 5 1 Y + + + + + + + + + + Przemysław Juszczuk X1 8 4 4 10 10 8 7 4 5 4 9 10 6 4 3 X2 4 6 6 8 6 5 4 9 5 8 10 7 4 10 6 Sztuczna inteligencja : Algorytm KNN Y ? Obiekt klasyfikowany podany jako ostatni : X 1 = 3, X 2 = 6 Teraz obliczmy odległości poszczególnych obiektów od wskazanego. Dla uproszczenia obliczeń posłużymy się wzorem: dij = (X 12i − X̂ 12 ) + (X 22i − X̂ 22 ) Przemysław Juszczuk Sztuczna inteligencja : Algorytm KNN Przykład: Tablica: Tabela danych Tablica: Tabela danych X1 5 7 5 7 3 5 5 3 7 5 X2 5 7 3 3 3 4 2 1 5 1 Y + + + + + + + + + + d 26 40 17 2 13 45 8 58 17 18 Przemysław Juszczuk X1 8 4 4 10 10 8 7 4 5 4 9 10 6 4 3 X2 4 6 6 8 6 5 4 9 5 8 10 7 4 10 6 Sztuczna inteligencja : Algorytm KNN Y ? d 20 13 8 29 10 5 17 2 26 10 0 5 40 36 Wybranie K= 9 najbliższych sąsiadów i określenie ich decyzji: Tablica: Tabela danych Tablica: Tabela danych X1 5 7 5 7 3 5 5 3 7 5 X2 5 7 3 3 3 4 2 1 5 1 Y + + + + + + + + + + d 26 40 17 2 13 45 8 58 17 18 znak + + Przemysław Juszczuk X1 8 4 4 10 10 8 7 4 5 4 9 10 6 4 3 X2 4 6 6 8 6 5 4 9 5 8 10 7 4 10 6 Y ? Sztuczna inteligencja : Algorytm KNN d 20 13 8 29 10 5 17 2 26 10 0 5 40 36 znak - Ostatnim krokiem jest obliczenie liczby sąsiadujących obiektów w danych klasach decyzyjnych: Obiekty w klasie dodatniej 2 Obiekty w klasie ujemnej 7 Klasyfikowany obiekt będzie najprawdopodobniej w klasie ujemnej. Przemysław Juszczuk Sztuczna inteligencja : Algorytm KNN Zadanie pierwsze Przygotować dowolny zbiór danych, a następnie dla tego zbioru zbudować naiwny klasyfikator Bayesa. help Stworzyć zbiór danych z klasą decyzyjną Tak/Nie Stworzyć dodatkową kolumnę określającą, czy dany obiekt ma jednocześnie określoną klasę decyzyjną i wybrany atrybut (przy pomocy formuły = JEZELI (ORAZ (Warunek1; Warunek2); 1; 0)) Np: Tablica: Tabela danych Pogoda Temperatura Wilgotność Wietrznie Klasa Słonecznie Gorąco Duża Nie N Słonecznie Gorąco Duża Tak N 0 0 0 0 = JEZELI (ORAZ (Pogoda = Slonecznie ; Klasa = N ); 1; 0) (Patrz przykład z początku zajęć dotyczący gry w tenisa). Przemysław Juszczuk Sztuczna inteligencja : Algorytm KNN help Przy pomocy formuły = LICZ .JEZELI (zakres; warunek) obliczyć jaki odsetek obiektów w zbiorze zawiera podaną wartość atrybutu (liczba obiektów o zadanym atrybucie do całkowitej liczby obiektów) Obliczyć prawdopodobieństwo na to, że obiekt zostanie zaklasyfikowany do klasy „N” lub „T”. Przemysław Juszczuk Sztuczna inteligencja : Algorytm KNN Zadanie drugie Przygotować szablon w excelu klasyfikujący obiekt, działający zgodnie z algorytmem k-nn. help Stworzyć zbiór danych z klasą decyzyjną Tak/Nie Dołożyć dodatkową kolumnę do obliczania dystansu pomiędzy obiektem klasyfikowanym, a aktualnym obiektem. Określenie klasy decyzyjnej obiektów najbliższych - przy pomocy formuły = JEZELI (aktualny <= MIN.K (Przedzial; k); decyzja; ), gdzie: aktualny, to odległość pomiędzy aktualnym obiektem, a klasyfikowanym - kolumna wyliczona w poprzednim punkcie. MIN.K zwraca k-tą najmniejszą wartość w zadanym przedziale. Ustawiając k=8, formuła zwróci nam 8 obiektów o minimalnej odległości z zadanego przedziału. Decyzja to klasa decyzyjna wybranego obiektu. Formuła ustawi decyzję obiektu tylko w przypadku, gdy ten należy do zbioru ośmiu obiektów najbliższych obiektowi klasyfikowanemu. Przemysław Juszczuk Sztuczna inteligencja : Algorytm KNN help Wykres dla danych: pierwsza seria to obiekty z klasą decyzyjną „Tak”, druga seria to klasa decyzyjna „Nie”, a trzecia to wartość nieznana, czyli „?”. Przy pomocy formuły LICZ .JEZELI określamy liczbę obiektów z decyzją dodatnią i liczbę obiektów z decyzją ujemną (tylko z k sąsiadów !!). Jeżeli liczba obiektów dodatnich jest większa, to decyzja klasyfikowanego obiektu = „Tak”, w przeciwnym wypadku „Nie”. Przemysław Juszczuk Sztuczna inteligencja : Algorytm KNN