Uczenie Maszynowe – reguły decyzyjne

Ćwiczenie
Generowanie reguł decyzyjnych algorytmami C4.5 i LEM2
Cel Ilustracja różnych aspektów generowania reguł decyzyjnych i ich weryfikowania
Zagadnienia
drzewa decyzyjne – zamiana na reguły, reguły decyzyjne, zbiór reguł, lista reguł, parametry opisujące reguły, algorytm LEM2, klasyfikowanie regułami
Narzędzia i materiały C4.5, lem.exe (stąd lub z pakietu ROSE)
Opis algorytmu LEM: [1], [2]
Opis AQ i CN2
AQ: opis i program demonstrujący.
Zbiory danych
GOLF, HPAP, VOTE, MONK1..3

Zadanie 1: Metoda pośrednia generowania reguł (C4.5rules)

  1. wygeneruj reguły dla zbioru GOLF za pomocą programu C4.5 for Windows. Uwaga: opcja generowania reguł uaktywnia się dopiero wówczas, gdy wygenerowane jest jakieś drzewo.
  2. porównaj wygenerowane reguły z wyjściowym drzewem decyzyjnym. Czy reguły odzwierciedlają precyzyjnie drzewo (tj. wszystkie ścieżki od korzenia do liści) ?
  3. [pomiń w sprawozdaniu] stwórz własny, bardzo prosty zbiór danych (np. jeden lub dwa atrybuty, kilka przypadków), i sprawdź, jakie drzewa i reguły są generowane przy różnych ustawieniach algorytmu C4.5. Modyfikuj ten zbiór w miarę potrzeb, by przetestować wpływ ustawień algorytmu na tworzone drzewa i reguły. Zwróć uwagę na działanie parametru "minimum objects"; w zbiorze danych możesz powielać przypadki (tzn. może być wiele identycznych przypadków).
  4. [pomiń w sprawozdaniu] przeczytaj jak powstaje ostateczny zbiór reguł w C4.5.

Zadanie 2: Porównanie klasyfikowania za pomocą drzew decyzyjnych i reguł decyzyjnych (C4.5rules)

  1. przeprowadź testy 10-fold CV na wybranych (co najmniej dwóch) zbiorach dla drzew i reguł (w opcji CrossValidation/Test trzeba zaznaczyć pole „Trees and rules”)
  2. porównaj wyniki pod kątem:
    • trafności klasyfikowania (na zbiorze testującym),
    • rozmiaru opisu (liczba węzłów drzewa a liczba reguł; spróbuj też zaproponować lepsze parametry charakteryzujące drzewa i reguły, nadające się do ich możliwie sprawiedliwego porównania).
    Zaprezentuj wyniki graficznie.
  3. przeprowadzając kilka eksperymentów uczenia i testowania (raczej bez cross validation) przeanalizuj wpływ parametrów Confidence Level i Redundancy Factor na otrzymywany zbiór reguł (tu warto sobie przypomnieć z wykładu, jaka jest interpretacja tych współczynników i na co wpływają). Pożądana prezentacja graficzna rezultatów/wniosków.

Zadanie 3: Generowanie reguł z użyciem algorytmu LEM

  1. [pomiń w sprawozdaniu] przypomnij sobie pojęcia: definicja reguły (lokalnie minimalne wyrażenie dyskryminujące), idea górnego i dolnego przybliżenia, wybór selektorów – uwaga na konflikty, minimalizacja (liniowa) kompleksu, minimalizacja (liniowa) zbioru reguł, reguły pewne i możliwe
  2. [pomiń w sprawozdaniu] przykład: generowanie zbioru reguł dla przykładu z pracy Grzymały-Bussego (HPAP.ISF)
  3. wygeneruj reguły dla zbioru HPAP.ISF (wywołanie: lem.exe lem.cfg. "lem.cfg" to plik tekstowy, w którym definiuje się m.in. plik wejściowy (zbiór przykładów) i plik wyjściowy (zbiór reguł)).
  4. przyjrzyj się regułom możliwym; opisz je i „wydedukuj”, skąd się wzięły.

Zadanie 4: Porównanie reguł generowanych za pomocą algorytmu LEM i C4.5

  1. wygeneruj reguły przy użyciu obu podejść dla zbiorów: HPAP, VOTE i (opcja) jeden ze zbiorów MONK (konieczne „ręczne” przekonwertowanie zbioru do/z formatu C4.5, ale to nie jest trudne – oba formaty są zbliżone: plik *.isf to prawie to samo co „sklejony” *.nam i *.dat).
  2. przyjrzyj się niezależnie regułom pewnym i możliwym (LEM).
  3. przeprowadź analizę porównawczą otrzymanych klasyfikatorów pod kątem podobieństw i różnic (ta analiza nie musi być kompletna, bo wygenerowanych reguł może być wiele; skup się na kilku co bardziej interesujących aspektach/regułach). Zastanów się nad różnicami dotyczącymi użycia obu klasyfikatorów (lista a zbiór reguł).

Zadanie 5: [dla chętnych; wymaga użycia ROSE, ew. lem.exe] Przeprowadź eksperyment generowania i testowania reguł LEM w ramach cross validation.

Dla lem.exe trzeba edytować (tekstowy i prosty, ale nieudokumentowany) plik lem.cfg. W ROSE: w drzewku projektu wybieramy „Validation” i tam typ reguł (dla LEM’a: „Basic Minimal Covering”). Przeciągamy na plik ISF i pojawia się okno dialogowe z opcjami walidacji.

Zadanie 6: Zapoznaj się z programem cn2\WinCn2.exe.