drzewa decyzyjne

background image

Katedra

Podstaw

Konstrukcji

Maszyn

Wydział

Mechaniczny

Technologiczny

Politechnika

Śląska

ul. Konarskiego 18a

44-100 Gliwice

tel. 237 1467

fax. 237 1360

http://kpkm.polsl.pl

Metody Sztucznej
Inteligencji

Rok akademicki 2010/11

Instrukcja do ćwiczeń laboratoryjnych

Laboratorium 5

Temat

Drzewa decyzyjne. Klasyfikacja

Opracował:
dr inż. Krzysztof Ciupke

Gliwice 2011-04-13

- 1/5 -

background image

1. Cel laboratorium

Celem zajęć laboratoryjnych jest zapoznanie się z podstawowymi zagadnieniami dotyczącymi

zagadnień klasyfikacji z zastosowaniem drzew decyzyjnych oraz nabycie umiejętności wykorzy-

stywania ich do zadań klasyfikacji.

2. Wprowadzenie

Aby skutecznie dokonywać klasyfikacji konieczne jest dysponowanie klasyfikatorem, pozwala-

jącym na przyporządkowanie elementów rozpatrywanego zbioru tzw. przykładów uczących do

skończonej liczby klas. Jednym z klasyfikatorów mogą być drzewa decyzyjne.

Drzewo decyzyjne jest strukturą złożoną z węzłów, z których wychodzą gałęzie prowadzące

do innych węzłów lub liści, oraz z liści. Węzły odpowiadają warunkom podziałów dokonywa-

nych na wartościach atrybutów uwzględnianych przykładów, gałęzie odpowiadają wynikom

tych podziałów, a liście — klasom (kategoriom).

Przykładami warunków podziału dokonywanych na podstawie wartości atrybutu a przykła-

du x mogą być:

a(x) =

0 jeżeli a(x) < w

1 jeżeli a(x) ­ w

lub

a(x) =

0 jeżeli a(x) = w

1 jeżeli a(x) 6= w

,

gdzie w jest pewną ustaloną wartością.

Kolejność uwzględniania poszczególnych atrybutów podczas tworzenia drzewa oraz okre-

ślenie poszczególnych kryteriów podziału (np. wspomnianej wyżej wartości w) ustalane są na

podstawie miar opisanych w literaturze np. [1] lub [2].

3. Drzewa decyzyjne zastosowaniem R - przykład

W środowisku R możliwe jest zastosowanie drzew decyzyjnych dzięki wykorzystaniu m.in. pa-

kietu rpart. Prezentowany poniżej przykład dotyczy zadania klasyfikacji popularnych kwiatów

– irysów. Identyfikacja gatunku irysa (klasyfikacja) będzie dokonywana na podstawie znajomo-

ści wymiarów jego płatka i kielicha.

Pierwszym krokiem jest załadowanie pakietu rpart oraz wczytanie danych (dane znajdują

się w odpowiedniej bibliotece środowiska R).

library(rpart)
data(iris)

Gliwice 2011-04-13

- 2/5 -

background image

Tworzenie drzewa decyzyjnego na podstawie danych uczących (przykładów) realizowane

jest przy użyciu funkcji rpart:

drzewo <- rpart(Species ~ ., data=iris,

control=rpart.control(cp=0.0001, minsplit=3, minbucket=1))

gdzie Species . jest formułą mówiącą, że poszukiwane jest drzewo, którego liście będą

odpowiadały klasom opisanym przez wartości atrybutu Species, a przy klasyfikacji brane

mają być pod uwagę wszystkie pozostałe atrybuty (co oznaczono kropką) ze zbioru danych

trenujących iris; parametry sterujące procedurą tworzenia drzewa zadawane są poprzez opcję

control, gdzie m.in. cp oznacza parametr złożoności modelu (wielkości drzewa), minsplit

— najmniejszą liczbę przykładów jaka może podlegać jeszcze dalszemu podziałowi, minbucket

— minimalną liczbę przykładów w liściu drzewa (domyślnie minsplit/3).

Utworzone drzewo można pokazać w postaci tekstowej za pomocą polecenia:

print(drzewo)

którego wyniki należy interpretować w sposób następujący: node) oznacza numer węzła, split

— nazwę atrybutu, wg którego dokonywany był podział, n — liczbę przykładów w danym

węźle, loss — liczbę błędnie sklasyfikowanych przykładów, yval odpowiada klasie (wg reguły

większościowej), a (yprob) jest wektorem prawdopodobieństw przynależności do danej klasy.

Nazwy klas są uporządkowane leksykograficznie (por. polecenie table(iris["Species"])).

W opisie drzewa symbol „*” oznacza liść drzewa.

Graficznie, drzewo może być przedstawione np. za pomocą poleceń:

plot(drzewo, uniform=TRUE, main="Klasyfikacja irysow")
text(drzewo, use.n=TRUE, all=TRUE, cex=.8)

Informację o parametrze określającym złożoność drzewa cp w zależności od wielkości drze-

wa możemy uzyskać stosując polecenia:

printcp(drzewo)
plotcp(drzewo)

Przyjmuje się, że optymalnym drzewem jest najmniejsze drzewo, dla którego błąd klasyfika-

cji jest niższy od wartości wskazywanej przez poziomą linię na uzyskanym wykresie. Optymalne

drzewo uzyskuje się przez przycięcie pełnego drzewa do wielkości wskazywanej przez optymal-

ny błąd klasyfikacji. W przypadku rozpatrywanego zadania przycięcie to będzie realizowane za

pomocą polecenia:

drzewo.p <- prune(drzewo, cp=drzewo$cptable[4])

Skuteczność klasyfikacji uzyskanego drzewa można ocenić określając poprawność klasyfi-

kacji przykładów, które nie były stosowane w procesie tworzenia drzewa. Dysponując zbiorem

Gliwice 2011-04-13

- 3/5 -

background image

przykładów uczących, możemy dokonać jego podziału na dwa rozłączne zbiory — zbiór przy-

kładów trenujących (stosowanych w procesie tworzenia drzewa) oraz zbiór przykładów testo-

wych. Klasyfikując przykłady testowe i porównując uzyskane wyniki z klasyfikacją prawidłową

(zapisaną jako wartości atrybutu przykładach testowych) możemy ocenić jakość otrzymanego

klasyfikatora. Przykład realizujący ww. działania przedstawiono poniżej:

# podzial zbioru na dane trenujące i testowe
set.seed(123)
l.d <- nrow(iris) #liczba danych
test <- sample(1:l.d, round(l.d/3), replace=FALSE)
iris.tr <- iris[-test,]
iris.test <- iris[test,]

drzewo <- rpart(Species~., data=iris.tr,

control=rpart.control(cp=0.0001, minsplit=3, minbucket=1))

plotcp(drzewo)
printcp(drzewo)
drzewo.p <- prune(drzewo, cp=drzewo$cptable[3])

# błąd klasyfikacji
y.pred <- predict(drzewo.p, newdata=iris.test, type="class")
(blad <- 1-sum(y.pred==iris.test$Species)/nrow(iris.test))

4. Zadanie

Dla danych wskazanych przez prowadzącego, opracować optymalne drzewo klasyfikacyjne i

określić błąd klasyfikacji.

W tym celu należy m.in.:

1. wczytać i przeanalizować dane,

2. dokonać podziału danych na dane trenujące i testowe wg proporcji określonej przez

prowadzącego,

3. zbudować pełne drzewo klasyfikacyjne,

4. przyciąć uzyskane drzewo w taki sposób, aby uzyskać drzewo optymalne,

5. przetestować uzyskany klasyfikator i określić błąd klasyfikacji uzyskany dla danych te-

stowych,

6. opracować sprawozdanie, zawierające uzyskane wyniki oraz wnioski z nich płynące.

5. Przydatne funkcje i elementy języka R

Pakiet rpart z funkcjami stosowanymi powyżej, path.rpart, which.min.

Gliwice 2011-04-13

- 4/5 -

background image

Literatura

[1] Walesiak M, Gatnar E.: Statystyczna analiza danych z wykorzystaniem programu R.

PWN, Warszawa, 2009.

[2] Sztuczna inteligencja. SI Moduł 10 - Zadanie i metody klasyfikacji.

http://wazniak.mimuw.edu.pl/index.php?title=Sztuczna_inteligencja/SI_

Modu%C5%82_10_-_Zadanie_i_metody_klasyfikacji

Gliwice 2011-04-13

- 5/5 -


Document Outline


Wyszukiwarka

Podobne podstrony:
DRZEWA DECYZYJNE
Wersja do oddania, Rozdzial 5 - Drzewa decyzyjne, Rozdział III
L3 drzewa decyzyjne
L3 drzewa decyzyjne klucz
drzewa decyzyjne
Drzewa decyzyjne
Drzewa decyzyjne wprowadzenie 20061206
minswd L3, drzewa decyzyjne
Drzewa decyzyjne 2009 id 143623 Nieznany
Drzewa decyzyjne 20090518
hd 06 drzewa decyzyjne id 19989 Nieznany
12 Drzewa Decyzyjne

więcej podobnych podstron