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