plik


ÿþwiczenia 2 ±É 1) Wygeneruj system decyzyjny za pomoc programu ds generator.exe. 2) Z otrzymanego systemu zbuduj drzewo decyzyjne przy pomocy algorytmu ID3. Drzewa Decyzyjne - algorytm ID3: Zacznijmy od bazowych informacji. Podstawowa teoria Algorytm ID3 zostaB zaprojektowany przez Rossa Quinlana, który nastpnie prze- ksztaBciB go w popularn metod C4.5 i C5.0. W metodzie ID3 budowane jest drzewo decyzyjne z pewnego systemu decyzyjnego treningowego u|ywajc pojcia zysku in- formacyjnego (Information Gain) bazujcego na entropii (Entrophy). Przy ka|dym wzle, algorytm ID3 wybiera atrybut, który najlepiej dzieli zbiór obiektów na kla- sy decyzyjne dajc najwikszy zysk informacyjny. Mówic o zysku informacyjnym, mamy na my[li ró|nic entropii wzBa gBównego z entropiami podwzBów (poziomu ni|szego). Na podstawie zysku informacyjnego wybierany jest atrybut sBu|cy do podziaBu danych (wierzchoBek). Atrybut z najwikszym znormalizowanym zyskiem informacyjnym jest wybierany do podejmowania decyzji. Algorytm ID3 dziaBa re- kurencyjnie dla mniejszych podsystemów decyzyjnych. W algorytmie ID3 mo|emy napotka kilka typowych sytuacji, " Je|eli wszystkie przykBady nale| do tej samej klasy. W tym przypadku, pro- sto tworzymy li[ drzewa decyzyjnego wybierajc dan klas decyzyjn. " Gdy |adna z cech nie dostarcza jakiegokolwiek zysku informacyjnego, tworzymy wzeB decyzyjny wy|ej o jeden poziom, u|ywajc spodziewanej warto[ci klasy. " W przypadku gdy napotkamy niewidzian wcze[niej klas decyzyjn, tworzymy wzeB decyzyjny wy|ej u|ywajc stosownej warto[ci. ZakBadajc, |e " p•" jest proporcj przykBadów pozytywnych (ilo[ obiektów z decyzj pozytyw- n/ilo[ rozwa|anych obiektów) " p proporcja przykBadów negatywnych (ilo[ obiektów z decyzj negatywn/ilo[ rozwa|anych obiektów) Entropi pewnego podziaBu na klasy decyzyjne S definiujemy jako Entrophy(S) = -p•"log2p•" - p log2p Dla wikszej ilo[ci klas ci, i = 1, ..., k, entropi mo|emy zdefiniowa nastpujco k Entrophy(S) = -pilog2pi i=1 pi jest proporcj S nale|c do klasy ci (ilo[ obiektów klasy ci do wszystkich roz- wa|anych) Zysk informacyjny (information gain) definiujemy jako Sv Gain(S, A) = Entrophy(S) - " Entrophy(Sv) S v"V alues(A) Sv " Entrophy(Sv) jest spodziewan warto[ci entropii po podziale S v"V alues(A) S przy pomocy atrybutu A. V alues(A) to zbiór mo|liwych warto[ci atrybutu A. Sv jest podzbiorem S definiowanym jako Sv = {s " S|A(s) = v} WBasno[ci entropii, " Entropia jest równa 1 gdy mamy tyle samo przykBadów negatywnych i pozytyw- nych " Entropia jest równa 0 gdy wszystkie obiekty nale| do tej samej klasy decyzyjnej (s pozytywne lub negatywne) " Je|eli podsystem zawiera nierówn liczb przykBadów pozytywnych i negatywnych entropia jest z przedziaBu (0,1) i jej wykres w zale|no[ci od proporcji przykBadów pozytywnych przedstawia si nastpujco, Rys1: Wykres Entropii PrzykBad budowania drzewa decyzyjnego zaproponowany przez Rossa Quinlana DzieD Pogoda Temperatura Wilgotno[ Wiatr Gram w Tenisa D1 SBoneczna Gorco Wysoka SBaby Nie D2 SBoneczna Gorco Wysoka Mocny Nie D3 Pochmurna Gorco Wysoka SBaby Tak D4 Deszczowa Aagodnie Wysoka SBaby Tak D5 Deszczowa ChBodno Normalna SBaby Tak D6 Deszczowa ChBodno Normalna Mocny Nie D7 Pochmurna ChBodno Normalna Mocny Tak D8 SBoneczna Aagodnie Wysoka SBaby Nie D9 SBoneczna ChBodno Normalna SBaby Tak D10 Deszczowa Aagodnie Normalna SBaby Tak D11 SBoneczna Aagodnie Normalna Mocny Tak D12 Pochmurna Aagodnie Wysoka Mocny Tak D13 Pochmurna Gorco Normalna SBaby Tak D14 Deszczowa Aagodnie Wysoka Mocny Nie Zanim przejdziemy do szacowania entropii, warto przypomnie wBasno[ci logaryt- mów, przydatne w obliczeniach. " logab = c Ô! ac = b " loga1 = 0 poniewa| a0 = 1 " logaa = 1 poniewa| a1 = a a " alog b = b " logab1 " b2 = logab1 + logab2 " loga b1 = logab1 - logab2 b2 " logabm = m " logab logcb " logab = logca 1 " logab = logba W naszym systemie decyzyjnym S mamy 14 przykBadów, w tym 9 pozytywnych z decyzj Tak oraz 5 negatywnych z decyzj Nie. Entropia S relatywna do klasyfi- kacji Boolowskiej jest postaci: S : [9+, 5-] Entrophy(S) = -p•"log2p•" - p log2p 9 5 9 9 5 5 9 5 14 14 Entrophy(S) = Entrophy[9+, 5-] = - log2 14 - log2 14 = -(log2(14 " )) 14 14 14 = -log2(0.5211295762) H" 0.940 Dla Wilgotno[ci, entropi warto[ci Wysoka oraz Normalna obliczamy nastpuj- co, 3 4 4 4 7 7 Entrophy[3+, 4-] = -3log2 3 - log2 4 = -(log2(3 " )) = -log2(0.50514) H" 0.985 7 7 7 7 7 7 6 1 1 1 7 7 Entrophy[6+, 1-] = -6log2 6 - log2 1 = -(log2(6 " )) = -log2(0.6635730598) H" 7 7 7 7 7 7 0.992. Zobrazowanie podziaBu mo|emy zobaczy na Rysunku 2. PodziaB determinuje zysk informacyjny postaci, 7 7 Gain(S, W ilgotno[) = 0.940 - (14 " 0.985) - (14 " 0.592) = 0.940 - 0.4935 - 0.296 = 0.151 Rys2: Wyliczanie entropii podziaBu na podstawie Wilgotno[ci Wykonujemy analogiczne obliczenia dla podziaBów na podstawie atrybutów: Wiatr, Pogoda oraz Temperatura. Wyniki mo|emy zobaczy na Rysunkach 3, 4, 5. 8 6 Gain(S, W iatr) = 0.940 - (14 " 0.811) - (14 " 1.0) = 0.048 Rys3: Wyliczanie entropii podziaBu na podstawie Wiatru 5 5 Gain(S, P ogoda) = 0.940 - (14 " 0.971) - (14 " 0.971) = 0.246 Rys4: Wyliczanie entropii podziaBu na podstawie Pogody 4 4 6 Gain(S, T emperatura) = 0.940 - (14 " 1.0) - (14 " 0.811) - (14 " 0.918) = 0.029 Rys5: Wyliczanie entropii podziaBu na podstawie Temperatury Sortujemy atrybuty na podstawie otrzymanego zysku informacyjnego (Gain), Gain(S, P ogoda) = 0.246 Gain(S, W ilgotno[) = 0.940 - 0.4935 - 0.296 = 0.151 Gain(S, W iatr) = 0.048 Gain(S, T emperatura) = 0.029 Najwikszy zysk informacyjny mamy dla Pogody, std Pogoda staje si korzeniem naszego drzewa, patrz Rysunek 6. Rys6: Pogoda uzyskaBa najwikszy zysk informacyjny std staje si korzeniem drzewa Widzimy, |e w przypadku Pochmurnej Pogody odpowiedz jest deterministyczna std tworzymy li[ z odpowiedzi  Tak . W przypadku Pogody SBonecznej i Deszczu nie mamy jeszcze jednoznacznej odpowiedzi czy gra czy nie std przechodzimy do wyszukiwania kolejnych wzBów zaczynajc od Pogody SBonecznej. Rozwa|amy nastpujcy podsystem decyzyjny, DzieD Pogoda Temperatura Wilgotno[ Wiatr Gram w Tenisa D1 SBoneczna Gorco Wysoka SBaby Nie D2 SBoneczna Gorco Wysoka Mocny Nie D8 SBoneczna Aagodnie Wysoka SBaby Nie D9 SBoneczna ChBodno Normalna SBaby Tak D11 SBoneczna Aagodnie Normalna Mocny Tak Wyniki podziaBu na podstawie Temperatury, Wilgotno[ci oraz Wiatru mo|emy zo- baczy na Rysunkach 7, 8, 9. Gain(Soneczna, T emperatura) = 0.971 - (2 " 0) - (2 " 1) - (1 " 0) = 0.571 5 5 5 Rys7: Sprawdzamy zysk informacyjny dla Temperatury przy SBonecznej Pogodzie Gain(Soneczna, W ilgotno) = 0.971 Rys8: Sprawdzam zysk informacyjny dla Wilgotno[ci przy SBonecznej Pogodzie Gain(Soneczna, W iatr) = 0.971 - (2 " 1.0) - (3 " 0.918) = 0.049 5 5 Rys9: Sprawdzam zysk informacyjny dla Wiatru przy SBonecznej Pogodzie Jak wida najlepszym wzBem dla Pogody SBonecznej jest Wilgotno[, poniewa| ma najwikszy zysk informacyjny. Gain(Soneczna, W ilgotno) = 0.971 Gain(Soneczna, T emperatura) = 0.571 Gain(Soneczna, W iatr) = 0.049 Std dokBadamy Wilgotno[ do naszego drzewa, patrz Rysunek 10. Rys10: Nasze drzewo po aktualizacji W ostatnim kroku dobieramy wzeB do pogody deszczowej, czyli na podstawie na- stpujcego podsystemu, DzieD Pogoda Temperatura Wilgotno[ Wiatr Gram w Tenisa D4 Deszczowa Aagodnie Wysoka SBaby Tak D5 Deszczowa ChBodno Normalna SBaby Tak D6 Deszczowa ChBodno Normalna Mocny Nie D10 Deszczowa Aagodnie Normalna SBaby Tak D14 Deszczowa Aagodnie Wysoka Mocny Nie Wyliczamy zysk informacyjny dla podziaBu na podstawie Wiatru i Temperatury, patrz Rysunki 11, 12. Gain(Deszczowa, W iatr) = 0.971 Rys11: Sprawdzamy zysk informacyjny podziaBu obiektów na podstawie siBy Wiatru dla Pogody Deszczowej Gain(Deszczowa, T emperatura) = 0.971 - (3 " 0.918) - (2 " 1.0) = 0.019 5 5 Rys12: Sprawdzamy zysk informacyjny podziaBu obiektów na podstawie Temperatury dla Pogody Deszczowej Po posortowaniu mamy, Gain(Deszczowa, W iatr) = 0.971 Gain(Deszczowa, T emperatura) = 0.971 - (3 " 0.918) - (2 " 1.0) = 0.019 5 5 Widzimy, |e zysk informacyjny jest wikszy dla Wiatru, std jest dokBadany jako nastpny wzeB do Pogody Deszczowej i w konsekwencji dostajemy finalne drzewo decyzyjne, patrz Rysunek 13. Rys13: Ostateczna posta drzewa decyzyjnego Podsumowujc, algorytm ID3 wybraB do stworzenia drzewa atrybuty Pogoda, Wil- gotno[ oraz Wiatr, atrybut Temperatura byB najmniej istotny std zostaB pomini- ty. Drzewo decyzyjne w naszym rozumieniu jest pewn struktur, która jest przyda- na w procesie klasyfikacji. Podczas tworzenia drzew decyzyjnych mo|emy napotyka problem overfittingu. Czy- li problem zbyt dobrego dopasowania klasyfikatora do danych, prowadzcy do zmniej- szenia efektywno[ci klasyfikacji na danych nieznanych. Tego typu problem w przy- padku drzew decyzyjnych mo|e by niwelowany midzy innymi za pomoc metody Pre-pruning lub Post-pruning. Do przedstawienia zagadnienia zostaBy u|yte materiaBy zawarte w ksi|ce Machine Learning Toma Mitchela

Wyszukiwarka

Podobne podstrony:
C20408 podstawy org UN, odruchy
C2 Klucz do zadan
c2 moje
C2 Boze Narodzenie
Model C2
WentyleSpiroCD C2
C2
wmk c2
fcntl c2 (2)
C2 2
of58 sti c2
C2 Transkcrypcje nagran
c2
C2 5

więcej podobnych podstron