Moduł: algorytmy sztucznej inteligencji, wykład 3 Agnieszka Nowak Brzezińska
Klasyfikacja, predykcja, przewidywanie polega ona na znajdowaniu odwzorowania danych w zbiór predefiniowanych klas. Na podstawie zawartości bazy danych budowany jest model (np. drzewo decyzyjne, reguły logiczne), który służy do klasyfikowania nowych obiektów w bazie danych lub głębszego zrozumienia istniejącego podziału obiektów na predefiniowane klasy. Ogromne zastosowanie znalazła w systemach medycznych, przykładowo, w bazie danych medycznych znalezione mogą być reguły klasyfikujące poszczególne schorzenia, a następnie przy pomocy znalezionych reguł automatycznie może być przeprowadzone diagnozowanie kolejnych pacjentów. Klasyfikacja jest metodą eksploracji danych z nadzorem (z nauczycielem). Proces klasyfikacji składa się z kilku etapów budowania modelu, po czym następuje faza testowania oraz predykcji nieznanych wartości.
Etap 1: budowa modelu (klasyfikatora) opisującego predefiniowany zbiór klas danych lub zbiór pojęć Etap 2: zastosowanie opracowanego modelu do klasyfikacji nowych danych
Naiwny klasyfikator bayesowski jest prostym probabilistycznym klasyfikatorem. Zakłada się wzajemną niezależność zmiennych niezależnych (tu naiwność) Bardziej opisowe może być określenie- model cech niezależnych. Model prawdopodobieństwa można wyprowadzić korzystając z twierdzenia Bayesa. W zależności od rodzaju dokładności modelu prawdopodobieństwa, naiwne klasyfikatory bayesowskie można uczyć bardzo skutecznie w trybie uczenia z nadzorem.
Jeśli wiemy, że kulek czerwonych jest 2 razy mniej niż zielonych (bo czerwonych jest 20 a zielonych 40) to prawdopodobieństwo tego, że kolejna (nowa) kulka będzie koloru zielonego jest dwa razy większe niż tego, że kulka będzie czerwona. Dlatego możemy napisać, że znane z góry prawdopodobieństwa:
Jeśli więc czerwonych jest 20 a zielonych 40, to razem wszystkich jest 60. Więc Więc teraz gdy mamy do czynienia z nową kulką ( na rysunku biała):
To spróbujmy ustalić jaka ona będzie. Dokonujemy po prostu klasyfikacji kulki do jednej z dwóch klas: zielonych bądź czerwonych. Jeśli weźmiemy pod uwagę sąsiedztwo białej kulki takie jak zaznaczono, a więc do 4 najbliższych sąsiadów, to widzimy, że wśród nich są 3 kulka czerwone i 1 zielona. Obliczamy liczbę kulek w sąsiedztwie należących do danej klasy : zielonych bądź czerwonych z wzorów: W naszym przypadku, jest dziwnie, bo akurat w sąsiedztwie kulki X jest więcej kulek czerwonych niż zielonych, mimo, iż kulek zielonych jest ogólnie 2 razy więcej niż czerwonych. Dlatego zapiszemy, że
Dlatego ostatecznie powiemy, że Prawdopodobieństwo że kulka X jest zielona = prawdopodobieństwo kulki zielonej * prawdopodobieństwo, że kulka X jest zielona w swoim sąsiedztwie = Prawdopodobieństwo że kulka X jest czerwona = prawdopodobieństwo kulki czerwonej * prawdopodobieństwo, że kulka X jest czerwona w swoim sąsiedztwie = Ostatecznie klasyfikujemy nową kulkę X do klasy kulek czerwonych, ponieważ ta klasa dostarcza nam większego prawdopodobieństwa posteriori.
Każdy obiekt traktowany jest jako wektor X (krotka) wartości atrybutów A 1,..., A n : X = (x1, x2,..., xn). Niech C 1,..., C m będą klasami, do których może należeć X, P(C X) niech oznacza prawdopodobieństwo przynależności X (ściślej: obiektów o właściwości X) do klasy C. W klasyfikacji Bayesa przypisujemy X do tej klasy, do której prawdopodobieństwo warunkowe przynależności X jest największe. X jest więc przypisany do C i, jeśli P(C i X) P(C k X), dla każdego k, 1 k m, k i.
1.W klasyfikacji Bayesa maksymalizujemy: 2. Ponieważ P(X) jest stałe, więc wystarczy maksymalizować Iloczyn P(X C i )P(C i ). 3. Ponadto przyjmujemy: P(C i ) = s i / s, gdzie s oznacza liczbę obiektów w zbiorze treningowym, a s i oznacza liczbę obiektów w klasie C i. 4. Dla X = (x 1, x 2,..., x n ), wartość P(X C i ) obliczamy jako iloczyn: P(X C i ) = P(x 1 C i )*P(x 2 C i )*... *P(x n C i ), przy czym: P(x k C i ) = s ik / s i, gdzie s ik oznacza liczbę obiektów klasy C i, dla których wartość atrybutu A k jest równa x k, a s i oznacza liczbę wszystkich obiektów klasy Ci w zadanym zbiorze treningowym.
Klasyfikacja bayesowska, to metoda budowy systemu ekspertowego, w której wiedza przedstawiona jest á priori z warunkowymi prawdopodobieństwami, a wnioskowanie polega na liczeniu następnych prawdopodobieństw. Mechanizm wnioskowania wykorzystujący twierdzenie Bayesa polega na obliczaniu prawdopodobieństwa każdego możliwego wyniku, gdy znany jest dany konkretny przypadek.
Wadą tej metody jest fakt, że wymaga ona znajomości dokładnych wartości lub rozkładów prawdopodobieństw pojawienia się parametrów zjawiska, czyli problemu będącego przedmiotem rozważań. Innym problemem jest to, że należy dokonać pewnych nierealistycznych założeń na przykład w klasyfikacji bayesowskiej wymagane wyniki, np. rozpoznawania, musza się wzajemnie wykluczać. Niestety w wielu przypadkach mogą występować liczne podobne wyniki (np. w diagnostyce: pacjent może mieć wiele chorób). Innym założeniem, co prawda niewymaganym przez twierdzenie Bayesa, ale wymuszonym przez praktykę, jest statystyczna niezależność cechy problemu.
Wejście: Rozważana populacja obiektów (klientów) opisana jest za pomocą czterech atrybutów: Wiek, Dochód, Studia, OcenaKred. Interesuje nas przynależność obiektów do jednej z dwóch klas: klienci kupujący komputery (o etykiecie TAK) i klienci nie kupujący komputerów (o etykiecie NIE). Z bazy danych wybrano zbiór treningowy. Obiekt X o nieznanej przynależności klasowej ma postać: X = (Wiek = <=30, Dochód = średni, Student = tak, OcenaKred = dobra ) Wyjście: Określić przynależność obiektu X do klasy C1 ( tak ) lub C2 ( nie ) za pomocą klasyfikacji Bayesa.
Klasyfikowany obiekt: X = (Wiek = <=30, Dochód = średni, Student = tak, OcenaKred = dobra ) Należy obliczyć, dla jakiej wartości i, (i =1, 2) iloczyn P(X C i )*P(C i ), osiąga maksimum. 2. P(C i ) oznacza prawdopodobieństwo bezwarunkowe przynależności obiektu do klasy (inaczej: prawdopodobieństwo klasy) C i, i = 1, 2. Ze zbioru treningowego obliczamy: P(C 1 ) = 9/14 = 0.643 P(C 2 ) = 5/14 = 0.357 3. Prawdopodobieństwa warunkowe P(X C i ) są odpowiednio równe iloczynom prawdopodobieństw warunkowych: P(X C 1 ) = P(Wiek= <=30 C 1 ) * P(Dochód= średni C 1 ) P(Studia= tak C 1 ) * P(OcenaKred= dobra C 1 ), P(X C 2 ) = P(Wiek= <=30 C 2 ) * P(Dochód= średni C 2 ) P(Studia= tak C 2 ) * P(OcenaKred= dobra C 2 ),
Ze zbioru treningowego obliczamy: P(Wiek= <=30 C 1 ) = 2/9 = 0.222 P(Dochód= średni C 1 ) = 4/9 = 0.444 P(Studia= tak C 1 ) = 6/9 = 0.667 P(OcenaKred= dobra C 1 ) = 6/9 = 0.667 P(Wiek= <=30 C 2 ) = 3/5 = 0.600 P(Dochód= średni C 2 ) = 2/5 = 0,400 P(Studia= tak C 2 ) = 1/5 = 0.200 P(OcenaKred= dobra C 2 ) = 2/5 = 0.400
Stąd: P(X C 1 ) = 0.222*0.444*0.667*0.667 = 0.044 P(X C 1 )P(C 1 ) = 0.044*0.643 = 0.028 P(X C 2 ) = 0.600*0.400*0.200*0.400 = 0.019 P(X C 2 )P(C 2 ) = 0.019*0.357 = 0.007 X został zaklasyfikowany do C 1.
Jeśli A i B są prostymi zdarzeniami w przestrzeni prób, to prawdopodobieństwo warunkowe P(A/B) będzie określone jako: P( A B) P( A B) P( B) liczba wyników liczba Również P(B/A) = P(A B)/P(A). zarówno wyników w w A jak B Przekształcając ten wzór, otrzymujemy wzór na przecięcie zdarzeń P(A B) = P(B/A)P(A) i po podstawieniu mamy: P( B / A) P( A) P( A B) P( B) Co jest tezą twierdzenia Bayesa dla prostych zdarzeń. i B
Tylko dla cech jakościowych Tylko dla dużych zbiorów danych
Aby obliczyć P(diabetes=1) należy zliczyć liczbę obserwacji dla których spełniony jest warunek diabetes=1. Jest ich dokładnie 9 z 20 wszystkich. Podobnie, aby obliczyć P(diabetes=0) należy zliczyć liczbę obserwacji dla których spełniony jest warunek diabetes=0. Jest ich dokładnie 11 z 20 wszystkich.
Zakładając, że zmienne niezależne faktycznie są niezależne, wyliczenie P(X diabetes=1) wymaga obliczenia prawdopodobieństwa warunkowego wszystkich wartości dla X: Np. obliczenie P(BP=high diabetes=1) wymaga znów obliczenia P(BP=high) i P(diabetes=1) co jest odpowiednio równe 4 i 9 zatem prawdopodobieństwo to wynosi 4/9:
Zatem: Mając już prawdopodobieństwa P(X diabetes=1) i P(diabetes=1) można wyznaczyć iloczyn tych prawdopodobieństw:
Teraz podobnie zrobimy w przypadku P(X diabetes=0)
Możemy więc wyznaczyć P(X diabetes=0): Ostatecznie iloczyn prawdopodobieństw jest wyznaczany: Jakoże P(X diabeltes=1)p(diabetes=1) jest większe niż P(X diabetes=0)p(diabetes=0) nowa obserwacja będzie zaklasyfikowana do klasy diabetes=1. Prawdopodobieństwo ostateczne że jeśli obiekt ma opis taki jak X będzie z klasy diabetes=1 jest równe:
Jakie będzie prawdopodobieństwo klasyfikacji do klasy diabetes=1 gdy mamy następujące przypadki: X:BP=Average ; weight=above average; FH= yes; age=50+ X:BP=low ; weight=average; FH= no; age=50+ X:BP=high ; weight=average; FH= yes; age=50+
jeden z algorytmów regresji nieparametrycznej używanych w statystyce do prognozowania wartości pewnej zmiennej losowej. Może również być używany do klasyfikacji. - Założenia Dany jest zbiór uczący zawierający obserwacje z których każda ma przypisany wektor zmiennych objaśniających oraz wartość zmiennej objaśnianej Y. Dana jest obserwacja C z przypisanym wektorem zmiennych objaśniających dla której chcemy prognozować wartość zmiennej objaśnianej Y.
Wyznaczanie odległości obiektów: odległość euklidesowa
Obiekty są analizowane w ten sposób, że oblicza się odległości bądź podobieństwa między nimi. Istnieją różne miary podobieństwa czy odległości. Powinny być one wybierane konkretnie dla typu danych analizowanych: inne są bowiem miary typowo dla danych binarnych, inne dla danych nominalnych a inne dla danych numerycznych. Nazwa Wzór gdzie: x,y - to wektory wartości cech porównywanych obiektów w przestrzeni p- wymiarowej, gdzie odpowiednio wektory wartości to: oraz. odległość euklidesowa odległość kątowa współczynnik korelacji liniowej Pearsona Miara Gowera
Oblicz odległość punktu A o współrzędnych (2,3) do punktu B o współrzędnych (7,8). 9 8 7 6 5 4 3 2 1 0 0 2 4 6 8 A B D (A,B) = pierwiastek ((7-2) 2 + (8-3) 2 ) = pierwiastek (25 + 25) = pierwiastek (50) = 7.07
9 8 B 7 6 5 4 3 A A B C 2 1 C 0 0 1 2 3 4 5 6 7 8 Mając dane punkty: A(2,3), B(7,8) oraz C(5,1) oblicz odległości między punktami: D (A,B) = pierwiastek ((7-2) 2 + (8-3) 2 ) = pierwiastek (25 + 25) = pierwiastek (50) = 7.07 D (A,C) = pierwiastek ((5-2) 2 + (3-1) 2 ) = pierwiastek (9 + 4) = pierwiastek (13) = 3.60 D (B,C) = pierwiastek ((7-5) 2 + (3-8) 2 ) = pierwiastek (4 + 25) = pierwiastek (29) = 5.38
1. porównanie wartości zmiennych objaśniających dla obserwacji C z wartościami tych zmiennych dla każdej obserwacji w zbiorze uczącym. 2. wybór k (ustalona z góry liczba) najbliższych do C obserwacji ze zbioru uczącego. 3. Uśrednienie wartości zmiennej objaśnianej dla wybranych obserwacji, w wyniku czego uzyskujemy prognozę. Przez "najbliższą obserwację" mamy na myśli, taką obserwację, której odległość do analizowanej przez nas obserwacji jest możliwie najmniejsza.
Najbliższy dla naszego obiektu buźka jest obiekt Więc przypiszemy nowemu obiektowi klasę:
Mimo, że najbliższy dla naszego obiektu buźka jest obiekt Metodą głosowania ustalimy, że skoro mamy wziąć pod uwagę 5 najbliższych sąsiadów tego obiektu, a widać, że 1 z nich ma klasę: Zaś 4 pozostałe klasę: To przypiszemy nowemu obiektowi klasę:
Obiekt klasyfikowany podany jako ostatni : a = 3, b = 6 Teraz obliczmy odległości poszczególnych obiektów od wskazanego. Dla uproszczenia obliczeń posłużymy sie wzorem:
Znajdujemy więc k najbliższych sąsiadów. Załóżmy, że szukamy 9 najbliższych sąsiadów. Wyróżnimy ich kolorem zielonym. Sprawdzamy, które z tych 9 najbliższych sąsiadów są z klasy + a które z klasy -? By to zrobić musimy znaleźć k najbliższych sąsiadów (funkcja Excela o nazwie MIN.K)
Wyobraźmy sobie, że nie mamy 2 zmiennych opisujących każdy obiekt, ale tych zmiennych jest np. 5: {v1,v2,v3,v4,v5} i że obiekty opisane tymi zmiennymi to 3 punkty: A, B i C: V1 V2 V3 V4 V5 A 0.7 0.8 0.4 0.5 0.2 B 0.6 0.8 0.5 0.4 0.2 C 0.8 0.9 0.7 0.8 0.9 Policzmy teraz odległość między punktami: D (A,B) = pierwiastek ((0.7-0.6) 2 + (0.8-0.8) 2 + (0.4-0.3) 2 + (0.5-0.4) 2 + (0.2-0.2) 2 ) = pierwiastek (0.01 + 0.01 + 0.01) = pierwiastek (0.03) = 0.17 D (A,C) = pierwiastek ((0.7-0.8) 2 + (0.8-0.9) 2 + (0.4-0.7) 2 + (0.5-0.8) 2 + (0.2-0.9) 2 ) = pierwiastek (0.01 + 0.01 + 0.09 + 0.09 + 0.49) = pierwiastek (0.69) = 0.83 D (B,C) = pierwiastek ((0.6-0.8) 2 + (0.8-0.9) 2 + (0.5-0.7) 2 + (0.4-0.8) 2 + (0.2-0.9) 2 ) = pierwiastek (0.04 + 0.01 + 0.04+0.16 + 0.49) = pierwiastek (0.74) = 0.86 Szukamy najmniejszej odległości, bo jeśli te dwa punkty są najbliżej siebie, dla których mamy najmniejszą odległości! A więc najmniejsza odległość jest między punktami A i B!
Schemat algorytmu: Poszukaj obiektu najbliższego w stosunku do obiektu klasyfikowanego. Określenie klasy decyzyjnej na podstawie obiektu najbliższego. Cechy 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 wśród obiektów (wiele miar podobieństwa). 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.
Yes Refund No NO Single, Divorced MarSt Married TaxInc < 80K > 80K NO NO YES Agnieszka Nowak Brzezińska
10 Tid Refund Marital Status Taxable Income Cheat Splitting Attributes 1 Yes Single 125K No 2 No Married 100K No 3 No Single 70K No 4 Yes Married 120K No 5 No Divorced 95K Yes 6 No Married 60K No 7 Yes Divorced 220K No 8 No Single 85K Yes Refund Yes No NO MarSt Single, Divorced TaxInc < 80K > 80K Married NO 9 No Married 75K No 10 No Single 90K Yes NO YES Dane treningowe
10 Tid Refund Marital Status Taxable Income 1 Yes Single 125K No 2 No Married 100K No Cheat Married NO MarSt Yes Single, Divorced Refund No 3 No Single 70K No NO TaxInc 4 Yes Married 120K No < 80K > 80K 5 No Divorced 95K Yes 6 No Married 60K No NO YES 7 Yes Divorced 220K No 8 No Single 85K Yes 9 No Married 75K No 10 No Single 90K Yes Drzew różnych dla tego samego zbioru danych może być wiele!
10 10 Tid Attrib1 Attrib2 Attrib3 Class 1 Yes Large 125K No 2 No Medium 100K No Tree Induction algorithm 3 No Small 70K No 4 Yes Medium 120K No 5 No Large 95K Yes Induction 6 No Medium 60K No 7 Yes Large 220K No 8 No Small 85K Yes 9 No Medium 75K No Learn Model 10 No Small 90K Yes Training Set Tid Attrib1 Attrib2 Attrib3 Class Apply Model Model Decision Tree 11 No Small 55K? 12 Yes Medium 80K? 13 Yes Large 110K? Deduction 14 No Small 95K? 15 No Large 67K? Test Set
10 Zastosowanie modelu do danych Start od korzenia Test Data Refund Marital Status Taxable Income Cheat Refund No Married 80K? Yes No NO Single, Divorced MarSt Married TaxInc < 80K > 80K NO NO YES
10 Zastosowanie modelu do danych Test Data Refund Marital Status Taxable Income Cheat Yes Refund No No Married 80K? NO Single, Divorced MarSt Married TaxInc < 80K > 80K NO NO YES
10 Zastosowanie modelu do danych Test Data Refund Marital Status Taxable Income Cheat Yes Refund No No Married 80K? NO Single, Divorced MarSt Married TaxInc < 80K > 80K NO NO YES
10 Zastosowanie modelu do danych Test Data Refund Marital Status Taxable Income Cheat Yes Refund No No Married 80K? NO Single, Divorced MarSt Married TaxInc < 80K > 80K NO NO YES
10 Zastosowanie modelu do danych Test Data Refund Marital Status Taxable Income Cheat Yes Refund No No Married 80K? NO Single, Divorced MarSt Married TaxInc < 80K > 80K NO NO YES
10 Zastosowanie modelu do danych Test Data Refund Marital Status Taxable Income Cheat Yes NO Refund No MarSt Single, Divorced Married No Married 80K? No TaxInc < 80K > 80K NO NO YES
10 10 Tid Attrib1 Attrib2 Attrib3 Class 1 Yes Large 125K No 2 No Medium 100K No Tree Induction algorithm 3 No Small 70K No 4 Yes Medium 120K No 5 No Large 95K Yes Induction 6 No Medium 60K No 7 Yes Large 220K No 8 No Small 85K Yes 9 No Medium 75K No Learn Model 10 No Small 90K Yes Training Set Tid Attrib1 Attrib2 Attrib3 Class Apply Model Model Decision Tree 11 No Small 55K? 12 Yes Medium 80K? 13 Yes Large 110K? Deduction 14 No Small 95K? 15 No Large 67K? Test Set
W informatyce pod pojęciem drzewa rozumiemy spójny skierowany graf acykliczny, z którym związane jest następujące nazewnictwo: krawędzie grafu nazywane są gałęziami; wierzchołki, z których wychodzi co najmniej jedna krawędź to węzły, pozostałe zaś określane są mianem liści. Przyjmuje sie, ze wierzchołek ma co najwyżej jedną krawędź wchodzącą, a liczba krawędzi wychodzących jest równa 0 albo większa od 1; węzeł lub liść do którego nie prowadza żadne krawędzie to korzeń.
Drzewo decyzyjne jest drzewem, w którym węzły odpowiadają testom przeprowadzanym na wartościach atrybutów reguł, gałęzie są możliwymi wynikami takich testów zaś liście reprezentują część decyzyjną. Drzewa decyzyjne jako forma reprezentacji zbioru reguł zdobyły wśród programistów SI dużą popularność przede wszystkim ze względu na swą czytelność oraz znaczne zmniejszenie wymaganych do przechowania bazy, zasobów pamięci. Fakt ten zilustrowany jest tablica poniżej zawierającą przykładowa bazę reguł, oraz rysunkiem przedstawiającym odpowiadające jej drzewo decyzyjne.
Drzewo to graf bez cykli (pętli), w którym istnieje tylko jedna ścieżka między dwoma różnymi węzłami. Czyli, to graf spójny bez cykli. To drzewo reprezentujące pewien proces podziału zbioru obiektów na jednorodne klasy. Jego wewnętrzne węzły opisują sposób dokonania tego podziału, a liście odpowiadają klasom, do których należą obiekty. Z kolei krawędzie drzewa reprezentują wartości cech, na podstawie których dokonano podziału.
W przypadku spadku cen akcji: "jeżeli stopa procentowa rośnie i zyski przedsiębiorstw spadają to ceny akcji spadają" w przypadku wzrostu cen akcji: "jeżeli stopa procentowa spada, lub jeśli stopa procentowa rośnie ale jednocześnie rosną zyski przedsiębiorstw rosną to ceny akcji rosną."
Drzewa decyzyjne - przykład
Drzewa decyzyjne dla przykładu
Drzewa decyzyjne indukcja drzewa Problemy: Od jakiego atrybutu zacząć? Jakie atrybuty umieszczać w węzłach? Kiedy zaprzestać rozbudowywać drzewo? Co z atrybutami o zbyt dużej liczbie wartości lub atrybutami ilościowymi? Jak uwzględniać dane sprzeczne, brakujące lub błędne?
Zbiór dostępnych krotek(przykładów, obserwacji, próbek) dzielimy na dwa zbiory: zbiór treningowy i zbiór testowy Model klasyfikacyjny (klasyfikator)jest budowany dwu-etapowo: Uczenie (trening) klasyfikator jest budowany w oparciu o zbiór treningowy danych Testowanie dokładność (jakość) klasyfikatora jest weryfikowana w oparciu o zbiór testowy danych Zbiór danych Liczba danych = 100 2/3 1/3 Zbiór treningowy(uczący) Liczba danych = 66 Zbiór testujący (walidacyjny) Liczba danych = 34
Każdy atrybut dzieli obiekty w systemie na grupy. Grup jest tyle ile wartości atrybutu, który analizujemy. W grupie dla danej wartości są tylko obiekty opisane tą wartością atrybutu.
A B C 1 A1 B1 C1 2 A2 B1 C2 3 A1 B2 C3 4 A2 B2 C4 5 A1 B2 C1 6 A2 B2 C2 7 A1 B2 C3 8 A2 B2 C4 A B C 1 A1 B1 C1 2 A2 B1 C2 3 A1 B2 C3 4 A2 B2 C4 5 A1 B2 C1 6 A2 B2 C2 7 A1 B2 C3 8 A2 B2 C4 A1 A A2 1,3,5,7 2,4,6,8 B1 B B2 1,2 3,4,5,6,7,8 A B C 1 A1 B1 C1 2 A2 B1 C2 3 A1 B2 C3 C1 4 A2 B2 C4 5 A1 B2 C1 c2 C3 6 A2 B2 C2 1,5 7 A1 B2 C3 8 A2 B2 C4 3,7 2,6 C C4 4,8
Ilościowe numeryczne np. liczba języków obcych, waga w kg, wzrost w cm, wiek w latach etc. Jakościowe (nominalne) to cechy nienumeryczne, nie da się z nich policzyć wartości średniej, ale da się np. powiedzieć która wartość tej cechy występuje najczęściej, np. waga w kategoriach {niska, średnia, wysoka}, kolor oczu, wykształcenie, płeć z wartościami {kobieta, mężczyzna}
Algorytm generowania drzewa decyzyjnego Algorytm top-down dla zbioru uczącego S 1. Wybierz najlepszy atrybut A 2. Rozbuduj drzewo poprzez dodanie do węzła nowych gałęzi odpowiadającym poszczególnym wartościom atrybutu A 3. Podziel zbiór S na podzbiory S1,..., Sn zgodnie z wartościami atrybutu A i przydziel do odpowiednich gałęzi 4. Jeśli wszystkie przykłady Si należą do tej samej klasy C zakończ gałąź liściem wskazującym C; w przeciwnym razie rekurencyjnie buduj drzewo Ti dla Si (tzn. powtórz kroki 1-4)
Wybór atrybutu do budowania drzewa
Odległość < 20 km tak nie Pogoda słonecznie deszczowo Pojęcia: korzeń drzewa, węzeł wewnętrzny, węzeł końcowy (liść), gałąź, ścieżka.
y 2 a 1 1 11 1 2 2 2 2 2 2 2 2 2 y 1 y 2 a 1 1 11 1 2 2 2 2 2 2 2 2 2 y 1 a 2 a 3 y 2 < a 1 y 1 < a 3 tak nie tak nie 2 y 1 < a 2 y 2 < a 1 2 tak nie tak nie 1 2 2 1
Jeden zbiór danych wiele możliwych drzew Czym należy się kierować wybierając (konstruując) drzewo?
Globalne Lokalne - średnie prawdopodobieństwo błędu - średnia długość ścieżki - liczba węzłów drzewa - stopień zróżnicowania danych - przyrost informacji - współczynnik przyrostu informacji i inne
1. Cecha porównana z wartością progową (typowe dla atrybutów ciągłych). y i > i tak nie 2. Uwzględnione wszystkie możliwe wartości danego atrybutu (typowe dla atrybutów nominalnych). y i y i1 y i2 y ik
Najczęściej reguły decyzyjne budowane są na podstawie pojedynczych cech źródłowych. Prowadzi to do dzielenia przestrzeni cech hiperłaszczyznami prostopadłymi do osi cech. Wybierając cechę można się kierować jedną ze znanych miar, np. przyrostem informacji, wskaźnikiem przyrostu informacji, wskaźnikiem zróżnicowania danych itd.
1.Dla każdego atrybutu y i oblicz wartość wybranej miary. 2.Wybierz atrybut optymalny w sensie powyższej miary. 3.Od danego węzła utwórz tyle gałęzi, ile różnych wartości przyjmuje atrybut y i. t y i y i1 yi2 y ik t 1 t 2 t k
Entropia Entropia w ramach teorii informacji jest definiowana jako średnia ilość informacji, przypadająca na znak symbolizujący zajście zdarzenia z pewnego zbioru. Zdarzenia w tym zbiorze mają przypisane prawdopodobieństwa wystąpienia. gdzie p(i) - prawdopodobieństwo zajścia zdarzenia i.
Logarytm Logarytm przy podstawie a z liczby b, zapisywany log a b to taka liczba c, że podstawa a podniesiona do potęgi c daje logarytmowaną liczbę b. Symbolicznie: log a b = c a c =b gdzie a>0,a 1 oraz b > 0. Na przykład log 2 8 = 3, ponieważ 2 3 =8.
Entropia Entropię można interpretować jako niepewność wystąpienia danego zdarzenia elementarnego w następnej chwili. Jeżeli następujące zdarzenie występuje z prawdopodobieństwem równym 1, to z prostego podstawienia wynika, że entropia wynosi 0, gdyż z góry wiadomo co się stanie - nie ma niepewności. Własności entropii: jest nieujemna jest maksymalna, gdy prawdopodobieństwa zajść zdarzeń są takie same jest równa 0, gdy stany systemu przyjmują wartości 0 albo 1 własność superpozycji - gdy dwa systemy są niezależne to entropia sumy systemów równa się sumie entropii.
Entropia dwie decyzje
Średnia liczba bitów do zakodowania dowolnego wektora wynosi: Outlook = sunny info([2,3]) = entropy(2/5,3/5) = -2 / 5log(2 / 5) - 3/ 5log(3/ 5) = 0.971bits Outlook = overcast info([4,0]) = entropy(1,0) = -1log(1) - 0log(0) = 0 bits Outlook = rainy info([3,2]) = entropy(3/5,2/5) = -3/5log(3/ 5) - 2 /5log(2/ 5) = 0.971bits Wartość dla atrybutu: info([3,2],[4,0],[3,2]) = (5/14) 0.971+ (4 /14) 0 + (5/14) 0.971= 0.693 bits
gain("outlook") = info([9,5]) - info([2,3],[4,0],[3,2]) = 0.940-0.693 = 0.247 bits Przyrosty informacji dla poszczególnych atrybutów w danych testowych: gain("outlook") = 0.247 bits gain("temperature") = 0.029bits gain("humidity") = 0.152 bits gain("windy") = 0.048 bits
gain("temperature") = 0.571bits gain("humidity") = 0.971bits gain("windy") = 0.020 bits
Uwaga: Nie wszystkie liście muszą być czyste. Czasami identyczne instancje mają różne klasy. Proces budowy drzewa zatrzymuje się gdy dalszy podział nie jest możliwy (lub spełnione jest inne kryterium stopu)
Drzewo binarne Drzewo niebinarne, regresyjne
Mając zbiór obiektów S, sprawdź, czy należą one do tej samej klasy. Jeśli tak, to zakończ pracę. 2. W przeciwnym przypadku rozważ wszystkie możliwe podziały zbioru S na podzbiory S 1,S 2,,S n tak, aby były one jak najbardziej jednorodne. 3. Dokonaj oceny jakości każdego z tych podziałów zgodnie z przyjętym kryterium i wybierz najlepszy z nich. 4. Podziel zbiór S w wybrany sposób. 5. Wykonaj kroki1-4 rekurencyjnie dla każdego z podzbiorów. S S1 S2 Sn S11 S12 S1k
Algorytmy Id3 Quinlan 1986 C4.5 na podstawie id3 Quinlan 1993 Cart Breiman 1984 Chaid już lata 70-te Chi-squared- Automatic-Interaction-Detection (oryginalnie tylko dla danych nominalnych) Hunt s Algorithm (jeden z pierwszych) SLIQ,SPRINT
Bardzo prosty algorytm Opiera się na kryterium information gain Bada czy wszystkie obiekty w danym poddrzewie mają tę samą wartość analizowanej cechy ID3 nie zakłada prunningu drzew ID3 nie dopuszcza też danych numerycznych ani wartości brakujących
Algorytm ID 3 Quinlana Cechy algorytmu: wybór atrybutów, dla których kolejno przeprowadzane są testy, aby końcowe drzewo było jak najprostsze i jak najefektywniejsze. Wybór opiera się na liczeniu entropii, która decyduje, który z atrybutów da największy przyrost informacji. Czyli ten, który podzieli zbiór przykładów na jak najbardziej równe podzbiory. Poważną wadą jest wymóg dyskretności wszystkich cech przestrzeni klasyfikacji. Ta sama metoda ID3 może dawać bardzo różne rezultaty dla różnych metod dyskretyzacji. Kryterium oceniającym podziały jest kryterium przyrostu czystości. Miarą niejednorodności węzła jest miara entropii. Przyrost czystości jest nazywany wówczas przyrostem informacyjnym. Metoda ta polega na rekurencyjnym dzieleniu węzłów na podwęzły, aż do uzyskania maksymalnego drzewa. W każdym kroku metoda dzieli dany węzeł na tyle podwęzłów ile wartości ma najbardziej informatywna cecha (cechą oferująca maksymalną redukcję entropii). Niekorzystną konsekwencją takiej strategii jest tendencja do częstszego wykorzystywania cech, które mają dużą (w stosunku do innych) liczbę możliwych wartości.
Algorytm ID 3 Quinlana Zalety algorytmu: prostota algorytmu, jeżeli w zbiorze treningowym nie ma zjawiska hałasu, tzn. nie ma rekordów, które dla tych samych wartości atrybutów mają przypisaną różną kategorię, wtedy ID3 daje poprawny wynik dla wszystkich rekordów ze zbioru treningowego. Wady algorytmu: algorytm nie radzi sobie z ciągłymi dziedzinami atrybutów (zakłada, że wartości atrybutów są dyskretne), zakłada, że wszystkie rekordy w zbiorze treningowym są wypełnione. Algorytm nie zadziała, jeżeli choć jeden rekord zawiera niepełne dane. duży rozmiar drzewa, brak odporności na zjawisko overfitting - algorytm nie radzi sobie z danymi zaburzającymi ogólną ich informację może to prowadzić do wysokiego współczynnika błędów na danych testowych.
Rozwinięcie ID3 Stosuje kryterium gain ratio Podział drzewa kończy się gdy liczba obiektów do podziału jest już mniejsza niż pewna wartości progowa Przycinanie drzew jest możliwe już po zbudowaniu drzewa Dopuszcza się wartości numeryczne
Algorytm C4.5 Podział danych na podwęzły wprowadza wówczas wagi dla wektorów treningowych, które dla wektora z brakującą wartością atrybutu decyzyjnego odpowiadają rozkładowi pozostałych danych w podwęzłach. Stosownej modyfikacji podlegają wówczas współczynniki Pi ze wzoru a zamiast mocy zbiorów liczy się sumy wag elementów tych zbiorów. Współczynniki pi są uwzględniane również przy podejmowaniu decyzji na podstawie drzewa, by wyliczyć prawdopodobieństwa wpadania do poszczególnych węzłów oraz przynależenia do poszczególnych klas. System C4.5 oprócz metody indukcji drzewa decyzji oferuje klasyfikator będący zbiorem reguł logiki klasycznej. Reguły traktowane są tutaj jako różny od drzewa model klasyfikacji, ponieważ nie są one wierną reprezentacją drzewa. Reguły wiernie opisujące drzewo są poddawane procesowi oczyszczania: w każdej regule usuwane są przesłanki, których pominięcie nie powoduje spadku jakości klasyfikacji zbioru treningowego. Wykonywane jest dla każdej reguły z osobna, można w ten sposób otrzymać klasyfikator istotnie różny od drzewa (zwykle dający w testach niższe wartości poprawności).
Buduje drzewa binarne Kryterium podziału jest tzw. twoing criteria Drzewo można przycinać stosując kryterium kosztu i złożoności przycinania Buduje drzewa regresyjne (w liściach są wartości rzeczywiste a nie klasy) Algorytm stara się tak podzielić obiekty by minimalizować błąd predykcji (metoda najmniejszych kwadratów) Predykcja w każdym liściu drzewa opiera się na ważonej średniej dla węzła
Przewidziany dla wartości nominalnych. Przewiduje wartości brakujące. Nie przewiduje przycinania drzewa. Nie buduje drzew binarnych w budowanym drzewie dany węzeł może mieć więcej niż 2 potomków. Jeśli mamy dane nominalne to mamy od razu podział na kategorie. Jeśli mamy dane ilościowe musimy podzielić obserwacje na kategorie tak by mniej więcej każda kategoria miała tyle samo obserwacji. Wybiera się z wszystkich cech (pogrupowanych w kategorie) takie pary, które się od siebie najmniej różnią - oblicza się test F. Jeśli test nie wykaże istotnej różnicy taką parę cech łączy się w jedną kategorię i ponownie szuka się kolejnej pary. Potem wybiera się taką cechę, która daje najbardziej istotny podział i robi się to tak długo aż kolejne wybierane cechy dają wartość niższą niż zadana wartość p. Proces jest powtarzany tak długo, póki możliwe są kolejne podziały.
Cechy algorytmu Algorytm ID3 Algorytm C4.5 Wartości atrybutów Odporność na brak wartości atrybutów Odporność na nadmierne dopasowanie (ang. overfitting) tylko dyskretne dla wartości ciągłych niezbędny proces dyskretyzacji wartości atrybutów brak algorytm nie zadziała jeśli w zestawie danych wejściowych brakuje chodź jednej wartości atrybutu brak z reguły algorytm tworzy duże drzewa dyskretne jak i ciągłe dla atrybutów ciągłych algorytm rozpatruje wszystkie możliwe podziały na dwa podzbiory zdeterminowane punktem podziału, atrybuty ciągłe mogą pojawiać się na wielu poziomach tej samej gałęzi drzewa, dla każdego z możliwych podziałów ocenia się jego jakość mierząc wartość względnego zysku informacyjnego i wybiera ten, który maksymalizuje zysk. jest przyrost informacji nie bierze pod uwagę danych, dla których brakuje wartości atrybutu, przyrost informacji skaluje się mnożąc go przez częstość występowania wartości tej cechy w próbie treningowej jest zastosowanie przycinania bardzo skutecznie zapobiega nadmiernemu rozrostowi drzewa dane poddrzewo, które ma zostać przycięte zastępowane jest przez tą wartość atrybutu, która w przycinanym poddrzewie występuje najczęściej
Drzewo decyzyjne powstaje na podstawie rekurencyjnego podziału zbioru uczącego na podzbiory, do momentu uzyskania ich jednorodności ze względu na przynależność obiektów do klas. Postuluje się jak najmniejszą liczbę węzłów w powstałym dendrogramie, co powinno zapewnić prostotę powstałych reguł klasyfikacji. Ogólny schemat tworzenia drzewa decyzyjnego na podstawie zbioru uczącego można przedstawić w pięciu punktach: 1. Badając zbiór obiektów S należy sprawdzić, czy należą one do tej samej klasy. Jeżeli tak, można zakończyć pracę. 2. Jeżeli analizowane obserwacje nie należą do jednej klasy, należy zbadać wszystkie możliwe podziały zbioru S na podzbiory jak najbardziej jednorodne. 3. Następnie należy ocenić jakość każdego podzbioru według przyjętego kryterium i wybrać najlepszy z nich. 4. W następnym kroku należy podzielić zbiór początkowy w wybrany sposób. 5. Wyżej opisane algorytm należy zastosować dla każdego z podzbiorów.
Rozważmy binarną klasyfikację C. Jeśli mamy zbiór przykładów S, dla którego potrafimy stwierdzić, które przykłady ze zbioru S dają wartość pozytywną dla C (p + ) a które wartość negatywną dla C (p - ) wówczas entropię (ang. Entropy) dla S obliczymy jako: Zatem mając daną klasyfikację na większą liczbę klas (C dzieli się na kategorie c 1,..., c n ) i wiedząc które przykłady ze zbioru S mają klasę c i obliczymy odpowiednią proporcję dla p i, a wtedy entropię dla S policzymy jako:
Interpretacja wartości: -p*log 2 (p) jest taka, że kiedy p osiąga wartość bliską zeru (0) (tak się dzieje m.in. wtedy, gdy kategoria ma tylko kilka przykładów (jest mało liczna), wtedy wartość log(p) osiąga dużą wartość ujemną, ale po wymnożeniu przez wartość p ostatecznie cała entropia osiąga wartość bliską 0. Podobnie, jeśli p osiąga wartość bliską 1 (gdy kategoria rozważana pochłania większość przykładów ze zbioru), wtedy wartość log(p) jest bliska 0, a wtedy całościowa entropia także osiąga wartość 0. To ma na celu pokazać, że entropia osiąga wartość bliską 0 albo wtedy gdy dla danej kategorii jest bardzo mało przykładów, albo wręcz dana kategoria pochłania większość przykładów zadanych w analizowanym zbiorze.
Na każdym etapie budowy drzewa trzeba wybrać atrybut który będzie tworzył dany węzeł w drzewie. Na początku powstaje problem, który atrybut powinien budować korzeń drzewa. W tym celu oblicza się zysk informacyjny jaki da dany atrybut jeśli to jego użyjemy do budowy węzła w drzewie: Jeśli więc mamy atrybut A z jego możliwymi wartościami, dla każdej możliwej wartości v, obliczymy entropię dla tej wartości danego atrybutu (S v ):
Information Gain przyrost informacji Wybór najlepszego atrybutu do węzła Information gain miara zmiany entropii wybieramy atrybut, dla którego ta miara jest największa
Drzewa decyzyjne Najpowszechniejsza forma reprezentowania wiedzy przez dostępne oprogramowanie. Węzły są opisywane przez atrybuty eksplorowanej relacji, krawędzie opisują możliwe wartości dla atrybutu. Klasyfikacja odbywa się poprzez przeglądanie drzewa od korzenia do liści przez krawędzie opisane wartościami atrybutów.
Drzewa decyzyjne Przykład: automatyczny podział kierowców na powodujących i nie powodujących wypadki drogowe Dwie klasy: TAK i NIE
Drzewa decyzyjne IF marka = BMW AND wiek_kier < 25 THEN wypadek = TAK
Drzewa decyzyjne Drzewo decyzyjne jest formą opisu wiedzy klasyfikującej Węzłom drzewa odpowiadają atrybuty eksplorowanej relacji Krawędzie opisują wartości atrybutów Liśćmi drzewa są wartości atrybutu klasyfikacyjnego
Drzewa decyzyjne - przykład
Drzewa decyzyjne dla przykładu
Ocena jakości drzewa Jakość drzewa ocenia się: rozmiarem: im drzewo jest mniejsze, tym lepsze małą liczbą węzłów, małą wysokością, lub małą liczbą liści; dokładnością klasyfikacji na zbiorze treningowym dokładnością klasyfikacji na zbiorze testowym
Przykład obiekt pogoda temperatura wilgotność wiatr grać(x) x 1 słonecznie gorąco wysoka słaby nie x 2 słonecznie gorąco wysoka silny nie x 3 pochmurno gorąco wysoka słaby tak x 4 deszczowo łagodnie wysoka słaby tak x 5 deszczowo zimno normalna słaby tak x 6 deszczowo zimno normalna silny nie x 7 pochmurno zimno normalna silny tak x 8 słonecznie łagodnie wysoka słaby nie x 9 słonecznie zimno normalna słaby tak x 10 deszczowo łagodnie normalna słaby tak x 11 słonecznie łagodnie normalna silny tak x 12 pochmurno łagodnie wysoka silny tak x 13 pochmurno gorąco normalna słaby tak x 14 deszczowo łagodnie wysoka silny nie
Drzewa decyzyjne - przykład
W tabeli znajdują się cztery atrybuty warunkowe (pogoda, temperatura, wilgotność wiatr) oraz atrybut decyzyjny grać. Na początku należy wyznaczyć liczność każdego zbiorów trenujących: T tak = {3, 4, 5, 7, 9, 10, 11, 12, 13 } = 9, oraz T nie = {1, 2, 6, 8, 14} = 5. T(pogoda, słonecznie) = {1, 2, 8, 9, 11} = 5 T tak( pogoda, słonecznie) = {9, 11} = 2 T nie (pogoda, słonecznie) = {1, 2, 8} = 3 T(pogoda, pochmurno) = {3, 7, 12, 13} = 4 T tak (pogoda, pochmurno) = {3, 7, 12, 13} = 4 T nie (pogoda, pochmurno) = {} = 0 T(pogoda, deszczowo) = {4, 5, 6, 10, 14} = 5 T tak (pogoda, deszczowo) = {4, 5, 10} = 3 T nie (pogoda, deszczowo) = {6, 14} = 2
Po obliczeniu liczności zbiorów trenujących należy obliczyć entropię. d d Korzystając ze wzoru, Ptr Ptr Etr ( P) log d C Ptr Ptr przyjmując logarytmy dwójkowe kolejno obliczamy: Ent(S) 9 9 5 5 Ze wzoru log 2 log 2 0,4097 0,5305 0,9402 14 14 14 14 d P I( P) P d C log d P P obliczamy informację zawartą w zbiorze etykietowanych przykładów P I(P) Ptr Następnie ze wzoru Et ( P) Etr ( P) obliczam entropię ważoną: 9 log 14 9 14 r R t P 5 log 14 5 14 2 9402 2 0,4097 0,5305 0, Ent(S Pogoda) 5 2 2 3 3 ( log log 2 ) 14 5 5 5 5 5 14 4 4 4 0 0 ( log log ) 14 4 4 4 4 2 2 2 3 3 2 2 5 5 ( log 2 log 2 ) *0.97 *0.97 0.6928 5 5 5 5 14 14
Ent (S Temperatura) 4 2 2 2 2 ( log log 2 ) 14 4 4 4 4 4 14 6 4 4 2 2 ( log log ) 14 6 6 6 6 2 2 2 3 3 1 1 4 6 4 ( log 2 log 2 ) *1 *0.91 *0.81 0. 9110 4 4 4 4 14 14 14 Ent (S Wilgotność) Ent(S Wiatr) 7 3 3 4 4 7 6 6 1 1 ( log log 2 ) ( log 2 log 2 ) 14 7 7 7 7 14 7 7 7 7 7 7 *0.98 *0.59 0.7884 14 14 8 6 6 2 2 ( log log 2 ) 14 8 8 8 8 2 6 3 3 3 3 ( log log ) 8 6 2 *0.81 *1 0. 8921 14 6 6 6 6 14 14 2 2 Teraz możemy policzyć przyrost informacji dla każdego atrybutu, korzystając ze wzoru na przyrost informacji ( P) I( P) E ( P) Gain Information (Pogoda) = 0.9402 0.6935 = 0.2474 Gain Information (Temperatura) = 0.9402 0.9110 = 0.0292 Gain Information (Wilgotność) = 0.9402 0.7884 = 0.1518 Gain Information (Wiatr) = 0.9402 0.8921 =0.0481 Z powyższych obliczeń wynika, że największy przyrost informacji da atrybut pogoda Rysujemy zatem drzewo decyzyjne g t t
obiekt pogoda temperatura wilgotność wiatr grać(x) x 1 słonecznie gorąco wysoka słaby nie x 2 słonecznie gorąco wysoka silny nie obi ekt pogoda temperat ura wilgotno ść wiatr grać x 3 pochmurno gorąco wysoka słaby tak x 4 deszczowo łagodnie wysoka słaby tak x 5 deszczowo zimno normalna słaby tak x 1 x 2 słoneczni e słoneczni e gorąco wysoka słaby nie gorąco wysoka silny nie x 6 deszczowo zimno normalna silny nie x 7 pochmurno zimno normalna silny tak x 8 słonecznie łagodnie wysoka słaby nie x 9 słonecznie zimno normalna słaby tak x 8 x 9 x 11 słoneczni e słoneczni e słoneczni e łagodnie wysoka słaby nie zimno normalna słaby tak łagodnie normalna silny tak x 10 deszczowo łagodnie normalna słaby tak x 11 słonecznie łagodnie normalna silny tak obiekt pogoda tempera tura wilgotność wiatr grać (x) x 12 pochmurno łagodnie wysoka silny tak x 13 pochmurno gorąco normalna słaby tak x 14 deszczowo łagodnie wysoka silny nie x 3 pochmurno gorąco wysoka słaby tak x 7 pochmurno zimno normalna silny tak x 12 pochmurno łagodni e wysoka silny tak x 13 pochmurno gorąco normalna słaby tak obiekt pogoda temperatura wilgotno ść wiatr grać x 4 deszczowo łagodnie wysoka słaby tak x 5 deszczowo zimno normalna słaby tak x 6 deszczowo zimno normalna silny nie x 10 deszczowo łagodnie normalna słaby tak x 14 deszczowo łagodnie wysoka silny nie
obie kt pogoda temperatura wilgotność wiatr grać POGODA x 1 słonecznie gorąco wysoka słaby nie SŁONECZNIE POCHMURNO DESZCZOWO??? x 2 słonecznie gorąco wysoka silny nie x 8 słonecznie łagodnie wysoka słaby nie x 9 słonecznie zimno normalna słaby tak x 11 słonecznie łagodnie normalna silny tak Rozpoczynamy drugą iterację algorytmu: generujemy lewe poddrzewo wykonując kolejne obliczenia entropii oczywiście w ramach atrybutów z podzbioru Pogoda Słonecznie 3 0 0 3 3 2 2 2 0 0 Ent(S Wilgotność) = ( log log ) 0 2 2 ( log 2 log 2 ) 5 3 3 3 3 5 2 2 2 2 Ent(S Wiatr) = 3 1 1 2 2 2 1 1 1 1 3 2 Ent(S Temperatura) ( log 2 log 2 ) 5 3 3 3 3 ( log 2 log 2 ) *0.9182 *1 0. 15092 2 0 0 2 5 2 2 2 2 1 2 1 2 1 5 1 1 1 5 1 0 0 ( log 2 log 2 ) ( log log 2 ) ( log 2 log 2 ) 5 2 2 2 2 5 2 2 2 2 5 1 1 1 1 2 2 *1 5 Następnie po obliczeniu entropii generujemy przyrost informacji: Gain Information (PogodaSłonecznie + Wilgotność) = 0.97 Gain Information (PogodaSłonecznie + Wiatr) = 0.97 0.15092 0,81908 Gain Information (PogodaSłonecznie + Temperatura) = 2 Największy przyrost informacji spośród tych atrybutów da wilgotność dorysowujemy zatem kolejny węzeł drzewa decyzyjnego. 2 5 0.97 0 0 0.57 5
obiekt pogoda temperat ura wilgotność wiatr grać (x) POGODA SŁONECZNIE POCHMURNO DESZCZOWO WILGOTNOŚĆ TAK? x 3 pochmurno gorąco wysoka słaby tak x 7 pochmurno zimno normalna silny tak x 12 pochmurno łagodnie wysoka silny tak x 13 pochmurno gorąco normalna słaby tak Dla środkowego poddrzewa nie ma potrzeby tworzenia kolejnych węzłów ponieważ wszystkie atrybuty tego podzbioru należą do tej samej klasy decyzyjnej. Możemy zatem wyznaczyć węzeł dla prawego poddrzewa: Ent(S PogodaDeszczowo+Wilgotność)= Ent(S PogodaDeszczowo+Wiatr)= Ent(S PogodaDeszczowo+Temperatura)= obiekt pogoda temperatura wilgotno ść wiatr grać 2 1 1 1 1 3 2 2 1 1 ( log log 2 ) ( log 2 log 2 ) 5 2 2 2 2 5 3 3 3 3 2 3 *1 *0.9182 0.15092 5 5 3 3 3 0 0 2 0 0 2 2 ( log 2 log 2 ) ( log 2 log 2 ) 0 5 3 3 3 3 5 2 2 2 2 3 2 2 1 1 ( log log ) 2 1 1 1 1 2 ( log 2 log 2 ) 0 5 3 3 3 3 5 2 2 2 2 3 2 *0.9182 *1 0 0.15092 5 5 2 2 x 4 deszczowo łagodnie wysoka słaby tak x 5 deszczowo zimno normalna słaby tak x 6 deszczowo zimno normalna silny nie x 10 deszczowo łagodnie normalna słaby tak x 14 deszczowo łagodnie wysoka silny nie
3 2 GainInformation(PogodaDeszczowo+Temperatura)= 0.97 *0.9182 *1 0 0,01908 5 5 GainInformation(PogodaDeszczowo+Wilgotność)= 2 3 0.97 *1 *0.9182 0,01908 5 5 GainInformation(PogodaDeszczowo+Wiatr)= 0.97 Możemy zatem dorysować kolejny węzeł drzewa: POGODA SŁONECZNIE POCHMURNO DESZCZOWO WILGOTNOŚĆ TAK WIATR WYSOKA SŁABY SILNY Koniec TAK NIE TAK NIE
Każde drzewo decyzyjne jest reprezentacją pewnego zbioru reguł decyzyjnych, przy czym każdej ścieżce od korzenia do liścia odpowiada jedna reguła. -Jeżeli Kłopoty z kręgosłupem=tak, to Sport=Pływanie -Jeżeli Kłopoty z kręgosłupem=nie & Kontuzja kolana=tak, to Sport=Pływanie -Jeżeli Kłopoty z kręgosłupem=nie & Kontuzja kolana=tak, to Sport=Biegi Oczywiście, nie każdy zbiór reguł będzie miał swój odpowiednik w postaci drzewa. Możliwe jest także, że algorytm generujący drzewo decyzyjne będzie generował również zbiór reguł decyzyjnych nie pokrywających się z tymi, które wynikają bezpośrednio z samej struktury drzewa. Zabieg ten stosuje się, aby dostarczyć reguły w formie jak najbardziej zminimalizowanej.
-Jeżeli Kłopoty z kręgosłupem=tak, to Sport=Pływanie -Jeżeli Kłopoty z kręgosłupem=nie & Kontuzja kolana=tak, to Sport=Pływanie -Jeżeli Kłopoty z kręgosłupem=nie & Kontuzja kolana=tak, to Sport=Biegi
y 2 1 1 1 11 1 1 2 2 2 2 2 2 2 2 1 2 2 y 1 Cel: zlikwidować nadmierne dopasowanie klasyfikatora do niepoprawnych danych.
Na podstawie oddzielnego zbioru przycinania Na podstawie zbioru uczącego Wykorzystujące zasadę minimalnej długości kodu
Metody przycinania drzew można dzielić na grupy według różnych kryteriów. Podział podstawowy to: -Przycinanie w trakcie wzrostu (ang. pre-pruning). Drzewo jest przycinane w trakcie jego tworzenia tzn. algorytm rozrostu zawiera kryterium stopu zapobiegające powstawaniu zbyt dużych drzew. Bardzo trudno jest znaleźć takie kryterium, co prowadzi do tego, że metoda ta nie daje zbyt dobrych wyników. Przykładem może być tutaj algorytm ID3 IV, gdzie jako jedno z kryteriów stopu został wprowadzony test χ2. -Przycinanie rozrośniętego drzewa (ang. post-pruning). Generowane jest pełne drzewo, a przycinanie następuje potem. Proces ten jest rozpoczynany przy liściach i sukcesywnie wędruje w kierunku korzenia. Przykładem stosującym takie podejście może być algorytm C4.5. -Metody mieszane Kombinacje metod z dwóch poprzednich grup.
Błąd szacowany na podstawie odrębnego zbioru przycinania. Węzły przeglądane od dołu. Poddrzewo T t zastępowane liściem t gdy error(t) error(t t ). Procedura powtarzana dopóki dalsze przycinanie nie zwiększa błędu. Zalety: prostota, niski koszt obliczeniowy. Wady: konieczność poświęcenia części danych na przycinanie; czasem drzewo zostaje przycięte zbyt mocno (zwłaszcza gdy zbiór przycinania jest znacznie mniejszy niż zbiór uczący).
< 20 wiek 20 typ y A B tak nie Zbiór przycinania kolor wiek typ y Klasa 1 czarny 11 B tak + 2 biały 23 B tak - 3 czarny 22 A nie - 4 czarny 18 B nie + 5 czarny 15 B tak - + +6-0 biały + +6-1 kolor - +0-4 1 4 5 czarny A + +7-2 biały typ kolor B - +1-5 2 czarny - +0-6 A typ + +5-1 3 B - +0-9 6 6 biały 27 B nie +
< 20 wiek 20 + +6-5 A + +6-0 1 4 5 biały typ + +6-1 B kolor - +0-4 1 4 5 czarny A + +7-2 biały typ tak kolor B - +1-5 2 y czarny - +0-6 A nie typ + +5-1 3 B - +0-9 6
1 4 5 + +12-5 A typ < 20 B wiek tak 20 y nie + +6-0 + +6-5 1 4 5 biały kolor czarny A typ B typ - +0-6 + +5-1 - +0-9 A B 3 6 + +7-2 - +1-5 2
< 20 wiek 20 1 4 5 + +12-5 tak y nie kolor typ biały czarny A B + +8-7 2 A + +7-2 typ B - +1-5 - +0-6 + +5-1 3 - +0-9 6 2
< 20 wiek 20 1 4 5 + +12-5 tak y nie biały typ kolor czarny - +0-6 A typ + +5-1 B - +0-9 - +5-10 3 6 A B 3 6 + +7-2 - +1-5 2
< 20 wiek 20 + +12-5 tak y nie biały kolor czarny - +5-10 typ - +0-6 A + +7-2 B - +1-5
Aby uniknąć nadmiernego przystosowania się hipotez do przykładów, tzw. 'przeuczenia' w algorytmach opartych na drzewach decyzyjnych. Nadmiernie dopasowane drzewo charakteryzuje się małym błędem dla przykładów trenujących, jednak na innych przykładach ma zbyt duży błąd. Taka sytuacja może mieć miejsce na przykład w przypadku zaszumienia zbioru trenującego i zbytniego dopasowania się algorytmu do błędnych danych. Przycinanie polega na zastąpieniu poddrzewa liściem reprezentującym kategorię najczęściej występującą w przykładach z usuwanego poddrzewa. Kategoria ta zwana jest kategorią większościową. Przycięcie drzewa, oprócz zwiększenia dokładności klasyfikacji dla danych rzeczywistych prowadzi także do uproszczenia budowy drzewa.
szybka klasyfikacja zrozumiały proces decyzyjny możliwość stosowania cech różnego typu efektywne z punktu widzenia przechowywania w pamięci
im więcej klas oraz im bardziej się one nakładają, tym większe drzewo decyzyjne trudno zapewnić jednocześnie wysoką jakość klasyfikacji i małe rozmiary drzewa lokalna optymalizacja metody nieadaptacyjne
W celu zbadania skuteczności danego klasyfikatora należy przeprowadzić szereg testów z wykorzystaniem dwóch zbiorów: treningowego, na podstawie którego klasyfikator "uczy się" poprawnej klasyfikacji, oraz testowego, na podstawie którego jest sprawdzana jakość generalizacji badanego klasyfikatora tzn. jak dobrze, klasyfikator "nauczony" na zbiorze treningowym, radzi sobie z klasyfikacją danych ze zbioru treningowego. Oczywiście, aby ocenić jakość klasyfikacji zbioru testowego, konieczna jest znajomość prawdziwej przynależność jego elementów do klas i porównanie jej z przyporządkowaniem elementów do klas zaproponowanym przez klasyfikator. Idealną sytuacją byłoby, gdyby istniała możliwość dysponowania zbiorami, treningowym i testowym, pochodzącymi z różnych badań i zawierającymi odpowiednio duże ilości danych. Jednak, zazwyczaj, z powodu różnych trudności praktycznych, do dyspozycji jest tylko jeden zbiór danych (w dodatku często o małej liczebności).
Aby poradzić sobie z tym problemem stosuje się kilka technik podziału zbioru na treningowy i testowy: Dane wejściowe treningowy zbiór krotek (przykładów, obserwacji, próbek), będących lista wartości atrybutów opisowych (tzw. deskryptorów) i wybranego atrybutu decyzyjnego (ang. class label attribute) Dane wyjściowe model (klasyfikator), przydziela każdej krotce wartość atrybutu decyzyjnego w oparciu o wartości pozostałych atrybutów (deskryptorów)
Etap 1: budowa modelu (klasyfikatora) opisującego predefiniowany zbiór klas danych lub zbiór pojęć Etap 2: zastosowanie opracowanego modelu do klasyfikacji nowych danych
Zbiór dostępnych krotek (przykładów, obserwacji, próbek) dzielimy na dwa zbiory: zbiór treningowy i zbiór testowy Model klasyfikacyjny (klasyfikator) jest budowany dwuetapowo: Uczenie (trening) klasyfikator jest budowany w oparciu o zbiór treningowy danych Testowanie dokładność (jakość) klasyfikatora jest weryfikowana w oparciu o zbiór testowy danych
Wynik klasyfikacji: Reguły klasyfikacyjne postaci if - then Formuły logiczne Drzewa decyzyjne Dokładność modelu: Dla przykładów testowych, dla których znane są wartości atrybutu decyzyjnego, wartości te są porównywane z wartościami atrybutu decyzyjnego generowanymi dla tych przykładów przez klasyfikator Współczynnik dokładności (ang. accuracy rate) = % procent przykładów testowych poprawnie zaklasyfikowanych przez model
Prosta walidacja Jest to najbardziej typowy rodzaj walidacji, w którym próbę dzieli się losowo na rozłączne zbiory: uczący i testowy. Zwykle zbiór testowy stanowi mniej niż 1/3 próby. Niektórzy nie zaliczają tego typu walidacji do metody sprawdzianu krzyżowego. K-krotna walidacja W tej metodzie, oryginalna próba jest dzielona na K podzbiorów. Następnie kolejno każdy z nich bierze się jako zbiór testowy, a pozostałe razem jako zbiór uczący i wykonuje analizę. Analiza jest więc wykonywana K razy. K rezultatów jest następnie uśrednianych (lub łączonych w inny sposób) w celu uzyskania jednego wyniku. Leave-one-out Jest to odmiana walidacji K-krotnej, gdy N-elementowa próba jest dzielona na N podzbiorów, zawierających po jednym elemencie. Stosowana często dla małych zbiorów danych.
Metoda wywodzi sie z teorii detekcji sygnału. Eksperci analizując badaną dziedzinę, dokonują oceny poszczególnych obiektów, wykrywają patologie, a wyniki ich binarnych decyzji (patologia jest bądź nie występuje), nanoszone są w postaci punktów na układ współrzędnych ROC, przy czym każdy punkt reprezentuje estymacje prawdopodobieństwa prawdziwej i fałszywej decyzji kolejnego specjalisty, czyli skuteczność jego pracy. Znanym jest przecież zjawisko polegające na tym, że zwykle analiza przynosi pewną liczbę przypadków poprawnych decyzji, potwierdzających rzeczywistą obecność patologii (prawdziwe pozytywne) oraz jej brak (prawdziwe negatywne), zdarzają się jednak również tzw. wskazania błędne (fałszywe negatywne i fałszywe pozytywne), tym liczniejsze im większy wpływ złe dobranych parametrów czy np błędne dane, słabe warunki pomiarowe, brak doświadczenia.
Krzywa ROC powstaje w wyniku umieszczenia punktów na osi współrzędnych, gdzie: oś rzędnych reprezentuje czułość (ang. sensitivity), a oś odciętych - trafność (ang. specificity) określaną często jako wrażliwość.
Czułość określana jest przez procentową zawartość liczby decyzji prawdziwie pozytywnych Npp wśród wszystkich ocen stwierdzających patologie Npat według zależności: trafność Czułość pokazuje więc zdolność eksperta do wykrycia wszystkich patologii. Z kolei trafność opisuje poprawność procesu detekcji, czyli mówi o skuteczności w podejmowaniu trafnych decyzji. Definiowana jest jako liczba decyzji prawdziwie negatywnych do wszystkich patologii, z tym samym pokazuje Zdolność do unikania błędnych decyzji co do braku oznak patologii. Wyrażana jest wzorem:
TN (true negative) - liczba prawidłowych klasyfikacji stanu normalnego FP (false positive) - liczba nieprawidłowych klasyfikacji stanu normalnego jako patologicznego FN (false negative) - liczba nieprawidłowych klasyfikacji stanu patologicznego jako normalnego TP (true positive) - liczba prawidłowych klasyfikacji stanu patologicznego Wówczas wrażliwość odpowiada mierze: zaś czułość definiowana jest jako:
Stosowana do oceny metody klasyfikacji czy metoda jest dobra i przy jakich parametrach jest najlepsza. SN TP TP FN TP RealPositives TN SP TN FP Re TN alnegatives
Krzywa na przekątnej oznacza wynik losowy klasyfikator bezwartościowy. Miarą jakości metody jest pole pod krzywą ROC (AUC- area under curve). Im bliższe AUC=1 tym lepsza metoda 0.90 1.00 = bardzo dobra 0.80-0.90 = dobra 0.70-0.80 = dostateczna 0.60-0.70 = słaba 0.50-0.60 = do niczego
relewantne nierelewantne Wyszukane 8 1 niewyszukane 2 7
relewantne nierelewantne Wyszukane 8 1 niewyszukane 2 7
relewantne nierelewantne Wyszukane 8 1 niewyszukane 2 7
relewantne nierelewantne Wyszukane 8 1 niewyszukane 2 7
relewantne nierelewantne Wyszukane 8 1 niewyszukane 2 7 TP 8 TN 7 Sensitivit y 0,8 Specificit y 0, 88 TP FN 8 2 FP TN 7 1