• Nie Znaleziono Wyników

Eksploracja danych w środowisku R

N/A
N/A
Protected

Academic year: 2021

Share "Eksploracja danych w środowisku R"

Copied!
10
0
0

Pełen tekst

(1)

Eksploracja danych w środowisku R

Moi drodzy, niniejszy konspekt nie omawia eksploracji danych samej w sobie. Nie dowiecie się tutaj o co chodzi w generowaniu drzew decyzyjnych czy grupowaniu danych. Te informacje znajdziecie w osobnych materiałach do których źródła wam podaję w odpowiednich częściach tego konspektu.

Jest on natomiast instrukcją do wykonania algorytmów drzew decyzyjnych oraz analizy skupieo (metody grupowania) dla wybranego przeze mnie zbioru danych irysów z repozytorium danych UCI Machine Learning Repository. Algorytmy wywołacie w środowisku R gdyż ma on zaimplementowane odpowiednie do tego pakiety.

Część I: Drzewa decyzyjne

Jeśli chcecie zdobyd szerszą wiedzę z zakresu drzew decyzyjnych, nie obejdzie się bez lektury wykładu:

http://zsi.tech.us.edu.pl/~nowak/abdiped/w4.pdf.

Lektura tego wykładu bądź innych materiałów dotyczących drzew decyzyjnych jest niezbędna byście dobrze zrozumieli ideę tej grupy metod eksploracji wiedzy. Drzewa decyzyjne budują z danych drzewo, którego odczyt w kierunku od korzenia do liścia, odpowiada regule, w której po spełnieniu określonych warunków podejmowana jest pewna decyzja.

Atrybut decyzyjny (ang. class) występuje w drzewie jako liśd, zaś wierzchołki drzewa nie będące liśdmi – są atrybutami warunkowymi.

Istnieje wiele algorytmów budowy drzew decyzyjnych: ID3, CART, C4.5 itp. Ale ich poznanie nie jest tutaj niezbędne.

Istotą tego dwiczenia jest próba zbudowania dla własnego zbioru danych drzewa decyzyjnego w środowisku R.

Najpierw przybliżmy sobie zbiór irysów. Link: http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data.

Opis danych znajdziecie pod linkiem: http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.names

Po krótkim spojrzeniu na zbiór można bez problemów dostrzec, że dane dotyczą 150 kwiatów irysów, które opisano 4 cechami (atrybuty warunkowe): długośd i szerokośd płatka, oraz długośd i szerokośd łodygi. Dodatkowo mamy atrybut decyzyjny (class) który przyjmuje 3 możliwe wartości: „Iris-setosa”, „Iris-Versicolor” oraz „Iris-virginica”, które równo dzielą zbiór po 50 obserwacji dla każdej z tych klas (33.3%).

(2)

Najpierw musimy wczytad poprawnie zbiór danych. Jako że w pliku „Iris.data” nie ma nagłówków a dane są rozdzielone przecinkiem „,”, należy użyd odpowiedniej formuły w R, która wczyta dane do tablicy, i rozdzieli do osobnych kolumn dane rozdzielone separatorem „,”.

Drzewa decyzyjne to taka specyficzna metoda budowy klasyfikatorów w której model klasyfikacji (tutaj drzewo) jest budowane nie z całego zbioru danych, ale z ich części. My więc wczytamy cały zbiór 1:150 obserwacji ale do wygenerowania drzewa użyjemy jedynie 75 obserwacje.

Teraz załadujemy bibliotekę rpart, która dostarcza algorytmów generowania drzew decyzyjnych.

Pozostaje nam wywoład algorytm do generowania drzewa decyzyjnego i jego wyświetlenie:

Taki zapis na 1 rzut oka może się wydad nieczytelny. Przybliżę Wam go zaraz.

Uwaga 1: Irysy$V5 to atrybut decyzyjny użyty do budowy drzewa decyzyjnego. Wiec jeśli w waszych zbiorach macie atrybut decyzyjny jako V11 to pamiętajcie by użyd odpowiedniej formuły.

Uwaga 2: jeśli u was atrybut decyzyjny jest liczbą to trzeba go najpierw zamienid na cechę jakościową. Czyli np. dane 1,2,3 na : klasa1,klasa2 i klasa3.

Jako pierwszy (tutaj czerwone kółeczko) widzimy numer wierzchołka w drzewie. Zielony prostokąt to warunek który musi byd spełniony by podjąd pewne decyzje (tutaj zakreślone na niebiesko). A więc odczyt tego przykładowego drzewa powinien byd następujący:

Jeżeli V3 < 2.45 to class=Iris-setosa Jeżeli V3>=2.45 to:

(3)

Jeżeli V3<4.85 to class=Iris-versicolor Jeżeli V3>=4.85 to class=Iris-virginica

W wyniku wywołania algorytmu widzimy także dodatkowe informacje (liczby):

Oznaczają one odpowiednio prawdopodobieostwa przynależności do jednej z 3 znanych nam już teraz klas irysów. Widad, że w wierszu drugim (który jest jednocześnie już liściem w drzewie (o czym świadczy m.in. znak

„*” na koocu)) mamy prawdopodobieostwo przynależności do 1 klasy równe 1.00, do drugiej klasy równe 0 i do 3 klasy także 0. Dlatego „0” gdyż tutaj nie zaklasyfikowano obserwacji innych niż te z klasy 1.

W przypadku wierzchołka nr 6 widzimy, że nowy obiekt który spełni warunki: V3 > 2.45 i jednocześnie V3 < 4.85, zostanie zaklasyfikowany przez drzewo do klasy „iris=versicolor” ale jednocześnie dowiadujemy się, że będzie tak dlatego, że prawdopodobieostwo, że trafi on do klasy 1 wynosi 0, do klasy 3: 0.09 a do klasy 2: 0.90 – a więc najwięcej – stąd taka klasyfikacja.

Graficzna reprezentacja drzewa możliwa będzie dzięki zastosowaniu funkcji:

Czego efektem będzie rysunek:

>=4.85

< 4.85

< 2.45

V3

Iris-

setosa V3

Iris- versicolor

Iris- virginica

>= 2.45

(4)

Który odczytujemy od korzenia do liści….i widad, że potwierdza to opis uzyskany przez wywołanie funkcji rpart (wyżej).

Całośd drzewa możemy odczytad jako następujący zbiór reguł:

Jeśli V3 < 2.45 to Iris-Setosa

Jeśli V3 >= 2.45 i V3 <4.85 to Iris-versicolor Jeśli V3 >=2.45 I V3>=4.85 to iris-virginica

Część II: Analiza skupień

Niezbędna jest lektura wykładu: http://zsi.tech.us.edu.pl/~nowak/abdiped/w5.pdf jeśli chcecie zdobyd wiedzę z zakresu analizy skupieo.

Generalnie analiza skupieo pozwala znajdowad w dużych zbiorach danych pewne grupy obiektów, które są do siebie podobne biorąc pod uwagę ich cechy (atrybuty warunkowe). Nie musi byd tu określony atrybut decyzyjny ( w drzewach decyzyjnych – musi !). Ważne jednak, że nie da się algorytmami, które tu zostaną wykorzystane pogrupowad danych nienumerycznych. Wyróżnia się 2 typy algorytmów: hierarchiczne i niehierarchiczne. Jak się domyślacie, pierwsze budują drzewa z obiektów (hierarchie), drugie tworzą struktury, które nie mają hierarchii. Wśród tych niehierarchicznych przedstawimy algorytm k-średnich (o którym m.in. wyczytacie w wykładzie, którego link podaję wyżej) oraz hierarchiczny aglomeracyjny (o nim też znajdziecie informacje w ww. wykładzie). W algorytmach niehierarchicznych musimy określid liczbę grup która ma zostad utworzona, co nie zawsze jest możliwe. Dlatego często korzysta się z algorytmów hierarchicznych, które takich wymagao nie mają. Mają jednak inne wady.

Najpierw podejrzymy raz jeszcze z jakimi danymi mamy do czynienia. Można użyd funkcji summary, która wyświetli podstawowe statystyki dotyczące każdej z analizowanych cech.

(5)

Widzimy, że atrybut decyzyjny (w typ wypadku V5) ma 3 klasy, więc najpierw spróbujemy sprawdzid czy nie biorąc pod uwagę tego atrybutu, algorytm analizy skupieo faktycznie przydzieli nam poprawnie 150 obiektów do tych 3 klas: Iris- setosa, Iris-versicolor i Iris-virginica.

Najpierw musimy zatem poddad obróbce nasz wejściowy zbiór tak by nie był brany pod uwagę atrybut decyzyjny (bo w zbiorze irysów taki atrybut występuje, jest on dodatkowo nienumeryczny, co uniemożliwiłoby wykonanie algorytmu):

Spreparowaliśmy sobie jakby nowy zbioru o nazwie „irysy_grupowane” który jest obcięciem dotychczasowego zbioru 150 irysów o atrybut decyzyjny (a więc tylko pierwsze 4 kolumny).

Następnie wywołaliśmy metodę „kmeans” która jest odpowiednikiem algorytmu k-średnich i spróbujemy podzielid tym algorytmem zbiór „irysy_grupowane” na 3 grupy.

Wyświetlimy wyniki wywołując metodę „print”

Widzimy m.in. rozkład średnich w grupach (sekcja „Cluster means”). W sekcji „Clustering vector” widzimy przynależnośd każdego ze 150 obiektów do 3 klas. Pozostałe informacje nie są istotne na tym etapie.

Teraz wywołamy funkcję do wyrysowania struktury skupieo. Wystarczy wywoład metodę plot i podad jej jako argumenty źródłowy zbiór irysów:

(6)

Efekt jest mało czytelny. Widzimy rozkład obiektów osobno dla każdej z cech: V1, V2, V3, V4.

Jak dołożyd kolory ?

Co w efekcie da…

(7)

Grupowanie realizowane jest także poprzez metodę mclust z pakietu o tej samej nazwie. W podstawowej wersji wywołania metody nie podaje się liczby skupieo (grup), a jedynie zbiór danych, które chcemy pogrupowad. Możemy użyd komend:

Uwaga:

Najpierw trzeba zainstalowad pakiet „mclust” a potem go załadowad wybierając z menu R opcję „load packages” i wybrad wspomniany pakiet.

(8)

Metody hierarchiczne

Efekt:

Jeżeli dla tego samego zbioru danych chcemy zastosowad algorytm grupowania hierarchicznego, możemy użyd funkcji hclust a do jej graficznej reprezentacji funkcji plot, tak jak to pokazuje kod:

(9)

Efektem będzie wykres zwany dendrogramem, z tym, że będzie on mało czytelny dla dużych zbiorów obserwacji, z tego względu, że wszystkie liście drzewa są wyrysowane na jednym poziomie na wykresie, i zwyczajnie nachodzą na siebie.

Klasycznym algorytmem hierarchicznym jest właśnie algorytm aglomeracyjny, którego jednym z wersji jest algorytm o nazwie agnes (ang. AGlomerative NESting). Został on również zaimplementowany w środowisku R i realizowany jest przez wywołanie komendy o tej samej nazwie co nazwa algorytmu a więc agnes:

Wymagało to :

(10)

Ważnym aspektem algorytmu jest wybór metody tworzenia kolejnych skupieo (na kolejnych poziomach w hierarchii). Są metody m.in. „average”, „single” oraz „complete”. Występują istotne różnice między nimi.

Możemy zaprezentowad wyniki grupowania w zależności od wybranej metody. Utworzymy jeden obraz na który naniesiemy 3 różne wykresy:

Daje efekt:

Koniec !

Waszym zadaniem jest teraz dla swojego zbioru danych wczytad go, a następnie spróbowad jeśli nie dla całego zbioru to dla jego części zbudowad i opisad drzewo decyzyjne oraz pogrupowad dane zarówno algorytmami niehierarchicznym jak i hierarchicznym.

Powodzenia !

Cytaty

Powiązane dokumenty

Jak sprawdzid, która z dwóch podanych liczb jest

Ćwiczenia wykonujemy jednym ciągiem bez przerwy, autor sugeruje cztery takie serie ale jeśli codziennie lub co drugi dzień uda wam się zrobić chociaż jedną serie to i tak

Znaleźć kresy funkcji f oraz punkty, w których funkcja ta ma

Przyjmując, że powyższe wyliczenie stanowi katalog zamknięty, można przyjąć następującą formułę domniemania języka potocznego:” Jeżeli znaczenie danego terminu

Ćw. 71) W celu oszacowania wartości prze- ciętnego czasu bezawaryjnej pracy maszyny z partii tych maszyn wybrano losowo 7 maszyn i mierzono czas ich pracy do pierwszej awarii..

Statystyki dostateczne — zadania do samodzielnego

W praktyce, uczestnicy sporu mogą zgadzać się co do „aktualnego stanu wiedzy ” , mimo że wcale takiej zgody nie ma, mogą różnić się pozornie a mogą też

Jeżeli rozpatrywana jest górna aprok- symacja, to wszystkie reguły są dodawane do zbioru reguł, jeżeli dolna, to tylko te, które są spełniane tylko przez obiekty z