Ćwiczenie 6. Hurtownie danych Drzewa decyzyjne 1. Reprezentacja drzewa decyzyjnego Metody uczenia si e drzew decyzyjnych to najcz eściej stosowane algorytmy indukcji symbolicznej reprezentacji wiedzy z przyk ladów. Poniżej zostana przedstawione najpopularniejsze algorytmy indukcji drzew, takie jak ID3 oraz C4.5. Drzewo decyzyjne sk lada si e z korzenia, z którego co najmniej dwie ga l ezie (kraw edzie) odchodza do w ez lów leżacych na niższym poziomie. Z każdym w ez lem jest zwiazany test, który sprawdza wartości atrybutu opisujacego przyk lady. Dla każdego z możliwych wyników testu odpowiadajaca mu ga l aź prowadzi do w ez la leżacego na niższym poziomie drzewa. W ez ly, z których nie wychodza żadne ga l ezie, to liście. Przypisuje si e klasy decyzyjne. Tworzenie drzew decyzyjnych ilustruje nast epuj acy przyk lad. Niech b edzie dana pewna grupa klientów sklepu elektronicznego, z których cz eść decyduje si e na zakup komputera typu notebook, podczas gdy pozostali nie sa gotowi do takiego zakupu. Sa oni scharakteryzowani przez 3 atrybuty wyrażajace ocen e poziomu ich dochodów, stwierdzenie faktu, czy sa studentami, oraz ich p leć. Na podstawie wartości tych atrybutów należy przewidzieć wartość atrybutu decyzyjnego kupuje komputer. Tabela 1. Zbór przyk ladów uczacych opisujacy grup e osób, którzy sa klientami sklepu elektronicznego Lp. Dochody Student P leć kupuje komputer 1 średnie tak m eżczyzna tak 2 średnie nie kobieta nie 3 wysokie tak kobieta tak 4 niskie tak m eżczyzna nie 5 niskie tak kobieta nie 6 średnie tak kobieta tak 7 niskie nie kobieta nie 8 średnie nie m eżczyzna nie
Za pomoca algorytmu ID3 ze zbioru przyk ladów uczacych reprezentowanych w tabeli powyżej uzyskano drzewo decyzyjne, które przedstawiono na rysunku poniżej. Dochody niskie średnie wysokie Nie Tak Student tak Tak nie Dzi eki utworzonemu drzewu decyzyjnemu można klasyfikować klientów kupujacych komputery (np. typu notebook) w zależności od ich poziomu dochodów i statusu studenckiego. Na przyk lad osoba b ed aca kobieta o dochodach średnich i nie studiujaca nie kupuje komputera. Można dojść do tego analizujac ga l ezie drzewa do liścia (kupuje komputer = nie). Można zauważyć, że p leć osoby nie odgrywa tu żadnej roli. Można zauważyć, że ścieżki prowadzace od korzenia do liścia drzewa reprezentuja koniunkcje pewnych wyrażeń (testów) zdefiniowanych na wartościach atrybutów opisujacych przyk lady. Jeśli do tej samej klasy prowadzi kilka ścieżek, to tworza one sk ladniki pewnej alternatywy. Stad też mówi si e, że drzewa decyzyjne pozwalaja na nauczenie si e poj eć, które można zdefiniować w postaci dysjunkcji takich koniunkcji. Na przyk lad z powyżej przedstawionego drzewa można zdefiniować poj ecie klienta pragnacego kupić komputer za pomoca nast epuj acego wyrażenia dysjunkcyjnego: Nie (dochody = srednie) (student = tak) (dochody = wysokie) Drzewo decyzyjne można też przedstawić jako zbiór regu l określajacego przydzia l obiektów do klas. Każda ścieżka drzewa od korzenia do liścia odpowiada regule. Dla drzewa przedstawionego na powyższym rysunku uzyskuje si e 4 regu ly: 1) if (dochody = niskie) then (kupuje komputer = nie) 2) if (dochody = średnie) (student = nie) then (kupuje komputer = nie) 3) if (dochody = wysokie) then (kupuje komputer = tak) 4) if (dochody = średnie) (student = tak) then (kupuje komputer = tak)
Powinno si e sprawdzić, czy wszystkie regu ly posiadaja nienadmiarowe koniunkcje warunków elementarnych. Można to wykonać za pomoca operacji chwilowego pomini ecia warunku w koniunkcji danej regu ly (ang. dropping conditions) i porównania tak zmodyfikowanej regu ly ze zbiorem przyk ladów uczacych. Jeśli regu la nadal jednoznacznie klasyfikuje przyk lady do w laściwej klasy, to warunek może być zredukowany. W przeciwnym przypadku należy go odtworzyć w koniunkcji regu ly. W powyższym zbiorze regu l można zredukować regu l e 2 do poniższej postaci, gdyż w tabeli podanej powyżej wszystkie osoby nie b ed ace studentami równocześnie nie kupi ly komputerów: if (student = nie) then (kupuje komputer = nie) 2. Algorytm ID3 indukcji drzewa decyzyjnego Wi ekszość algorytmów uczenia si e drzew decyzyjnych jest oparta na podobnym heurystycznym schemacie zst epuj acego konstruowania drzewa (nazwa angielska TDIDT - Top Down Induction of Decision Trees). Jest to rozwia- zanie użyte już w pierwszych algorytmach, takich jak ID3, CART, a nast epnie C4.5. Różnice mi edzy konkretnymi algorytmami dotycza przede wszystkim sposobu wyboru testu dla w ez la zwiazanego z ocena jakości podzia lu zbioru przyk ladów w w eźle, zasad podejmowania decyzji o utworzeniu liścia lub w ez la oraz technik uwzgl edniania różnego rodzaju zaburzeń w opisie przyk ladów uczacych. Algorytm schematu zst epuj acego konstruowania drzewa odpowiadajacy wersji ID3 podano poniżej. Zak lada si e, że jest dost epny zbiór przyk ladów uczacych S. Jeżeli wszystkie przyk lady należa do tej samej klasy, to utworzony jest liść i przydzielana mu jest etykieta tej klasy. W przeciwnym razie jest tworzony w eze l (w pierwszej iteracji jest to korzeń drzewa) i konieczne jest sformu lowanie zwiazanego z nim testu. Rozważa si e wszystkie możliwe atrybuty i ocenia ich przydatność do zbudowania testu prowadzacego do podzia lu zbioru przyk ladów S na podzbiory jak najbardziej jednorodne w sensie przydzia lu do klas (w oryginalnej postaci algorytmu ID3 test jest pytaniem o wartość danego atrybutu). Dokonuje si e wyboru najlepszego z tych podzia lów zgodnie z przyj et a miara oceny jakości podzia lu. Rozbudowuje si e drzewo poprzez dodanie do w ez la ga l ezi odpowiadajacych poszczególnym wynikom testu. W przypadku algorytmu ID3 ga l ezie odpowiadaja poszczególnym wartościom v 1, v 2,...,v p atrybutu a. Podzbiór S jest podzielony na podzbiory zgodnie z wybranym testem. Nast epnie używa si e rekurencyjnie napisanej procedury dla każdego z tych podzbiorów, budujac poddrzewo albo liść, jeśli zajdzie warunek zatrzymania.
function buduj drzewo; input: S - zbiór przyk ladów wejściowych, A - zbiór atrybutów opisujacych przyk lady (w przypadku ID3 atrybuty sa jakościowe lub zdyskretyzowane); output: drzewo decyzyjne; begin Utwórz w eze l t; {przy pierwszym wywo laniu korzeń drzewa} if wszystkie przyk lady w S należa do tej samej klasy K then return t jako liść z etykieta klasy K; if zbiór A jest pusty then return t jako liść z etykieta klasy do której należy wi ekszość przyk ladów w S else begin wybierz atrybut a A, który najlepiej klasyfikuje przyk lady z S zgodnie z przyj et a miara oceny {dla ID3 jest information gain}; Przypisz w ez lowi t test zbudowany na podstawie wybranego atrybutu a; for v i wartośći atrybutu a do begin dodaj do w ez la t galaź odpowiadajac a warunkowi (a = v i ); Niech S i b edzie podzbiorem przyk ladów z S, które posiadaja wartość v i dla atrybutu a; if S i jest pusty then dodaj do ga l ezi liść z etykieta klasy, do której należy wi ekszość przyk ladów w S else indukuj poddrzewo buduj drzewo(a i, A - {a}) end; end; return drzewo o korzeniu w t end. Podstawowym problemem jschematu zst epuj acego konstruowania drzewa jest wybór atrybutu do zbudowania testu, na którego podstawie nastapi w w eźle podzia l zbioru przyk ladów. Dobrym testem jest ten, który powoduje skrócenie ścieżki prowadzacej przez ten w eze l do liści wskazujacych klas e decyzyjna. Tak b edzie, gdy w każdym podzbiorze zwiazanym z ga l eziami wychodzacymi z w ez la wszystkie przyk lady lub ich wi ekszość b edzie reprezentowa la jedna klas e. Wybór powinien być przeprowadzany na podstawie miary oceniajacej, na ile wartości danego atrybutu podziela zbiór przyk ladów na podzbiory, które charakteryzuja si e maksymalna jednorodnościa w zakresie przydzia lu do klas decyzyjnych. W algorytmie ID3 w tym celu wykorzystuje si e miar e przyrostu informacji (ang. information gain). Aby ja zdefiniować, należy wyjaśnić najpierw miar e entropii.
Niech S b edzie zbiorem uczacym zawierajacym przyk lady do jednej z k klas decyzyjnych, oznaczonych przez K 1, k 2,...,K k. Niech n b edzie liczba przyk ladów z S oraz n i niech oznacza liczebność klasy K i. Entropia zwiazana z klasyfikacja zbioru S jest zdefiniowana jako: k Ent(S) = p i log 2 p i i=1 gdzie p i jest prawdopodobieństwem, że losowo wybrany przyk lad z S należy do klasy K i, estymowanym jako n i. Podstawa logarytmu jesdt równa 2, ponieważ entropia mierzy oczekiwana n liczb e bitów do zakodowania informacji o klasyfikacji losowo wybranego przyk ladu ze zbioru S. Można zauważyć, że gdy którekolwiek p i = 0, to otrzymuje si e 0 log 2 0 = 0. W przypadku rozważania klasyfikacji binarnej (k = 2) entropia przyjmuje wartości z przedzia?u [0, 1], przy czym maksymalna wartość, równa 1, osiagana jest dla p 1 = p 2 = 0.5, czyli dla przyk ladów o równomiernym rozk ladzie klas. Najmniejsza wartość, równa 0, przyjmuje entropia, gdy wszystkie przyk lady należa do tej samej klasy. Interpretacja wartości entropii jest nast epuj aca: im mniejsza wartość entropii, tym w zbiorze S wyst epuje wi eksza przewaga przydzia lu przyk ladów do jednej z klas nad pozosta lymi klasami. W przypadku użycia atrybutu a do zbudowania testu oblicza si e entropi e warunkowa. Niech atrybut a przyjmuje p różnych wartości {v 1, v 2,..., v p }. W algorytmie ID3 test w w eźle jest konstruowany jako pytanie jaka jest wartość atrybutu a?, czyli dokonuje si e podzia lu S na podzbiory {S 1, S 2,..., S r }, gdzie S j zawiera przyk lady posiadajace dla atrybutu a wartość v j (j = 1,...,p). Liczebność zbioru S j jest oznaczana jako n Sj. Entropia podzia lu zbioru przyk ladów S ze wzgl edu na atrybut a jest zdefiniowana jako: Ent(S a) = p j=1 n Sj n Ent(S j) Można powiedzieć, że entropia Ent(S a) jest średnia ważona dla entropii poszczególnych podzbiorów S j. Im mniejsza wartość Ent(S a), tym wi eksza jednorodność klasyfikacji dla przyk ladów podzielonych na podzbiory.
Przyrost informacji (ang. gain) wynika z zastosowania atrybutu a do zbudowania testu dzielacego zbiór przyk ladów uczacych S jest zdefiniowany jako różnica: Gain(S, a) = Ent(S) Ent(S a) Dzia lanie algorytmu ID3 polega na przeszukiwaniu przestrzeni hipotez, tj. drzew decyzyjnych reprezentujacych funkcje klasyfikujace zdefiniowane na opisach przyk ladów. Przeszukiwanie jest wykonywane od poczatkowo pustego drzewa do drzew coraz bardziej skomplikowanych za pomoca strategii heurystycznej sterowanej odpowiednia funkcja oceny, np. przyrostu informacji. W algorytmie ID3 dla danego w ez la poszukuje si e lokalnie najlepszego kandydata na stworzenie testu, przy czym wybór ten nie musi prowadzić do globalnie najlepszego drzewa. W typowych alg. indukcji drzew nie stosuje si e operacji nawrotu, tzn. po wyborze atrybutu do testu dla danego w ez la nie rozważa si e ponownie zmiany tego atrybutu. 3. Algorytm C4.5, czyli dlaczego ID3 nie wystarcza? Algorytm ID3 ma nast epuj ace ograniczenia: 1) algorytm ID3 nie radzi sobie z ciag lymi dziedzinami atrybutów (zak lada, że wartości atrybutów sa dyskretne) 2) zak lada sztywno, że wszystkie rekordy w zbiorze uczacym sa wype lnione, tzn. nie dzia la, jeśli choć jeden rekord zawiera niepe lne dane, 3) duży rozmiar drzewa, 4) brak odporności na zjawisko ovefitting. Polega ono na tym, że algorytm nie radzi sobie z danymi zaburzajacymi ogólna informacja. Może to prowadzić do wysokiego wspó lczynnika b l edów na danych testowych Aby przeciwdzia lać zjawisku ovefittingu stosuje si e tzw. przycinanie (ang. em prunning). Dzia la ono w sposób nast epuj acy: 1) zaczyna si e od liści i dzia la na zasadzie bottom-up, 2) majac dany w eze l nie b ed acy liściem i jego poddrzewo oblicza si e w heurystyczny sposób wartość przewidywanego b l edu dla aktualnego poddrzewa,
3) oblicza si e wartość przewidywanego b l edu dla sytuacji, gdyby rozpatrywane poddrzewo zastapić liściem z kategoria najpopularniejsza wśród liści, 4) porównuje te dwie wartości i ewentualnie dokonuje zamiany poddrzewa na pojedynczy liść propagujac t e informacj e do swoich przodków. Dzi eki temu dokonuje si e wi eksz a generalizacj e oceny nowych przypadków. 4. Przebieg ćwiczenia Zadanie 1. Jednym z klasycznych zbiorów ilustrujacych dzia lanie algorytmów uczacych jest przyk lad do gry w golfa. Wp lyw warunków pogodowych wp lywaj acych na podj ecie decyzji o grze w gr e golfa przedstawiono w tabeli poniżej. Stan nieba Temperatura Wilgotność Wiatr Grać s lońce 29 85 nie nie s lońce 27 90 tak nie pochmurno 28 78 nie tak deszcz 21 96 nie tak deszcz 20 80 nie tak deszcz 18 70 tak nie pochmurno 18 65 tak tak s lońce 22 95 nie nie s lońce 21 70 nie tak deszcz 24 80 nie tak s lońce 24 70 tak tak pochmurno 22 90 tak tak pochmurno 27 75 nie tak deszcz 22 80 tak nie Dla tabeli podanej na pierwszej stronie przeprowadź: 1) Dokonaj najpierw analizy zbioru przyk ladów ze wzgl edu na to, że wszystkie atrybuty sa tam przedstawione na skalach jakościowych (nominalnych lub porzadkowych), 2) Zbadaj, jakie sa liczebności przyk ladów należacych do każdej klasy decyzyjnej,
3) Określ miary entropii informacji dla klasyfikacji wszystkich przyk ladów, 4) Odpowiedz na pytanie, który z atrybutów zostanie wybrany jako najkorzystniejszy do zbudowania testu w w eźle drzewa. Odpowiedź uzasadnij odpowiednimi obliczeniami wg algorytmu ID3 5) Przeprowadź proces budowy ca lego drzewa. Zadanie 2 Przy użyciu programu C4.5 z systemu Weka dokonaj analizy zbioru przyk ladów uczacych opisujacych wp lyw warunków pogodowych na podj ecie decyzji do gry w golfa. Program C4.5 jest w nim dost epny jako J48 (wersja 8 programu C4.5, ostatnia przed komercjalizacja). Wybierz Explorer Open File data. W katalogu data otwórz notatnik Windows lub inny edytor. Wyedytuj plik golf.arff, który jest w formacie arff. Jego postać jest nast epuj aca: @relation golf @attribute outlook {sunny, overcast, rain} @attribute temperature numeric @attribute humidity numeric @attribute windy {true, false} @attribute play {yes, no} @data sunny, 85, 85, false, no sunny, 80, 90, true, no overcast, 83, 78, false, yes rain, 70, 96, false, yes rain, 68, 80, false, yes rain, 65, 70, true, no overcast, 64, 65, true, yes sunny, 72, 95, false, no
Należy wybrać opcj e Classify, a nast epnie Choose. Wówczas wejść do trees i wybrać J48. Uruchomienie analizy nast epuje dzi eki naciśni eciu Start. Powtórz podobna analiz e dla zbioru przyk ladów uczacych w przypadku podj ecia decyzji o grze w golfa. Zadanie 3 Przy użyciu programu C4.5 z systemu Weka dokonaj analizy zbioru przyk ladów uczacych opisujacych wp lyw warunków pogodowych na podj ecie decyzji dotyczacych zakupu komputera. @relation komputer @attribute komputer {dobry, sredni, marny} @attribute dochody numeric @attribute cena numeric @attribute student {true, false} @attribute kupic {yes, no} @data dobry, 500, 850, false, no sredni, 800, 900, true, no marny, 490, 1000, false, yes dobry, 700, 9006, false, yes sredni, 8968, 8000, false, yes marny, 657, 700, true, no dobry, 640, 650, true, yes sredni, 720, 950, false, no Należy wybrać opcj e Classify, a nast epnie Choose. Wówczas wejść do trees i wybrać J48. Uruchomienie analizy nast epuje dzi eki naciśni eciu Start.
Zadanie 4 Zbuduj drzewo decyzyjne dotyczace zakupu samochodu. Przy użyciu programu C4.5 z pakietu Weka dokonaj analizy przyk ladów uczacych opisujacych zakup samochodu. @relation somochod @attribute samochod {dobry, uzywany, nowy} @attribute dochody numeric @attribute cena numeric @attribute klient {true, false} @attribute kupic {yes, no} @data dobry, 5000, 20050, false, no uzywany, 1800, 2000, true, no nowy, 4900, 3000, true, yes dobry, 7000, 3000, false, yes uzywany, 7968, 3500, false, yes nowy, 6570, 17000, true, no nowy, 6400, 10500, true, yes dobry, 7200, 950, false, no Należy wybrać opcj e Classify, a nast epnie Choose. Wówczas wejść do trees i wybrać J48. Uruchomienie analizy nast epuje dzi eki naciśni eciu Start.