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

Podobne dokumenty