´Cwiczenie 6. Hurtownie danych

Transkrypt

´Cwiczenie 6. Hurtownie danych
Ćwiczenie 6. Hurtownie danych
Drzewa decyzyjne
1. Reprezentacja drzewa decyzyjnego
Metody uczenia sie֒ drzew decyzyjnych to najcześciej
stosowane algorytmy
֒
indukcji symbolicznej reprezentacji wiedzy z przykladów. Poniżej zostana֒
przedstawione najpopularniejsze algorytmy indukcji drzew, takie jak ID3
oraz C4.5.
Drzewo decyzyjne sklada sie֒ z korzenia, z którego co najmniej dwie
galezie
(krawedzie)
odchodza֒ do wez
lów leżacych
na niższym poziomie.
֒
֒
֒
֒
Z każdym wez
lem
jest
zwi
azany
test,
który
sprawdza
wartości atrybutu
֒
֒
opisujacego
przyklady. Dla każdego z możliwych wyników testu odpowia֒
dajaca
mu
ga
laź
prowadzi do wez
la leżacego
na niższym poziomie drzewa.
֒
֒
֒
֒
Wez
ly, z których nie wychodza֒ żadne galezie,
to liście. Przypisuje sie֒ klasy
֒
֒
decyzyjne.
Tworzenie drzew decyzyjnych ilustruje nastepuj
acy
przyklad. Niech bedzie
֒
֒
֒
dana pewna grupa klientów sklepu elektronicznego, z których cześć
decyduje
֒
sie֒ na zakup komputera typu notebook, podczas gdy pozostali nie sa֒ gotowi
do takiego zakupu. Sa֒ oni scharakteryzowani przez 3 atrybuty wyrażajace
֒
ocene֒ poziomu ich dochodów, stwierdzenie faktu, czy sa֒ studentami, oraz
ich pleć. Na podstawie wartości tych atrybutów należy przewidzieć wartość
atrybutu decyzyjnego kupuje komputer.
Tabela 1. Zbór przykladów uczacych
opisujacy
grupe֒ osób, którzy sa֒
֒
֒
klientami sklepu elektronicznego
Lp.
1
2
3
4
5
6
7
8
Dochody Student
średnie
tak
średnie
nie
wysokie
tak
niskie
tak
niskie
tak
średnie
tak
niskie
nie
średnie
nie
Pleć
meżczyzna
֒
kobieta
kobieta
meżczyzna
֒
kobieta
kobieta
kobieta
meżczyzna
֒
kupuje komputer
tak
nie
tak
nie
nie
tak
nie
nie
Za pomoca֒ algorytmu ID3 ze zbioru przykladów uczacych
reprezentowa֒
nych w tabeli powyżej uzyskano drzewo decyzyjne, które przedstawiono na
rysunku poniżej.
Dochody
niskie HH średnie
HH
wysokie
HH
?
j
Nie
Tak
Student
tak
Tak
@
nie
@
@
R
@
Nie
Dzieki
utworzonemu drzewu decyzyjnemu można klasyfikować klientów
֒
kupujacych
komputery (np. typu notebook) w zależności od ich poziomu
֒
dochodów i statusu studenckiego. Na przyklad osoba bed
aca
kobieta֒ o do֒
֒
chodach średnich i nie studiujaca
nie kupuje komputera. Można dojść do
֒
tego analizujac
ga
l
ezie
drzewa
do
liścia
(kupuje komputer = nie). Można za֒
֒
uważyć, że pleć osoby nie odgrywa tu żadnej roli.
Można zauważyć, że ścieżki prowadzace
od korzenia do liścia drzewa repre֒
zentuja֒ koniunkcje pewnych wyrażeń (testów) zdefiniowanych na wartościach
atrybutów opisujacych
przyklady. Jeśli do tej samej klasy prowadzi kilka
֒
ścieżek, to tworza֒ one skladniki pewnej alternatywy. Stad
też mówi sie,
że
֒
֒
drzewa decyzyjne pozwalaja֒ na nauczenie sie֒ pojeć,
które
można
zdefiniować
֒
w postaci dysjunkcji takich koniunkcji. Na przyklad z powyżej przedstawionego drzewa można zdefiniować pojecie
klienta pragnacego
kupić komputer
֒
֒
za pomoca֒ nastepuj
acego
wyrażenia
dysjunkcyjnego:
֒
֒
(dochody = srednie) ∧ (student = tak) ∨ (dochody = wysokie)
Drzewo decyzyjne można też przedstawić jako zbiór regul określajacego
֒
przydzial obiektów do klas. Każda ścieżka drzewa od korzenia do liścia odpowiada regule. Dla drzewa przedstawionego na powyższym rysunku uzyskuje
sie֒ 4 reguly:
1) if (dochody = niskie) then (kupuje komputer = nie)
2) if (dochody = średnie) ∧ (student = nie) then (kupuje komputer = nie)
3) if (dochody = wysokie) then (kupuje komputer = tak)
4) if (dochody = średnie) ∧ (student = tak) then (kupuje komputer = tak)
Powinno sie֒ sprawdzić, czy wszystkie reguly posiadaja֒ nienadmiarowe koniunkcje warunków elementarnych. Można to wykonać za pomoca֒ operacji
chwilowego pominiecia
warunku w koniunkcji danej reguly (ang. dropping
֒
conditions) i porównania tak zmodyfikowanej reguly ze zbiorem przykladów
uczacych.
Jeśli regula nadal jednoznacznie klasyfikuje przyklady do wlaściwej
֒
klasy, to warunek może być zredukowany. W przeciwnym przypadku należy go odtworzyć w koniunkcji reguly. W powyższym zbiorze regul można
zredukować regule֒ 2 do poniższej postaci, gdyż w tabeli podanej powyżej
wszystkie osoby nie bed
ace
studentami równocześnie nie kupily komputerów:
֒
֒
if (student = nie) then (kupuje komputer = nie)
2. Algorytm ID3 indukcji drzewa decyzyjnego
Wiekszość
algorytmów uczenia sie֒ drzew decyzyjnych jest oparta na podob֒
nym heurystycznym schemacie zstepuj
acego
konstruowania drzewa (nazwa
֒
֒
angielska TDIDT - Top Down Induction of Decision Trees). Jest to rozwia֒
zanie użyte już w pierwszych algorytmach, takich jak ID3, CART, a nastepnie
֒
C4.5. Różnice miedzy
konkretnymi algorytmami dotycza֒ przede wszystkim
֒
sposobu wyboru testu dla wez
la zwiazanego
z ocena֒ jakości podzialu zbio֒
֒
ru przykladów w weźle,
zasad podejmowania decyzji o utworzeniu liścia lub
֒
wez
la
oraz
technik
uwzgl
edniania
różnego rodzaju zaburzeń w opisie przy֒
֒
kladów uczacych.
֒
Algorytm schematu zstepuj
acego
konstruowania drzewa odpowiadajacy
֒
֒
֒
wersji ID3 podano poniżej. Zaklada sie,
że jest dostepny
zbiór przykladów
֒
֒
uczacych
S. Jeżeli wszystkie przyklady należa֒ do tej samej klasy, to utwor֒
zony jest liść i przydzielana mu jest etykieta tej klasy. W przeciwnym razie
jest tworzony weze
l (w pierwszej iteracji jest to korzeń drzewa) i konieczne
֒
jest sformulowanie zwiazanego
z nim testu. Rozważa sie֒ wszystkie możliwe
֒
atrybuty i ocenia ich przydatność do zbudowania testu prowadzacego
do
֒
podzialu zbioru przykladów S na podzbiory jak najbardziej jednorodne w
sensie przydzialu do klas (w oryginalnej postaci algorytmu ID3 test jest pytaniem o wartość danego atrybutu). Dokonuje sie֒ wyboru najlepszego z tych
podzialów zgodnie z przyjet
a miara֒ oceny jakości podzialu. Rozbudowuje
֒ ֒
sie֒ drzewo poprzez dodanie do wez
la galezi
odpowiadajacych
poszczególnym
֒
֒
֒
wynikom testu. W przypadku algorytmu ID3 galezie
odpowiadaj
a֒ poszcze֒
gólnym wartościom v1 , v2 , . . . , vp atrybutu a. Podzbiór S jest podzielony na
podzbiory zgodnie z wybranym testem. Nastepnie
używa sie֒ rekurencyjnie
֒
napisanej procedury dla każdego z tych podzbiorów, budujac
poddrzewo albo
֒
liść, jeśli zajdzie warunek zatrzymania.
function buduj drzewo;
input: S - zbiór przykladów wejściowych, A - zbiór atrybutów opisujacych
֒
przyklady (w przypadku ID3 atrybuty sa֒ jakościowe lub zdyskretyzowane);
output: drzewo decyzyjne;
begin
Utwórz weze
l t; {przy pierwszym wywolaniu korzeń drzewa}
֒
if wszystkie przyklady w S należa֒ do tej samej klasy K then
return t jako liść z etykieta֒ klasy K;
if zbiór A jest pusty then
return t jako liść z etykieta֒ klasy do której należy wiekszość
przykladów w S
֒
else
begin
wybierz atrybut a ∈ A, który najlepiej klasyfikuje przyklady z S zgodnie z przyjet
a
֒ ֒
miara֒ oceny {dla ID3 jest information gain};
Przypisz wez
lowi t test zbudowany na podstawie wybranego atrybutu a;
֒
for ∀vi wartośći atrybutu a do
begin
dodaj do wez
la t galaź
odpowiadajac
a warunkowi (a = vi );
֒
֒
֒ ֒
Niech Si bedzie
podzbiorem przykladów z S, które posiadaja֒ wartość vi dla
֒
atrybutu a;
if Si jest pusty then
dodaj do galezi
liść z etykieta֒ klasy, do której należy wiekszość
przykladów w S
֒
֒
else
indukuj poddrzewo buduj drzewo(Ai , A - {a})
end;
end;
return drzewo o korzeniu w t
end.
Podstawowym problemem jschematu zstepuj
acego
konstruowania drzewa
֒
֒
jest wybór atrybutu do zbudowania testu, na którego podstawie nastapi
w
֒
weźle
podzial zbioru przykladów. ”Dobrym” testem jest ten, który powoduje
֒
skrócenie ścieżki prowadzacej
przez ten weze
l do liści wskazujacych
klase֒ de֒
֒
֒
cyzyjna.֒ Tak bedzie,
gdy w każdym podzbiorze zwiazanym
z galeziami
wy֒
֒
֒
chodzacymi
z wez
la wszystkie przyklady lub ich wiekszość
bedzie
reprezento֒
֒
֒
֒
wala jedna֒ klase.
Wybór
powinien
być
przeprowadzany
na
podstawie
miary
֒
oceniajacej,
na ile wartości danego atrybutu podziela֒ zbiór przykladów na
֒
podzbiory, które charakteryzuja֒ sie֒ maksymalna֒ jednorodnościa֒ w zakresie
przydzialu do klas decyzyjnych. W algorytmie ID3 w tym celu wykorzystuje
sie֒ miare֒ przyrostu informacji (ang. information gain). Aby ja֒ zdefiniować,
należy wyjaśnić najpierw miare֒ entropii.
Niech S bedzie
zbiorem uczacym
zawierajacym
przyklady do jednej z k
֒
֒
֒
klas decyzyjnych, oznaczonych przez K1 , k2 , . . . , Kk . Niech n bedzie
liczba֒
֒
przykladów z S oraz ni niech oznacza liczebność klasy Ki . Entropia zwiazana
֒
z klasyfikacja֒ zbioru S jest zdefiniowana jako:
Ent(S) = −
k
X
pi log2 pi
i=1
gdzie pi jest prawdopodobieństwem, że losowo wybrany przyklad z S należy
do klasy Ki , estymowanym jako nni . Podstawa logarytmu jesdt równa 2, ponieważ entropia mierzy oczekiwana֒ liczbe֒ bitów do zakodowania informacji
o klasyfikacji losowo wybranego przykladu ze zbioru S. Można zauważyć,
że gdy którekolwiek pi = 0, to otrzymuje sie֒ 0 · log2 0 = 0. W przypadku rozważania klasyfikacji binarnej (k = 2) entropia przyjmuje wartości z
przedzia?u [0, 1], przy czym maksymalna wartość, równa 1, osiagana
jest
֒
dla p1 = p2 = 0.5, czyli dla przykladów o równomiernym rozkladzie klas.
Najmniejsza֒ wartość, równa֒ 0, przyjmuje entropia, gdy wszystkie przyklady
należa֒ do tej samej klasy. Interpretacja wartości entropii jest nastepuj
aca:
֒
֒
im mniejsza wartość entropii, tym w zbiorze S wystepuje
wi
eksza
przewaga
֒
֒
przydzialu przykladów do jednej z klas nad pozostalymi klasami.
W przypadku użycia atrybutu a do zbudowania testu oblicza sie֒ entropie֒
warunkowa.֒ Niech atrybut a przyjmuje p różnych wartości {v1 , v2 , . . . , vp }.
W algorytmie ID3 test w weźle
jest konstruowany jako pytanie ”jaka jest
֒
wartość atrybutu a?”, czyli dokonuje sie֒ podzialu S na podzbiory {S1 , S2 , . . . ,
Sr }, gdzie Sj zawiera przyklady posiadajace
dla atrybutu a wartość vj (j =
֒
1, . . . , p). Liczebność zbioru Sj jest oznaczana jako nSj . Entropia podzialu
zbioru przykladów S ze wzgledu
na atrybut a jest zdefiniowana jako:
֒
Ent(S | a) =
p
X
nSj
· Ent(Sj )
j=1 n
Można powiedzieć, że entropia Ent(S | a) jest średnia֒ ważona֒ dla entropii poszczególnych podzbiorów Sj . Im mniejsza wartość Ent(S | a), tym
wieksza
jednorodność klasyfikacji dla przykladów podzielonych na podzbiory.
֒
Przyrost informacji (ang. gain) wynika z zastosowania atrybutu a do
zbudowania testu dzielacego
zbiór przykladów uczacych
S jest zdefiniowany
֒
֒
jako różnica:
Gain(S, a) = Ent(S) − Ent(S | a)
Dzialanie algorytmu ID3 polega na przeszukiwaniu przestrzeni hipotez,
tj. drzew decyzyjnych reprezentujacych
funkcje klasyfikujace
zdefiniowane
֒
֒
na opisach przykladów. Przeszukiwanie jest wykonywane od poczatkowo
֒
pustego drzewa do drzew coraz bardziej skomplikowanych za pomoca֒ strategii heurystycznej sterowanej odpowiednia֒ funkcja֒ oceny, np. przyrostu informacji. W algorytmie ID3 dla danego wez
la poszukuje sie֒ lokalnie najlepszego
֒
kandydata na stworzenie testu, przy czym wybór ten nie musi prowadzić do
globalnie najlepszego drzewa. W typowych alg. indukcji drzew nie stosuje
sie֒ operacji nawrotu, tzn. po wyborze atrybutu do testu dla danego wez
la
֒
nie rozważa sie֒ ponownie zmiany tego atrybutu.
3. Algorytm C4.5, czyli dlaczego ID3 nie wystarcza?
Algorytm ID3 ma nastepuj
ace
ograniczenia:
֒
֒
1) algorytm ID3 nie radzi sobie z ciag
lymi dziedzinami atrybutów (zaklada,
֒
że wartości atrybutów sa֒ dyskretne)
2) zaklada sztywno, że wszystkie rekordy w zbiorze uczacym
sa֒ wypelnione,
֒
tzn. nie dziala, jeśli choć jeden rekord zawiera niepelne dane,
3) duży rozmiar drzewa,
4) brak odporności na zjawisko ovefitting. Polega ono na tym, że algorytm
nie radzi sobie z danymi zaburzajacymi
ogólna֒ informacja.֒ Może to
֒
prowadzić do wysokiego wspólczynnika bledów
na danych testowych
֒
Aby przeciwdzialać zjawisku ovefittingu stosuje sie֒ tzw. przycinanie (ang.
em prunning). Dziala ono w sposób nastepuj
acy:
֒
֒
1) zaczyna sie֒ od liści i dziala na zasadzie bottom-up,
2) majac
dany weze
l nie bed
acy
liściem i jego poddrzewo oblicza sie֒ w
֒
֒
֒
֒
heurystyczny sposób wartość przewidywanego bledu
dla aktualnego
֒
poddrzewa,
3) oblicza sie֒ wartość przewidywanego bledu
dla sytuacji, gdyby rozpatry֒
wane poddrzewo zastapić
liściem z kategoria֒ najpopularniejsza֒ wśród
֒
liści,
4) porównuje te dwie wartości i ewentualnie dokonuje zamiany poddrzewa
na pojedynczy liść propagujac
te֒ informacje֒ do swoich przodków.
֒
Dzieki
temu dokonuje sie֒ wieksz
a֒ generalizacje֒ oceny nowych przypadków.
֒
֒
4. Przebieg ćwiczenia
Zadanie 1.
Jednym z klasycznych zbiorów ilustrujacych
dzialanie algorytmów uczacych
֒
֒
jest przyklad do gry w golfa. Wplyw warunków pogodowych wplywajacych
֒
na podjecie
decyzji o grze w gre֒ golfa przedstawiono w tabeli poniżej.
֒
Stan nieba
slońce
slońce
pochmurno
deszcz
deszcz
deszcz
pochmurno
slońce
slońce
deszcz
slońce
pochmurno
pochmurno
deszcz
Temperatura
29
27
28
21
20
18
18
22
21
24
24
22
27
22
Wilgotność
85
90
78
96
80
70
65
95
70
80
70
90
75
80
Wiatr Grać
nie
nie
tak
nie
nie
tak
nie
tak
nie
tak
tak
nie
tak
tak
nie
nie
nie
tak
nie
tak
tak
tak
tak
tak
nie
tak
tak
nie
Dla tabeli podanej na pierwszej stronie przeprowadź:
1) Dokonaj najpierw analizy zbioru przykladów ze wzgledu
na to, że
֒
wszystkie atrybuty sa֒ tam przedstawione na skalach jakościowych (nominalnych lub porzadkowych),
֒
2) Zbadaj, jakie sa֒ liczebności przykladów należacych
do każdej klasy de֒
cyzyjnej,
3) Określ miary entropii informacji dla klasyfikacji wszystkich przykladów,
4) Odpowiedz na pytanie, który z atrybutów zostanie wybrany jako najkorzystniejszy do zbudowania testu w weźle
drzewa. Odpowiedź uzasadnij
֒
odpowiednimi obliczeniami wg algorytmu ID3
5) Przeprowadź proces budowy calego drzewa.
Zadanie 2
Przy użyciu programu C4.5 z systemu Weka dokonaj analizy zbioru przykladów uczacych
opisujacych
wplyw warunków pogodowych na podjecie
de֒
֒
֒
cyzji do gry w golfa. Program C4.5 jest w nim dostepny
jako J48 (wersja
֒
8 programu C4.5, ostatnia przed komercjalizacja).
Wybierz Explorer →
֒
Open File → data. W katalogu data otwórz ”notatnik Windows” lub inny
edytor. Wyedytuj plik golf.arff, który jest w formacie arff. Jego postać jest
nastepuj
aca:
֒
֒
@relation golf
@attribute
@attribute
@attribute
@attribute
@attribute
outlook {sunny, overcast, rain}
temperature numeric
humidity numeric
windy {true, false}
play {yes, no}
@data
sunny, 85, 85, false, no
sunny, 80, 90, true, no
overcast, 83, 78, false, yes
rain, 70, 96, false, yes
rain, 68, 80, false, yes
rain, 65, 70, true, no
overcast, 64, 65, true, yes
sunny, 72, 95, false, no
Należy wybrać opcje֒ Classify, a nastepnie
Choose. Wówczas wejść do
֒
trees i wybrać J48. Uruchomienie analizy nastepuje
dzieki
naciśnieciu
Start.
֒
֒
֒
Powtórz podobna֒ analize֒ dla zbioru przykladów uczacych
w przypadku podjecia
֒
֒
decyzji o grze w golfa.
Zadanie 3
Przy użyciu programu C4.5 z systemu Weka dokonaj analizy zbioru przykladów uczacych
opisujacych
wplyw warunków pogodowych na podjecie
de֒
֒
֒
cyzji dotyczacych
zakupu komputera.
֒
@relation komputer
@attribute
@attribute
@attribute
@attribute
@attribute
komputer {dobry, sredni, marny}
dochody numeric
cena numeric
student {true, false}
kupic {yes, no}
@data
dobry, 500, 850, false, no
sredni, 800, 900, true, no
marny, 490, 1000, false, yes
dobry, 700, 9006, false, yes
sredni, 8968, 8000, false, yes
marny, 657, 700, true, no
dobry, 640, 650, true, yes
sredni, 720, 950, false, no
Należy wybrać opcje֒ Classify, a nastepnie
Choose. Wówczas wejść do
֒
trees i wybrać J48. Uruchomienie analizy nastepuje
dzieki
naciśnieciu
Start.
֒
֒
֒
Zadanie 4
Zbuduj drzewo decyzyjne dotyczace
zakupu samochodu. Przy użyciu pro֒
gramu C4.5 z pakietu Weka dokonaj analizy przykladów uczacych
opisujacych
֒
֒
zakup samochodu.
@relation somochod
@attribute
@attribute
@attribute
@attribute
@attribute
samochod {dobry, uzywany, nowy}
dochody numeric
cena numeric
klient {true, false}
kupic {yes, no}
@data
dobry, 5000, 20050, false, no
uzywany, 1800, 2000, true, no
nowy, 4900, 3000, true, yes
dobry, 7000, 3000, false, yes
uzywany, 7968, 3500, false, yes
nowy, 6570, 17000, true, no
nowy, 6400, 10500, true, yes
dobry, 7200, 950, false, no
Należy wybrać opcje֒ Classify, a nastepnie
Choose. Wówczas wejść do
֒
trees i wybrać J48. Uruchomienie analizy nastepuje
dzieki
naciśnieciu
Start.
֒
֒
֒

Podobne dokumenty