Ilustracja różnych aspektów budowania drzew decyzyjych
i ich weryfikowania
Zagadnienia
drzewa decyzyjne, miara info gain,
warunki stopu budowy drzewa, upraszczanie drzew, grupowanie wartości
Narzędzia
C4.5 for Windows
Zbiory danych
GOLF, TESTGAIN, CRX, MONK2, GERMAN
Przebieg laboratorium
Program C4_5.exe (pomoc w plikach c45_help.txt i c4_5.hlp).
Zadanie 1. Generowanie drzewa
a) obejrzyj zawartość plików golf.nam,
golf.dat i golf.tst (Notepad); ile przykładów zawiera
zbiór uczący? Iloma atrybutami są one opisane ?
b) wygeneruj drzewo dla zbioru przykładów golf
(Tree/Generate); ustawienia standardowe,
c) przeanalizuj wyniki; czy udało się przeprowadzić
pruning ?
d) obejrzyj drzewo; Ile ma węzłów decyzyjnych
(warunkowych), a ile liści ?
e) prześledź ścieżkę od korzenia do wybranego
liścia,
f) porównaj estymaty błędu dla drzewa oryginalnego
(Unpruned) i uproszczonego (Pruned),
g) obejrzyj macierz pomyłek.
(zaleta c4.5: dobre wyniki bez specjalnie
długiego ustawiania parametrów)
Zadanie 2. Konsultowanie
dokonaj konsultacji wymyślonego przykładu
dla wygenerowanego drzewa
konsultowanie przykładu “niepełnego”
(np. tylko outlook=sunny); dokładnie przeanalizuj wynik
konsultowanie gdy znany jest rozkład
prawdopodobieństwa (np. outook= sunny(0.8), overcast (0.2))
Zadanie 3. Różnica między gain ratio a gain w praktyce
obejrzyj zbiór testgain (dat
i nam)
wygeneruj dla niego dwukrotnie drzewo
z użyciem opcji gain ratio i info gain; skomentuj wyniki.
Zadanie 4. Grupowanie wartości atrybutów
wygeneruj drzewo dla zbioru testgain,
zaznaczając opcję Subsetting (Criterion nadal ustawione
na info gain !).
analogicznie dla CRX: opisać problem
(przyznawanie kard kretytowych), obejrzeć zbiór (atrybuty A4, A6 i A7
mają wiele wartości); wygenerować drzewo bez i z grupowaniem (grupowanie
działa ładnie także dla zbioru GERMAN).
można przy okazji obejrzeć macierz
pomyłek dla zbioru uczącego i testującego; czy w tym zastosowaniu przydałaby
się macierz kosztów pomyłek?
Zadanie 5. Poszukiwanie optymalnej wielkości drzewa uproszczonego
poszukiwanie optymalnej wielkości
drzewa uproszczonego przez dobór poziomu ufności procedury upraszczającej
(Pruning confidence level); przeprowadź serię eksperymentów
10-krotnego cross-validation dla zbioru Monk2, ze zmieniającym
się poziomem ufności od 0.05 do 0.5, z krokiem co najwyżej 0.05. Sporządź
wykres zależności:
średniego (po cross-validation) rozmiaru
drzewa uproszczonego,
średniej trafności klasyfikowania
drzewa uproszczonego na zbiorze testującym,
średniej estymaty błędu dla drzewa
uproszczonego
...w funkcji poziomu ufności (odnieś te wyniki
do średniej charakterystyki drzewa oryginalnego, nieuproszczonego).
poszukiwanie optymalnej wielkości
drzewa uproszczonego poprzez prepruning, tj. manewrowanie minimalną
licznością węzła (Minimum objects). Dla zbioru CRX warto przebadać
przedział od 2 (default) do 10 (nie musi być dla cross validation, wystarczy
1 eksperyment).
analiza wygenerowanego drzewa: poszukiwanie
słabych punktów (liści o małym wsparciu, poddrzew które generują szczególnie
dużo błędów, etc.)
Zadanie 6. Windowing
Wyjaśnić zasadę i opcje: Trials,
Initial window size, Window increment.
Analiza wyników (CRX).
Zadanie 7. Generowanie krzywej uczenia
Np. dla zbioru vote (bo
ma wymieszane przypadki) – 300+135 przypadków
przygotować kilka[naście] zbiorów
uczących o liczności n zmieniającej się od 50 do 300, ze skokiem
np. 50 przypadków, poprzez wybieranie pierwszych n ze zbioru
vote.dat.
wykreślić jako funkcję n:
rozmiar drzewa uproszczonego
trafność klasyfikowania drzewa uproszczonego
na zbiorze testującym
Zadanie 8. Konkurs – uzyskać jak najwyższą trafność klasyfikowania ze
zbioru GERMAN w eksperymencie 10-fold-cv