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)
- 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.
- 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) ?
- [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).
- [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)
- 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”)
- 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).
- 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
- [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
- [pomiń w sprawozdaniu] przykład: generowanie zbioru reguł dla przykładu z pracy Grzymały-Bussego (HPAP.ISF)
- 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ł). - 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
- 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).
- przyjrzyj się niezależnie regułom pewnym i możliwym (LEM).
- 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.