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