====== - LAB: Uczenie drzew decyzyjnych ====== Celem ćwiczenia jest zapoznanie się uczeniem drzew decyzyjnych służących do klasyfikacji danych. Obejmuje to budowanie struktury drzew na podstawie przykładów i ich użycie do klasyfikacji danych. ===== Wprowadzenie ===== Do przeczytania i przygotowania: * AIM:18.6-18.11, FCA:11 * WSI:10 ===== Narzędzia ===== Podstawowym narzędziem do realizacji ćwiczeń jest program [[http://www.aispace.org/dTree/|Decision trees]] z [[http://www.aispace.org|AIspace]]. ===== Ćwiczenia ===== Pracuj w parze z Koleżanką/Kolegą. Uruchom narzędzie pisząc w konsoli tekstowej ''ais-dtree''. * Przeczytaj wstęp pojęciowy do wybranych zagadnień [[http://artint.info/html/ArtInt_146.html|teorii informacji]] * Przeczytaj wstęp do [[http://artint.info/html/ArtInt_177.html|uczenia drzew decyzyjnych]] ==== Przykład klasyfikacji dla czytania emaili ==== * Przeczytaj [[http://aispace.org/dTree/help/general.shtml|tutorial]] * Załaduj przykład //File->Load samle dataset->Mail reading// * Obejrzyj przykłady, jak wygląda zbiór uczący, a jak testowy * Zbuduj drzewo: przełącz się na zakładkę //Solve// i naciskaj na //Step//, aż do końca budowy drzewa * Obserwuj wyniki: //Show plot//, //View node info// * Sprawdź które węzły klasyfikują poszczególne przypadki: //View mapped examples// * Usuń drzewo //Reset graph// * Zmień algorytm budujący //Decision Tree Options->Splitting functions// * Porównaj wyniki dla innych algorytmów ==== Klasyfikacja programów i ręczne budowanie drzewa ==== * Załaduj przykład //Likes TV// * Obejrzyj przykłady. * Zbuduj automatycznie drzewo wybranym algorytmem i obejrzyj wyniki. * Zdefiniuj przykłady testowe: //View/Edit examples// * Dokonaj klasyfikacji: //Test examples// * Spróbuj przenieść wybrane elementy zbioru uczącego do przykładów testowych - jak to wpływa na strukturę budowanego drzewa? * Następnie usuń drzewo //Reset graph// * Spróbuj dokonać ręcznej konstrukcji drzewa, wybierając opcję //Split node// -> zwróć uwagę na parametry osiągane przy rozgałęzianiu z użyciem różnych atrybutów. * Porównaj kilka otrzymanych drzew i to jak klasyfikuję dane, w porównaniu do tego, które jest budowane automatycznie. ==== Rozbudowane przykłady ==== * Obejrzyj pozostałe przykłady zbiorów danych * W wybranych z nich rozbuduj zbiór uczący i obserwuj wyniki. * Spróbuj przenieść wybrane elementy zbioru uczącego do przykładów testowych - jak to wpływa na strukturę budowanego drzewa? * Dokonaj modyfikacji wybranego przykładu * Wzorując się wybranym przykładem, np. //Likes TV// lub //Classification of animals// spróbuj zbudować własny używając różnego typu atrybutów, tj. boolowskich, symbolicznych i numerycznych. ==== DT a NN ==== * Uruchom równocześnie program do budowy [[neural|sieci neuronowych]] * Spróbuj załadować te same przykłady do obu programów. * Porównaj klasyfikację. * Spróbuj dokonać podobnych modyfikacji w zbiorach uczących i porównaj wyniki.