Informatyka, studia dzienne, inż I st. semestr VI Inteligentna analiza danych 2010/2011 Prowadzący: dr inż. Arkadiusz Tomczyk środa, 8:30 Data oddania: Ocena: Marek Rogalski 150982 Paweł Tarasiuk 151021 Zadanie 1 1. Cel Celem zadania było stworzenie programu przetwarzającego zbiory danych oraz wyliczającego statystyki cech, a także rozważenie możliwości klasyfikacji zbiorów na podstawie obliczonych statystyk. 2. Wprowadzenie W zbiorach danych możemy wydzielać różnego rodzaju cechy. Dwie z nich, na jakie zwracaliśmy uwagę w naszej pracy to cechy nominalne, oraz ciągłe. Cecha nominalne jest to pewna wartość z dyskretnego, przeliczalnego zbioru wartości, często utożsamiana z etykietą. Cechy nominalne w prosty sposób dzielą zbiór badany zbiór na zestaw podzbiorów. Cecha ciągła jest to liczba reprezentująca pewną mierzalną wartość badanego obiektu. Cechy ciągłe często występują w zależnościach względem nadanych ich cech nominalnych. W niniejszym ćwiczeniu badaliśmy zależności pomiędzy takimi cechami w dużych zbiorach danych. Korzystaliśmy w tym celu z zestawu statystyk, oraz reprezentacji graficznych. Wśród reprezentacji graficznych znalazły się wykresy współzależności oraz histogramy cech. Metody statystyczne uwzględniały statystyki takie jak: x Średnią arytmetyczną: n SVN: http://serce.ics.p.lodz.pl/svn/labs/iad/atmp_sr0830/marpab/ trunk/zadanie1/@134 1
n Średnią harmoniczną: 1 x n Średnią geometryczną: x Medianę: x n/2 Dominantę: max(n x ) x K-ty moment centralny (dla k=1,2,3): Odchylenie standardowe: (xi x) 2 n (xi x) k Współczynnik asymetrii oparty na dominancie: x D s Moment standaryzowany trzeciego rzędu: µ 3 σ 3 Kurtozę: µ 4 3 σ 4 n 3. Opis implementacji Rozwiązanie zostało zaimplementowane z wykorzystaniem programów i narzędzi takich jak: python2.6, python3.0, gnuplot, bash, make, gcc, sed, grep. Praca programu dzieli się na dwie części. Pierwsza z nich, zarządzana Rysunek 1. Grube strzałki oznaczają przepływ danych. Małe reprezentują hierarchię katalogów. przez skrypt Makefile, pobiera dane i przygotowuje opisy zbiorów, a następnie uruchamia skrypty plot.py (generuje wykresy współzależności cech) i 2
histit.py (rysuje histogramy cech). Skrypty te przeglądają wskazany zbiór danych, a następnie uruchamiają program gnuplot (wielokrotnie, w oddzielnych procesach) i wykonują w nim polecenia niezbędne do narysowania odpowiednich wykresów. Wynik ich pracy trafia do katalogu plots. Druga część programu, uruchamiana przez skrót browse.sh, wyświetla okno przeglądania statystyk. W oknie można wykonać takie operacje jak wybór zbioru danych, filtrować zbiór według wartości cech nominalnych, a także określać ilość przedziałów klasowych rysowanego histogramu. Program jest sterowany przez plik browse.py. W celu obliczania statystyk, uruchamia on szereg instancji programu vicious, który sam w sobie oblicza statystyki podanych na wejściu liczb, oraz przekazuje im na wejście odpowiednio przefiltrowane dane. Wyniki działania prezentowane są w tabeli w górnej części programu. Druga funkcja programu browse.py to rysowanie histogramów odpowiednich cech. Histogramy rysowane są za każdym razem gdy użytkownik zmieni interesującą go cechę lub filtr danych. 4. Materiały i metody Przetwarzane dane były ciągami rekordów w formacie CSV opisującymi populacje: irysów, słuchotek, oraz mieszkańców Stanów Zjednoczonych. Przetwarzane dane badane były na trzy zasadnicze sposoby: Poprzez obliczenie szeregu statystyk. Wśród nich: średniej arytmetycznej, średniej harmonicznej, średniej geometrycznej, mediany, dominanty, k-tego momentu centralnego (dla k=1,2,3), odchylenia standardowego, współczynnika As, momentu standaryzowanego trzeciego rzędu, oraz kurtozy. Poprzez wykonanie wykresów cech z wyróżnieniem grup cech nominalnych dzielących zbiór rekordów. Wykresy wykonano dla wszystkich par cech ciągłych z podziałem na każdą cechę nominalną. Poprzez wykonanie zestawu histogramów obrazujących rozkład wartości z uwzględnieniem cech nominalnych. Histogramy wykonano dla każdej cechy ciągłej z podziałem na każdą cechę nominalną. Niektóre histogramy dla zwiększenia czytelności zostały rozbite na kilka osobnych tak by elementy dominującej grupy nie zaciemniały histogramów pozostałych grup. Celem wykonania wykresów oraz histogramów było rozważenie zależności pojawiających się w zbiorze danych. Zależności tych doszukiwaliśmy się poprzez szukanie zależności geometrycznych na wykresach par cech, oraz zgrupowań rekordów na histogramach. 5. Wyniki Wynikiem przetwarzania był duży zestaw wykresów oraz histogramów: 3
Tabela 1: Zestaw Iris Iris - Histogram (1) Iris - Histogram (2) Iris - Histogram (3) Iris - Histogram (4) Iris - Wykres (1) Iris - Wykres (2) Iris - Wykres (3) Iris - Wykres (4) 4
Tabela 1: Zestaw Iris Iris - Wykres (5) Iris - Wykres (6) Tabela 2: Zestaw Abalone Abalone - Histogram (1) Abalone - Histogram (2) Abalone - Histogram (3) Abalone - Histogram (4) Abalone - Histogram (5) Abalone - Histogram (6) 5
Tabela 2: Zestaw Abalone Abalone - Histogram (7) Abalone - Histogram (8) Abalone - Wykres (1) Abalone - Wykres (2) Abalone - Wykres (3) Abalone - Wykres (4) Abalone - Wykres (5) Abalone - Wykres (6) 6
Tabela 2: Zestaw Abalone Abalone - Wykres (7) Abalone - Wykres (8) Abalone - Wykres (9) Abalone - Wykres (10) Abalone - Wykres (11) Abalone - Wykres (12) Abalone - Wykres (13) Abalone - Wykres (14) 7
Tabela 2: Zestaw Abalone Abalone - Wykres (15) Abalone - Wykres (16) Abalone - Wykres (17) Abalone - Wykres (18) Abalone - Wykres (19) Abalone - Wykres (20) Abalone - Wykres (21) Abalone - Wykres (22) 8
Tabela 2: Zestaw Abalone Abalone - Wykres (23) Abalone - Wykres (24) Abalone - Wykres (25) Abalone - Wykres (26) Abalone - Wykres (27) Abalone - Wykres (28) Tabela 3: Zestaw Adult Adult - Histogram (1) Adult - Histogram (2) 9
Adult - Histogram (3) Adult - Histogram (4) Adult - Histogram (5) Adult - Histogram (6) Adult - Histogram (7) Adult - Histogram (8) Adult - Histogram (9) Adult - Histogram (10) 10
Adult - Histogram (11) Adult - Histogram (12) Adult - Histogram (13) Adult - Histogram (14) Adult - Histogram (15) Adult - Histogram (16) Adult - Histogram (17) Adult - Histogram (18) 11
Adult - Histogram (19) Adult - Histogram (20) Adult - Histogram (21) Adult - Histogram (22) Adult - Histogram (23) Adult - Histogram (24) Adult - Histogram (25) Adult - Histogram (26) 12
Adult - Histogram (27) Adult - Histogram (28) Adult - Histogram (29) Adult - Histogram (30) Adult - Histogram (31) Adult - Histogram (32) Adult - Histogram (33) Adult - Histogram (34) 13
Adult - Histogram (35) Adult - Histogram (36) Adult - Histogram (37) Adult - Histogram (38) Adult - Histogram (39) Adult - Histogram (40) Adult - Histogram (41) Adult - Histogram (42) 14
Adult - Histogram (43) Adult - Histogram (44) Adult - Histogram (45) Adult - Histogram (46) Adult - Histogram (47) Adult - Histogram (48) Adult - Histogram (49) Adult - Histogram (50) 15
Adult - Histogram (51) Adult - Histogram (52) Adult - Histogram (53) Adult - Histogram (54) Adult - Histogram (55) Adult - Histogram (56) Adult - Histogram (57) Adult - Histogram (58) 16
Adult - Histogram (59) Adult - Histogram (60) Adult - Histogram (61) Adult - Histogram (62) Adult - Histogram (63) Adult - Wykres (1) Adult - Wykres (2) Adult - Wykres (3) 17
Adult - Wykres (4) Adult - Wykres (5) Adult - Wykres (6) Adult - Wykres (7) Adult - Wykres (8) Adult - Wykres (9) Adult - Wykres (10) Adult - Wykres (11) 18
Adult - Wykres (12) Adult - Wykres (13) Adult - Wykres (14) Adult - Wykres (15) Adult - Wykres (16) Adult - Wykres (17) Adult - Wykres (18) Adult - Wykres (19) 19
Adult - Wykres (20) Adult - Wykres (21) Adult - Wykres (22) Adult - Wykres (23) Adult - Wykres (24) Adult - Wykres (25) Adult - Wykres (26) Adult - Wykres (27) 20
Adult - Wykres (28) Adult - Wykres (29) Adult - Wykres (30) Adult - Wykres (31) Adult - Wykres (32) Adult - Wykres (33) Adult - Wykres (34) Adult - Wykres (35) 21
Adult - Wykres (36) Adult - Wykres (37) Adult - Wykres (38) Adult - Wykres (39) Adult - Wykres (40) Adult - Wykres (41) 22
6. Dyskusja 6.1. Zestaw Iris Zestaw Iris przedstawia zbiór pomiarów trzech gatunków irysów. Dane przedstawione na histogramach 1 i 2 są pomieszane. Chociaż szczytowe słupki pozostają w przesunięciu (co znajduje odzwierciedlenie w obliczonych statystykach), istnieją takie przedziały klasowe, w których znajdują się osobniki ze wszystkich trzech klas. Więcej informacji niosą pozostałe dwa histogramy, prezentujące rozkład cech Petal Width i Petal Length. Wartości rożnych klas posiadają wyraźniej rozsunięte środki rozkładów. Iris Setosa znajduje się nawet w odległości tak, że żaden z osobników tego gatunku nie trafił do przedziału klasowego z innym gatunkiem. Wśród wykresów najciekawszy jest pierwszy z nich, gdyż przedstawia on dane zgromadzone również na histogramach 1 i 2. W tym jednak przypadku widać zależność pomiędzy tymi dwiema cechami. Da się tu wskazać prostą dzielącą populacje wszystkich trzech klas, która rozgraniczy Iris Setosa od Iris Virginica i Iris Versicolor. Pozostałe wykresy prezentują resztę możliwych kombinacji badanych parametrów. Chociaż zależności występujące pomiędzy parametrami różnych klas nie są już tak widoczne, choć wykres 3 pozwala wskazać podobną prostą dla klas Iris Virginica i Iris Versicolor, która pomimo, ze skutecznie rozgranicza dane klasy, nie robi tego doskonale. Najlepsza prosta, jaką byliśmy w stanie wskazać była w stanie podzielić zbiory Iris Virginica i Iris Versicolor z dokładnością do dwóch błędów. Punkty należące do różnych klas wyraźnie grupują się w obszarach, które można w pewien sposób opisać za pomocą rozkładów prawdopodobieństwa. Jedna z możliwości klasyfikacji punktów na podstawie ich parametrów mogłaby polegać na obliczeniu parametrów tych rozkładów (na podstawie już zebranych danych) i klasyfikacja według prawdopodobieństw przynależności do różnych grup dla danego nowego osobnika. Inna metoda poszukiwania takiego klasyfikatora mogłaby polegać na przedstawieniu zbiorów cech w przestrzeni trójwymiarowej i szukaniu takich płaszczyzn, które mogłyby posłużyć jako klasyfikatory rozdzielając populacje wszystkich trzech klas. 6.2. Zestaw Abalone Zestaw przedstawia populację słuchotek, zwierząt które same w sobie są dość ciężkie do opisania inaczej niż, że jest to gatunek jadalnych morskich stworzeń z muszlami. Celem zebrania tych danych było znalezienie takiej metody, która pozwoliłaby na szacowanie ilości warstw w muszlach, a tym samym ich wieku, na podstawie prostych do zgromadzenia pomiarów. Populacja mięczaków podzielona jest na trzy klasy, które przedstawiają rodzaje męski, żeński i nijaki. Zbadanie histogramów pokazuje, zbiór nijakich słuchotek odróżnia się od pozostałych swoim rozmiarami oraz wagą. Ich analiza nie niesie niestety zbyt wielu wskazówek na temat tego, jak szacować ich wiek. Jedyny histogram, który ma tu znaczenie to ostatni z nich, o numerze 23
8, który to prezentuje niewielki wzrost słupków przedziałów klasowych dla niskich ilości pierścieni (w tym przypadku poniżej 7) w przypadku nijakich słuchotek, oraz analogiczny wzrost słupków przedziałów klasowych dla słuchotek męskich i żeńskich przy większej ilości pierścieni. W istocie, średnia ilość pierścieni nijakich słuchotek to około 8, a w przypadku słuchotek męskich i żeńskich to około 11 pierścieni. Większą ilość wskazówek niosą same wykresy. Tutaj jednak, podobnie skupiamy się na wykresach przedstawiających zależności różnych cech od ilości pierścieni. Będą to wykresy: siódmy, dwunasty, szesnasty, dziewiętnasty, dwudziesty pierwszy i dwudziesty drugi. Dla różnych wartości wag wyraźnie zmienia się rozkład ilości pierścieni. Zależność tego rozkładu od wagi można oszacować zakładając na przykład, że dolnym i górnym ograniczeniem dla ilości pierścieni może być a W dla pewnego a dla ograniczenia dolnego i innego a dla ograniczenia górnego. Szacowanie zależności rozkładów wydaje się najbardziej oczywistym kryterium dla określania ilości pierścieni słuchotek. 6.3. Zestaw Adult W tym zestawie celem jest klasyfikacja, czy dany przedstawiciel populacji zarabia więcej, czy mniej niż 50 tys. dolarów rocznie. Zbiór danych obejmuje czternaście parametrów, z których wiele zdaje się mieć wpływ na decyzję. Zbiór danych jest na tyle duży, że w przypadku niektórych wykresów dane są wręcz nieczytelne z powodu wysokich koncentracji punktów w niektórych ich miejscach. Wskazanie dobrego kryterium klasyfikacji jest w tym przypadku bardzo trudne. Składa się na to wspomniany rozmiar danych oraz obecność wielu cech charakteryzujących każdy z rekordów. Zbierając dane z histogramów prezentujących wpływ różnych cech na roczne zarobki (grupa histogramów Capital Gain grouped by... ) możemy w pewien sposób oceniać nowe rekordy przydzielając im punkty na podstawie zbieżności kolejnych ich cech z grupą do której będą przydzielane. Dużo zależy od samej metody punktowania. Może to być na przykład suma (bądź suma warunkowa) prawdopodobieństw tego, że rekord o danej cesze nominalnej trafi do przedziału klasowego powyżej 50000. Próg punktowy, powyżej którego następowałaby klasyfikacja można wtedy ustalić na procent społeczeństwa, który zarabia powyżej 50000. 7. Wnioski Zadanie klasyfikacji przy odpowiednim przedstawieniu problemu może ograniczyć się do problemu geometrycznego takiego jak znajdowanie otoczki wypukłej zbioru, bądź podziału przestrzeni z punktami należącymi do różnych klas na obszary jednoznacznie rozróżniające klasy punktów. Kolejną ważną metodą klasyfikacji jest możliwość zastosowania metod statystycznych do znalezienia cech charakteryzujących różne klasy, a następnie klasyfikacja z ich wykorzystaniem. W przypadku zbiorów cechujących się dużą ilością atrybutów i dużymi rozmiarami danych, analiza metodami graficznymi często może nie 24
przynosić efektów. Metody statystyczne w takich przypadkach pozwalają wyznaczyć szereg wyznaczników dla różnych klas wyznaczanych przez atrybuty nominalne. Literatura [1] UCI Machine Learning Repository Iris Data Set, Abalone Data Set, Census Data Set [2] Wikipedia [http://pl.wikipedia.org/] Kurtoza 25