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.