Konkurs z przedmiotu eksploracja i analiza danych: problem regresji

Transkrypt

Konkurs z przedmiotu eksploracja i analiza danych: problem regresji
Konkurs z przedmiotu eksploracja i
analiza danych: problem regresji i
klasyfikacji
Michał Witczak
Data Mining
20 maja 2012 r.
1. Wstęp
Dostarczone zostały nam 4 pliki, z których dwa stanowiły zbiory uczące a dwa inne były zbiorami
testującymi. Jedno z zadań stanowił problem regresji a drugi problem klasyfikacji. Należało stworzyć
modele rozwiązania dla obu problemów, zastosować je dla zbiorów testujących. Następnie uzyskane
wyniki będą sprawdzone przez prowadzącą.
Zbiór danych uczących dla problemu klasyfikacji zawierał ponad 2 tysiące instancji. Każdy z nich
opisany przez 13 atrybutów, które dzielą instancje na dwie klasy. W zbiorze część argumentów ma
charakter dyskretny a część decyzyjny.
Tyle samo atrybutów i tyle samo przypadków zawierał zbiór danych uczących dla problemu
regresji. W tym przypadku również są to argumenty ciągłe, jak i dyskretne.
2. Opis użytych metod i otrzymanych modeli
2.1.Problem regresji
Przed przystąpieniem do badania postanowiono zebrać informacje, które algorytmy
zaimplementowane w Wece nadają się do problemu regresji. Z wybranych metod najlepsze okazały
się M5P oraz IBk (k najbliższych sąsiadów). Zdecydowano się na metodę M5P ponieważ przy
wyłączeniu jednego z jej parametrów (wygładzania) dawała znakomite wyniki.
Metoda, która kryje się w Wece pod nazwą „M5P” ma być rozwinięciem algorytmu M5.
Algorytm ten ma bazować na budowaniu zwykłych drzew decyzyjnych, z tą różnicą, że w liściach
mogą występować funkcje regresji zamiast klas tak jak to ma miejsce w problemach klasyfikacji. Przy
budowie drzewa algorytm wybiera tak atrybuty, aby zmniejszyć przedział wartości klasy na
poszczególnych gałęziach. Innymi słowy drzewo jest w budowane w taki sposób, aby każdy liść
zawierał jak najmniejszy przedział wartości. Po utworzeniu drzewa wykonywany jest pruning, który
może prowadzić do braku ciągłości pomiędzy sąsiednimi liśćmi w drzewie. Dlatego po tym
uruchamiana jest procedura zwana „wygładzaniem”, która analizuje wartości funkcji w
poszczególnych liściach i dopasowuje ich wartości „w górę drzewa” do samego korzenia. Po tej fazie
następuje generowanie reguł. Z drzewa za pomocą algorytmów heurystyk wybierany jest jeden
najlepszy liść, który usuwany z drzewa tworząc regułę(usuwane są również przypadki które
pokrywają ten liść ze zbioru uczącego). Krok ten powtarzany jest aż wszystkie przypadki ze zbioru
uczącego się zostaną pokryte zostaną przez przynajmniej jedną regułę. Następnie wybierane są
reguły, które utworzą model. Niestety nie udało się dotrzeć do informacji na jakiej podstawie
wybierane są te reguły konkretnie w M5P, wiadomo jednak że np. w podstawowej wersji stosowano
np. proste podejście wybierające reguły, które miały największe pokrycie.
Algorytm M5P różnie się od klasycznego M5 między innymi tym, że podczas usuwania liści z
drzewa stosowane jest „surrogate splitting”, które sprawia, że tak naprawdę z drzewa nie są usuwane
liście, tylko zastępowane przez uśrednione wartości z pobieranych liści.
Ostatecznie wybrano metodę M5P z włączoną wygładzaniem i minimalną liczbą przypadków
w liściu określoną jako 4. W opisie algorytmu znajdujemy informacje, że wygładzanie ma polepszać
jakość rozwiązania. Jednak wynik na zbiorze pokazywał odwrotną sytuacje. Postanowiono zaufać
jednak osobom, które mają lepszą wiedzę o sposobie funkcjonowania tego algorytmu.
Sama predykcja na podstawie modelu powinna odbywać się w dwóch krokach. W pierwszym
kroku dany przypadek powinien przejść do odpowiedniego liścia, w którym będzie znajdować się
odwołanie do odpowiedniej reguły (równania atrybutów ze współczynnikami), przy użyciu której
można wyznaczyć daną wartość dla poszczególnego przypadku.
2.2.Problem klasyfikacji
Wybór metody rozpoczął się oczywiście od analizy zestawu uczącego. Zauważono, że argumenty,
które przyjmują wartości ciągłe nie wnoszą wiele do poprawy wyników. Skorzystano z algorytmów
tworzących rankingi atrybutów, wbudowanych w Wekę. Wyniki potwierdziły przypuszczenie, że
należy odrzucić atrybuty o ciągłych wartościach. Postanowiono, jednak pozostawić dwa z nich, które
według rankingu były najbardziej przydatne.
Sprawdzono większość algorytmów klasyfikujących dostępnych w Wece. Poszukiwania
rozpoczęły się prostych, pojedynczych klasyfikatorów. Najlepsze wyniki uzyskano przy użyciu sieci
Bayesowskich oraz tabeli decyzyjnych. Metoda wyznaczania tabel decyzyjnych uzyskała minimalnie
lepsze rezultaty niż budowanie sieci bayerowskich, dlatego w dalszej części postanowiono szukać
rozwiązania przy użyciu multi klasyfikatorów bazujących na tej metodzie. Poza tym przy klasyfikacja i
tak bazowała tylko na argumentach dyskretnych, więc bardziej naturalne wydało się zastosowanie
tabel decyzyjnych.
Tabela decyzyjna jest oczywiście powiązana z pojęciem reguł decyzyjnych. Są to klasyfikatory
hierarchiczne które tworzą reguły: Jeżeli <warunek> to <wynik1> albo <wynik2>. Budowanie tablic
decyzyjnych sprowadza się tak naprawdę do uogólnienia, zminimalizowania reguł decyzyjnych,
wyeliminowania nadmiarowych atrybutów.
W dalszej kolejności badano możliwość zastosowania tej metody w multi klasyfikatorach.
Przypuszczono, że może uda się wykorzystać dwa pozostawione argumenty, które przyczynią się do
poprawy klasyfikacji. Dlatego spróbowano zastosować klasyfikator z założonym filtrem
(FilteredClassifier) dyskretyzacji. Sądzono, że takie rozwiązanie pozwoli na wykorzystanie dwóch
argumentów, które dotychczas nie były brane pod uwagę przy klasyfikowaniu. Jednak przeglądając
tablicę decyzyjną zauważono, że argumenty te dalej pozostają bezużyteczne. W dalszej kolejności
próbowano uzyskać jakieś rozwiązanie, które pozwoli wykorzystywać te argumenty. Nie udało się
tego osiągnąć. Być może poczyniono błędne założenia.
Ostatecznie
użyto
więc
klasyfikatora
FilteredClassifier
z
parametrami
„-F
"weka.filters.supervised.attribute.Discretize -R first-last" -W weka.classifiers.rules.DecisionTable -D --X 1 -R -S "weka.attributeSelection.ExhaustiveSearch”. Czyli użyto klasyfikatora tabel decyzyjnych,
który z kolei jako funkcję oceny miał ustawione kombinacje Accuracy (skuteczność, dla argumentów
dyskretnych) z RMSE (błąd średniokwadratowy dla argumentów ciągłych), co też miało być
wskazówką, że użycie dwóch ciągłych argumentów może być możliwe. Jako metodę wyszukiwania
wybrano oczywiście przeszukiwanie wyczerpujące, co prawda nie dało to poprawy rezultatu w
zbiorze uczącym, ale może dać jakiś rezultat w zbiorze testowym. Filtrem była dyskretyzacja.
3. Rezultaty
3.1.Problem regresji
W wyniku działania algorytmu otrzymaliśmy drzewo decyzyjne, w którym widać zastosowanie
pruningu (różna głębokość poszczególnych gałęzi) a na liściach znajdują się odwołania do reguł
decyzyjnych. Zauważono, że drzewo operowało tylko na 5 atrybutach.
3.1 fragment drzewa z odwłaniami do 4 pierwszych reguł
Same reguły mają postać równania z różnymi współczynnikami przy atrybutach. Reguł jest 28
ale operują już na wszystkich atrybutach (nie wszystkie).
3.2 1 z 28 reguł wygenerowanych przez algorytm
Analiza dopasowania stworzonego na podstawie działania tego algorytmu wprawia w
osłupienie. Zwłaszcza, gdy porównamy wyniki z działania prostych algorytmów. Być może źle został
odczytany sposób działania algorytmu i przyjęto błędne założenia. Jednak pewne raporty i
opracowania, które traktują o tym algorytmie często wskazują go jako ten, z którego pomocą
uzyskano najlepszą predykcję.
3.3 Analiza wyników uzyskanych na zbiorze uczącym
3.2.Problem klasyfikacji
W wyniku działania klasyfikatora uzyskano tablicę decyzyjną, która zawiera 36 reguł, co sugeruje
że, albo nie można było ich zredukować, albo ten algorytm tego nie przeprowadza, ponieważ taka
liczba reguł jest równa ilości kombinacji jaką można uzyskać z trzech atrybutów, które brały udział w
procesie klasyfikacji.
3.4 Tablica decyzyjna uzyskana w jako rezultat działania algorytmu
Uzyskana skuteczność na poziomie 71% wydaje się dość wysoka, jednak pryzmat wielkości
instancji, która posłużyła za zbiór uczący (2200 przypadków) nie jest to już tak imponujący wynik.
3.5 Analiza skuteczności uzyskanego modelu
Sensivity:
Specificity:
Total accuracy:
70,03%
74%
71,6%
4. Podsumowanie
Przy obu problemach zauważono, że dobór algorytmu może mieć kolosalne znaczenie w
wynikach. Algorytmy zawierały argumenty zarówno o dziedzinie ciągłej, jak i dyskretnej, dlatego w
problemie klasyfikacji trudno było określić, który typ klasyfikatora zastosować. Oczywiście, jak się
później okazało, atrybuty ciągłe były w tym przypadku bezużyteczne. Jest to kolejna rzecz na którą
należało zwrócić uwagę przy budowaniu modelu. Warto zatem przeprowadzać analizę przydatności
atrybutów przed przystępowaniem do budowy modeli.
Problem regresji pokazał nam, że jest duża dysproporcja pomiędzy rezultatami uzyskiwanymi za
pomocą prostych algorytmów, takich jak regresja liniowa, a zaawansowanymi algorytmami (M5P).
Przy okazji poznano sposób działania kilku algorytmów stosowanych do tych dwóch typów
problemów, o których wcześniej autor nie miał szerszego rozeznania.
Ponadto warto podać informacje czego tak naprawdę dotyczyły zbiory danych, lub czy były to
dane sztucznie wygenerowane. Analiza zbiorów testowych pochłonęła również sporo czasu przy
badaniach.