Lista 4
Transkrypt
Lista 4
Ćwiczenia 3 – Klasyfikacja Danych Niekompletnych Dane pomiarowe wykorzystywane w procesie klasyfikacji rzadko występują w formie czystej, to znaczy takiej w której dane pozbawione są różnego rodzaju szumów oraz błędów pomiaru. Często dane pomiarowe są uszkodzone lub brakuje w nich poszczególnych wartości. Przy opracowywaniu modeli uczenia maszynowego ważne jest aby określić, oznaczyć i uchwycić brakujące dane w celu uzyskania jak najlepszych wyników działania algorytmu. Celem laboratorium jest ocena działania trzech algorytmów klasyfikacji danych, a mianowicie: Naiwnego klasyfikatora Bayes’a, Maszyny Wektorów Nośnych, Sztucznej Sieci Neuronowej. do klasyfikacji niekompletnych danych pomiarowych oraz wykorzystanie pakietu WEKA do filtracji i oczyszczania niekompletnych danych pomiarowych. Poniższe instrukcje odpowiedzą na pytania: I. II. III. Jak oznaczyć brakujące wartości w zbiorze danych? Jak usunąć rekordy z brakującymi wartościami ze zbioru danych? Jak przypisać brakujące wartości? W tym celu wykorzystamy zbiór danych: Pima Indians (https://archive.ics.uci.edu/ml/datasets/Pima+Indians+Diabetes). Jest to problem klasyfikacji, gdzie każdy rekord reprezentuje dane medyczne dla jednego pacjenta, a zadaniem jest przewidzieć, czy u danego pacjenta wystąpi cukrzyca w ciągu następnych pięciu lat. Można również uzyskać dostęp do tego zestawu danych w instalacji Weka, w katalogu data w pliku o nazwie w diabetes.arff I. Jak oznaczyć brakujące wartości w zbiorze danych? Zbiór danych Pima Indians jest dobrym przykładem poszukiwania brakujących danych. Niektóre atrybuty, takie jak ciśnienie krwi (pres) oraz Body Mass Index (masa) mają wartości zerowe, które są niemożliwe z biologicznego punktu widzenia. Są to przykłady uszkodzonych lub brakujących danych, które muszą być oznaczone ręcznie. Weka umożliwia oznaczenie brakujących wartości używając filtra NumericalCleaner. Poniższe instrukcje pokazują jak używają tego filtru, oznaczyć 11 brakujących wartości w atrybucie Body Mass Index (masa). 1. Uruchom Wekę i kliknij w przycisk Explorer 2. Załaduj dane Pima Indians 3. Kliknij na przycisk “Choose” w zakładce Preproces -> Filter i wybierz NumericalCleaner, który znajdziesz w unsupervized.attribute.NumericalCleaner. 1 4. Zaznacz filtr w celu jego konfiguracji 5. Ustaw attributeIndicies na 6 (indeks antrybuty “mass”) 6. Ustaw minThreshold na 0.1E-8 (bliskie zeru), co jest minimalną możliwą wartością tego atrybutu. 7. Ustaw minDefault na NaN, co reprezentuje wartość nieznaną i zastąpi wszystkie wartości poniżej wartości progowej, oraz kliknij przycisk „OK” a następnie „Apply” w celu zastosowania filtra do danych. Zaznacz atrybut “mass” w panelu z atrybutami i zapoznaj się ze szczegółami zaznaczonego atrybutu. Zauważ ze 11 wartości atrybutu które zostały ustawione na 0 są teraz oznaczone jako brakujące. W tym przykładzie oznaczyliśmy wartości poniżej wartości progowej jako brakujące. Można je równie łatwo oznaczyć przypisując określoną inną wartość liczbową. Można również oznaczyć wartości w przedziale liczbowym jako brakujące, to znaczy gdy znajdują się one pomiędzy górną i dolną wartością progową. Następnie, przyjrzyjmy się, jak możemy usunąć rekordy z brakującymi wartościami z naszej bazy danych. II. Jak usunąć rekordy z brakującymi wartościami ze zbioru danych? Prostym sposobem jak poradzić sobie z brakującymi danymi jest usunięcie tych wystąpień, które mają jedną lub więcej brakujących wartości. W Weka można to zrobić przy użyciu filtra RemoveWithValues. Kontynuując z powyższym przykładem, można usunąć brakujące wartości w następujący sposób: 1. W oknie wyboru filtrów wybierz filtr RemoveWithValues i kliknij przycisk „Choose”. 2 2. Zaznacz filtr w celu jego konfiguracji 3. Ustaw attributeIndicies na 6 (indeks antrybutu “mass”) 4. Ustaw matchMissingValues na True 5. Kliknij przycisk "OK", aby użyć konfiguracji filtru 6. Kliknij przycisk "Apply", aby zastosować filtr. Wybierz atrybut "mass" w sekcji atrybutów i przejrzyj szczegóły wybranego atrybutu. Należy zauważyć, że 11 wartości atrybutów, które w poprzednim kroku zostały oznaczone jako „Missing” zostały usunięte ze zbioru danych. 3 III. Jak przypisać brakujące wartości? Rekordy z brakującymi wartościami nie muszą być jednak usuwane i można zastąpić brakujące wartości jakąś inną z góry określoną wartością. Takie rozwiązanie problemu brakujących wartości nazywamy przypisaniem. Często stosowana metoda przypisania brakujących wartości wykorzystuje wartości średniej rozkładu danej zmiennej. Można to z łatwością zrobić w Weka używając filtra ReplaceMissingValues. Kontynuując z pierwszym przykładem, można przypisać brakujące wartości w następujący sposób: 1. W oknie wyboru filtrów wybierz filtr ReplaceMissingValues i kliknij przycisk „Choose”. 2. Kliknij przycisk "Apply", aby zastosować filtr do zbioru danych. Kliknij na atrybut "mass" w sekcji atrybutów i przejrzyj szczegóły wybranego atrybutu. Zauważ, że 11 wartości atrybutów, które w pierwszy przykładzie zostały oznaczone jako „Missing” zostały ustawione na wartości średniej rozkładu. Zadanie do samodzielnego wykonania (Sprawozdanie) 1. Pobrać zbiór Pima Indians (dołączony w pakiecie WEKA). 2. Przygotować dane do wczytania w WEKA. 3. Uruchomić WEKA i zbudować 3 niezależne modele klasyfikacji mające za zadanie przewidzieć, czy u danego pacjenta wystąpi cukrzyca w ciągu następnych pięciu lat. Modele te należy zbudować w oparciu o następujące algorytmy: a. Naiwny klasyfikatora Bayes’a – NaiveBayes, b. Maszynę Wektorów Nośnych – SMO, c. Sztuczną Sieć Neuronową – MultilayerPerceptron, 4. Dla każdego z powyższych algorytmów należy zbudować 3 modele (łącznie 9 modeli): 1) Wykorzystując zbiór danych z brakującymi wartościami 2) Wykorzystując zbiór danych z usuniętymi brakującymi wartościami 3) Wykorzystując zbiór danych z podmienionymi brakującymi wartościami 4 W raporcie należy w szczególności przedyskutować wpływ brakujących/podmienionych wartości na proces uczenia i predykcji oraz omówić, które algorytmy poradziły sobie z brakującymi wartościami, a które nie. 5. Zmieniając parametry klasyfikatorów utwórz zadowalający algorytm klasyfikacji analizując macierz pomyłek (ang. Confusion Matrix) oraz obliczając i porównująć takie parametry jak: a. Dokładność (ang. Accuracy) b. Wrażliwość / czułość (ang. Sensitivity) c. Specyficzność (ang. Specificity) – Jak w WEKA nazywa się ten parametr? d. Odsetek wyników fałszywie dodatnich (ang. False-positive rate) 6. Analizując powyższe parametry oraz krzywą ROC (ang. Receiver Operating Characteristic) porównaj utworzone algorytmy i posortuj je w kolejności od najlepszego do najgorszego. 7. Wykonaj sprawozdanie z zadania zawierając: a. Cześć z opisem zasady działanie algorytm (skorzystaj z dokumentacji WEKA oraz materiałów dostępnych online) b. Opisz zbiorów danych (ile/jakie są atrybuty, czego dotyczy zbiór, różnorodność danych oraz inne dane o ile autor uzna je za istotne). c. Wyniki z klasyfikacji d. Wnioski i podsumowanie eksperymentu Sprawozdanie należy przesłać w pliku pdf imie_nazwisko.pdf. Mail z wynikami należy wysłać na adres mailowy prowadzącego i zatytułować DM_CW3_Brakujące_Dane. 5