Uczenie maszynowe i sieci neuronowe – laboratorium

dr inż. Maciej Komosiński


Ćwiczenie Generowanie drzew decyzyjnych algorytmem C4.5
Cel 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

  1. dokonaj konsultacji wymyślonego przykładu dla wygenerowanego drzewa
  2. konsultowanie przykładu “niepełnego” (np. tylko outlook=sunny); dokładnie przeanalizuj wynik
  3. 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

  1. obejrzyj zbiór testgain (dat i nam)
  2. wygeneruj dla niego dwukrotnie drzewo z użyciem opcji gain ratio i info gain; skomentuj wyniki.

Zadanie 4. Grupowanie wartości atrybutów

  1. wygeneruj drzewo dla zbioru testgain, zaznaczając opcję Subsetting (Criterion nadal ustawione na info gain !).
  2. 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).
  3. 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

  1. 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:
  2. ...w funkcji poziomu ufności (odnieś te wyniki do średniej charakterystyki drzewa oryginalnego, nieuproszczonego).

  3. 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).
  4. 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

  1. Wyjaśnić zasadę i opcje: Trials, Initial window size, Window increment.
  2. Analiza wyników (CRX).

Zadanie 7. Generowanie krzywej uczenia

Np. dla zbioru vote (bo ma wymieszane przypadki) – 300+135 przypadków

  1. 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.
  2. wykreślić jako funkcję n:

Zadanie 8. Konkurs – uzyskać jak najwyższą trafność klasyfikowania ze zbioru GERMAN w eksperymencie 10-fold-cv