Lista 6 - Klasyfikacja (2)
Transkrypt
Lista 6 - Klasyfikacja (2)
Lista 6 - Klasyfikacja (2) Problem danych niezbalansowanych Problem danych niezbalansowanych pojawia się wtedy, gdy liczność jednej klasy (klasy dominującej, przyjmuje się że jest to klasa negatywna) jest istotnie wyższa niż liczność drugiej klasy (klasy zdominowanej, pozytywnej). Istotą problemu niezbalansowania jest fakt, że zastosowanie klasycznych mechanizmów uczenia na niezrównoważonym zbiorze danych może prowadzić do faworyzowania przez wyuczony klasyfikator klasy dominującej kosztem klasy zdominowanej. Do rozwiązania problemu niezbalansowania stosuje metody przetwarzania danych polegające na próbkowaniu z klasy zdominowanej bądź też eliminacji obserwacji z klasy dominującej. Do najpopularniejszych metod zalicza się: • Algorytm SMOTE. • Algorytm Selekcji Jednostronnej. Algorytm SMOTE jest metodą generowania syntetycznych próbek z klasy zdominowanej. Syntetyczne próbki umieszczane są na odcinku łączącym najbliżej położone siebie obiekty z jednej i drugiej klasy. Szczegóły dotyczące algorytmu umieszczone są na stronie: http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume16/chawla02a-html/node6.html. (a) Obserwacja wybrana w wyniku losowania (kolor czerwony) i obserwacje wybrane do eliminacji (kolor niebieski). (b) Dane po wykonaniu selekcji jednostronnej. Rysunek 1: Wybór obserwacji informacyjnych z wykorzystaniem algorytmu selekcji jednostronnej. Z kolei metodę selekcji jednostronnej definiuje się w następujących krokach: • Usuń ze zbioru uczącego wszystkie obserwacje z klasy dominującej. • Wylosuj jedną obserwację x z klasy dominującej i dodaj do zbioru uczącego. • Dla każdej z pozostałych obserwacji z klasy dominującej xn sprawdź, czy xn jest bliżej x, czy też bliżej jest dowolna obserwacja z klasy zdominowanej. • Jeżeli bliżej xn znajduje się obserwacja z klasy zdominowanej (A NIE x należący do dominującej) to dodaj xn do zbioru. Przykład znajduje się na Rysunku 1. 1 Zadania Wszystkie zadania zostaną wykonane na pliku XXXXXXL4 1.arff. 1. Należy rozszerzyć przygotowany w ramach poprzedniej listy program w ten sposób, że jako parametr będzie pobierał nazwę metody przetwarzania danych. Rozważa się tutaj trzy możliwe wartości parametru (2 pkt): • “brak” - program wykonuje testowanie z wykorzystaniem walidacji krzyżowej bez przetwarzania (brak zmian w działaniu programu). • “SMOTE” - zbiór wykorzystywany do uczenia, przed procedurą uczenia (tylko treningowy, dla każdego z foldów) jest przetwarzany z wykorzystaniem SMOTE. • “Algorytm Selekcji Jednostronnej” - zbiór wykorzystywany do uczenia, przed procedurą uczenia (tylko treningowy, dla każdego z foldów) jest przetwarzany z wykorzystaniem Algorytmu Selekcji Jednostronnej. 2. Dla każdej z metod należy przeprowadzić badanie metod JRip, J48,SMO, MultilayerPerceptron, oraz NaiveBayes, po zastosowaniu “Algorytm Selekcji Jednostronnej”, oraz “SMOTE”. Należy porównać wyniki otrzymane przed zastosowaniem mechanizmów przetwarzania do wyników otrzymanych po zastosowaniu “Algorytm Selekcji Jednostronnej”, następnie z wynikami otrzymanymi w wyniku zastosowania “SMOTE”. Następnie należy wybrać metodę JRip i przeprowadzić dla niej badanie zależności pomiędzy % wygenerowanych próbek metodą “SMOTE” ( oś x, wartości od 0 do 300 %), a wartością GMean (oś y) otrzymanej w wyniku krzyżowej walidacji. Dla parametru (% wygenerowanych próbek) o najwyższej wartości GMean należy wyuczyć klasyfikator JRip na całym zbiorze danych poszerzonym o zestaw próbek syntetycznych i zwrócić zestaw reguł decyzyjnych (Wskazówka wykorzystać metodę printlClassifier()) (3 pkt). 3. Należy zaimplementować złożony klasyfikator składający się K klasyfikatorów J48. Klasyfikacja złożonej metody dokonywana jest za pomocą metody głosowania w przypadku której ostateczny wynik klasyfikacji stanowi większość z wyników zwracanych przez klasyfikatory bazowe (Przykładowo, dla K=10, jeżeli 7 J48 zwróci klasę “dobry klient”, a 3 klasę “zły klient” wówczas klasyfikator złożony zwróci “dobry klient”). Każdy z klasyfikatorów J48 uczony jest na zbiorze danych poddanym przetwarzaniu poprzez zastosowanie Algorytmu Selekcji Jednostronnej. Należy przeprowadzić analizę jakości opracowanego klasyfikatora złożonego wykorzystując walidację krzyżową (3 pkt). 2