Eksploracja danych. Wykªad 8 Drzewa decyzyjne 1 / 260

Podobne dokumenty
Metody dowodzenia twierdze«

Systemy decyzyjne Wykªad 5: Drzewa decyzyjne

Metodydowodzenia twierdzeń

Ekonometria - wykªad 8

Metoda tablic semantycznych. 1 Metoda tablic semantycznych

Algorytmy zwiazane z gramatykami bezkontekstowymi

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Podstawy modelowania w j zyku UML

Elementy Modelowania Matematycznego Wykªad 1 Prawdopodobie«stwo

x y x y x y x + y x y

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Lab. 02: Algorytm Schrage

Ekonometria Bayesowska

5. (8 punktów) EGZAMIN MAGISTERSKI, r Matematyka w ekonomii i ubezpieczeniach

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Ukªady równa«liniowych

CAŠKOWANIE METODAMI MONTE CARLO Janusz Adamowski

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

Rekurencyjne struktury danych

Matematyka dyskretna dla informatyków

1 Bª dy i arytmetyka zmiennopozycyjna

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

Podstawy matematyki dla informatyków

Liczenie podziaªów liczby: algorytm Eulera

1 Metody iteracyjne rozwi zywania równania f(x)=0

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

2 Liczby rzeczywiste - cz. 2

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

Elementarna statystyka

Wykªad 6: Model logitowy

ALGORYTMY SORTOWANIA DANYCH

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

Przekroje Dedekinda 1

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Statystyka matematyczna - ZSTA LMO

Wnioskowanie Boolowskie i teoria zbiorów przybli»onych

Indeksowane rodziny zbiorów

Listy i operacje pytania

Uczenie Wielowarstwowych Sieci Neuronów o

Wst p do sieci neuronowych, wykªad 14 Zespolone sieci neuronowe

O pewnym zadaniu olimpijskim

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

Informatyka. z przedmiotu RACHUNEK PRAWDOPODOBIE STWA

Ekonometria. wiczenia 2 Werykacja modelu liniowego. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej

KLASYCZNE ZDANIA KATEGORYCZNE. ogólne - orzekaj co± o wszystkich desygnatach podmiotu szczegóªowe - orzekaj co± o niektórych desygnatach podmiotu

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

Drzewa Gomory-Hu Wprowadzenie. Drzewa Gomory-Hu. Jakub Š cki. 14 pa¹dziernika 2009

X WARMI SKO-MAZURSKIE ZAWODY MATEMATYCZNE 18 maja 2012 (szkoªy ponadgimnazjalne)

Ekonometria Bayesowska

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Podstawy statystycznego modelowania danych Analiza prze»ycia

XVII Warmi«sko-Mazurskie Zawody Matematyczne

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

CCNA Subnetting Guide

Zbiory i odwzorowania

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA. W obu podpunktach zakªadamy,»e kolejno± ta«ców jest wa»na.

Ekonometria. wiczenia 8 Modele zmiennej jako±ciowej. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej

Wykªad 4. Funkcje wielu zmiennych.

In»ynierskie zastosowania statystyki wiczenia

Jednowarstwowe Sieci Neuronowe jako. klasykatory do wielu klas. (c) Marcin Sydow

1. Wprowadzenie do C/C++

Wyra»enia logicznie równowa»ne

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

Janusz Adamowski METODY OBLICZENIOWE FIZYKI Zastosowanie eliptycznych równa«ró»niczkowych

Równania ró»niczkowe I rz du (RRIR) Twierdzenie Picarda. Anna D browska. WFTiMS. 23 marca 2010

Materiaªy do Repetytorium z matematyki

Rozkªady i warto± oczekiwana

3. (8 punktów) EGZAMIN MAGISTERSKI, Biomatematyka

W poprzednim odcinku... Podstawy matematyki dla informatyków. Relacje równowa»no±ci. Zbiór (typ) ilorazowy. Klasy abstrakcji

Wst p do sieci neuronowych 2010/2011 wykªad 7 Algorytm propagacji wstecznej cd.

Funkcja kwadratowa, wielomiany oraz funkcje wymierne

PRZYPOMNIENIE Ka»d przestrze«wektorow V, o wymiarze dim V = n < nad ciaªem F mo»na jednoznacznie odwzorowa na przestrze«f n n-ek uporz dkowanych:

P tle. Rozdziaª Wst p. 4.2 P tle P tla for(...);

STRUKTURY DANYCH. dane wej±ciowe problemu, ewentualne dane po±rednie, dane wynikowe (czyli rozwi zanie problemu).

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Informacje pomocnicze

Ekonometria. wiczenia 1 Regresja liniowa i MNK. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej

Biostatystyka, # 5 /Weterynaria I/

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Elementy geometrii analitycznej w przestrzeni

Dynamiczne wªasno±ci algorytmu propagacji przekona«

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Uczenie Maszynowe: reprezentacja wiedzy, wybór i ocena modelu, drzewa decyzjne

Hotel Hilberta. Zdumiewaj cy ±wiat niesko«czono±ci. Marcin Kysiak. Festiwal Nauki, Instytut Matematyki Uniwersytetu Warszawskiego

DREAM5 Challenges. Metody i rezultaty. Praktyki wakacyjne 2010 sesja sprawozdawcza

1 Poj cia pomocnicze. Przykªad 1. A A d

Teoria grafów i jej zastosowania. 1 / 126

1. Wprowadzenie do C/C++

Algorytmy grafowe 2. Andrzej Jastrz bski. Akademia ETI. Politechnika Gda«ska Algorytmy grafowe 2

MODEL HAHNFELDTA I IN. ANGIOGENEZY NOWOTWOROWEJ Z UWZGL DNIENIEM LEKOOPORNO CI KOMÓREK NOWOTWOROWYCH

Teoria grafów i sieci 1 / 58

Elementarna statystyka Dwie próby: porównanie dwóch proporcji (Two-sample problem: comparing two proportions)

Lekcja 9 Liczby losowe, zmienne, staªe

Elementarna statystyka Wnioskowanie o regresji (Inference 2 czerwca for regression) / 13

Wska¹niki, tablice dynamiczne wielowymiarowe

Transkrypt:

Eksploracja danych Wykªad 8 Drzewa decyzyjne 1 / 260

Drzewa decyzyjne Drzewa decyzyjne (okre±lane równie» jako drzewa klasykacyjne lub regresyjne) s tradycyjnym narz dziem eksploracji danych i klasycznym algorytmem uczenia maszynowego. Zaliczamy je do metod klasykacji. Od ich powstania, od roku 1980, drzewa decyzyjne byªo szeroko stosowanym modelem uczenia maszynowego w ED. Ich atrakcyjno± le»y w prostocie otrzymanego modelu, gdzie drzewo decyzyjne (przynajmniej te, które nie s zbyt du»e) jest do± ªatwe do przejrzenia, zrozumienia, i, co najwa»niejsze, wyja±nienia. Drzewa decyzyjne nie zawsze dostarczaj najlepsze wyniki, stanowi kompromis mi dzy wydajno±ci i prostot wyja±nienia. Struktura drzewa jest stosowana w wielu ró»nych dziedzinach, m. in. w: medycynie, logice, zarz dzaniu i ekonomii 2 / 260

Drzewa decyzyjne Drzewa decyzyjne (okre±lane równie» jako drzewa klasykacyjne lub regresyjne) s tradycyjnym narz dziem eksploracji danych i klasycznym algorytmem uczenia maszynowego. Zaliczamy je do metod klasykacji. Od ich powstania, od roku 1980, drzewa decyzyjne byªo szeroko stosowanym modelem uczenia maszynowego w ED. Ich atrakcyjno± le»y w prostocie otrzymanego modelu, gdzie drzewo decyzyjne (przynajmniej te, które nie s zbyt du»e) jest do± ªatwe do przejrzenia, zrozumienia, i, co najwa»niejsze, wyja±nienia. Drzewa decyzyjne nie zawsze dostarczaj najlepsze wyniki, stanowi kompromis mi dzy wydajno±ci i prostot wyja±nienia. Struktura drzewa jest stosowana w wielu ró»nych dziedzinach, m. in. w: medycynie, logice, zarz dzaniu i ekonomii 3 / 260

Drzewa decyzyjne Drzewa decyzyjne (okre±lane równie» jako drzewa klasykacyjne lub regresyjne) s tradycyjnym narz dziem eksploracji danych i klasycznym algorytmem uczenia maszynowego. Zaliczamy je do metod klasykacji. Od ich powstania, od roku 1980, drzewa decyzyjne byªo szeroko stosowanym modelem uczenia maszynowego w ED. Ich atrakcyjno± le»y w prostocie otrzymanego modelu, gdzie drzewo decyzyjne (przynajmniej te, które nie s zbyt du»e) jest do± ªatwe do przejrzenia, zrozumienia, i, co najwa»niejsze, wyja±nienia. Drzewa decyzyjne nie zawsze dostarczaj najlepsze wyniki, stanowi kompromis mi dzy wydajno±ci i prostot wyja±nienia. Struktura drzewa jest stosowana w wielu ró»nych dziedzinach, m. in. w: medycynie, logice, zarz dzaniu i ekonomii 4 / 260

Drzewa decyzyjne Drzewa decyzyjne (okre±lane równie» jako drzewa klasykacyjne lub regresyjne) s tradycyjnym narz dziem eksploracji danych i klasycznym algorytmem uczenia maszynowego. Zaliczamy je do metod klasykacji. Od ich powstania, od roku 1980, drzewa decyzyjne byªo szeroko stosowanym modelem uczenia maszynowego w ED. Ich atrakcyjno± le»y w prostocie otrzymanego modelu, gdzie drzewo decyzyjne (przynajmniej te, które nie s zbyt du»e) jest do± ªatwe do przejrzenia, zrozumienia, i, co najwa»niejsze, wyja±nienia. Drzewa decyzyjne nie zawsze dostarczaj najlepsze wyniki, stanowi kompromis mi dzy wydajno±ci i prostot wyja±nienia. Struktura drzewa jest stosowana w wielu ró»nych dziedzinach, m. in. w: medycynie, logice, zarz dzaniu i ekonomii 5 / 260

Drzewa decyzyjne Drzewa decyzyjne (okre±lane równie» jako drzewa klasykacyjne lub regresyjne) s tradycyjnym narz dziem eksploracji danych i klasycznym algorytmem uczenia maszynowego. Zaliczamy je do metod klasykacji. Od ich powstania, od roku 1980, drzewa decyzyjne byªo szeroko stosowanym modelem uczenia maszynowego w ED. Ich atrakcyjno± le»y w prostocie otrzymanego modelu, gdzie drzewo decyzyjne (przynajmniej te, które nie s zbyt du»e) jest do± ªatwe do przejrzenia, zrozumienia, i, co najwa»niejsze, wyja±nienia. Drzewa decyzyjne nie zawsze dostarczaj najlepsze wyniki, stanowi kompromis mi dzy wydajno±ci i prostot wyja±nienia. Struktura drzewa jest stosowana w wielu ró»nych dziedzinach, m. in. w: medycynie, logice, zarz dzaniu i ekonomii 6 / 260

Drzewa decyzyjne Drzewa decyzyjne (okre±lane równie» jako drzewa klasykacyjne lub regresyjne) s tradycyjnym narz dziem eksploracji danych i klasycznym algorytmem uczenia maszynowego. Zaliczamy je do metod klasykacji. Od ich powstania, od roku 1980, drzewa decyzyjne byªo szeroko stosowanym modelem uczenia maszynowego w ED. Ich atrakcyjno± le»y w prostocie otrzymanego modelu, gdzie drzewo decyzyjne (przynajmniej te, które nie s zbyt du»e) jest do± ªatwe do przejrzenia, zrozumienia, i, co najwa»niejsze, wyja±nienia. Drzewa decyzyjne nie zawsze dostarczaj najlepsze wyniki, stanowi kompromis mi dzy wydajno±ci i prostot wyja±nienia. Struktura drzewa jest stosowana w wielu ró»nych dziedzinach, m. in. w: medycynie, logice, zarz dzaniu i ekonomii 7 / 260

Drzewa decyzyjne Drzewa decyzyjne (okre±lane równie» jako drzewa klasykacyjne lub regresyjne) s tradycyjnym narz dziem eksploracji danych i klasycznym algorytmem uczenia maszynowego. Zaliczamy je do metod klasykacji. Od ich powstania, od roku 1980, drzewa decyzyjne byªo szeroko stosowanym modelem uczenia maszynowego w ED. Ich atrakcyjno± le»y w prostocie otrzymanego modelu, gdzie drzewo decyzyjne (przynajmniej te, które nie s zbyt du»e) jest do± ªatwe do przejrzenia, zrozumienia, i, co najwa»niejsze, wyja±nienia. Drzewa decyzyjne nie zawsze dostarczaj najlepsze wyniki, stanowi kompromis mi dzy wydajno±ci i prostot wyja±nienia. Struktura drzewa jest stosowana w wielu ró»nych dziedzinach, m. in. w: medycynie, logice, zarz dzaniu i ekonomii 8 / 260

Drzewa decyzyjne Schemat drzewa decyzyjnego Z ka»dym w zªem wewn trznym w drzewie b dzie zwi zany pewien test lub zapytanie, które okre±la gaª ¹. Li±cie zawieraj decyzje. 9 / 260

Drzewa decyzyjne Schemat drzewa decyzyjnego Z ka»dym w zªem wewn trznym w drzewie b dzie zwi zany pewien test lub zapytanie, które okre±la gaª ¹. Li±cie zawieraj decyzje. 10 / 260

Drzewa decyzyjne Schemat drzewa decyzyjnego Z ka»dym w zªem wewn trznym w drzewie b dzie zwi zany pewien test lub zapytanie, które okre±la gaª ¹. Li±cie zawieraj decyzje. 11 / 260

Drzewa decyzyjne Rozwa»my drzewo decyzyjne narysowane poni»ej. Proste drzewo decyzyjne dla danych weather Oznacza ono wiedz o obserwacjach warunków pogodowych jednego dnia i obserwacji dotycz cej deszczu nast pnego dnia. Warto±ci No i Yes w li±ciach drzewa decyzyjnego stanowi decyzje. 12 / 260

Drzewa decyzyjne Proste drzewo decyzyjne dla danych weather W zeª gªówny drzewa decyzyjnego testuje ±redni poziom ci±nienia nad poziomem morza o 15:00 (3 pm - Pressure3pm). Gdy ta zmienna dla obserwacji ma warto± wi ksz ni» lub równ 1012hPa, to przechodzimy w dóª z lewej strony drzewa. 13 / 260

Drzewa decyzyjne Proste drzewo decyzyjne dla danych weather Kolejnym testem na dole z lewej strony drzewa jest wysoko±c pokrywy chmur zaobserwowana o 15 (3 pm - Cloud3pm). Je±li to ona mniejsza ni» 8 okta (miara zachmurzenia 0-8, czyli mniej ni» w peªni zachmurzone niebo), to obserwujemy,»e na nast pny dzie«na ogóª nie pada (No). 14 / 260

Drzewa decyzyjne Proste drzewo decyzyjne dla danych weather Je±li obserwujemy peªne zachmurzenie o 15:00 (tj. Cloud3pm wynosi 8 okta - maksymalna warto± tej zmiennej), to ogólnie widzimy,»e pada nast puj cego dnia (Yes). W ten sposób jeste±my skªonni przewidzie, mo»liwe opady, na podstawie warunków pogodowych z bie» cego dnia. 15 / 260

Drzewa decyzyjne Proste drzewo decyzyjne dla danych weather Je±li obserwujemy peªne zachmurzenie o 15:00 (tj. Cloud3pm wynosi 8 okta - maksymalna warto± tej zmiennej), to ogólnie widzimy,»e pada nast puj cego dnia (Yes). W ten sposób jeste±my skªonni przewidzie, mo»liwe opady, na podstawie warunków pogodowych z bie» cego dnia. 16 / 260

Drzewa decyzyjne Proste drzewo decyzyjne dla danych weather Zaczynamy znów nasz interpretacj modelu od korzenia. Je±li zmienna Pressure3pm ma warto± mniejsz ni» 1012hPa i Sunshine jest wi ksza lub równa ni» 9 (tj. zaobserwowano co najmniej 9 godzin sªonecznych podczas dna), to nie nale»y si spodziewa jutro deszczu. Je±li rejestrujemy 9 lub mniej godzin sªonecznych, to mo»emy si spodziewa,»e b dzie pada jutro. 17 / 260

Drzewa decyzyjne Proste drzewo decyzyjne dla danych weather Zaczynamy znów nasz interpretacj modelu od korzenia. Je±li zmienna Pressure3pm ma warto± mniejsz ni» 1012hPa i Sunshine jest wi ksza lub równa ni» 9 (tj. zaobserwowano co najmniej 9 godzin sªonecznych podczas dna), to nie nale»y si spodziewa jutro deszczu. Je±li rejestrujemy 9 lub mniej godzin sªonecznych, to mo»emy si spodziewa,»e b dzie pada jutro. 18 / 260

Drzewa decyzyjne Proste drzewo decyzyjne dla danych weather Wiedza b d¹ model wyra»one w j zyku modelowania mog by tªumaczone na inny j zyk, np. programowania. Oczywi±cie dotyczy to równie» drzewa decyzyjnego. Jednym z tªumacze«jest zestaw reguª. 19 / 260

Drzewa decyzyjne Proste drzewo decyzyjne dla danych weather Wiedza b d¹ model wyra»one w j zyku modelowania mog by tªumaczone na inny j zyk, np. programowania. Oczywi±cie dotyczy to równie» drzewa decyzyjnego. Jednym z tªumacze«jest zestaw reguª. 20 / 260

Drzewa decyzyjne Drzewo decyzyjne tªumaczymy na zasady, z których ka»da odpowiada jednej ±cie»ce od korzenia do li±cia. 21 / 260

Drzewa decyzyjne Zasada numer 7 oznacza, z prawdopodobie«stwem 74%, gdy ci±nienie o 3 po poªudniu jest mniejsze ni» 1012 hpa i liczba godzin sªonecznych wynosi mniej ni» 8.85 godziny, mamy deszcz nast pnego dnia (RainTomorrow = Yes). Inne informacje zawarte w regule: np.»e 27 obserwacji z treningowego zestawu danych (tj. 11% obserwacji treningowych) jest obj tych t zasad, tzn. speªniaj dwa powy»sze warunki. 22 / 260

Drzewa decyzyjne Zasada numer 7 oznacza, z prawdopodobie«stwem 74%, gdy ci±nienie o 3 po poªudniu jest mniejsze ni» 1012 hpa i liczba godzin sªonecznych wynosi mniej ni» 8.85 godziny, mamy deszcz nast pnego dnia (RainTomorrow = Yes). Inne informacje zawarte w regule: np.»e 27 obserwacji z treningowego zestawu danych (tj. 11% obserwacji treningowych) jest obj tych t zasad, tzn. speªniaj dwa powy»sze warunki. 23 / 260

Drzewa decyzyjne Reprezentacja w formie reguª ma swoje zalety. W trakcie przegl du wiedzy, mo»emy rozwa»y ka»d reguª osobno nie rozpraszaj c si bardziej zªo»on konstrukcj du»ych drzew decyzyjnych. Zauwa»my,»e ka»da reguªa mo»e zosta przetªumaczona na wyra»enie w j zyku programowania jak np. R, Python, C, VisualBasic lub SQL. Konstrukcja jest tak prosta i jasna, jak instrukcja warunkowa IF-THEN. 24 / 260

Drzewa decyzyjne Reprezentacja w formie reguª ma swoje zalety. W trakcie przegl du wiedzy, mo»emy rozwa»y ka»d reguª osobno nie rozpraszaj c si bardziej zªo»on konstrukcj du»ych drzew decyzyjnych. Zauwa»my,»e ka»da reguªa mo»e zosta przetªumaczona na wyra»enie w j zyku programowania jak np. R, Python, C, VisualBasic lub SQL. Konstrukcja jest tak prosta i jasna, jak instrukcja warunkowa IF-THEN. 25 / 260

Drzewa decyzyjne Algorytm budowania drzewa decyzyjnego cz sto rozpoczyna od budowy drzewa wi kszego, a nast pnie nast puje przyci te (pruned), a wi c uproszczenie drzewa. Sªu»y to poprawie dokªadno±ci. W konsekwencji b dziemy cz sto widzieli numery w zªów (i numery reguª), które nie s kolejne. Numery w zªów nie maj»adnego konkretnego znaczenia i sªu» tylko do odniesienia. W reguªach widzimy miary prawdopodobie«stwa, które s zazwyczaj podawane dla ka»dego li±cia drzewa decyzyjnego. Prawdopodobie«stwa mog by stosowane w celu okre±lenia siªy decyzji, któr wyznaczamy w modelu. 26 / 260

Drzewa decyzyjne Algorytm budowania drzewa decyzyjnego cz sto rozpoczyna od budowy drzewa wi kszego, a nast pnie nast puje przyci te (pruned), a wi c uproszczenie drzewa. Sªu»y to poprawie dokªadno±ci. W konsekwencji b dziemy cz sto widzieli numery w zªów (i numery reguª), które nie s kolejne. Numery w zªów nie maj»adnego konkretnego znaczenia i sªu» tylko do odniesienia. W reguªach widzimy miary prawdopodobie«stwa, które s zazwyczaj podawane dla ka»dego li±cia drzewa decyzyjnego. Prawdopodobie«stwa mog by stosowane w celu okre±lenia siªy decyzji, któr wyznaczamy w modelu. 27 / 260

Drzewa decyzyjne Algorytm budowania drzewa decyzyjnego cz sto rozpoczyna od budowy drzewa wi kszego, a nast pnie nast puje przyci te (pruned), a wi c uproszczenie drzewa. Sªu»y to poprawie dokªadno±ci. W konsekwencji b dziemy cz sto widzieli numery w zªów (i numery reguª), które nie s kolejne. Numery w zªów nie maj»adnego konkretnego znaczenia i sªu» tylko do odniesienia. W reguªach widzimy miary prawdopodobie«stwa, które s zazwyczaj podawane dla ka»dego li±cia drzewa decyzyjnego. Prawdopodobie«stwa mog by stosowane w celu okre±lenia siªy decyzji, któr wyznaczamy w modelu. 28 / 260

Drzewa decyzyjne rodzaje Rozwa»ane powy»ej drzewo nosi nazw binarnego drzewa decyzyjnego. 29 / 260

Drzewa decyzyjne algorytm Dla ka»dego zestawu danych mo»emy generowa wiele ró»nych drzew decyzyjnych. Rozwa»my proste drzewo decyzyjne omówiony powy»ej. Zamiast testowa zmienn Pressure3pm z warto±ci 1012, mo»emy j przetestowa z warto±ciami 1011, 1013 lub 1020, itd. Lub mo»emy w korzeniu testowa inn zmienn, by mo»e mogliby±my testowa warto± Humidity3pm zamiast Pressure3pm. To ponownie wprowadza wiele alternatywnych modeli. Który model jest najlepszy i najlepiej pasuje do danych? Naszym zadaniem jest zidentykowanie modelu, który najlepiej oddaje wiedz z obserwacji. Wyliczenie ka»dego mo»liwego i sprawdzenie, czy jest on dobrym modelem, b dzie zwykle zbyt kosztowne obliczeniowo. 30 / 260

Drzewa decyzyjne algorytm Dla ka»dego zestawu danych mo»emy generowa wiele ró»nych drzew decyzyjnych. Rozwa»my proste drzewo decyzyjne omówiony powy»ej. Zamiast testowa zmienn Pressure3pm z warto±ci 1012, mo»emy j przetestowa z warto±ciami 1011, 1013 lub 1020, itd. Lub mo»emy w korzeniu testowa inn zmienn, by mo»e mogliby±my testowa warto± Humidity3pm zamiast Pressure3pm. To ponownie wprowadza wiele alternatywnych modeli. Który model jest najlepszy i najlepiej pasuje do danych? Naszym zadaniem jest zidentykowanie modelu, który najlepiej oddaje wiedz z obserwacji. Wyliczenie ka»dego mo»liwego i sprawdzenie, czy jest on dobrym modelem, b dzie zwykle zbyt kosztowne obliczeniowo. 31 / 260

Drzewa decyzyjne algorytm Dla ka»dego zestawu danych mo»emy generowa wiele ró»nych drzew decyzyjnych. Rozwa»my proste drzewo decyzyjne omówiony powy»ej. Zamiast testowa zmienn Pressure3pm z warto±ci 1012, mo»emy j przetestowa z warto±ciami 1011, 1013 lub 1020, itd. Lub mo»emy w korzeniu testowa inn zmienn, by mo»e mogliby±my testowa warto± Humidity3pm zamiast Pressure3pm. To ponownie wprowadza wiele alternatywnych modeli. Który model jest najlepszy i najlepiej pasuje do danych? Naszym zadaniem jest zidentykowanie modelu, który najlepiej oddaje wiedz z obserwacji. Wyliczenie ka»dego mo»liwego i sprawdzenie, czy jest on dobrym modelem, b dzie zwykle zbyt kosztowne obliczeniowo. 32 / 260

Drzewa decyzyjne algorytm Dla ka»dego zestawu danych mo»emy generowa wiele ró»nych drzew decyzyjnych. Rozwa»my proste drzewo decyzyjne omówiony powy»ej. Zamiast testowa zmienn Pressure3pm z warto±ci 1012, mo»emy j przetestowa z warto±ciami 1011, 1013 lub 1020, itd. Lub mo»emy w korzeniu testowa inn zmienn, by mo»e mogliby±my testowa warto± Humidity3pm zamiast Pressure3pm. To ponownie wprowadza wiele alternatywnych modeli. Który model jest najlepszy i najlepiej pasuje do danych? Naszym zadaniem jest zidentykowanie modelu, który najlepiej oddaje wiedz z obserwacji. Wyliczenie ka»dego mo»liwego i sprawdzenie, czy jest on dobrym modelem, b dzie zwykle zbyt kosztowne obliczeniowo. 33 / 260

Drzewa decyzyjne algorytm Dla ka»dego zestawu danych mo»emy generowa wiele ró»nych drzew decyzyjnych. Rozwa»my proste drzewo decyzyjne omówiony powy»ej. Zamiast testowa zmienn Pressure3pm z warto±ci 1012, mo»emy j przetestowa z warto±ciami 1011, 1013 lub 1020, itd. Lub mo»emy w korzeniu testowa inn zmienn, by mo»e mogliby±my testowa warto± Humidity3pm zamiast Pressure3pm. To ponownie wprowadza wiele alternatywnych modeli. Który model jest najlepszy i najlepiej pasuje do danych? Naszym zadaniem jest zidentykowanie modelu, który najlepiej oddaje wiedz z obserwacji. Wyliczenie ka»dego mo»liwego i sprawdzenie, czy jest on dobrym modelem, b dzie zwykle zbyt kosztowne obliczeniowo. 34 / 260

Drzewa decyzyjne algorytm Naszym zadaniem jest skorzystanie z obserwacji (treningowych) w celu zaw»enia tych poszukiwa«tak, aby znale¹ dobry model w rozs dnym czasie. Algorytm, który zostaª opracowany dla drzew decyzyjnych jest okre±lany jako odgórna indukcja drzew decyzyjnych (top-down induction of decision trees - TDIDT). Algorytm u»ywa podej±cia dziel i zwyci»aj (rekurencyjnego podziaªu.) Przedstawimy ide algorytmu na przykªadzie zestawu danych weather. Istotny dla algorytmu jest rozkªad obserwacji w odniesieniu do zmiennej docelowej RainTomorrow. Mamy 66 obserwacji, które maj cel jako Yes (18%) i 300 No (82%). 35 / 260

Drzewa decyzyjne algorytm Naszym zadaniem jest skorzystanie z obserwacji (treningowych) w celu zaw»enia tych poszukiwa«tak, aby znale¹ dobry model w rozs dnym czasie. Algorytm, który zostaª opracowany dla drzew decyzyjnych jest okre±lany jako odgórna indukcja drzew decyzyjnych (top-down induction of decision trees - TDIDT). Algorytm u»ywa podej±cia dziel i zwyci»aj (rekurencyjnego podziaªu.) Przedstawimy ide algorytmu na przykªadzie zestawu danych weather. Istotny dla algorytmu jest rozkªad obserwacji w odniesieniu do zmiennej docelowej RainTomorrow. Mamy 66 obserwacji, które maj cel jako Yes (18%) i 300 No (82%). 36 / 260

Drzewa decyzyjne algorytm Naszym zadaniem jest skorzystanie z obserwacji (treningowych) w celu zaw»enia tych poszukiwa«tak, aby znale¹ dobry model w rozs dnym czasie. Algorytm, który zostaª opracowany dla drzew decyzyjnych jest okre±lany jako odgórna indukcja drzew decyzyjnych (top-down induction of decision trees - TDIDT). Algorytm u»ywa podej±cia dziel i zwyci»aj (rekurencyjnego podziaªu.) Przedstawimy ide algorytmu na przykªadzie zestawu danych weather. Istotny dla algorytmu jest rozkªad obserwacji w odniesieniu do zmiennej docelowej RainTomorrow. Mamy 66 obserwacji, które maj cel jako Yes (18%) i 300 No (82%). 37 / 260

Drzewa decyzyjne algorytm Naszym zadaniem jest skorzystanie z obserwacji (treningowych) w celu zaw»enia tych poszukiwa«tak, aby znale¹ dobry model w rozs dnym czasie. Algorytm, który zostaª opracowany dla drzew decyzyjnych jest okre±lany jako odgórna indukcja drzew decyzyjnych (top-down induction of decision trees - TDIDT). Algorytm u»ywa podej±cia dziel i zwyci»aj (rekurencyjnego podziaªu.) Przedstawimy ide algorytmu na przykªadzie zestawu danych weather. Istotny dla algorytmu jest rozkªad obserwacji w odniesieniu do zmiennej docelowej RainTomorrow. Mamy 66 obserwacji, które maj cel jako Yes (18%) i 300 No (82%). 38 / 260

Drzewa decyzyjne algorytm Chcemy znale¹ zmienn wej±ciow, która mo»e by u»ywana do dzielenia zbioru danych na dwa mniejsze zestawy danych. Celem b dzie zwi kszenie jednorodno±ci (homogeniczno±ci) ka»dego z tych dwóch zestawów danych w odniesieniu do zmiennej docelowej. Oznacza to,»e dla jednego z zestawów danych, b dziemy starali si zwi kszy odsetek obserwacji Yes, a dla drugiego zbioru danych chcemy by wzrósª odsetek obserwacji No. Mo»emy na przykªad zdecydowa, aby skonstruowa podziaª zestawu danych za pomoc zmiennej Sunshine, a w tym zbiorze wybra 9 jako warto± wyznaczaj c podziaª. Ka»da obserwacja z warto±ci mniejsz lub równ 9 jest przydzielana do pierwszego podzbioru, pozostaªe do drugiego. 39 / 260

Drzewa decyzyjne algorytm Chcemy znale¹ zmienn wej±ciow, która mo»e by u»ywana do dzielenia zbioru danych na dwa mniejsze zestawy danych. Celem b dzie zwi kszenie jednorodno±ci (homogeniczno±ci) ka»dego z tych dwóch zestawów danych w odniesieniu do zmiennej docelowej. Oznacza to,»e dla jednego z zestawów danych, b dziemy starali si zwi kszy odsetek obserwacji Yes, a dla drugiego zbioru danych chcemy by wzrósª odsetek obserwacji No. Mo»emy na przykªad zdecydowa, aby skonstruowa podziaª zestawu danych za pomoc zmiennej Sunshine, a w tym zbiorze wybra 9 jako warto± wyznaczaj c podziaª. Ka»da obserwacja z warto±ci mniejsz lub równ 9 jest przydzielana do pierwszego podzbioru, pozostaªe do drugiego. 40 / 260

Drzewa decyzyjne algorytm Chcemy znale¹ zmienn wej±ciow, która mo»e by u»ywana do dzielenia zbioru danych na dwa mniejsze zestawy danych. Celem b dzie zwi kszenie jednorodno±ci (homogeniczno±ci) ka»dego z tych dwóch zestawów danych w odniesieniu do zmiennej docelowej. Oznacza to,»e dla jednego z zestawów danych, b dziemy starali si zwi kszy odsetek obserwacji Yes, a dla drugiego zbioru danych chcemy by wzrósª odsetek obserwacji No. Mo»emy na przykªad zdecydowa, aby skonstruowa podziaª zestawu danych za pomoc zmiennej Sunshine, a w tym zbiorze wybra 9 jako warto± wyznaczaj c podziaª. Ka»da obserwacja z warto±ci mniejsz lub równ 9 jest przydzielana do pierwszego podzbioru, pozostaªe do drugiego. 41 / 260

Drzewa decyzyjne algorytm Nowe zestawy danych b d miaªy 201 i 162 obserwacji odpowiednio (trzy obserwacje maj brak warto±ci dla tej zmiennej). w.omit<-na.omit(weather["sunshine"]) length(which(w.omit<9)) Teraz bierzemy pod uwag proporcje Yes i No w tych dwóch nowych zestawach danych. Dla podzbioru obserwacji z Sunshine o warto±ci mniej ni» 9, proporcje s 28% Yes i 72% No. W podgrupie drugiej proporcje wynosz 5% Yes i 95% No. vars<-c("sunshine","raintomorrow") w2.omit<-na.omit(weather[vars]) which((w2.omit$sunshine<9) & (w2.omit$raintomorrow=="yes")) x1<-which(w2.omit$raintomorrow=="yes") x2<-which(w2.omit$sunshine<9) length(intersect(x1,x2))/length(which(w.omit<9)) 42 / 260

Drzewa decyzyjne algorytm Nowe zestawy danych b d miaªy 201 i 162 obserwacji odpowiednio (trzy obserwacje maj brak warto±ci dla tej zmiennej). w.omit<-na.omit(weather["sunshine"]) length(which(w.omit<9)) Teraz bierzemy pod uwag proporcje Yes i No w tych dwóch nowych zestawach danych. Dla podzbioru obserwacji z Sunshine o warto±ci mniej ni» 9, proporcje s 28% Yes i 72% No. W podgrupie drugiej proporcje wynosz 5% Yes i 95% No. vars<-c("sunshine","raintomorrow") w2.omit<-na.omit(weather[vars]) which((w2.omit$sunshine<9) & (w2.omit$raintomorrow=="yes")) x1<-which(w2.omit$raintomorrow=="yes") x2<-which(w2.omit$sunshine<9) length(intersect(x1,x2))/length(which(w.omit<9)) 43 / 260

Drzewa decyzyjne algorytm Nowe zestawy danych b d miaªy 201 i 162 obserwacji odpowiednio (trzy obserwacje maj brak warto±ci dla tej zmiennej). w.omit<-na.omit(weather["sunshine"]) length(which(w.omit<9)) Teraz bierzemy pod uwag proporcje Yes i No w tych dwóch nowych zestawach danych. Dla podzbioru obserwacji z Sunshine o warto±ci mniej ni» 9, proporcje s 28% Yes i 72% No. W podgrupie drugiej proporcje wynosz 5% Yes i 95% No. vars<-c("sunshine","raintomorrow") w2.omit<-na.omit(weather[vars]) which((w2.omit$sunshine<9) & (w2.omit$raintomorrow=="yes")) x1<-which(w2.omit$raintomorrow=="yes") x2<-which(w2.omit$sunshine<9) length(intersect(x1,x2))/length(which(w.omit<9)) 44 / 260

Drzewa decyzyjne algorytm Poprzez podziaª wg tej zmiennej, uzyskali±my lepsz homogeniczno± warto±ci zmiennej celu RainTomorrow. W szczególno±ci drugi zbiór danych (Sunshine 9 ) gromadzi obserwacje, które s bez deszczu nast pnego dnia (95% No). To pozwala nam stwierdzi,»e gdy liczba sªonecznych godzin jest do± wysoka (tj. co najmniej 9 godzin), to jest prawdopodobie«stwo deszczu jest niewielkie (5% Yes). W pierwszym zestawie danych sprawa nie jest tak oczywista. Proporcje (28% Yes i 72% No, w caªym zbiorze Yes 18% i No 82%) z pewno±ci si zmieniªy mamy wi kszy udziaª obserwacji Yes ni» dla oryginalnego zestawu danych, ale nadal obserwacje Yes nie przewa»aj. 45 / 260

Drzewa decyzyjne algorytm Poprzez podziaª wg tej zmiennej, uzyskali±my lepsz homogeniczno± warto±ci zmiennej celu RainTomorrow. W szczególno±ci drugi zbiór danych (Sunshine 9 ) gromadzi obserwacje, które s bez deszczu nast pnego dnia (95% No). To pozwala nam stwierdzi,»e gdy liczba sªonecznych godzin jest do± wysoka (tj. co najmniej 9 godzin), to jest prawdopodobie«stwo deszczu jest niewielkie (5% Yes). W pierwszym zestawie danych sprawa nie jest tak oczywista. Proporcje (28% Yes i 72% No, w caªym zbiorze Yes 18% i No 82%) z pewno±ci si zmieniªy mamy wi kszy udziaª obserwacji Yes ni» dla oryginalnego zestawu danych, ale nadal obserwacje Yes nie przewa»aj. 46 / 260

Drzewa decyzyjne algorytm Niemniej jednak, mo»na powiedzie,»e gdy obserwujemy Sunshine < 9, to istnieje zwi kszone prawdopodobie«stwo deszczu nast pnego dnia na podstawie naszych historycznych obserwacji. Mamy wtedy 28% szans na deszcz w porównaniu z 18% w stosunku do wszystkich obserwacji. Wybór warto±ci 9 dla zmiennej Sunshine jest tylko jedn mo»liwo±ci spo±ród bardzo wielu ró»nych wyborów. Je±li wybraliby±my warto± 5 dla tej zmiennej, to mieliby±my dwa nowe zestawy danych z proporcjami Yes/No 41%/59% i 12%/88%. Wybieraj c caªkowicie inn zmienn (Cloud3pm) z podziaªem 6, mieliby±my dwa nowe zestawy danych z proporcjami Yes/No 8%/92% i 34%/66%. Innym wyborem mo»e by Pressure3pm z podziaªem 1012. Daje to nam proporcje Yes/No 47%/53% i 10%/90%. 47 / 260

Drzewa decyzyjne algorytm Niemniej jednak, mo»na powiedzie,»e gdy obserwujemy Sunshine < 9, to istnieje zwi kszone prawdopodobie«stwo deszczu nast pnego dnia na podstawie naszych historycznych obserwacji. Mamy wtedy 28% szans na deszcz w porównaniu z 18% w stosunku do wszystkich obserwacji. Wybór warto±ci 9 dla zmiennej Sunshine jest tylko jedn mo»liwo±ci spo±ród bardzo wielu ró»nych wyborów. Je±li wybraliby±my warto± 5 dla tej zmiennej, to mieliby±my dwa nowe zestawy danych z proporcjami Yes/No 41%/59% i 12%/88%. Wybieraj c caªkowicie inn zmienn (Cloud3pm) z podziaªem 6, mieliby±my dwa nowe zestawy danych z proporcjami Yes/No 8%/92% i 34%/66%. Innym wyborem mo»e by Pressure3pm z podziaªem 1012. Daje to nam proporcje Yes/No 47%/53% i 10%/90%. 48 / 260

Drzewa decyzyjne algorytm W jaki sposób mo»na podzieli zbiór treningowy? Który podziaª jest najlepszy? Na to pytanie odpowiemy za chwil, teraz zaªó»my,»e dokonali±my ju» tego wyboru i mamy dwa nowe mniejsze zbiory danych. Proces jest powtarzany oddzielnie dla dwóch nowych zestawów danych. Oznacza to,»e dla lewego zbioru (obserwacje maj ce Sunshine < 9) bierzemy pod uwag wszystkie mo»liwe zmienne i podziaªy, aby podzieli ten zestaw danych na dwa mniejsze zestawy danych. Niezale»nie dla prawego zestawu danych (obserwacje maj c Sunshine 9 ) rozwa»amy równie» wszystkie mo»liwe zmienne i podziaªy zestawu danych na dwa mniejsze zestawy danych. 49 / 260

Drzewa decyzyjne algorytm W jaki sposób mo»na podzieli zbiór treningowy? Który podziaª jest najlepszy? Na to pytanie odpowiemy za chwil, teraz zaªó»my,»e dokonali±my ju» tego wyboru i mamy dwa nowe mniejsze zbiory danych. Proces jest powtarzany oddzielnie dla dwóch nowych zestawów danych. Oznacza to,»e dla lewego zbioru (obserwacje maj ce Sunshine < 9) bierzemy pod uwag wszystkie mo»liwe zmienne i podziaªy, aby podzieli ten zestaw danych na dwa mniejsze zestawy danych. Niezale»nie dla prawego zestawu danych (obserwacje maj c Sunshine 9 ) rozwa»amy równie» wszystkie mo»liwe zmienne i podziaªy zestawu danych na dwa mniejsze zestawy danych. 50 / 260

Drzewa decyzyjne - algorytm Teraz mamy cztery jeszcze mniejsze zbiory danych i proces trwa dalej. Dla ka»dego z czterech zestawów danych ponownie rozwa»amy wszystkie mo»liwe zmienne i podziaªy, wybieraj c najlepszy na ka»dym etapie, dziel c dane, i tak dalej, powtarzaj c proces, a» uznamy,»e podziaª powinien si zatrzyma. Warunki stopu: kiedy zabraknie zmiennych, zabraknie danych lub gdy podziaª zbioru danych nie poprawia proporcji lub wyniku. Widzimy teraz, dlaczego proces ten nazywa mo»na dziel i zwyci»aj lub rekurencyjnym partycjonowaniem. Na ka»dym kroku, zidentykowali±my pytanie, które u»ywamy do podziaªu danych. Powstaªe wówczas dwa zestawy danych odpowiadaj gaª ziom drzewa wychodz cym z tego w zªa. Dla ka»dej gaª zi identykujemy nowe pytanie i podziaª. Dzielimy zbiór wielokrotnie i stosujemy taki sam proces, niezale»nie dla ka»dego z mniejszych zestawów danych, w zwi zku z czym jest to podziaª rekurencyjny. 51 / 260

Drzewa decyzyjne - algorytm Teraz mamy cztery jeszcze mniejsze zbiory danych i proces trwa dalej. Dla ka»dego z czterech zestawów danych ponownie rozwa»amy wszystkie mo»liwe zmienne i podziaªy, wybieraj c najlepszy na ka»dym etapie, dziel c dane, i tak dalej, powtarzaj c proces, a» uznamy,»e podziaª powinien si zatrzyma. Warunki stopu: kiedy zabraknie zmiennych, zabraknie danych lub gdy podziaª zbioru danych nie poprawia proporcji lub wyniku. Widzimy teraz, dlaczego proces ten nazywa mo»na dziel i zwyci»aj lub rekurencyjnym partycjonowaniem. Na ka»dym kroku, zidentykowali±my pytanie, które u»ywamy do podziaªu danych. Powstaªe wówczas dwa zestawy danych odpowiadaj gaª ziom drzewa wychodz cym z tego w zªa. Dla ka»dej gaª zi identykujemy nowe pytanie i podziaª. Dzielimy zbiór wielokrotnie i stosujemy taki sam proces, niezale»nie dla ka»dego z mniejszych zestawów danych, w zwi zku z czym jest to podziaª rekurencyjny. 52 / 260

Drzewa decyzyjne - algorytm Teraz mamy cztery jeszcze mniejsze zbiory danych i proces trwa dalej. Dla ka»dego z czterech zestawów danych ponownie rozwa»amy wszystkie mo»liwe zmienne i podziaªy, wybieraj c najlepszy na ka»dym etapie, dziel c dane, i tak dalej, powtarzaj c proces, a» uznamy,»e podziaª powinien si zatrzyma. Warunki stopu: kiedy zabraknie zmiennych, zabraknie danych lub gdy podziaª zbioru danych nie poprawia proporcji lub wyniku. Widzimy teraz, dlaczego proces ten nazywa mo»na dziel i zwyci»aj lub rekurencyjnym partycjonowaniem. Na ka»dym kroku, zidentykowali±my pytanie, które u»ywamy do podziaªu danych. Powstaªe wówczas dwa zestawy danych odpowiadaj gaª ziom drzewa wychodz cym z tego w zªa. Dla ka»dej gaª zi identykujemy nowe pytanie i podziaª. Dzielimy zbiór wielokrotnie i stosujemy taki sam proces, niezale»nie dla ka»dego z mniejszych zestawów danych, w zwi zku z czym jest to podziaª rekurencyjny. 53 / 260

Drzewa decyzyjne - algorytm Teraz mamy cztery jeszcze mniejsze zbiory danych i proces trwa dalej. Dla ka»dego z czterech zestawów danych ponownie rozwa»amy wszystkie mo»liwe zmienne i podziaªy, wybieraj c najlepszy na ka»dym etapie, dziel c dane, i tak dalej, powtarzaj c proces, a» uznamy,»e podziaª powinien si zatrzyma. Warunki stopu: kiedy zabraknie zmiennych, zabraknie danych lub gdy podziaª zbioru danych nie poprawia proporcji lub wyniku. Widzimy teraz, dlaczego proces ten nazywa mo»na dziel i zwyci»aj lub rekurencyjnym partycjonowaniem. Na ka»dym kroku, zidentykowali±my pytanie, które u»ywamy do podziaªu danych. Powstaªe wówczas dwa zestawy danych odpowiadaj gaª ziom drzewa wychodz cym z tego w zªa. Dla ka»dej gaª zi identykujemy nowe pytanie i podziaª. Dzielimy zbiór wielokrotnie i stosujemy taki sam proces, niezale»nie dla ka»dego z mniejszych zestawów danych, w zwi zku z czym jest to podziaª rekurencyjny. 54 / 260

Drzewa decyzyjne - algorytm Na ka»dym etapie procesu, podejmiemy decyzj co do wyboru najlepszej zmiennej i podziaªu na partycje danych. Decyzja mo»e nie by najlepsza w ogólnym kontek±cie budowania tego drzewa, ale gdy podejmiemy tak decyzj, pozostajemy z ni do ko«ca budowania drzewa. Jest to ogólnie okre±lane jako podej±cie zachªanne (greedy approach). 55 / 260

Miary Jak mierzy jako± podziaªów zbioru danych? Rattle wykorzystuje poj cie zysku informacyjnego dla podj cia decyzji mi dzy alternatywnymi podziaªami. Poj cie pochodzi z teorii informacji i wykorzystuje poj cie entropii. Entropia oznacza jak wymieszane s nasze dane w odniesieniu do warto±ci zmiennej docelowej. 56 / 260

Miary Jak mierzy jako± podziaªów zbioru danych? Rattle wykorzystuje poj cie zysku informacyjnego dla podj cia decyzji mi dzy alternatywnymi podziaªami. Poj cie pochodzi z teorii informacji i wykorzystuje poj cie entropii. Entropia oznacza jak wymieszane s nasze dane w odniesieniu do warto±ci zmiennej docelowej. 57 / 260

Miary Jak mierzy jako± podziaªów zbioru danych? Rattle wykorzystuje poj cie zysku informacyjnego dla podj cia decyzji mi dzy alternatywnymi podziaªami. Poj cie pochodzi z teorii informacji i wykorzystuje poj cie entropii. Entropia oznacza jak wymieszane s nasze dane w odniesieniu do warto±ci zmiennej docelowej. 58 / 260

Miary Je±li zestaw danych zawiera tylko obserwacje z tak sam warto±ci zmiennej celu (np. zawiera tylko obserwacje, dla których pada nast pnego dnia), to nie mamy zaburzenia, a wi c mamy: brak entropii lub entropi zerow. Je±li dwie warto±ci zmiennej docelowej s równomiernie rozªo»one w obserwacjach (tj. 50 % z zestawu danych to s obserwacje, dla których pada jutro, a pozostaªe 50% to obserwacje, dla których nie ma deszczu jutro), to zestaw danych zawiera maksymaln ilo± zaburzenia (entropii). Maksymalna warto± entropii to 1. Zbiór danych zawieraj cy wymieszane warto±ci zmiennej docelowej, b dzie miaª entropi pomi dzy 0 i 1. 59 / 260

Miary Je±li zestaw danych zawiera tylko obserwacje z tak sam warto±ci zmiennej celu (np. zawiera tylko obserwacje, dla których pada nast pnego dnia), to nie mamy zaburzenia, a wi c mamy: brak entropii lub entropi zerow. Je±li dwie warto±ci zmiennej docelowej s równomiernie rozªo»one w obserwacjach (tj. 50 % z zestawu danych to s obserwacje, dla których pada jutro, a pozostaªe 50% to obserwacje, dla których nie ma deszczu jutro), to zestaw danych zawiera maksymaln ilo± zaburzenia (entropii). Maksymalna warto± entropii to 1. Zbiór danych zawieraj cy wymieszane warto±ci zmiennej docelowej, b dzie miaª entropi pomi dzy 0 i 1. 60 / 260

Miary Je±li zestaw danych zawiera tylko obserwacje z tak sam warto±ci zmiennej celu (np. zawiera tylko obserwacje, dla których pada nast pnego dnia), to nie mamy zaburzenia, a wi c mamy: brak entropii lub entropi zerow. Je±li dwie warto±ci zmiennej docelowej s równomiernie rozªo»one w obserwacjach (tj. 50 % z zestawu danych to s obserwacje, dla których pada jutro, a pozostaªe 50% to obserwacje, dla których nie ma deszczu jutro), to zestaw danych zawiera maksymaln ilo± zaburzenia (entropii). Maksymalna warto± entropii to 1. Zbiór danych zawieraj cy wymieszane warto±ci zmiennej docelowej, b dzie miaª entropi pomi dzy 0 i 1. 61 / 260

Miary Je±li zestaw danych zawiera tylko obserwacje z tak sam warto±ci zmiennej celu (np. zawiera tylko obserwacje, dla których pada nast pnego dnia), to nie mamy zaburzenia, a wi c mamy: brak entropii lub entropi zerow. Je±li dwie warto±ci zmiennej docelowej s równomiernie rozªo»one w obserwacjach (tj. 50 % z zestawu danych to s obserwacje, dla których pada jutro, a pozostaªe 50% to obserwacje, dla których nie ma deszczu jutro), to zestaw danych zawiera maksymaln ilo± zaburzenia (entropii). Maksymalna warto± entropii to 1. Zbiór danych zawieraj cy wymieszane warto±ci zmiennej docelowej, b dzie miaª entropi pomi dzy 0 i 1. 62 / 260

Miary Z punktu widzenia teorii informacji, miara 0 (czyli entropia 0), to wskazanie,»e nie potrzebujemy»adnych dodatkowych informacji w celu sklasykowania obserwacji w obr bie zestawu danych - wszystkie obserwacje nale» do tej samej klasy. miara 1 wskazuje,»e potrzebujemy maksymaln, mo»liw liczb dodatkowych informacji w celu sklasykowania naszych obserwacji. Je±li podziaª na obserwacje, w których pada jutro i nie pada jutro jest, ró»ny od 50% / 50%, ale wynosi np. 75% / 25%, to potrzebujemy mniej informacji w celu sklasykowania naszych obserwacji zestaw danych ju» zawiera informacje na temat w jaki sposób klasykowa dane. 63 / 260

Miary Z punktu widzenia teorii informacji, miara 0 (czyli entropia 0), to wskazanie,»e nie potrzebujemy»adnych dodatkowych informacji w celu sklasykowania obserwacji w obr bie zestawu danych - wszystkie obserwacje nale» do tej samej klasy. miara 1 wskazuje,»e potrzebujemy maksymaln, mo»liw liczb dodatkowych informacji w celu sklasykowania naszych obserwacji. Je±li podziaª na obserwacje, w których pada jutro i nie pada jutro jest, ró»ny od 50% / 50%, ale wynosi np. 75% / 25%, to potrzebujemy mniej informacji w celu sklasykowania naszych obserwacji zestaw danych ju» zawiera informacje na temat w jaki sposób klasykowa dane. 64 / 260

Miary Z punktu widzenia teorii informacji, miara 0 (czyli entropia 0), to wskazanie,»e nie potrzebujemy»adnych dodatkowych informacji w celu sklasykowania obserwacji w obr bie zestawu danych - wszystkie obserwacje nale» do tej samej klasy. miara 1 wskazuje,»e potrzebujemy maksymaln, mo»liw liczb dodatkowych informacji w celu sklasykowania naszych obserwacji. Je±li podziaª na obserwacje, w których pada jutro i nie pada jutro jest, ró»ny od 50% / 50%, ale wynosi np. 75% / 25%, to potrzebujemy mniej informacji w celu sklasykowania naszych obserwacji zestaw danych ju» zawiera informacje na temat w jaki sposób klasykowa dane. 65 / 260

Entropia Przyjmijmy,»e mamy zbiór zdarze«s = {x 1,..., x n} (zbiór warto±ci zmiennej kategorialnej celu). Przyjmijmy,»e prawdopodobie«stwo zaj±cia ka»dego zdarzenia (przyj cia danej warto±ci przez zmienn ) jest znane i wynosi p(x i ) = p i (rozkªad warto±ci zmiennej kategorialnej). Mamy p i 0 oraz n i=1 p i = 1. Funkcj I (x i ) = log k p i dla pewnego k > 0 i k 1 nazywamy ilo±ci informacji zdarzenia x i lub entropi indywidualn. Funkcj I mo»emy traktowa jako miar informacji (zaskoczenia) dotycz cej zaj±cia zdarzenia x i. W przypadku kodowania danych w informatyce podstawa k wynosi 2. Im mniej prawdopodobne zdarzenie (rzadziej przyjmowana warto± ), tym wi cej zawiera informacji, a ilo± informacji wynosi 0 dla zdarze«pewnych. 66 / 260

Entropia Przyjmijmy,»e mamy zbiór zdarze«s = {x 1,..., x n} (zbiór warto±ci zmiennej kategorialnej celu). Przyjmijmy,»e prawdopodobie«stwo zaj±cia ka»dego zdarzenia (przyj cia danej warto±ci przez zmienn ) jest znane i wynosi p(x i ) = p i (rozkªad warto±ci zmiennej kategorialnej). Mamy p i 0 oraz n i=1 p i = 1. Funkcj I (x i ) = log k p i dla pewnego k > 0 i k 1 nazywamy ilo±ci informacji zdarzenia x i lub entropi indywidualn. Funkcj I mo»emy traktowa jako miar informacji (zaskoczenia) dotycz cej zaj±cia zdarzenia x i. W przypadku kodowania danych w informatyce podstawa k wynosi 2. Im mniej prawdopodobne zdarzenie (rzadziej przyjmowana warto± ), tym wi cej zawiera informacji, a ilo± informacji wynosi 0 dla zdarze«pewnych. 67 / 260

Entropia Przyjmijmy,»e mamy zbiór zdarze«s = {x 1,..., x n} (zbiór warto±ci zmiennej kategorialnej celu). Przyjmijmy,»e prawdopodobie«stwo zaj±cia ka»dego zdarzenia (przyj cia danej warto±ci przez zmienn ) jest znane i wynosi p(x i ) = p i (rozkªad warto±ci zmiennej kategorialnej). Mamy p i 0 oraz n i=1 p i = 1. Funkcj I (x i ) = log k p i dla pewnego k > 0 i k 1 nazywamy ilo±ci informacji zdarzenia x i lub entropi indywidualn. Funkcj I mo»emy traktowa jako miar informacji (zaskoczenia) dotycz cej zaj±cia zdarzenia x i. W przypadku kodowania danych w informatyce podstawa k wynosi 2. Im mniej prawdopodobne zdarzenie (rzadziej przyjmowana warto± ), tym wi cej zawiera informacji, a ilo± informacji wynosi 0 dla zdarze«pewnych. 68 / 260

Entropia Przyjmijmy,»e mamy zbiór zdarze«s = {x 1,..., x n} (zbiór warto±ci zmiennej kategorialnej celu). Przyjmijmy,»e prawdopodobie«stwo zaj±cia ka»dego zdarzenia (przyj cia danej warto±ci przez zmienn ) jest znane i wynosi p(x i ) = p i (rozkªad warto±ci zmiennej kategorialnej). Mamy p i 0 oraz n i=1 p i = 1. Funkcj I (x i ) = log k p i dla pewnego k > 0 i k 1 nazywamy ilo±ci informacji zdarzenia x i lub entropi indywidualn. Funkcj I mo»emy traktowa jako miar informacji (zaskoczenia) dotycz cej zaj±cia zdarzenia x i. W przypadku kodowania danych w informatyce podstawa k wynosi 2. Im mniej prawdopodobne zdarzenie (rzadziej przyjmowana warto± ), tym wi cej zawiera informacji, a ilo± informacji wynosi 0 dla zdarze«pewnych. 69 / 260

Entropia Je±li alfabet S = {x 1, x 2} oraz p 1 = p 2 = 1 2 to 1 I (x 1) = I (x 1) = log 2 = 1. Oznacza to,»e wybranie jednej z 2 mo»liwo±ci o równym prawdopodobie«stwie wymaga 1 bita informacji. Je±li jednak p 1 = 1 4, p2 = 3 4, to I (x1) = 2, I (x2) = log 2 3 = 0.415. 4 70 / 260

Entropia Je±li alfabet S = {x 1, x 2} oraz p 1 = p 2 = 1 2 to 1 I (x 1) = I (x 1) = log 2 = 1. Oznacza to,»e wybranie jednej z 2 mo»liwo±ci o równym prawdopodobie«stwie wymaga 1 bita informacji. Je±li jednak p 1 = 1 4, p2 = 3 4, to I (x1) = 2, I (x2) = log 2 3 = 0.415. 4 71 / 260

Entropia Funkcj n H(S) = p(x i ) log 2 p(x i ) (1) i=1 nazywamy entropi stowarzyszon ze zbiorem zdarze«s = {x 1,..., x n}. Entropi mo»emy traktowa jako warto± oczekiwan zmiennej losowej I (x i ). Funkcja ta dla zmiennej binarnej ma maksymaln warto± 1 dla p 1 = p 2 = 1 (patrz rysunek). 2 Funkcja entropii dla zmiennej binarnej H(p)(p = p 1, p 2 = 1 p 1) 72 / 260

Entropia Funkcj n H(S) = p(x i ) log 2 p(x i ) (1) i=1 nazywamy entropi stowarzyszon ze zbiorem zdarze«s = {x 1,..., x n}. Entropi mo»emy traktowa jako warto± oczekiwan zmiennej losowej I (x i ). Funkcja ta dla zmiennej binarnej ma maksymaln warto± 1 dla p 1 = p 2 = 1 (patrz rysunek). 2 Funkcja entropii dla zmiennej binarnej H(p)(p = p 1, p 2 = 1 p 1) 73 / 260

Kryterium zysku informacyjnego Przejdziemy obecnie do formalnego zdeniowania kryterium zysku informacyjnego oraz przedstawienia metody podziaªu w oparciu o kryterium zysku informacyjnego. Niech S oznacza zbiór s obserwacji. Zaªó»my,»e zmienna celu posiada n ró»nych warto±ci deniuj cych n klas, C i (dla i = 1,..., n). Niech c i oznacza liczb obserwacji ze zbioru S nale» cych do klasy C i. Niech p i oznacza prawdopodobie«stwo,»e dowolna obserwacja nale»y do klasy C i (p i = c i /s). Zgodnie z teori informacji, oczekiwan ilo± informacji niezb dn do zaklasykowania danego przykªadu, mo»emy przedstawi wzorem n H(S) = p(x i ) log 2 p(x i ) (2) i=1 Oczekiwana ilo± informacji niezb dna do zaklasykowania danej obserwacji H(S) jest warto±ci staª dla danego zbioru S. 74 / 260

Kryterium zysku informacyjnego Przejdziemy obecnie do formalnego zdeniowania kryterium zysku informacyjnego oraz przedstawienia metody podziaªu w oparciu o kryterium zysku informacyjnego. Niech S oznacza zbiór s obserwacji. Zaªó»my,»e zmienna celu posiada n ró»nych warto±ci deniuj cych n klas, C i (dla i = 1,..., n). Niech c i oznacza liczb obserwacji ze zbioru S nale» cych do klasy C i. Niech p i oznacza prawdopodobie«stwo,»e dowolna obserwacja nale»y do klasy C i (p i = c i /s). Zgodnie z teori informacji, oczekiwan ilo± informacji niezb dn do zaklasykowania danego przykªadu, mo»emy przedstawi wzorem n H(S) = p(x i ) log 2 p(x i ) (2) i=1 Oczekiwana ilo± informacji niezb dna do zaklasykowania danej obserwacji H(S) jest warto±ci staª dla danego zbioru S. 75 / 260

Kryterium zysku informacyjnego Przejdziemy obecnie do formalnego zdeniowania kryterium zysku informacyjnego oraz przedstawienia metody podziaªu w oparciu o kryterium zysku informacyjnego. Niech S oznacza zbiór s obserwacji. Zaªó»my,»e zmienna celu posiada n ró»nych warto±ci deniuj cych n klas, C i (dla i = 1,..., n). Niech c i oznacza liczb obserwacji ze zbioru S nale» cych do klasy C i. Niech p i oznacza prawdopodobie«stwo,»e dowolna obserwacja nale»y do klasy C i (p i = c i /s). Zgodnie z teori informacji, oczekiwan ilo± informacji niezb dn do zaklasykowania danego przykªadu, mo»emy przedstawi wzorem n H(S) = p(x i ) log 2 p(x i ) (2) i=1 Oczekiwana ilo± informacji niezb dna do zaklasykowania danej obserwacji H(S) jest warto±ci staª dla danego zbioru S. 76 / 260

Kryterium zysku informacyjnego Przejdziemy obecnie do formalnego zdeniowania kryterium zysku informacyjnego oraz przedstawienia metody podziaªu w oparciu o kryterium zysku informacyjnego. Niech S oznacza zbiór s obserwacji. Zaªó»my,»e zmienna celu posiada n ró»nych warto±ci deniuj cych n klas, C i (dla i = 1,..., n). Niech c i oznacza liczb obserwacji ze zbioru S nale» cych do klasy C i. Niech p i oznacza prawdopodobie«stwo,»e dowolna obserwacja nale»y do klasy C i (p i = c i /s). Zgodnie z teori informacji, oczekiwan ilo± informacji niezb dn do zaklasykowania danego przykªadu, mo»emy przedstawi wzorem n H(S) = p(x i ) log 2 p(x i ) (2) i=1 Oczekiwana ilo± informacji niezb dna do zaklasykowania danej obserwacji H(S) jest warto±ci staª dla danego zbioru S. 77 / 260

Kryterium zysku informacyjnego Przejdziemy obecnie do formalnego zdeniowania kryterium zysku informacyjnego oraz przedstawienia metody podziaªu w oparciu o kryterium zysku informacyjnego. Niech S oznacza zbiór s obserwacji. Zaªó»my,»e zmienna celu posiada n ró»nych warto±ci deniuj cych n klas, C i (dla i = 1,..., n). Niech c i oznacza liczb obserwacji ze zbioru S nale» cych do klasy C i. Niech p i oznacza prawdopodobie«stwo,»e dowolna obserwacja nale»y do klasy C i (p i = c i /s). Zgodnie z teori informacji, oczekiwan ilo± informacji niezb dn do zaklasykowania danego przykªadu, mo»emy przedstawi wzorem n H(S) = p(x i ) log 2 p(x i ) (2) i=1 Oczekiwana ilo± informacji niezb dna do zaklasykowania danej obserwacji H(S) jest warto±ci staª dla danego zbioru S. 78 / 260

Kryterium zysku informacyjnego Zakªadamy,»e zmienna A posiada v ró»nych warto±ci: a 1, a 2,..., a v. Zmienna A dzieli zbiór S na partycje S 1, S 2,..., S v, gdzie S j zawiera obserwacje ze zbioru S, których warto± zmiennej A wynosi a j. Wybieraj c atrybut A jako atrybut testowy tworzymy wierzchoªek wewn trzny drzewa, którego ªuki wychodz ce posiadaj etykiety a 1, a 2,..., a v i ª cz dany wierzchoªek A z wierzchoªkami zawieraj cymi partycje S 1, S 2,..., S v. 79 / 260

Kryterium zysku informacyjnego Zakªadamy,»e zmienna A posiada v ró»nych warto±ci: a 1, a 2,..., a v. Zmienna A dzieli zbiór S na partycje S 1, S 2,..., S v, gdzie S j zawiera obserwacje ze zbioru S, których warto± zmiennej A wynosi a j. Wybieraj c atrybut A jako atrybut testowy tworzymy wierzchoªek wewn trzny drzewa, którego ªuki wychodz ce posiadaj etykiety a 1, a 2,..., a v i ª cz dany wierzchoªek A z wierzchoªkami zawieraj cymi partycje S 1, S 2,..., S v. 80 / 260

Kryterium zysku informacyjnego Niech s ij oznacza liczb obserwacji z klasy C i w partycji S j. Entropi podziaªu zbioru S na partycje, wedªug zmiennej A deniujemy nast puj cym wzorem E(A) = v j=1 (s 1j + s 2j +... s nj ) H(S j ) (3) s Zauwa»my,»e, entropia jest miar nieuporz dkowania zbioru S zgodnie z atrybutem A. Im mniejsza warto± entropii tym wi ksza czysto± podziaªu zbioru S na partycje, tzn. uzyskane w wyniku podziaªu partycje b d tym czystsze im mniejsza jest warto± entropii. Wspóªczynnik (s 1j +s 2j +...s nj) (suma (s s 1j + s 2j +... s nj ) jest ilo±ci obserwacji w partycji S j. Oznaczamy go jako S j lub s j ). Stanowi on wag j-tej partycji i zdeniowany jest jako iloraz liczby obserwacji w j-tej partycji (posiadaj cych warto± a j atrybutu A) do caªkowitej liczby obserwacji w zbiorze S. 81 / 260

Kryterium zysku informacyjnego Niech s ij oznacza liczb obserwacji z klasy C i w partycji S j. Entropi podziaªu zbioru S na partycje, wedªug zmiennej A deniujemy nast puj cym wzorem E(A) = v j=1 (s 1j + s 2j +... s nj ) H(S j ) (3) s Zauwa»my,»e, entropia jest miar nieuporz dkowania zbioru S zgodnie z atrybutem A. Im mniejsza warto± entropii tym wi ksza czysto± podziaªu zbioru S na partycje, tzn. uzyskane w wyniku podziaªu partycje b d tym czystsze im mniejsza jest warto± entropii. Wspóªczynnik (s 1j +s 2j +...s nj) (suma (s s 1j + s 2j +... s nj ) jest ilo±ci obserwacji w partycji S j. Oznaczamy go jako S j lub s j ). Stanowi on wag j-tej partycji i zdeniowany jest jako iloraz liczby obserwacji w j-tej partycji (posiadaj cych warto± a j atrybutu A) do caªkowitej liczby obserwacji w zbiorze S. 82 / 260

Kryterium zysku informacyjnego Niech s ij oznacza liczb obserwacji z klasy C i w partycji S j. Entropi podziaªu zbioru S na partycje, wedªug zmiennej A deniujemy nast puj cym wzorem E(A) = v j=1 (s 1j + s 2j +... s nj ) H(S j ) (3) s Zauwa»my,»e, entropia jest miar nieuporz dkowania zbioru S zgodnie z atrybutem A. Im mniejsza warto± entropii tym wi ksza czysto± podziaªu zbioru S na partycje, tzn. uzyskane w wyniku podziaªu partycje b d tym czystsze im mniejsza jest warto± entropii. Wspóªczynnik (s 1j +s 2j +...s nj) (suma (s s 1j + s 2j +... s nj ) jest ilo±ci obserwacji w partycji S j. Oznaczamy go jako S j lub s j ). Stanowi on wag j-tej partycji i zdeniowany jest jako iloraz liczby obserwacji w j-tej partycji (posiadaj cych warto± a j atrybutu A) do caªkowitej liczby obserwacji w zbiorze S. 83 / 260

Kryterium zysku informacyjnego Zauwa»my,»e dla danej partycji S j, wyra»enie H(S j ), deniuje oczekiwan ilo± informacji niezb dn do zaklasykowania danej obserwacji w partycji S j do okre±lonej klasy. Oczekiwana ilo± informacji niezb dna do zaklasykowania danej obserwacji jest równa 0 je»eli caªa partycja jest czysta, czyli nale»y do jednej klasy. W przeciwnym razie warto± tego wyra»enia okre±la nam nieuporz dkowanie (nieczysto± ) partycji S j. Zauwa»my,»e denicja entropii podziaªu zbioru, przedstawiona przed chwil jest zagregowan sum wyra»e«h(s j ) dla ka»dej partycji S j. Je»eli podziaª zbioru S na partycje wg atrybutu A tworzy nam partycje czyste to dla ka»dej partycji S j wyra»enie H(S j ) b dzie równe 0 i zagregowana suma równie» b dzie 0. Co oznacza,»e warto± entropii podziaªu zbioru S na partycje czyste b dzie wynosiªa 0. 84 / 260

Kryterium zysku informacyjnego Zauwa»my,»e dla danej partycji S j, wyra»enie H(S j ), deniuje oczekiwan ilo± informacji niezb dn do zaklasykowania danej obserwacji w partycji S j do okre±lonej klasy. Oczekiwana ilo± informacji niezb dna do zaklasykowania danej obserwacji jest równa 0 je»eli caªa partycja jest czysta, czyli nale»y do jednej klasy. W przeciwnym razie warto± tego wyra»enia okre±la nam nieuporz dkowanie (nieczysto± ) partycji S j. Zauwa»my,»e denicja entropii podziaªu zbioru, przedstawiona przed chwil jest zagregowan sum wyra»e«h(s j ) dla ka»dej partycji S j. Je»eli podziaª zbioru S na partycje wg atrybutu A tworzy nam partycje czyste to dla ka»dej partycji S j wyra»enie H(S j ) b dzie równe 0 i zagregowana suma równie» b dzie 0. Co oznacza,»e warto± entropii podziaªu zbioru S na partycje czyste b dzie wynosiªa 0. 85 / 260

Kryterium zysku informacyjnego Zauwa»my,»e dla danej partycji S j, wyra»enie H(S j ), deniuje oczekiwan ilo± informacji niezb dn do zaklasykowania danej obserwacji w partycji S j do okre±lonej klasy. Oczekiwana ilo± informacji niezb dna do zaklasykowania danej obserwacji jest równa 0 je»eli caªa partycja jest czysta, czyli nale»y do jednej klasy. W przeciwnym razie warto± tego wyra»enia okre±la nam nieuporz dkowanie (nieczysto± ) partycji S j. Zauwa»my,»e denicja entropii podziaªu zbioru, przedstawiona przed chwil jest zagregowan sum wyra»e«h(s j ) dla ka»dej partycji S j. Je»eli podziaª zbioru S na partycje wg atrybutu A tworzy nam partycje czyste to dla ka»dej partycji S j wyra»enie H(S j ) b dzie równe 0 i zagregowana suma równie» b dzie 0. Co oznacza,»e warto± entropii podziaªu zbioru S na partycje czyste b dzie wynosiªa 0. 86 / 260

Kryterium zysku informacyjnego Zyskiem informacyjnym Gain(S,A) wynikaj cym z podziaªu zbioru S na partycje, wg atrybutu A nazywamy ró»nic oczekiwanej ilo±ci informacji niezb dnych do zaklasykowania danej obserwacji nale» cej do zbioru S i entropii atrybutu A. Gain(S, A) = H(S) E(A) Zysk informacyjny oznacza oczekiwan redukcj nieuporz dkowania spowodowan znajomo±ci warto±ci atrybutu A. 87 / 260

Kryterium zysku informacyjnego Gain(S, A) = H(S) E(A) Warto± opisana przez powy»szy wzór mo»emy wyznaczy dla ró»nych podziaªów. Podziaª, który ma najwi kszy zysk informacyjny (daje najwi ksz redukcj entropii - nieuporz dkowania) jest podziaªem, który wybieramy. W przypadku zmiennej binarnej celu i drzewa binarnego (podziaªy tylko na dwa) mamy H(S) = p log 2 p (1 p) log 2 (1 p), E(A) = S1 s H(S1) + S2 s H(S2). 88 / 260

Przykªad indukcji drzew decyzyjnych Dany jest zbiór treningowy zawieraj cy informacj o klientach sklepu komputerowego. Przykªadowy zbiór treningowy sklepu komputerowego 89 / 260

Przykªad indukcji drzew decyzyjnych Zmienne opisuj ce klienta zawieraj informacje na temat jego grupy wiekowej, dochodu, statusu, informacji o przynale»no±ci do grupy student. Zmienna celu kupi_komputer zawieraj ca informacje, czy klient potencjalnie dokona zakupu sprz tu komputerowego czy te» nie. Powy»szy przykªad zaczerpni ty zostaª z podr cznika J.Hana, znajduje si równie» w wykªadzie z Eksploracji danych na stronie (http: //wazniak.mimuw.edu.pl/index.php?title=ed-4.2-m08-1.0-slajd24). 90 / 260

Przykªad indukcji drzew decyzyjnych Zmienne opisuj ce klienta zawieraj informacje na temat jego grupy wiekowej, dochodu, statusu, informacji o przynale»no±ci do grupy student. Zmienna celu kupi_komputer zawieraj ca informacje, czy klient potencjalnie dokona zakupu sprz tu komputerowego czy te» nie. Powy»szy przykªad zaczerpni ty zostaª z podr cznika J.Hana, znajduje si równie» w wykªadzie z Eksploracji danych na stronie (http: //wazniak.mimuw.edu.pl/index.php?title=ed-4.2-m08-1.0-slajd24). 91 / 260

Przykªad indukcji drzew decyzyjnych Rozwa»any przez nas zbiór treningowy S skªada si z 14 obserwacji. Zmienna celu, kupi_komputer, posiada dwie warto±ci (Tak, Nie), st d, wyró»niamy dwie klasy. Klasa C 1 odpowiada warto±ci Tak, natomiast klasa C 2 odpowiada warto±ci Nie. Liczba c 1 obserwacji zbioru S nale» cych do C 1 i wynosi 9. Liczba c 2 obserwacji nale» cych do klasy C 2 wynosi 5. 92 / 260

Przykªad indukcji drzew decyzyjnych Rozwa»any przez nas zbiór treningowy S skªada si z 14 obserwacji. Zmienna celu, kupi_komputer, posiada dwie warto±ci (Tak, Nie), st d, wyró»niamy dwie klasy. Klasa C 1 odpowiada warto±ci Tak, natomiast klasa C 2 odpowiada warto±ci Nie. Liczba c 1 obserwacji zbioru S nale» cych do C 1 i wynosi 9. Liczba c 2 obserwacji nale» cych do klasy C 2 wynosi 5. 93 / 260

Przykªad indukcji drzew decyzyjnych Rozwa»any przez nas zbiór treningowy S skªada si z 14 obserwacji. Zmienna celu, kupi_komputer, posiada dwie warto±ci (Tak, Nie), st d, wyró»niamy dwie klasy. Klasa C 1 odpowiada warto±ci Tak, natomiast klasa C 2 odpowiada warto±ci Nie. Liczba c 1 obserwacji zbioru S nale» cych do C 1 i wynosi 9. Liczba c 2 obserwacji nale» cych do klasy C 2 wynosi 5. 94 / 260

Przykªad indukcji drzew decyzyjnych Rozwa»any przez nas zbiór treningowy S skªada si z 14 obserwacji. Zmienna celu, kupi_komputer, posiada dwie warto±ci (Tak, Nie), st d, wyró»niamy dwie klasy. Klasa C 1 odpowiada warto±ci Tak, natomiast klasa C 2 odpowiada warto±ci Nie. Liczba c 1 obserwacji zbioru S nale» cych do C 1 i wynosi 9. Liczba c 2 obserwacji nale» cych do klasy C 2 wynosi 5. 95 / 260

Przykªad indukcji drzew decyzyjnych Podstawiaj c to do wzoru na entropi (oczekiwan ilo± informacji niezb dn do zaklasykowania danej obserwacji nale» cej do zbioru, mamy H(S) = n p(x i ) log 2 p(x i ) = p 1 log 2 p 1 p 2 log 2 p 2 i=1 = 9 14 log 2 9 14 5 14 log 5 2 14 = 0.94 96 / 260

Przykªad indukcji drzew decyzyjnych W rozwa»anym przez nas przykªadzie mamy 4 zmienne: Wiek, Dochód, Student, Status. 97 / 260

Przykªad indukcji drzew decyzyjnych Rozpocznijmy od analizy zmiennej Wiek. Zaªó»my,»e Wiek jest nasz zmienn testow. Podstawiaj c te warto±ci do wyra»enia Wiek dzieli zbiór S na 3 partycje: S1,S2 i S3. Pierwsza partycja S 1 dla warto±ci Wiek<=30 skªada si z pi ciu obserwacji. s 11 = 2 liczba obserwacji z klasy C 1 partycji S 1, s 12 = 3 liczba obserwacji z klasy C 2 partycji S 1. H(S 1) = p log 2 p (1 p) log 2 (1 p) dostaniemy H(S 1) = 2 5 log 2 2 5 3 5 log 2 3 5 = 0.971. 98 / 260

Przykªad indukcji drzew decyzyjnych Rozpocznijmy od analizy zmiennej Wiek. Zaªó»my,»e Wiek jest nasz zmienn testow. Podstawiaj c te warto±ci do wyra»enia Wiek dzieli zbiór S na 3 partycje: S1,S2 i S3. Pierwsza partycja S 1 dla warto±ci Wiek<=30 skªada si z pi ciu obserwacji. s 11 = 2 liczba obserwacji z klasy C 1 partycji S 1, s 12 = 3 liczba obserwacji z klasy C 2 partycji S 1. H(S 1) = p log 2 p (1 p) log 2 (1 p) dostaniemy H(S 1) = 2 5 log 2 2 5 3 5 log 2 3 5 = 0.971. 99 / 260

Przykªad indukcji drzew decyzyjnych Rozpocznijmy od analizy zmiennej Wiek. Zaªó»my,»e Wiek jest nasz zmienn testow. Podstawiaj c te warto±ci do wyra»enia Wiek dzieli zbiór S na 3 partycje: S1,S2 i S3. Pierwsza partycja S 1 dla warto±ci Wiek<=30 skªada si z pi ciu obserwacji. s 11 = 2 liczba obserwacji z klasy C 1 partycji S 1, s 12 = 3 liczba obserwacji z klasy C 2 partycji S 1. H(S 1) = p log 2 p (1 p) log 2 (1 p) dostaniemy H(S 1) = 2 5 log 2 2 5 3 5 log 2 3 5 = 0.971. 100 / 260

Przykªad indukcji drzew decyzyjnych Rozpocznijmy od analizy zmiennej Wiek. Zaªó»my,»e Wiek jest nasz zmienn testow. Podstawiaj c te warto±ci do wyra»enia Wiek dzieli zbiór S na 3 partycje: S1,S2 i S3. Pierwsza partycja S 1 dla warto±ci Wiek<=30 skªada si z pi ciu obserwacji. s 11 = 2 liczba obserwacji z klasy C 1 partycji S 1, s 12 = 3 liczba obserwacji z klasy C 2 partycji S 1. H(S 1) = p log 2 p (1 p) log 2 (1 p) dostaniemy H(S 1) = 2 5 log 2 2 5 3 5 log 2 3 5 = 0.971. 101 / 260

Przykªad indukcji drzew decyzyjnych Partycja S 2 - wiek 30..40, skªada si z 4 obserwacji, wszystkie 4 obserwacje nale» do klasy C 1. Partycja ta jest czysta, st d te» warto± wyra»enia H(S 2) = 0. 102 / 260

Przykªad indukcji drzew decyzyjnych Partycja S 2 - wiek 30..40, skªada si z 4 obserwacji, wszystkie 4 obserwacje nale» do klasy C 1. Partycja ta jest czysta, st d te» warto± wyra»enia H(S 2) = 0. 103 / 260

Przykªad indukcji drzew decyzyjnych Partycja S 3 zwi zana jest z warto±ci wiek>40, partycja skªada si z 5 obserwacji, z czego 3 nale» do klasy C 1 i 2 nale» do klasy C 2. St d te» warto± wyra»enia H(S 3) = 2 5 log 2 2 5 3 5 log 3 2 5 = 0.971. 104 / 260

Przykªad indukcji drzew decyzyjnych Partycja S 3 zwi zana jest z warto±ci wiek>40, partycja skªada si z 5 obserwacji, z czego 3 nale» do klasy C 1 i 2 nale» do klasy C 2. St d te» warto± wyra»enia H(S 3) = 2 5 log 2 2 5 3 5 log 3 2 5 = 0.971. 105 / 260

Przykªad indukcji drzew decyzyjnych Wi c entropia podziaªu zbioru S na partycje, wedªug zmiennej Wiek wynosi: E(A) = E(Wiek) = 5 14 0.971 + + 4 14 0 + 5 14 0.971 = 0.693 Zauwa»my,»e wagi wyra»e«we wzorze na entropi s równe: 5/14 poniewa» partycja S 1 skªada si z 5 obs. natomiast caªy zbiór treningowy zawiera 14, 4/14 partycja S 2 skªada si z 4 obs. i partycja S 3 skªada si z 5 obs. Zysk informacyjny wynikaj cy z podziaªu zbioru S wg zmiennej Wiek wynosi H(S) E(Wiek) = 0.94 0.693 = 0.247 106 / 260

Przykªad indukcji drzew decyzyjnych Wi c entropia podziaªu zbioru S na partycje, wedªug zmiennej Wiek wynosi: E(A) = E(Wiek) = 5 14 0.971 + + 4 14 0 + 5 14 0.971 = 0.693 Zauwa»my,»e wagi wyra»e«we wzorze na entropi s równe: 5/14 poniewa» partycja S 1 skªada si z 5 obs. natomiast caªy zbiór treningowy zawiera 14, 4/14 partycja S 2 skªada si z 4 obs. i partycja S 3 skªada si z 5 obs. Zysk informacyjny wynikaj cy z podziaªu zbioru S wg zmiennej Wiek wynosi H(S) E(Wiek) = 0.94 0.693 = 0.247 107 / 260

Przykªad indukcji drzew decyzyjnych Wi c entropia podziaªu zbioru S na partycje, wedªug zmiennej Wiek wynosi: E(A) = E(Wiek) = 5 14 0.971 + + 4 14 0 + 5 14 0.971 = 0.693 Zauwa»my,»e wagi wyra»e«we wzorze na entropi s równe: 5/14 poniewa» partycja S 1 skªada si z 5 obs. natomiast caªy zbiór treningowy zawiera 14, 4/14 partycja S 2 skªada si z 4 obs. i partycja S 3 skªada si z 5 obs. Zysk informacyjny wynikaj cy z podziaªu zbioru S wg zmiennej Wiek wynosi H(S) E(Wiek) = 0.94 0.693 = 0.247 108 / 260

Przykªad indukcji drzew decyzyjnych W analogiczny sposób obliczamy zysk informacyjny dla pozostaªych zmiennych dochód, student status. 109 / 260

Przykªad indukcji drzew decyzyjnych Poniewa» Wiek daje najwi kszy zysk informacyjny spo±ród wszystkich deskryptorów, zmienna ta jest wybierana jako pierwsza zmienna testowa. Tworzymy wierzchoªek drzewa o etykiecie Wiek, oraz etykietowane ªuki wychodz ce ª cz ce wierzchoªek Wiek z wierzchoªkami odpowiadaj cymi partycjom S 1,S 2 oraz S 3 utworzonymi zgodnie z podziaªem zbioru S wg zmiennej Wiek. Pierwszy podziaª zbioru wg zmiennej wiek 110 / 260

Przykªad indukcji drzew decyzyjnych Poniewa» Wiek daje najwi kszy zysk informacyjny spo±ród wszystkich deskryptorów, zmienna ta jest wybierana jako pierwsza zmienna testowa. Tworzymy wierzchoªek drzewa o etykiecie Wiek, oraz etykietowane ªuki wychodz ce ª cz ce wierzchoªek Wiek z wierzchoªkami odpowiadaj cymi partycjom S 1,S 2 oraz S 3 utworzonymi zgodnie z podziaªem zbioru S wg zmiennej Wiek. Pierwszy podziaª zbioru wg zmiennej wiek 111 / 260

Przykªad indukcji drzew decyzyjnych Poniewa» Wiek daje najwi kszy zysk informacyjny spo±ród wszystkich deskryptorów, zmienna ta jest wybierana jako pierwsza zmienna testowa. Tworzymy wierzchoªek drzewa o etykiecie Wiek, oraz etykietowane ªuki wychodz ce ª cz ce wierzchoªek Wiek z wierzchoªkami odpowiadaj cymi partycjom S 1,S 2 oraz S 3 utworzonymi zgodnie z podziaªem zbioru S wg zmiennej Wiek. Pierwszy podziaª zbioru wg zmiennej wiek 112 / 260

Przykªad indukcji drzew decyzyjnych Mamy korze«zwi zany ze zmienn testow Wiek, trzy gaª zie etykietowane warto±ciami atrybutu Wiek<=30, 31..40 oraz >40. Gaª zie te ª cz korze«z wierzchoªkami reprezentuj cymi partycje S 1, S 2 i S 3. Zauwa»my,»e partycja S 2 jest partycj czyst, czyli zawiera obserwacje nale» ce do tej samej klasy kupi_komputer = tak. Przeksztaªcamy zatem ten wierzchoªek w li±, który etykietujemy warto±ci klasy kupi_komputer = tak. Dla pozostaªych partycji S 1 i S 3 kontynuujemy proces partycjonowania i tworzenia drzewa decyzyjnego. 113 / 260

Przykªad indukcji drzew decyzyjnych Mamy korze«zwi zany ze zmienn testow Wiek, trzy gaª zie etykietowane warto±ciami atrybutu Wiek<=30, 31..40 oraz >40. Gaª zie te ª cz korze«z wierzchoªkami reprezentuj cymi partycje S 1, S 2 i S 3. Zauwa»my,»e partycja S 2 jest partycj czyst, czyli zawiera obserwacje nale» ce do tej samej klasy kupi_komputer = tak. Przeksztaªcamy zatem ten wierzchoªek w li±, który etykietujemy warto±ci klasy kupi_komputer = tak. Dla pozostaªych partycji S 1 i S 3 kontynuujemy proces partycjonowania i tworzenia drzewa decyzyjnego. 114 / 260

Przykªad indukcji drzew decyzyjnych Mamy korze«zwi zany ze zmienn testow Wiek, trzy gaª zie etykietowane warto±ciami atrybutu Wiek<=30, 31..40 oraz >40. Gaª zie te ª cz korze«z wierzchoªkami reprezentuj cymi partycje S 1, S 2 i S 3. Zauwa»my,»e partycja S 2 jest partycj czyst, czyli zawiera obserwacje nale» ce do tej samej klasy kupi_komputer = tak. Przeksztaªcamy zatem ten wierzchoªek w li±, który etykietujemy warto±ci klasy kupi_komputer = tak. Dla pozostaªych partycji S 1 i S 3 kontynuujemy proces partycjonowania i tworzenia drzewa decyzyjnego. 115 / 260

Przykªad indukcji drzew decyzyjnych Mamy korze«zwi zany ze zmienn testow Wiek, trzy gaª zie etykietowane warto±ciami atrybutu Wiek<=30, 31..40 oraz >40. Gaª zie te ª cz korze«z wierzchoªkami reprezentuj cymi partycje S 1, S 2 i S 3. Zauwa»my,»e partycja S 2 jest partycj czyst, czyli zawiera obserwacje nale» ce do tej samej klasy kupi_komputer = tak. Przeksztaªcamy zatem ten wierzchoªek w li±, który etykietujemy warto±ci klasy kupi_komputer = tak. Dla pozostaªych partycji S 1 i S 3 kontynuujemy proces partycjonowania i tworzenia drzewa decyzyjnego. 116 / 260

Przykªad indukcji drzew decyzyjnych Mamy korze«zwi zany ze zmienn testow Wiek, trzy gaª zie etykietowane warto±ciami atrybutu Wiek<=30, 31..40 oraz >40. Gaª zie te ª cz korze«z wierzchoªkami reprezentuj cymi partycje S 1, S 2 i S 3. Zauwa»my,»e partycja S 2 jest partycj czyst, czyli zawiera obserwacje nale» ce do tej samej klasy kupi_komputer = tak. Przeksztaªcamy zatem ten wierzchoªek w li±, który etykietujemy warto±ci klasy kupi_komputer = tak. Dla pozostaªych partycji S 1 i S 3 kontynuujemy proces partycjonowania i tworzenia drzewa decyzyjnego. 117 / 260

Przykªad indukcji drzew decyzyjnych Mamy korze«zwi zany ze zmienn testow Wiek, trzy gaª zie etykietowane warto±ciami atrybutu Wiek<=30, 31..40 oraz >40. Gaª zie te ª cz korze«z wierzchoªkami reprezentuj cymi partycje S 1, S 2 i S 3. Zauwa»my,»e partycja S 2 jest partycj czyst, czyli zawiera obserwacje nale» ce do tej samej klasy kupi_komputer = tak. Przeksztaªcamy zatem ten wierzchoªek w li±, który etykietujemy warto±ci klasy kupi_komputer = tak. Dla pozostaªych partycji S 1 i S 3 kontynuujemy proces partycjonowania i tworzenia drzewa decyzyjnego. 118 / 260

Przykªad indukcji drzew decyzyjnych Mamy Okazuje si z dalszych oblicze«,»e najlepsz zmienn testow dla partycji S 1 jest Student, charakteryzuj cy si najwi kszym zyskiem informacyjnym, który dzieli partycj S 1 na dwie partycje, które s ju» partycjami czystymi. Dla warto±ci Student = nie otrzymujemy partycj, której wszystkie obserwacje nale» do klasy C 2. Natomiast dla warto±ci Student = tak wszystkie nale» do klasy kupi_komputer = tak. 119 / 260

Przykªad indukcji drzew decyzyjnych Mamy Okazuje si z dalszych oblicze«,»e najlepsz zmienn testow dla partycji S 1 jest Student, charakteryzuj cy si najwi kszym zyskiem informacyjnym, który dzieli partycj S 1 na dwie partycje, które s ju» partycjami czystymi. Dla warto±ci Student = nie otrzymujemy partycj, której wszystkie obserwacje nale» do klasy C 2. Natomiast dla warto±ci Student = tak wszystkie nale» do klasy kupi_komputer = tak. 120 / 260

Przykªad indukcji drzew decyzyjnych Mamy Okazuje si z dalszych oblicze«,»e najlepsz zmienn testow dla partycji S 1 jest Student, charakteryzuj cy si najwi kszym zyskiem informacyjnym, który dzieli partycj S 1 na dwie partycje, które s ju» partycjami czystymi. Dla warto±ci Student = nie otrzymujemy partycj, której wszystkie obserwacje nale» do klasy C 2. Natomiast dla warto±ci Student = tak wszystkie nale» do klasy kupi_komputer = tak. 121 / 260

Przykªad indukcji drzew decyzyjnych Mamy W przypadku partycji S 3 najlepsz zmienn testow jest Status, który dzieli partycj S 3 na kolejne dwie partycje. Pierwsza z nich zawiera wszystkie obserwacje, dla których Status =»onaty. Druga partycja zawiera obserwacje, dla których Status = kawaler. Obie otrzymane partycje s czyste. Partycja zwi zana ze zmienn Status z warto±ci»onaty ma wszystkie obserwacje w klasie C 2. Natomiast w przypadku Status = kawaler, wszystkie obserwacje nale» do klasy C 1. 122 / 260

Przykªad indukcji drzew decyzyjnych Mamy W przypadku partycji S 3 najlepsz zmienn testow jest Status, który dzieli partycj S 3 na kolejne dwie partycje. Pierwsza z nich zawiera wszystkie obserwacje, dla których Status =»onaty. Druga partycja zawiera obserwacje, dla których Status = kawaler. Obie otrzymane partycje s czyste. Partycja zwi zana ze zmienn Status z warto±ci»onaty ma wszystkie obserwacje w klasie C 2. Natomiast w przypadku Status = kawaler, wszystkie obserwacje nale» do klasy C 1. 123 / 260

Przykªad indukcji drzew decyzyjnych Mamy W przypadku partycji S 3 najlepsz zmienn testow jest Status, który dzieli partycj S 3 na kolejne dwie partycje. Pierwsza z nich zawiera wszystkie obserwacje, dla których Status =»onaty. Druga partycja zawiera obserwacje, dla których Status = kawaler. Obie otrzymane partycje s czyste. Partycja zwi zana ze zmienn Status z warto±ci»onaty ma wszystkie obserwacje w klasie C 2. Natomiast w przypadku Status = kawaler, wszystkie obserwacje nale» do klasy C 1. 124 / 260

Przykªad indukcji drzew decyzyjnych Ostateczna posta drzewa decyzyjnego, uzyskanego metod indukcji z wykorzystaniem jako kryterium miary zysku informacyjnego jest przedstawiona na rysunku. Zauwa»my,»e pojawiªy si dwa nowe wierzchoªki (punkty podziaªu) zwi zane ze zmiennymi Status oraz Student. To ko«czy konstrukcj drzewa decyzyjnego i rozwa»any przez nas przykªad. Finalne drzewo decyzyjne 125 / 260

Przykªad z u»yciem zbioru weather Drzewo decyzyjne mo»na zbudowa w R oraz w Rattle W Rattle nale»y u»y opcji Tree w Rattle na karcie Model, w R przez rpart () z pakietu rpart (Therneau i Atkinson, 2011). Drzewo decyzyjne dla danych weather 126 / 260

Przykªad z u»yciem zbioru weather Drzewo decyzyjne mo»na zbudowa w R oraz w Rattle W Rattle nale»y u»y opcji Tree w Rattle na karcie Model, w R przez rpart () z pakietu rpart (Therneau i Atkinson, 2011). Drzewo decyzyjne dla danych weather 127 / 260

Przykªad z u»yciem zbioru weather Drzewo decyzyjne mo»na zbudowa w R oraz w Rattle W Rattle nale»y u»y opcji Tree w Rattle na karcie Model, w R przez rpart () z pakietu rpart (Therneau i Atkinson, 2011). Drzewo decyzyjne dla danych weather 128 / 260

Przykªad z u»yciem zbioru weather Widok tekstowy zawiera wiele informacji i b dziemy dalej je analizowa. Wcze±niej jednak mo»emy uzyska szybki podgl d otrzymanego drzewa decyzyjnego za pomoc przycisku Draw. Pojawi si okno, wy±wietlaj ce drzewo. Analizuj c podsumowanie tekstowe drzewa decyzyjnego, zaczynamy w od liczby obserwacji, które byªy wykorzystywane do budowy drzewa (tj. 256): Summary of the Decision Tree model for Classification... n= 256 129 / 260

Przykªad z u»yciem zbioru weather Widok tekstowy zawiera wiele informacji i b dziemy dalej je analizowa. Wcze±niej jednak mo»emy uzyska szybki podgl d otrzymanego drzewa decyzyjnego za pomoc przycisku Draw. Pojawi si okno, wy±wietlaj ce drzewo. Analizuj c podsumowanie tekstowe drzewa decyzyjnego, zaczynamy w od liczby obserwacji, które byªy wykorzystywane do budowy drzewa (tj. 256): Summary of the Decision Tree model for Classification... n= 256 130 / 260

Przykªad z u»yciem zbioru weather Widok tekstowy zawiera wiele informacji i b dziemy dalej je analizowa. Wcze±niej jednak mo»emy uzyska szybki podgl d otrzymanego drzewa decyzyjnego za pomoc przycisku Draw. Pojawi si okno, wy±wietlaj ce drzewo. Analizuj c podsumowanie tekstowe drzewa decyzyjnego, zaczynamy w od liczby obserwacji, które byªy wykorzystywane do budowy drzewa (tj. 256): Summary of the Decision Tree model for Classification... n= 256 131 / 260

Przykªad z u»yciem zbioru weather Teraz przeanalizujemy struktur drzewa w widoku tekstowym. Nast pnie mamy legend, która pomaga czyta t struktur : node), split, n, loss, yval, (yprob) * denotes terminal node 2) Pressure3pm>=1011.9 204 16 No (0.92156863 0.07843137) Legenda wskazuje,»e zostanie wy±wietlony numer w zªa, podziaª (który zazwyczaj jest w postaci warto±ci zmiennej), liczba obserwacji n w tym w ¹le, liczba jednostek bª dnie sklasykowanych (strata - loss), domy±lna klasykacja dla w zªa (yval) - predykacja, rozkªad klas tego w zªa (yprobs). 132 / 260

Przykªad z u»yciem zbioru weather Teraz przeanalizujemy struktur drzewa w widoku tekstowym. Nast pnie mamy legend, która pomaga czyta t struktur : node), split, n, loss, yval, (yprob) * denotes terminal node 2) Pressure3pm>=1011.9 204 16 No (0.92156863 0.07843137) Legenda wskazuje,»e zostanie wy±wietlony numer w zªa, podziaª (który zazwyczaj jest w postaci warto±ci zmiennej), liczba obserwacji n w tym w ¹le, liczba jednostek bª dnie sklasykowanych (strata - loss), domy±lna klasykacja dla w zªa (yval) - predykacja, rozkªad klas tego w zªa (yprobs). 133 / 260

Przykªad z u»yciem zbioru weather Teraz przeanalizujemy struktur drzewa w widoku tekstowym. Nast pnie mamy legend, która pomaga czyta t struktur : node), split, n, loss, yval, (yprob) * denotes terminal node 2) Pressure3pm>=1011.9 204 16 No (0.92156863 0.07843137) Legenda wskazuje,»e zostanie wy±wietlony numer w zªa, podziaª (który zazwyczaj jest w postaci warto±ci zmiennej), liczba obserwacji n w tym w ¹le, liczba jednostek bª dnie sklasykowanych (strata - loss), domy±lna klasykacja dla w zªa (yval) - predykacja, rozkªad klas tego w zªa (yprobs). 134 / 260

Przykªad z u»yciem zbioru weather Teraz przeanalizujemy struktur drzewa w widoku tekstowym. Nast pnie mamy legend, która pomaga czyta t struktur : node), split, n, loss, yval, (yprob) * denotes terminal node 2) Pressure3pm>=1011.9 204 16 No (0.92156863 0.07843137) Legenda wskazuje,»e zostanie wy±wietlony numer w zªa, podziaª (który zazwyczaj jest w postaci warto±ci zmiennej), liczba obserwacji n w tym w ¹le, liczba jednostek bª dnie sklasykowanych (strata - loss), domy±lna klasykacja dla w zªa (yval) - predykacja, rozkªad klas tego w zªa (yprobs). 135 / 260

Przykªad z u»yciem zbioru weather Teraz przeanalizujemy struktur drzewa w widoku tekstowym. Nast pnie mamy legend, która pomaga czyta t struktur : node), split, n, loss, yval, (yprob) * denotes terminal node 2) Pressure3pm>=1011.9 204 16 No (0.92156863 0.07843137) Legenda wskazuje,»e zostanie wy±wietlony numer w zªa, podziaª (który zazwyczaj jest w postaci warto±ci zmiennej), liczba obserwacji n w tym w ¹le, liczba jednostek bª dnie sklasykowanych (strata - loss), domy±lna klasykacja dla w zªa (yval) - predykacja, rozkªad klas tego w zªa (yprobs). 136 / 260

Przykªad z u»yciem zbioru weather Teraz przeanalizujemy struktur drzewa w widoku tekstowym. Nast pnie mamy legend, która pomaga czyta t struktur : node), split, n, loss, yval, (yprob) * denotes terminal node 2) Pressure3pm>=1011.9 204 16 No (0.92156863 0.07843137) Legenda wskazuje,»e zostanie wy±wietlony numer w zªa, podziaª (który zazwyczaj jest w postaci warto±ci zmiennej), liczba obserwacji n w tym w ¹le, liczba jednostek bª dnie sklasykowanych (strata - loss), domy±lna klasykacja dla w zªa (yval) - predykacja, rozkªad klas tego w zªa (yprobs). 137 / 260

Przykªad z u»yciem zbioru weather Teraz przeanalizujemy struktur drzewa w widoku tekstowym. Nast pnie mamy legend, która pomaga czyta t struktur : node), split, n, loss, yval, (yprob) * denotes terminal node 2) Pressure3pm>=1011.9 204 16 No (0.92156863 0.07843137) Legenda wskazuje,»e zostanie wy±wietlony numer w zªa, podziaª (który zazwyczaj jest w postaci warto±ci zmiennej), liczba obserwacji n w tym w ¹le, liczba jednostek bª dnie sklasykowanych (strata - loss), domy±lna klasykacja dla w zªa (yval) - predykacja, rozkªad klas tego w zªa (yprobs). 138 / 260

Przykªad z u»yciem zbioru weather node), split, n, loss, yval, (yprob) * denotes terminal node Legenda wskazuje,»e Nast pna linia wskazuje,»e znak * oznacza w zeª li±cia - drzewo nie jest dzielone dla tego w zªa. 139 / 260

Przykªad z u»yciem zbioru weather Pierwszy w zeª dla dowolnego drzewa to korze«lub w zeª gªówny (root node), ma on numer 1: node), split, n, loss, yval, (yprob) 1) root 256 41 No (0.83984375 0.16015625) Reprezentuje on wszystkie obserwacje. Podane informacje mówi nam,»e wi ksz klas dla w zªa gªównego (yval) jest No. Warto± 41 mówi nam, ile z 256 obserwacji b dzie niepoprawnie sklasykowany jako Yes. Nazywamy to strat. Skªadnik yprob informuje o rozkªadzie klas dla obserwacji. Wiemy,»e s to klasy No i Yes. Zatem 84% (czyli 0,83984375 jako odsetek) obserwacji maj zmienn celu RainTomorrow w klasie No oraz 16% obserwacji jest w klasie z warto±ci Yes. 140 / 260

Przykªad z u»yciem zbioru weather Pierwszy w zeª dla dowolnego drzewa to korze«lub w zeª gªówny (root node), ma on numer 1: node), split, n, loss, yval, (yprob) 1) root 256 41 No (0.83984375 0.16015625) Reprezentuje on wszystkie obserwacje. Podane informacje mówi nam,»e wi ksz klas dla w zªa gªównego (yval) jest No. Warto± 41 mówi nam, ile z 256 obserwacji b dzie niepoprawnie sklasykowany jako Yes. Nazywamy to strat. Skªadnik yprob informuje o rozkªadzie klas dla obserwacji. Wiemy,»e s to klasy No i Yes. Zatem 84% (czyli 0,83984375 jako odsetek) obserwacji maj zmienn celu RainTomorrow w klasie No oraz 16% obserwacji jest w klasie z warto±ci Yes. 141 / 260

Przykªad z u»yciem zbioru weather Pierwszy w zeª dla dowolnego drzewa to korze«lub w zeª gªówny (root node), ma on numer 1: node), split, n, loss, yval, (yprob) 1) root 256 41 No (0.83984375 0.16015625) Reprezentuje on wszystkie obserwacje. Podane informacje mówi nam,»e wi ksz klas dla w zªa gªównego (yval) jest No. Warto± 41 mówi nam, ile z 256 obserwacji b dzie niepoprawnie sklasykowany jako Yes. Nazywamy to strat. Skªadnik yprob informuje o rozkªadzie klas dla obserwacji. Wiemy,»e s to klasy No i Yes. Zatem 84% (czyli 0,83984375 jako odsetek) obserwacji maj zmienn celu RainTomorrow w klasie No oraz 16% obserwacji jest w klasie z warto±ci Yes. 142 / 260

Przykªad z u»yciem zbioru weather node), split, n, loss, yval, (yprob) 1) root 256 41 No (0.83984375 0.16015625) Je»eli sam w zeª gªówny potraktowaliby±my jako model, to zawsze podejmowaªby on decyzj,»e jutro nie b dzie pada. Na podstawie szkoleniowego zestawu danych, b dzie on w 84% poprawny. Jest to do± dobry poziom dokªadno±ci, ale model nie jest szczególnie przydatny, poniewa» jeste±my szczególnie zainteresowani, jaki musz by warunki pogodowe, które pozwol sprawdzi, czy b dzie pada jutro. je»eli w korzeniu prognozujemy No, to w yprob pierwsze prawdopodobie«stwo jest zawsze na nie, drugie na tak (nawet, gdy w zeª predykuje Yes.) 143 / 260

Przykªad z u»yciem zbioru weather node), split, n, loss, yval, (yprob) 1) root 256 41 No (0.83984375 0.16015625) Je»eli sam w zeª gªówny potraktowaliby±my jako model, to zawsze podejmowaªby on decyzj,»e jutro nie b dzie pada. Na podstawie szkoleniowego zestawu danych, b dzie on w 84% poprawny. Jest to do± dobry poziom dokªadno±ci, ale model nie jest szczególnie przydatny, poniewa» jeste±my szczególnie zainteresowani, jaki musz by warunki pogodowe, które pozwol sprawdzi, czy b dzie pada jutro. je»eli w korzeniu prognozujemy No, to w yprob pierwsze prawdopodobie«stwo jest zawsze na nie, drugie na tak (nawet, gdy w zeª predykuje Yes.) 144 / 260

Przykªad z u»yciem zbioru weather W zeª gªówny jest podzielony na dwa w zªy. Podziaª wykonany jest w oparciu o zmienn Pressure3pm z warto±ci podziaªu 1011.9. W zeª 2 odpowiada warto±ci Pressure3pm >= 1011.9. Mamy 204 obserwacje, które o 3 popoªudniu miaªy pasuj c warto± ci±nienia: node), split, n, loss, yval, (yprob) 2) Pressure3pm>=1011.9 204 16 No (0.92156863 0.07843137) Tylko 16 z 204 obserwacji byªo ¹le sklasykowanych, tzn. z warto±ci inn ni» No (czyli Yes). To odpowiada dokªadno±ci 92% w przewidywaniu,»e nie b dzie jutro pada. 145 / 260

Przykªad z u»yciem zbioru weather W zeª gªówny jest podzielony na dwa w zªy. Podziaª wykonany jest w oparciu o zmienn Pressure3pm z warto±ci podziaªu 1011.9. W zeª 2 odpowiada warto±ci Pressure3pm >= 1011.9. Mamy 204 obserwacje, które o 3 popoªudniu miaªy pasuj c warto± ci±nienia: node), split, n, loss, yval, (yprob) 2) Pressure3pm>=1011.9 204 16 No (0.92156863 0.07843137) Tylko 16 z 204 obserwacji byªo ¹le sklasykowanych, tzn. z warto±ci inn ni» No (czyli Yes). To odpowiada dokªadno±ci 92% w przewidywaniu,»e nie b dzie jutro pada. 146 / 260

Przykªad z u»yciem zbioru weather W zeª 3 zawiera pozostaªe 52 obserwacje dla których (Pressure3pm < 1011.9). Zauwa»my,»e równie» w tym w ¹le mamy decyzj No node), split, n, loss, yval, (yprob) 3) Pressure3pm< 1011.9 52 25 No (0.51923077 0.48076923) 147 / 260

Przykªad z u»yciem zbioru weather Teraz zajmiemy si podziaªem w zªa 2. Algorytm u»yª zmiennej Cloud3pm do podziaªu z warto±ci 7.5. W zeª 4 ma 195 obserwacji, s to obserwacje z ci±nieniem o 3 popoªudniu wi kszym równym 1011.9hPa i o pokrywie chmur mniejszej ni» 7.5okta. Pod tymi warunkami nie b dzie pada jutro z prawdopodobie«stwem 95%: 2) Pressure3pm>=1011.9 204 16 No (0.92156863 0.07843137) 4) Cloud3pm< 7.5 195 10 No (0.94871795 0.05128205) * 5) Cloud3pm>=7.5 9 3 Yes (0.33333333 0.66666667) * W zeª 5 przewiduje,»e b dzie pada jutro. Mamy tu tylko 9 obserwacji, ale cz sto± deszczu wynosi dla nich 67%. St d mo»emy powiedzie,»e je±li ci±nienie jest nie mniejsze ni» 1011.9hPa oraz pokrywa chmur wynosi nie mniej ni» 7.5okta o 3 popoªudniu, to nast pnego dnia z prawdopodobie«stwem 67% b dzie pada. W zªy 4 i 5 s oznaczone gwiazdk, co znaczy,»e s to w zªy ko«cowe i nie b d dalej dzielone. 148 / 260

Przykªad z u»yciem zbioru weather Teraz zajmiemy si podziaªem w zªa 2. Algorytm u»yª zmiennej Cloud3pm do podziaªu z warto±ci 7.5. W zeª 4 ma 195 obserwacji, s to obserwacje z ci±nieniem o 3 popoªudniu wi kszym równym 1011.9hPa i o pokrywie chmur mniejszej ni» 7.5okta. Pod tymi warunkami nie b dzie pada jutro z prawdopodobie«stwem 95%: 2) Pressure3pm>=1011.9 204 16 No (0.92156863 0.07843137) 4) Cloud3pm< 7.5 195 10 No (0.94871795 0.05128205) * 5) Cloud3pm>=7.5 9 3 Yes (0.33333333 0.66666667) * W zeª 5 przewiduje,»e b dzie pada jutro. Mamy tu tylko 9 obserwacji, ale cz sto± deszczu wynosi dla nich 67%. St d mo»emy powiedzie,»e je±li ci±nienie jest nie mniejsze ni» 1011.9hPa oraz pokrywa chmur wynosi nie mniej ni» 7.5okta o 3 popoªudniu, to nast pnego dnia z prawdopodobie«stwem 67% b dzie pada. W zªy 4 i 5 s oznaczone gwiazdk, co znaczy,»e s to w zªy ko«cowe i nie b d dalej dzielone. 149 / 260

Przykªad z u»yciem zbioru weather Teraz zajmiemy si podziaªem w zªa 2. Algorytm u»yª zmiennej Cloud3pm do podziaªu z warto±ci 7.5. W zeª 4 ma 195 obserwacji, s to obserwacje z ci±nieniem o 3 popoªudniu wi kszym równym 1011.9hPa i o pokrywie chmur mniejszej ni» 7.5okta. Pod tymi warunkami nie b dzie pada jutro z prawdopodobie«stwem 95%: 2) Pressure3pm>=1011.9 204 16 No (0.92156863 0.07843137) 4) Cloud3pm< 7.5 195 10 No (0.94871795 0.05128205) * 5) Cloud3pm>=7.5 9 3 Yes (0.33333333 0.66666667) * W zeª 5 przewiduje,»e b dzie pada jutro. Mamy tu tylko 9 obserwacji, ale cz sto± deszczu wynosi dla nich 67%. St d mo»emy powiedzie,»e je±li ci±nienie jest nie mniejsze ni» 1011.9hPa oraz pokrywa chmur wynosi nie mniej ni» 7.5okta o 3 popoªudniu, to nast pnego dnia z prawdopodobie«stwem 67% b dzie pada. W zªy 4 i 5 s oznaczone gwiazdk, co znaczy,»e s to w zªy ko«cowe i nie b d dalej dzielone. 150 / 260

Przykªad z u»yciem zbioru weather Pozostaªe w zªy 6 i 7 powstaªy z podziaªu w zªa 3 wg zmiennej Sunshine z warto±ci podziaªu 8.85: 3) Pressure3pm< 1011.9 52 25 No (0.51923077 0.48076923) 6) Sunshine>=8.85 25 5 No (0.80000000 0.20000000) * 7) Sunshine< 8.85 27 7 Yes (0.25925926 0.74074074) * Dziel c w zeª 3 w ten sposób dostali±my dwie prawie homogeniczne grupy, w zeª 6 reprezentuje obserwacje z 20% szans na deszcz jutro, natomiast w zeª 7 daje 74% szans na deszcz. W ten sposób zbudowali±my proste drzewo decyzyjne z 7 w zªami i czterema li± mi o maksymalnej gª boko±ci 2. 151 / 260

Przykªad z u»yciem zbioru weather Pozostaªe w zªy 6 i 7 powstaªy z podziaªu w zªa 3 wg zmiennej Sunshine z warto±ci podziaªu 8.85: 3) Pressure3pm< 1011.9 52 25 No (0.51923077 0.48076923) 6) Sunshine>=8.85 25 5 No (0.80000000 0.20000000) * 7) Sunshine< 8.85 27 7 Yes (0.25925926 0.74074074) * Dziel c w zeª 3 w ten sposób dostali±my dwie prawie homogeniczne grupy, w zeª 6 reprezentuje obserwacje z 20% szans na deszcz jutro, natomiast w zeª 7 daje 74% szans na deszcz. W ten sposób zbudowali±my proste drzewo decyzyjne z 7 w zªami i czterema li± mi o maksymalnej gª boko±ci 2. 152 / 260

Przykªad z u»yciem zbioru weather Nast pna cz ± widoku tekstowego pokazuje kod R u»yty do wygenerowania drzewa: Classification tree: rpart(formula = RainTomorrow ~., data = crs$dataset[crs$train, c(crs$input, crs$target)], method = "class", parms = list(split = "information"), control = rpart.control(usesurrogate = 0, maxsurrogate = 0)) 153 / 260

Przykªad z u»yciem zbioru weather Nast pna cz ± widoku tekstowego pokazuje kod R u»yty do wygenerowania drzewa: Classification tree: rpart(formula = RainTomorrow ~., data = crs$dataset[crs$train, c(crs$input, crs$target)], method = "class", parms = list(split = "information"), control = rpart.control(usesurrogate = 0, maxsurrogate = 0)) 154 / 260

Przykªad z u»yciem zbioru weather Kod ten mo»na zobaczy te» w zakªadce log. Atrybut formula oznacza,»e chcemy zbudowa model, który przewiduje warto± zmiennej RainTomorrow na podstawie pozostaªych zmiennych (oznaczonych jako ). Zbiór danych to ramka danych crs$dataset, z którego wybieramy indeksy obserwacji nale» ce do zbioru treningowego crs$train. Classification tree: rpart(formula = RainTomorrow ~., data = crs$dataset[crs$train, c(crs$input, crs$target)], method = "class", parms = list(split = "information"), control = rpart.control(usesurrogate = 0, maxsurrogate = 0)) Metoda u»yta bazuje na klasykacji (method), a podziaª na zysku informacyjnym (split). 155 / 260

Przykªad z u»yciem zbioru weather Model najcz ±ciej u»ywa kilku zmiennych, nast pna cz ± widoku listuje te zmienne. W naszym wypadku u»yte byªy tylko 3: Variables actually used in tree construction: [1] Cloud3pm Pressure3pm Sunshine 156 / 260

Przykªad z u»yciem zbioru weather Root node error: 41/256 = 0.16016 n= 256 CP nsplit rel error xerror xstd 1 0.158537 0 1.00000 1.00000 0.14312 2 0.073171 2 0.68293 0.80488 0.13077 3 0.010000 3 0.60976 0.97561 0.14169 Bª d dla caªego zbioru danych wynosi 0.16 (bez podziaªu - je±li dokonaliby±my klasykacji wszystkich obserwacji jako No). Najbardziej interesuj cy jest bª d cross-validation error, czyli kolumna xerror. 157 / 260

Przykªad z u»yciem zbioru weather Root node error: 41/256 = 0.16016 n= 256 CP nsplit rel error xerror xstd 1 0.158537 0 1.00000 1.00000 0.14312 2 0.073171 2 0.68293 0.80488 0.13077 3 0.010000 3 0.60976 0.97561 0.14169 Bª d dla caªego zbioru danych wynosi 0.16 (bez podziaªu - je±li dokonaliby±my klasykacji wszystkich obserwacji jako No). Najbardziej interesuj cy jest bª d cross-validation error, czyli kolumna xerror. 158 / 260

Przykªad z u»yciem zbioru weather Root node error: 41/256 = 0.16016 n= 256 CP nsplit rel error xerror xstd 1 0.158537 0 1.00000 1.00000 0.14312 2 0.073171 2 0.68293 0.80488 0.13077 3 0.010000 3 0.60976 0.97561 0.14169 Bior c to jako podstaw (baseline error 1.00), tabela pokazuje wzgl dn zmian tego bª du podczas budowy drzewa. W linii 2, widzimy,»e po pierwszym podziale zbioru danych bª d xerror zredukowaª si do 80% pierwotnej warto±ci. Zauwa»my,»e bª d walidacji krzy»owej (xerror) zmniejsza si wolniej ni» bª d na zbiorze treningowym (error), co jest typowe. 159 / 260

Przykªad z u»yciem zbioru weather Root node error: 41/256 = 0.16016 n= 256 CP nsplit rel error xerror xstd 1 0.158537 0 1.00000 1.00000 0.14312 2 0.073171 2 0.68293 0.80488 0.13077 3 0.010000 3 0.60976 0.97561 0.14169 Bior c to jako podstaw (baseline error 1.00), tabela pokazuje wzgl dn zmian tego bª du podczas budowy drzewa. W linii 2, widzimy,»e po pierwszym podziale zbioru danych bª d xerror zredukowaª si do 80% pierwotnej warto±ci. Zauwa»my,»e bª d walidacji krzy»owej (xerror) zmniejsza si wolniej ni» bª d na zbiorze treningowym (error), co jest typowe. 160 / 260

Przykªad z u»yciem zbioru weather Root node error: 41/256 = 0.16016 n= 256 CP nsplit rel error xerror xstd 1 0.158537 0 1.00000 1.00000 0.14312 2 0.073171 2 0.68293 0.80488 0.13077 3 0.010000 3 0.60976 0.97561 0.14169 Warto± CP (complexity parameter - parametr zªo»ono±ci) wyja±nimy za chwil. Teraz zauwa»my,»e im wi cej mamy w zªów, to parametr ten maleje. Warto zauwa»y,»e bª d walidacji krzy»owej zaczyna rosn przy dalszym podziale drzewa, co oznacza,»e algorytm powinien zatrzyma podziaª, poniewa» nie widzimy znacz cej redukcji bª du. 161 / 260

Przykªad z u»yciem zbioru weather Root node error: 41/256 = 0.16016 n= 256 CP nsplit rel error xerror xstd 1 0.158537 0 1.00000 1.00000 0.14312 2 0.073171 2 0.68293 0.80488 0.13077 3 0.010000 3 0.60976 0.97561 0.14169 Warto± CP (complexity parameter - parametr zªo»ono±ci) wyja±nimy za chwil. Teraz zauwa»my,»e im wi cej mamy w zªów, to parametr ten maleje. Warto zauwa»y,»e bª d walidacji krzy»owej zaczyna rosn przy dalszym podziale drzewa, co oznacza,»e algorytm powinien zatrzyma podziaª, poniewa» nie widzimy znacz cej redukcji bª du. 162 / 260

Budowa drzewa za pomoc R Jak ju» wcze±niej wspominali±my w zakªadce Log pokazana jest formuªa j zyka R, która tworzy drzewo decyzyjne Skorzystamy teraz z tradycyjnego algorytmu budowania drzewa, u»ywamy pakietu rpart, który daje funkcj rpart (), która jest implementacj standardowych algorytmów klasykacyjnych i regresyjnych. library(rpart) Tworzymy zmienn weatherds u»ywaj c new.env() (nowe ±rodowisko), która posªu»y jako kontener dla danych i innych informacji: weatherds<-new.env() 163 / 260

Budowa drzewa za pomoc R Jak ju» wcze±niej wspominali±my w zakªadce Log pokazana jest formuªa j zyka R, która tworzy drzewo decyzyjne Skorzystamy teraz z tradycyjnego algorytmu budowania drzewa, u»ywamy pakietu rpart, który daje funkcj rpart (), która jest implementacj standardowych algorytmów klasykacyjnych i regresyjnych. library(rpart) Tworzymy zmienn weatherds u»ywaj c new.env() (nowe ±rodowisko), która posªu»y jako kontener dla danych i innych informacji: weatherds<-new.env() 164 / 260

Budowa drzewa za pomoc R Jak ju» wcze±niej wspominali±my w zakªadce Log pokazana jest formuªa j zyka R, która tworzy drzewo decyzyjne Skorzystamy teraz z tradycyjnego algorytmu budowania drzewa, u»ywamy pakietu rpart, który daje funkcj rpart (), która jest implementacj standardowych algorytmów klasykacyjnych i regresyjnych. library(rpart) Tworzymy zmienn weatherds u»ywaj c new.env() (nowe ±rodowisko), która posªu»y jako kontener dla danych i innych informacji: weatherds<-new.env() 165 / 260

Budowa drzewa za pomoc R Trzy kolumny z zestawu danych s ignorowane w naszych analizach, gdy» nie odgrywaj»adnej roli w modelu. S to te zmienne, które sªu» do okre±lenia obserwacji (data i miejsce) oraz zmienna ryzyka (RISK_MM - ilo± opadu odnotowana w dniu nast pnym). Poni»ej identykujemy indeksy tych zmiennych i zapisujemy indeks ujemny w zmiennej vars, która jest przechowywana w kontenerze: evalq({ data <- weather nobs <- nrow(data) vars <- -grep('^(date Locat RISK)',names(weather)) }, weatherds) evalq pozwala operowa w danym ±rodowisku, grep wyszukuje podany wzorzec 166 / 260

Budowa drzewa za pomoc R Trzy kolumny z zestawu danych s ignorowane w naszych analizach, gdy» nie odgrywaj»adnej roli w modelu. S to te zmienne, które sªu» do okre±lenia obserwacji (data i miejsce) oraz zmienna ryzyka (RISK_MM - ilo± opadu odnotowana w dniu nast pnym). Poni»ej identykujemy indeksy tych zmiennych i zapisujemy indeks ujemny w zmiennej vars, która jest przechowywana w kontenerze: evalq({ data <- weather nobs <- nrow(data) vars <- -grep('^(date Locat RISK)',names(weather)) }, weatherds) evalq pozwala operowa w danym ±rodowisku, grep wyszukuje podany wzorzec 167 / 260

Budowa drzewa za pomoc R Trzy kolumny z zestawu danych s ignorowane w naszych analizach, gdy» nie odgrywaj»adnej roli w modelu. S to te zmienne, które sªu» do okre±lenia obserwacji (data i miejsce) oraz zmienna ryzyka (RISK_MM - ilo± opadu odnotowana w dniu nast pnym). Poni»ej identykujemy indeksy tych zmiennych i zapisujemy indeks ujemny w zmiennej vars, która jest przechowywana w kontenerze: evalq({ data <- weather nobs <- nrow(data) vars <- -grep('^(date Locat RISK)',names(weather)) }, weatherds) evalq pozwala operowa w danym ±rodowisku, grep wyszukuje podany wzorzec 168 / 260

Budowa drzewa za pomoc R Wybieramy losowy podzbiór 70% obserwacji, który b dzie wykorzystany jako dane szkoleniowe. Ziarno losowe jest ustawione za pomoc set.seed () tak, aby±my mogli uzyska tak sam próbk losow dla celów pogl dowych i powtarzalno±ci wyników. evalq({ set.seed(42) train <- sample(nobs, 0.7*nobs) }, weatherds) Dodajemy do ±rodowiska formuª opisuj c model: evalq({ form <- formula(raintomorrow ~.) }, weatherds) 169 / 260

Budowa drzewa za pomoc R Wybieramy losowy podzbiór 70% obserwacji, który b dzie wykorzystany jako dane szkoleniowe. Ziarno losowe jest ustawione za pomoc set.seed () tak, aby±my mogli uzyska tak sam próbk losow dla celów pogl dowych i powtarzalno±ci wyników. evalq({ set.seed(42) train <- sample(nobs, 0.7*nobs) }, weatherds) Dodajemy do ±rodowiska formuª opisuj c model: evalq({ form <- formula(raintomorrow ~.) }, weatherds) 170 / 260

Budowa drzewa za pomoc R Tworzymy kontener przechowuj cy model, którego kontenerem nadrz dnym b dzie weatherds: weatherrpart <- new.env(parent=weatherds) Budowa samego modelu jest ju» prosta. Zmienne data, train i vars pochodz z kontenera weatherds, a wynik b dzie przechowywany w kontenerze weatherrpart: evalq({ model <- rpart(formula=form, data=data[train, vars]) }, weatherrpart) Do budowy drzewa u»ywamy funkcji rpart ( ), przekazuj c do niej formuªy i dane. 171 / 260

Budowa drzewa za pomoc R Tworzymy kontener przechowuj cy model, którego kontenerem nadrz dnym b dzie weatherds: weatherrpart <- new.env(parent=weatherds) Budowa samego modelu jest ju» prosta. Zmienne data, train i vars pochodz z kontenera weatherds, a wynik b dzie przechowywany w kontenerze weatherrpart: evalq({ model <- rpart(formula=form, data=data[train, vars]) }, weatherrpart) Do budowy drzewa u»ywamy funkcji rpart ( ), przekazuj c do niej formuªy i dane. 172 / 260

Budowa drzewa za pomoc R evalq({ model <- rpart(formula=form, data=data[train, vars]) }, weatherrpart) Nie musimy dodawa formula= i data= w argumentach funkcji, poniewa» mog one by równie» okre±lone przez pozycj na li±cie argumentów. Wª czamy je w celu zapewnienia jasno±ci dla innych czytaj cych ten kod. Argument formula= identykuje model, który ma powsta. W tym przypadku przekazujemy zmienn form, która byªa wcze±niej zdeniowana. Docelowa zmienna (na lewo od tyldy w formule) to RainTomorrow, a zmienne wej±ciowe skªadaj si ze wszystkich pozostaªych zmiennych w zbiorze danych. Budujemy model, który przewiduje warto± dla RainTomorrow na podstawie dzisiejszych obserwacji pogody. 173 / 260

Budowa drzewa za pomoc R evalq({ model <- rpart(formula=form, data=data[train, vars]) }, weatherrpart) Nie musimy dodawa formula= i data= w argumentach funkcji, poniewa» mog one by równie» okre±lone przez pozycj na li±cie argumentów. Wª czamy je w celu zapewnienia jasno±ci dla innych czytaj cych ten kod. Argument formula= identykuje model, który ma powsta. W tym przypadku przekazujemy zmienn form, która byªa wcze±niej zdeniowana. Docelowa zmienna (na lewo od tyldy w formule) to RainTomorrow, a zmienne wej±ciowe skªadaj si ze wszystkich pozostaªych zmiennych w zbiorze danych. Budujemy model, który przewiduje warto± dla RainTomorrow na podstawie dzisiejszych obserwacji pogody. 174 / 260

Budowa drzewa za pomoc R evalq({ model <- rpart(formula=form, data=data[train, vars]) }, weatherrpart) Nie musimy dodawa formula= i data= w argumentach funkcji, poniewa» mog one by równie» okre±lone przez pozycj na li±cie argumentów. Wª czamy je w celu zapewnienia jasno±ci dla innych czytaj cych ten kod. Argument formula= identykuje model, który ma powsta. W tym przypadku przekazujemy zmienn form, która byªa wcze±niej zdeniowana. Docelowa zmienna (na lewo od tyldy w formule) to RainTomorrow, a zmienne wej±ciowe skªadaj si ze wszystkich pozostaªych zmiennych w zbiorze danych. Budujemy model, który przewiduje warto± dla RainTomorrow na podstawie dzisiejszych obserwacji pogody. 175 / 260

Budowa drzewa za pomoc R evalq({ model <- rpart(formula=form, data=data[train, vars]) }, weatherrpart) Argument data= okre±la zestaw danych szkoleniowych. Przekazujemy do funkcji zmienn data, któr wcze±niej zdeniowali±my. Zestaw szkoleniowy skªada si z obserwacji wymienionych w zmiennej train. Zmienne z zestawu danych, które chcemy wyª czy okre±lone przez vars, która w tym przypadku wymienia jako ujemne liczby caªkowite zmienne do zignorowania. Podsumowuj c train i vars identykuj obserwacje i zmienne do uwzgl dnienia w modelu. 176 / 260

Budowa drzewa za pomoc R evalq({ model <- rpart(formula=form, data=data[train, vars]) }, weatherrpart) Argument data= okre±la zestaw danych szkoleniowych. Przekazujemy do funkcji zmienn data, któr wcze±niej zdeniowali±my. Zestaw szkoleniowy skªada si z obserwacji wymienionych w zmiennej train. Zmienne z zestawu danych, które chcemy wyª czy okre±lone przez vars, która w tym przypadku wymienia jako ujemne liczby caªkowite zmienne do zignorowania. Podsumowuj c train i vars identykuj obserwacje i zmienne do uwzgl dnienia w modelu. 177 / 260

Budowa drzewa za pomoc R Wynik jest zapisany w zmiennej model ±rodowiska weatherrpart, mo»emy si do niego odwoªywa za pomoc weatherrpart$model: print(weatherrpart$model) 178 / 260

Budowa drzewa za pomoc R Aby uzyska informacj o parametrze zªo»ono±ci CP (complexity parameter) u»ywamy plotcp(): printcp(weatherrpart$model) Inn przydatn komend dostarczaj c ciekawych informacji o wyniku jest summary(): summary(weatherrpart$model) Dostarcza ona informacje o procesie budowy modelu, w zªach, itp. 179 / 260

Budowa drzewa za pomoc R Aby uzyska informacj o parametrze zªo»ono±ci CP (complexity parameter) u»ywamy plotcp(): printcp(weatherrpart$model) Inn przydatn komend dostarczaj c ciekawych informacji o wyniku jest summary(): summary(weatherrpart$model) Dostarcza ona informacje o procesie budowy modelu, w zªach, itp. 180 / 260

Budowa drzewa za pomoc R Funkcje plot() i text() wy±wietlaj drzewo decyzyjne z etykietami: opar <- par(xpd=true) plot(weatherrpart$model) text(weatherrpart$model) par(opar) 181 / 260

Budowa drzewa za pomoc R Jest to inny rysunek ni» standardowy w Rattle, który u»ywa funkcji drawtreenodes() z pakietu maptree (White, 2010). Dªugo± linii oznacza bª d dla danej gaª zi drzewa. Rysunek drzewa za pomoc funkcji plot() i text() 182 / 260

Budowa drzewa za pomoc R Komenda path.rpart() jest ciekawym dodatkiem dla plot(): path.rpart(weatherrpart$model) Pozwala ona na u»ywanie lewego przycisku myszki Po klikni ciu na w zeª wy±wietla si ±cie»ka do w zªa w formie tekstowej, np po klikni ciu na prawy dolny w zeª dostaniemy: node number: 7 root Pressure3pm< 1012 Sunshine< 8.85 Klawisz Esc ko«czy interakcj. 183 / 260

Parametry drzewa Algorytm drzewa decyzyjnego dostarcza zbiór parametrów do tuningu, wpªywaj cego na to jak drzewo jest zbudowane. Domy±lne warto±ci w Rattle cz sto zapewniaj dobre drzewo. S z pewno±ci dobrym punktem wyj±cia i mog dawa zadowalaj cy wynik naszej pracy. Jednak»e, dostrojenie b dzie konieczne, je»eli przykªadowo zmienna docelowa ma bardzo niewiele przykªadów dla okre±lonej interesuj cej grupy lub chcieliby±my zbada szereg alternatywnych drzew. Opiszemy tylko cz ± parametrów i to bez zagª biania si w szczegóªy, ale dokumentacja R dostarcza znacznie wi cej informacji polecenie?rpart. Funkcja rpart () ma dwa argumenty stroj ce algorytm. Ka»dy z nich jest struktur zawieraj ca inne opcje. S to control= params= 184 / 260

Parametry drzewa Algorytm drzewa decyzyjnego dostarcza zbiór parametrów do tuningu, wpªywaj cego na to jak drzewo jest zbudowane. Domy±lne warto±ci w Rattle cz sto zapewniaj dobre drzewo. S z pewno±ci dobrym punktem wyj±cia i mog dawa zadowalaj cy wynik naszej pracy. Jednak»e, dostrojenie b dzie konieczne, je»eli przykªadowo zmienna docelowa ma bardzo niewiele przykªadów dla okre±lonej interesuj cej grupy lub chcieliby±my zbada szereg alternatywnych drzew. Opiszemy tylko cz ± parametrów i to bez zagª biania si w szczegóªy, ale dokumentacja R dostarcza znacznie wi cej informacji polecenie?rpart. Funkcja rpart () ma dwa argumenty stroj ce algorytm. Ka»dy z nich jest struktur zawieraj ca inne opcje. S to control= params= 185 / 260

Parametry drzewa Algorytm drzewa decyzyjnego dostarcza zbiór parametrów do tuningu, wpªywaj cego na to jak drzewo jest zbudowane. Domy±lne warto±ci w Rattle cz sto zapewniaj dobre drzewo. S z pewno±ci dobrym punktem wyj±cia i mog dawa zadowalaj cy wynik naszej pracy. Jednak»e, dostrojenie b dzie konieczne, je»eli przykªadowo zmienna docelowa ma bardzo niewiele przykªadów dla okre±lonej interesuj cej grupy lub chcieliby±my zbada szereg alternatywnych drzew. Opiszemy tylko cz ± parametrów i to bez zagª biania si w szczegóªy, ale dokumentacja R dostarcza znacznie wi cej informacji polecenie?rpart. Funkcja rpart () ma dwa argumenty stroj ce algorytm. Ka»dy z nich jest struktur zawieraj ca inne opcje. S to control= params= 186 / 260

Parametry drzewa Algorytm drzewa decyzyjnego dostarcza zbiór parametrów do tuningu, wpªywaj cego na to jak drzewo jest zbudowane. Domy±lne warto±ci w Rattle cz sto zapewniaj dobre drzewo. S z pewno±ci dobrym punktem wyj±cia i mog dawa zadowalaj cy wynik naszej pracy. Jednak»e, dostrojenie b dzie konieczne, je»eli przykªadowo zmienna docelowa ma bardzo niewiele przykªadów dla okre±lonej interesuj cej grupy lub chcieliby±my zbada szereg alternatywnych drzew. Opiszemy tylko cz ± parametrów i to bez zagª biania si w szczegóªy, ale dokumentacja R dostarcza znacznie wi cej informacji polecenie?rpart. Funkcja rpart () ma dwa argumenty stroj ce algorytm. Ka»dy z nich jest struktur zawieraj ca inne opcje. S to control= params= 187 / 260

Parametry drzewa Algorytm drzewa decyzyjnego dostarcza zbiór parametrów do tuningu, wpªywaj cego na to jak drzewo jest zbudowane. Domy±lne warto±ci w Rattle cz sto zapewniaj dobre drzewo. S z pewno±ci dobrym punktem wyj±cia i mog dawa zadowalaj cy wynik naszej pracy. Jednak»e, dostrojenie b dzie konieczne, je»eli przykªadowo zmienna docelowa ma bardzo niewiele przykªadów dla okre±lonej interesuj cej grupy lub chcieliby±my zbada szereg alternatywnych drzew. Opiszemy tylko cz ± parametrów i to bez zagª biania si w szczegóªy, ale dokumentacja R dostarcza znacznie wi cej informacji polecenie?rpart. Funkcja rpart () ma dwa argumenty stroj ce algorytm. Ka»dy z nich jest struktur zawieraj ca inne opcje. S to control= params= 188 / 260

Parametry drzewa Korzystamy z nich, jak w przykªadzie: evalq({ control <- rpart.control(minsplit=10, minbucket=5, maxdepth=20, usesurrogate=0, maxsurrogate=0) model <- rpart(formula=form, data=data[train, vars], method="class", parms=list(split="information"), control=control) }, weatherrpart) 189 / 260

Parametry drzewa Metoda modelowania okre±lana jest za pomoc parametru method=. Argument wskazuje rodzaj budowanego modelu i jest zale»ny od zmiennej docelowej. Dla celów kategorycznych, na ogóª budujemy modele klasykacyjne, a wi c u»ywamy method="class". Je±li cel jest zmienn numeryczn, to argument b dzie miaª warto± method = "ANOVA", wykorzystywany w analizie wariancji i drzewach regresji. Analiza wariancji (ANOVA) dla klasykacji pojedynczej bada wpªyw jednego czynnika klasykuj cego (podzielonego na wiele poziomów) na warto±ci badanej cechy mierzalnej. 190 / 260

Parametry drzewa Metoda modelowania okre±lana jest za pomoc parametru method=. Argument wskazuje rodzaj budowanego modelu i jest zale»ny od zmiennej docelowej. Dla celów kategorycznych, na ogóª budujemy modele klasykacyjne, a wi c u»ywamy method="class". Je±li cel jest zmienn numeryczn, to argument b dzie miaª warto± method = "ANOVA", wykorzystywany w analizie wariancji i drzewach regresji. Analiza wariancji (ANOVA) dla klasykacji pojedynczej bada wpªyw jednego czynnika klasykuj cego (podzielonego na wiele poziomów) na warto±ci badanej cechy mierzalnej. 191 / 260

Parametry drzewa Metoda modelowania okre±lana jest za pomoc parametru method=. Argument wskazuje rodzaj budowanego modelu i jest zale»ny od zmiennej docelowej. Dla celów kategorycznych, na ogóª budujemy modele klasykacyjne, a wi c u»ywamy method="class". Je±li cel jest zmienn numeryczn, to argument b dzie miaª warto± method = "ANOVA", wykorzystywany w analizie wariancji i drzewach regresji. Analiza wariancji (ANOVA) dla klasykacji pojedynczej bada wpªyw jednego czynnika klasykuj cego (podzielonego na wiele poziomów) na warto±ci badanej cechy mierzalnej. 192 / 260

Parametry drzewa Metoda modelowania okre±lana jest za pomoc parametru method=. Argument wskazuje rodzaj budowanego modelu i jest zale»ny od zmiennej docelowej. Dla celów kategorycznych, na ogóª budujemy modele klasykacyjne, a wi c u»ywamy method="class". Je±li cel jest zmienn numeryczn, to argument b dzie miaª warto± method = "ANOVA", wykorzystywany w analizie wariancji i drzewach regresji. Analiza wariancji (ANOVA) dla klasykacji pojedynczej bada wpªyw jednego czynnika klasykuj cego (podzielonego na wiele poziomów) na warto±ci badanej cechy mierzalnej. 193 / 260

Parametry drzewa Argument split= jest u»ywany do wyboru funkcji podziaªu (miary). Argument pojawia si wewn trz argumentu params rpart (), który jest list. Wybór warto±ci split="information" oznacza,»e rpart korzysta z zysku informacyjnego. Domy±lnym ustawieniami s w R: split = "Gini" - indeksu ró»norodno±ci Giniego, a w Rattle"information". 194 / 260

Parametry drzewa Argument split= jest u»ywany do wyboru funkcji podziaªu (miary). Argument pojawia si wewn trz argumentu params rpart (), który jest list. Wybór warto±ci split="information" oznacza,»e rpart korzysta z zysku informacyjnego. Domy±lnym ustawieniami s w R: split = "Gini" - indeksu ró»norodno±ci Giniego, a w Rattle"information". 195 / 260

Parametry drzewa Argument split= jest u»ywany do wyboru funkcji podziaªu (miary). Argument pojawia si wewn trz argumentu params rpart (), który jest list. Wybór warto±ci split="information" oznacza,»e rpart korzysta z zysku informacyjnego. Domy±lnym ustawieniami s w R: split = "Gini" - indeksu ró»norodno±ci Giniego, a w Rattle"information". 196 / 260

Parametry drzewa W przypadku danych weather oba parametry daj te same drzewa. evalq({ rpart(formula=form, data=data[train, vars], parms=list(split="information")) }, weatherrpart) evalq({ rpart(formula=form, data=data[train, vars], parms=list(split="gini")) }, weatherrpart) 197 / 260

Parametry drzewa Argument minsplit= podaje minimaln liczb obserwacji, które musz wyst powa w w ¹le drzewa, aby zostaª on dalej dzielony. W zeª nie b dzie dzielony je±li ma mniej ni» minsplit obserwacji. Argument minsplit= pojawia si w argumencie control rpart (). Domy±lna warto± minsplit = 20. W przykªadzie ni»ej, zilustrowano granic mi dzy podziaªem w zªa gªównego naszego drzewa decyzyjnego. Przykªad pokazuje,»e z minsplit = 53 da drzewo, które nie podzieli w zªa gªównego evalq({ rpart(formula=form, data=data[train, vars], control=rpart.control(minsplit=53)) }, weatherrpart) 198 / 260

Parametry drzewa Argument minsplit= podaje minimaln liczb obserwacji, które musz wyst powa w w ¹le drzewa, aby zostaª on dalej dzielony. W zeª nie b dzie dzielony je±li ma mniej ni» minsplit obserwacji. Argument minsplit= pojawia si w argumencie control rpart (). Domy±lna warto± minsplit = 20. W przykªadzie ni»ej, zilustrowano granic mi dzy podziaªem w zªa gªównego naszego drzewa decyzyjnego. Przykªad pokazuje,»e z minsplit = 53 da drzewo, które nie podzieli w zªa gªównego evalq({ rpart(formula=form, data=data[train, vars], control=rpart.control(minsplit=53)) }, weatherrpart) 199 / 260

Parametry drzewa Argument minsplit= podaje minimaln liczb obserwacji, które musz wyst powa w w ¹le drzewa, aby zostaª on dalej dzielony. W zeª nie b dzie dzielony je±li ma mniej ni» minsplit obserwacji. Argument minsplit= pojawia si w argumencie control rpart (). Domy±lna warto± minsplit = 20. W przykªadzie ni»ej, zilustrowano granic mi dzy podziaªem w zªa gªównego naszego drzewa decyzyjnego. Przykªad pokazuje,»e z minsplit = 53 da drzewo, które nie podzieli w zªa gªównego evalq({ rpart(formula=form, data=data[train, vars], control=rpart.control(minsplit=53)) }, weatherrpart) 200 / 260

Parametry drzewa Argument minsplit= podaje minimaln liczb obserwacji, które musz wyst powa w w ¹le drzewa, aby zostaª on dalej dzielony. W zeª nie b dzie dzielony je±li ma mniej ni» minsplit obserwacji. Argument minsplit= pojawia si w argumencie control rpart (). Domy±lna warto± minsplit = 20. W przykªadzie ni»ej, zilustrowano granic mi dzy podziaªem w zªa gªównego naszego drzewa decyzyjnego. Przykªad pokazuje,»e z minsplit = 53 da drzewo, które nie podzieli w zªa gªównego evalq({ rpart(formula=form, data=data[train, vars], control=rpart.control(minsplit=53)) }, weatherrpart) 201 / 260

Parametry drzewa Ustawianie minsplit = 52 daje podziaª na Pressure3pm (i dalszy podziaª). Pressure3pm dzieli zbiór danych na dwie cz ±ci, jedna z 204 obserwacjami, a druga z 52 obserwacjami. evalq({ rpart(formula=form, data=data[train, vars], control= rpart.control(minsplit=52)) }, weatherrpart) 202 / 260

Parametry drzewa Poniewa» mamy podziaª z jednej strony na 52, wida,»e minsplit = 53 model drzewa, nie dokonuje podziaªu w zªa gªównego. Zmiana warto±ci minsplit = pozwala nam wyeliminowa pewne obliczenia, poniewa» w zªy z niewielk liczb obserwacji b d ogólnie odgrywa mniejsz rol w naszych modelach. W zªy li±ci mog by skonstruowane z mniejsz liczb obserwacji ni» minsplit=, gdy» jest to kontrolowane przez parametr minbucket. Argument minbucket = jest minimaln liczb obserwacji w ka»dym w ¹le li±cia. Domy±lna warto± to 7, lub mniej wi cej jedna trzecia warto±ci minsplit. Je»eli którykolwiek z tych dwóch argumentów (minsplit i minbucket) jest podany i nie ma drugiego, to przyjmuje si»e warto± niepodanego speªnia powy»szy warunek (tj. minbucket = oznacza jedn trzeci minsplit =). 203 / 260

Parametry drzewa Poniewa» mamy podziaª z jednej strony na 52, wida,»e minsplit = 53 model drzewa, nie dokonuje podziaªu w zªa gªównego. Zmiana warto±ci minsplit = pozwala nam wyeliminowa pewne obliczenia, poniewa» w zªy z niewielk liczb obserwacji b d ogólnie odgrywa mniejsz rol w naszych modelach. W zªy li±ci mog by skonstruowane z mniejsz liczb obserwacji ni» minsplit=, gdy» jest to kontrolowane przez parametr minbucket. Argument minbucket = jest minimaln liczb obserwacji w ka»dym w ¹le li±cia. Domy±lna warto± to 7, lub mniej wi cej jedna trzecia warto±ci minsplit. Je»eli którykolwiek z tych dwóch argumentów (minsplit i minbucket) jest podany i nie ma drugiego, to przyjmuje si»e warto± niepodanego speªnia powy»szy warunek (tj. minbucket = oznacza jedn trzeci minsplit =). 204 / 260

Parametry drzewa Poniewa» mamy podziaª z jednej strony na 52, wida,»e minsplit = 53 model drzewa, nie dokonuje podziaªu w zªa gªównego. Zmiana warto±ci minsplit = pozwala nam wyeliminowa pewne obliczenia, poniewa» w zªy z niewielk liczb obserwacji b d ogólnie odgrywa mniejsz rol w naszych modelach. W zªy li±ci mog by skonstruowane z mniejsz liczb obserwacji ni» minsplit=, gdy» jest to kontrolowane przez parametr minbucket. Argument minbucket = jest minimaln liczb obserwacji w ka»dym w ¹le li±cia. Domy±lna warto± to 7, lub mniej wi cej jedna trzecia warto±ci minsplit. Je»eli którykolwiek z tych dwóch argumentów (minsplit i minbucket) jest podany i nie ma drugiego, to przyjmuje si»e warto± niepodanego speªnia powy»szy warunek (tj. minbucket = oznacza jedn trzeci minsplit =). 205 / 260

Parametry drzewa Poniewa» mamy podziaª z jednej strony na 52, wida,»e minsplit = 53 model drzewa, nie dokonuje podziaªu w zªa gªównego. Zmiana warto±ci minsplit = pozwala nam wyeliminowa pewne obliczenia, poniewa» w zªy z niewielk liczb obserwacji b d ogólnie odgrywa mniejsz rol w naszych modelach. W zªy li±ci mog by skonstruowane z mniejsz liczb obserwacji ni» minsplit=, gdy» jest to kontrolowane przez parametr minbucket. Argument minbucket = jest minimaln liczb obserwacji w ka»dym w ¹le li±cia. Domy±lna warto± to 7, lub mniej wi cej jedna trzecia warto±ci minsplit. Je»eli którykolwiek z tych dwóch argumentów (minsplit i minbucket) jest podany i nie ma drugiego, to przyjmuje si»e warto± niepodanego speªnia powy»szy warunek (tj. minbucket = oznacza jedn trzeci minsplit =). 206 / 260

Parametry drzewa Poniewa» mamy podziaª z jednej strony na 52, wida,»e minsplit = 53 model drzewa, nie dokonuje podziaªu w zªa gªównego. Zmiana warto±ci minsplit = pozwala nam wyeliminowa pewne obliczenia, poniewa» w zªy z niewielk liczb obserwacji b d ogólnie odgrywa mniejsz rol w naszych modelach. W zªy li±ci mog by skonstruowane z mniejsz liczb obserwacji ni» minsplit=, gdy» jest to kontrolowane przez parametr minbucket. Argument minbucket = jest minimaln liczb obserwacji w ka»dym w ¹le li±cia. Domy±lna warto± to 7, lub mniej wi cej jedna trzecia warto±ci minsplit. Je»eli którykolwiek z tych dwóch argumentów (minsplit i minbucket) jest podany i nie ma drugiego, to przyjmuje si»e warto± niepodanego speªnia powy»szy warunek (tj. minbucket = oznacza jedn trzeci minsplit =). 207 / 260

Parametry drzewa Porównajmy dwa przykªady u»ycia minbucket =. Pierwszy ogranicza minimalny rozmiar obserwacji w li±ciu do 10, daj c taki sam model jak uzyskali±my powy»ej. Drugi przykªad zmniejsza t warto± do zaledwie 5 obserwacji. Wynik b dzie zwykle wi kszym drzewem decyzyjnym, poniewa» pozwalamy na w zªy li±ci z mniejsz liczb obserwacji. ops <- options(digits=2) evalq({ rpart(formula=form, data=data[train, vars], control=rpart.control(minbucket=10)) }, weatherrpart) evalq({ rpart(formula=form, data=data[train, vars], control=rpart.control(minbucket=5)) }, weatherrpart) 208 / 260

Parametry drzewa Porównajmy dwa przykªady u»ycia minbucket =. Pierwszy ogranicza minimalny rozmiar obserwacji w li±ciu do 10, daj c taki sam model jak uzyskali±my powy»ej. Drugi przykªad zmniejsza t warto± do zaledwie 5 obserwacji. Wynik b dzie zwykle wi kszym drzewem decyzyjnym, poniewa» pozwalamy na w zªy li±ci z mniejsz liczb obserwacji. ops <- options(digits=2) evalq({ rpart(formula=form, data=data[train, vars], control=rpart.control(minbucket=10)) }, weatherrpart) evalq({ rpart(formula=form, data=data[train, vars], control=rpart.control(minbucket=5)) }, weatherrpart) 209 / 260

Parametry drzewa Warto± minbucket = mo»e mie wpªyw na wybór zmiennej podziaªu. Zmiana mo»e nast pi, gdy jeden wybór z wy»szymi wynikami ma zbyt maªo obserwacji, co prowadzi do innego wyboru w celu speªnienia minimalnych wymaga«dotycz cych liczby obserwacji w podziale. Cho domy±lnie jest ustawiona warto± minbucket = na jedn trzeci minsplit =, to nie jest wymagane aby minbucket= byªa mniejsza ni» minsplit=. W zeª zawsze ma co najmniej minbucket = obserwacji i b dzie podzielony, je»eli ma co najmniej minsplit = obserwacji i je±li po podziale ka»de z jego dzieci ma przynajmniej minbucket = obserwacji. 210 / 260

Parametry drzewa Warto± minbucket = mo»e mie wpªyw na wybór zmiennej podziaªu. Zmiana mo»e nast pi, gdy jeden wybór z wy»szymi wynikami ma zbyt maªo obserwacji, co prowadzi do innego wyboru w celu speªnienia minimalnych wymaga«dotycz cych liczby obserwacji w podziale. Cho domy±lnie jest ustawiona warto± minbucket = na jedn trzeci minsplit =, to nie jest wymagane aby minbucket= byªa mniejsza ni» minsplit=. W zeª zawsze ma co najmniej minbucket = obserwacji i b dzie podzielony, je»eli ma co najmniej minsplit = obserwacji i je±li po podziale ka»de z jego dzieci ma przynajmniej minbucket = obserwacji. 211 / 260

Parametry drzewa Warto± minbucket = mo»e mie wpªyw na wybór zmiennej podziaªu. Zmiana mo»e nast pi, gdy jeden wybór z wy»szymi wynikami ma zbyt maªo obserwacji, co prowadzi do innego wyboru w celu speªnienia minimalnych wymaga«dotycz cych liczby obserwacji w podziale. Cho domy±lnie jest ustawiona warto± minbucket = na jedn trzeci minsplit =, to nie jest wymagane aby minbucket= byªa mniejsza ni» minsplit=. W zeª zawsze ma co najmniej minbucket = obserwacji i b dzie podzielony, je»eli ma co najmniej minsplit = obserwacji i je±li po podziale ka»de z jego dzieci ma przynajmniej minbucket = obserwacji. 212 / 260

Parametry drzewa Warto± minbucket = mo»e mie wpªyw na wybór zmiennej podziaªu. Zmiana mo»e nast pi, gdy jeden wybór z wy»szymi wynikami ma zbyt maªo obserwacji, co prowadzi do innego wyboru w celu speªnienia minimalnych wymaga«dotycz cych liczby obserwacji w podziale. Cho domy±lnie jest ustawiona warto± minbucket = na jedn trzeci minsplit =, to nie jest wymagane aby minbucket= byªa mniejsza ni» minsplit=. W zeª zawsze ma co najmniej minbucket = obserwacji i b dzie podzielony, je»eli ma co najmniej minsplit = obserwacji i je±li po podziale ka»de z jego dzieci ma przynajmniej minbucket = obserwacji. 213 / 260

Parametry drzewa Parametr zªo»ono±ci cp= Jest stosowany do kontrolowania wielko±ci drzewa decyzyjnego i do wyboru optymalnej wysoko±ci drzewa. Kontroluje proces przycinania drzewa decyzyjnego. Zagadnienie b dziemy omawia pó¹niej, ale zauwa»my,»e bez przycinania drzewo mo»e nadmierne dopasowa si do danych szkoleniowych i nie radzi sobie dobrze na nowych danych. Ogólnie, im bardziej zªo»ony model, tym bardziej prawdopodobne jest to,»e zapami taª dane, na których zostaª on przeszkolony i mniej prawdopodobne jest to, aby dopasowaª si do nowych wcze±niej niewidocznych dla niego danych. Z drugiej strony, drzewa decyzyjne s ªatwe w interpretacji i budowa bardziej zªo»onych drzew (tzn. posiadaj cych wiele podziaªów) mo»e by czasem kusz ca (i przydatna). Mo»e zawiera spostrze»enia, które mo»emy nast pnie przetestowa statystycznie. 214 / 260

Parametry drzewa Parametr zªo»ono±ci cp= Jest stosowany do kontrolowania wielko±ci drzewa decyzyjnego i do wyboru optymalnej wysoko±ci drzewa. Kontroluje proces przycinania drzewa decyzyjnego. Zagadnienie b dziemy omawia pó¹niej, ale zauwa»my,»e bez przycinania drzewo mo»e nadmierne dopasowa si do danych szkoleniowych i nie radzi sobie dobrze na nowych danych. Ogólnie, im bardziej zªo»ony model, tym bardziej prawdopodobne jest to,»e zapami taª dane, na których zostaª on przeszkolony i mniej prawdopodobne jest to, aby dopasowaª si do nowych wcze±niej niewidocznych dla niego danych. Z drugiej strony, drzewa decyzyjne s ªatwe w interpretacji i budowa bardziej zªo»onych drzew (tzn. posiadaj cych wiele podziaªów) mo»e by czasem kusz ca (i przydatna). Mo»e zawiera spostrze»enia, które mo»emy nast pnie przetestowa statystycznie. 215 / 260

Parametry drzewa Parametr zªo»ono±ci cp= Jest stosowany do kontrolowania wielko±ci drzewa decyzyjnego i do wyboru optymalnej wysoko±ci drzewa. Kontroluje proces przycinania drzewa decyzyjnego. Zagadnienie b dziemy omawia pó¹niej, ale zauwa»my,»e bez przycinania drzewo mo»e nadmierne dopasowa si do danych szkoleniowych i nie radzi sobie dobrze na nowych danych. Ogólnie, im bardziej zªo»ony model, tym bardziej prawdopodobne jest to,»e zapami taª dane, na których zostaª on przeszkolony i mniej prawdopodobne jest to, aby dopasowaª si do nowych wcze±niej niewidocznych dla niego danych. Z drugiej strony, drzewa decyzyjne s ªatwe w interpretacji i budowa bardziej zªo»onych drzew (tzn. posiadaj cych wiele podziaªów) mo»e by czasem kusz ca (i przydatna). Mo»e zawiera spostrze»enia, które mo»emy nast pnie przetestowa statystycznie. 216 / 260

Parametry drzewa Parametr zªo»ono±ci cp= Jest stosowany do kontrolowania wielko±ci drzewa decyzyjnego i do wyboru optymalnej wysoko±ci drzewa. Kontroluje proces przycinania drzewa decyzyjnego. Zagadnienie b dziemy omawia pó¹niej, ale zauwa»my,»e bez przycinania drzewo mo»e nadmierne dopasowa si do danych szkoleniowych i nie radzi sobie dobrze na nowych danych. Ogólnie, im bardziej zªo»ony model, tym bardziej prawdopodobne jest to,»e zapami taª dane, na których zostaª on przeszkolony i mniej prawdopodobne jest to, aby dopasowaª si do nowych wcze±niej niewidocznych dla niego danych. Z drugiej strony, drzewa decyzyjne s ªatwe w interpretacji i budowa bardziej zªo»onych drzew (tzn. posiadaj cych wiele podziaªów) mo»e by czasem kusz ca (i przydatna). Mo»e zawiera spostrze»enia, które mo»emy nast pnie przetestowa statystycznie. 217 / 260

Parametry drzewa Parametr zªo»ono±ci cp= Jest stosowany do kontrolowania wielko±ci drzewa decyzyjnego i do wyboru optymalnej wysoko±ci drzewa. Kontroluje proces przycinania drzewa decyzyjnego. Zagadnienie b dziemy omawia pó¹niej, ale zauwa»my,»e bez przycinania drzewo mo»e nadmierne dopasowa si do danych szkoleniowych i nie radzi sobie dobrze na nowych danych. Ogólnie, im bardziej zªo»ony model, tym bardziej prawdopodobne jest to,»e zapami taª dane, na których zostaª on przeszkolony i mniej prawdopodobne jest to, aby dopasowaª si do nowych wcze±niej niewidocznych dla niego danych. Z drugiej strony, drzewa decyzyjne s ªatwe w interpretacji i budowa bardziej zªo»onych drzew (tzn. posiadaj cych wiele podziaªów) mo»e by czasem kusz ca (i przydatna). Mo»e zawiera spostrze»enia, które mo»emy nast pnie przetestowa statystycznie. 218 / 260

Parametry drzewa U»ywaj c parametru cp = regulujemy minimaln korzy±, która musi by uzyskana w ka»dym podziale drzewa decyzyjnego. To oszcz dza czas, eliminuj c podziaªy, które dodaj niewielk warto± do modelu. Domy±lnie cp=0.01. Warto± 0 zbuduje kompletne drzewo o maksymalnej gª boko±ci, uwzgl dniaj c warto±ci parametrów minsplit = i minbucket =. Ró»ne warto±ci CP daj ró»ne rozmiary drzewa. Szukamy liczby podziaªów gdzie suma xerror ( krzy»owego bª du walidacji w stosunku do bª du gªównego) i xstd jest minimalna. 219 / 260

Parametry drzewa U»ywaj c parametru cp = regulujemy minimaln korzy±, która musi by uzyskana w ka»dym podziale drzewa decyzyjnego. To oszcz dza czas, eliminuj c podziaªy, które dodaj niewielk warto± do modelu. Domy±lnie cp=0.01. Warto± 0 zbuduje kompletne drzewo o maksymalnej gª boko±ci, uwzgl dniaj c warto±ci parametrów minsplit = i minbucket =. Ró»ne warto±ci CP daj ró»ne rozmiary drzewa. Szukamy liczby podziaªów gdzie suma xerror ( krzy»owego bª du walidacji w stosunku do bª du gªównego) i xstd jest minimalna. 220 / 260

Parametry drzewa U»ywaj c parametru cp = regulujemy minimaln korzy±, która musi by uzyskana w ka»dym podziale drzewa decyzyjnego. To oszcz dza czas, eliminuj c podziaªy, które dodaj niewielk warto± do modelu. Domy±lnie cp=0.01. Warto± 0 zbuduje kompletne drzewo o maksymalnej gª boko±ci, uwzgl dniaj c warto±ci parametrów minsplit = i minbucket =. Ró»ne warto±ci CP daj ró»ne rozmiary drzewa. Szukamy liczby podziaªów gdzie suma xerror ( krzy»owego bª du walidacji w stosunku do bª du gªównego) i xstd jest minimalna. 221 / 260

Parametry drzewa U»ywaj c parametru cp = regulujemy minimaln korzy±, która musi by uzyskana w ka»dym podziale drzewa decyzyjnego. To oszcz dza czas, eliminuj c podziaªy, które dodaj niewielk warto± do modelu. Domy±lnie cp=0.01. Warto± 0 zbuduje kompletne drzewo o maksymalnej gª boko±ci, uwzgl dniaj c warto±ci parametrów minsplit = i minbucket =. Ró»ne warto±ci CP daj ró»ne rozmiary drzewa. Szukamy liczby podziaªów gdzie suma xerror ( krzy»owego bª du walidacji w stosunku do bª du gªównego) i xstd jest minimalna. 222 / 260

Parametry drzewa Polecenie plotcp () jest u»yteczne do wizualizacji warto±ci CP. W poni»szym przykªadzie, budujemy peªne drzewo decyzyjne z cp= i minbucket= równymi zero. Bª d w porównaniu do parametru zªo»ono±ci. 223 / 260

Parametry drzewa set.seed(41) evalq({ control <- rpart.control(cp=0, minbucket=0) model <- rpart(formula=form, data=data[train, vars], control=control) }, weatherrpart) print(weatherrpart$model$cptable) plotcp(weatherrpart$model) grid() 224 / 260

Parametry drzewa Wykres przedstawia typowe zachowanie podczas budowy modelu. Gdy przyst pujemy do budowy zªo»onego modelu, bª d (o± Y) pocz tkowo maleje. Nast pnie staje si pªaski. Gdy model staje si bardziej zªo»ony, wska¹nik bª du zaczyna wzrasta. B dziemy chcieli wybra model, w którym bª d jest najni»szy. W oparciu o zasad wyboru prostszych modeli, mo»emy wybra pierwszy z dolnych punktów, a tym samym mo»emy ustawi u nas cp=0.1. 225 / 260

Parametry drzewa Czasami proporcje klas w zbiorze treningowym nie odpowiadaj ich prawdziwym proporcjom w populacji. Mo»emy informowa Rattle i R o proporcji populacji, a otrzymany model b dzie im odpowiadaª. Wszystkie prawdopodobie«stwa b d zmodykowane, aby odpowiada rzeczywistym prawdopodobie«stwom klas, a nie proporcjom w szkoleniowym zestawie danych. Argument priors mo»e by równie» zastosowany do "podniesienia wagi" szczególnie wa»nej klasy nadaj c jej wi ksze prawdopodobie«stwo. W Rattle, prawdopodobie«stwa a priori s wyra»one jako lista numerów, które sumuj si do 1. Lista musi by tej samej dªugo±ci, co liczba unikatowych klas w szkoleniowym zestawie danych. Przykªadem binarnego zaklasykowania jest np. 0.6,0.4. To przekªada si na prior = c (0.6,0.4). 226 / 260

Parametry drzewa Czasami proporcje klas w zbiorze treningowym nie odpowiadaj ich prawdziwym proporcjom w populacji. Mo»emy informowa Rattle i R o proporcji populacji, a otrzymany model b dzie im odpowiadaª. Wszystkie prawdopodobie«stwa b d zmodykowane, aby odpowiada rzeczywistym prawdopodobie«stwom klas, a nie proporcjom w szkoleniowym zestawie danych. Argument priors mo»e by równie» zastosowany do "podniesienia wagi" szczególnie wa»nej klasy nadaj c jej wi ksze prawdopodobie«stwo. W Rattle, prawdopodobie«stwa a priori s wyra»one jako lista numerów, które sumuj si do 1. Lista musi by tej samej dªugo±ci, co liczba unikatowych klas w szkoleniowym zestawie danych. Przykªadem binarnego zaklasykowania jest np. 0.6,0.4. To przekªada si na prior = c (0.6,0.4). 227 / 260

Parametry drzewa Czasami proporcje klas w zbiorze treningowym nie odpowiadaj ich prawdziwym proporcjom w populacji. Mo»emy informowa Rattle i R o proporcji populacji, a otrzymany model b dzie im odpowiadaª. Wszystkie prawdopodobie«stwa b d zmodykowane, aby odpowiada rzeczywistym prawdopodobie«stwom klas, a nie proporcjom w szkoleniowym zestawie danych. Argument priors mo»e by równie» zastosowany do "podniesienia wagi" szczególnie wa»nej klasy nadaj c jej wi ksze prawdopodobie«stwo. W Rattle, prawdopodobie«stwa a priori s wyra»one jako lista numerów, które sumuj si do 1. Lista musi by tej samej dªugo±ci, co liczba unikatowych klas w szkoleniowym zestawie danych. Przykªadem binarnego zaklasykowania jest np. 0.6,0.4. To przekªada si na prior = c (0.6,0.4). 228 / 260

Parametry drzewa Czasami proporcje klas w zbiorze treningowym nie odpowiadaj ich prawdziwym proporcjom w populacji. Mo»emy informowa Rattle i R o proporcji populacji, a otrzymany model b dzie im odpowiadaª. Wszystkie prawdopodobie«stwa b d zmodykowane, aby odpowiada rzeczywistym prawdopodobie«stwom klas, a nie proporcjom w szkoleniowym zestawie danych. Argument priors mo»e by równie» zastosowany do "podniesienia wagi" szczególnie wa»nej klasy nadaj c jej wi ksze prawdopodobie«stwo. W Rattle, prawdopodobie«stwa a priori s wyra»one jako lista numerów, które sumuj si do 1. Lista musi by tej samej dªugo±ci, co liczba unikatowych klas w szkoleniowym zestawie danych. Przykªadem binarnego zaklasykowania jest np. 0.6,0.4. To przekªada si na prior = c (0.6,0.4). 229 / 260

Parametry drzewa Czasami proporcje klas w zbiorze treningowym nie odpowiadaj ich prawdziwym proporcjom w populacji. Mo»emy informowa Rattle i R o proporcji populacji, a otrzymany model b dzie im odpowiadaª. Wszystkie prawdopodobie«stwa b d zmodykowane, aby odpowiada rzeczywistym prawdopodobie«stwom klas, a nie proporcjom w szkoleniowym zestawie danych. Argument priors mo»e by równie» zastosowany do "podniesienia wagi" szczególnie wa»nej klasy nadaj c jej wi ksze prawdopodobie«stwo. W Rattle, prawdopodobie«stwa a priori s wyra»one jako lista numerów, które sumuj si do 1. Lista musi by tej samej dªugo±ci, co liczba unikatowych klas w szkoleniowym zestawie danych. Przykªadem binarnego zaklasykowania jest np. 0.6,0.4. To przekªada si na prior = c (0.6,0.4). 230 / 260

Parametry drzewa Poni»szy przykªad ilustruje, w jaki sposób mo»emy u»ywa tego argumentu do faworyzowania konkretnej klasy docelowej, która nie zostaªaby w inny sposób przewidywana przez model (poniewa» model okazuje si by tylko w zªem gªównym zawsze przewiduj cym No). Zaczynamy od utworzenia obiektu zbioru danych wausds, skªadaj cego si z wi kszego zestawu danych pogody, weatheraus wausds <- new.env() evalq({ data <- weatheraus nobs <- nrow(data) form <- formula(raintomorrow ~ RainToday) target <- all.vars(form)[1] set.seed(42) train <- sample(nobs, 0.5*nobs) }, wausds) 231 / 260

Parametry drzewa Nast pnie budujemy drzewo decyzyjne: wausrpart <- new.env(parent=wausds) evalq({ model <- rpart(formula=form, data=data[train,]) model }, wausrpart) Jest to rzeczywi±cie tylko jeden w zeª. Poni»sza tabela pokazuje proporcje obserwacji przypisane do poszczególnych klas: evalq({ freq <- table(data[train, target]) round(100*freq/length(train), 2) }, wausrpart) No Yes 76.17 21.68 Funkcja table() zlicza cz stotliwo±ci dla warto±ci typu factor. 232 / 260

Parametry drzewa Teraz budujemy model z innymi warto±ciami prawdopodobie«stw: evalq({ model <- rpart(formula=form, data=data[train,], parm=list(prior=c(0.5, 0.5))) model }, wausrpart) Domy±lne warto±ci parametru prior s ustawione na proporcje klas w zbiorze treningowym. 233 / 260

Parametry drzewa Macierz strat (loss matrix) sªu»y do specycznego pomiaru ró»nego rodzaju bª dów (lub straty). Odnosi si to do tego, co jest znane jako false positives (faªszywe odpowiedzi pozytywne - lub bª dy typu I) i false negatives (faªszywe negatywy lub bª dy typu II), gdy mówimy o zadaniu dwuklasowym. Cz sto jeden rodzaj bª du jest bardziej znacz cy, ni» inny rodzaj bª du. Na przykªad dla oszustw (fraud detection), model, który identykuje zbyt wiele faªszywych alarmów jest lepszy ni» model, który identykuje zbyt wiele faªszywych negatywów (bo wtedy ominie zbyt wiele prawdziwych oszustów). W medycynie, false positive oznacza to,»e zdiagnozowali±my zdrowego pacjenta jako chorego, natomiast false negative oznacza,»e zdiagnozowali±my chorego pacjenta jako zdrowego. 234 / 260

Parametry drzewa Macierz strat (loss matrix) sªu»y do specycznego pomiaru ró»nego rodzaju bª dów (lub straty). Odnosi si to do tego, co jest znane jako false positives (faªszywe odpowiedzi pozytywne - lub bª dy typu I) i false negatives (faªszywe negatywy lub bª dy typu II), gdy mówimy o zadaniu dwuklasowym. Cz sto jeden rodzaj bª du jest bardziej znacz cy, ni» inny rodzaj bª du. Na przykªad dla oszustw (fraud detection), model, który identykuje zbyt wiele faªszywych alarmów jest lepszy ni» model, który identykuje zbyt wiele faªszywych negatywów (bo wtedy ominie zbyt wiele prawdziwych oszustów). W medycynie, false positive oznacza to,»e zdiagnozowali±my zdrowego pacjenta jako chorego, natomiast false negative oznacza,»e zdiagnozowali±my chorego pacjenta jako zdrowego. 235 / 260

Parametry drzewa Domy±lna strata dla ka»dego true/false positives/negatives wynosi 1 - wszystkie one maj równy wpªyw na zysk lub strat. W przypadku rzadkiej i niedostatecznie reprezentowanej klasy (jak oszustwa) mo»emy uzna,»e wynik false negatives jest cztery lub nawet dziesi razy gorszy ni» false positive. Zatem nale»y ukierunkowa dziaªanie algorytmu na odszukiwanie wszystkich przypadków pozytywnych (positive). Poni»sza tabela przedstawia terminologi (pokazuje przewidywania wzgl dem warto±ci rzeczywistych): observed predicted 0 1 0 TN FP 1 FN TP 236 / 260

Parametry drzewa Domy±lna strata dla ka»dego true/false positives/negatives wynosi 1 - wszystkie one maj równy wpªyw na zysk lub strat. W przypadku rzadkiej i niedostatecznie reprezentowanej klasy (jak oszustwa) mo»emy uzna,»e wynik false negatives jest cztery lub nawet dziesi razy gorszy ni» false positive. Zatem nale»y ukierunkowa dziaªanie algorytmu na odszukiwanie wszystkich przypadków pozytywnych (positive). Poni»sza tabela przedstawia terminologi (pokazuje przewidywania wzgl dem warto±ci rzeczywistych): observed predicted 0 1 0 TN FP 1 FN TP 237 / 260

Parametry drzewa Domy±lna strata dla ka»dego true/false positives/negatives wynosi 1 - wszystkie one maj równy wpªyw na zysk lub strat. W przypadku rzadkiej i niedostatecznie reprezentowanej klasy (jak oszustwa) mo»emy uzna,»e wynik false negatives jest cztery lub nawet dziesi razy gorszy ni» false positive. Zatem nale»y ukierunkowa dziaªanie algorytmu na odszukiwanie wszystkich przypadków pozytywnych (positive). Poni»sza tabela przedstawia terminologi (pokazuje przewidywania wzgl dem warto±ci rzeczywistych): observed predicted 0 1 0 TN FP 1 FN TP 238 / 260

Parametry drzewa Domy±lna strata dla ka»dego true/false positives/negatives wynosi 1 - wszystkie one maj równy wpªyw na zysk lub strat. W przypadku rzadkiej i niedostatecznie reprezentowanej klasy (jak oszustwa) mo»emy uzna,»e wynik false negatives jest cztery lub nawet dziesi razy gorszy ni» false positive. Zatem nale»y ukierunkowa dziaªanie algorytmu na odszukiwanie wszystkich przypadków pozytywnych (positive). Poni»sza tabela przedstawia terminologi (pokazuje przewidywania wzgl dem warto±ci rzeczywistych): observed predicted 0 1 0 TN FP 1 FN TP 239 / 260

Parametry drzewa Zauwa»my,»e nie okre±lamy»adnych wag w macierzy strat dla true positives (TP) i true negatives (TN), macierz ta musi mie zera na przek tnej i warto±ci dodatnie poza. Aby okre±li macierz w interfejsie Rattle, musimy dostarczy list w postaci: 0, FP, FN, 0 (bª d w Rattle). Ogólnie, macierz straty musi mie te same wymiary, co liczba klas (tj. liczba poziomów zmiennej celu) w szkoleniowym zestawie danych. Dla klasykacji binarnej musimy dostarczy cztery numery z zerami na przek tnej. Przykªadem jest ci g cyfr 0, 10, 1, 0, który mo»e by interpretowany nast puj co: warto± rzeczywista 0 przewidywana jako 1 (tj. false positives) jest dziesi razy bardziej niepo» dana ni» false negatives. Jest to wykorzystywane do budowy w rz dach macierzy strat, któr podajemy do rpart () jako parametr loss = matrix ( c ( 0,10,1,0 ), byrow = TRUE, nrow = 2 ). 240 / 260

Parametry drzewa Zauwa»my,»e nie okre±lamy»adnych wag w macierzy strat dla true positives (TP) i true negatives (TN), macierz ta musi mie zera na przek tnej i warto±ci dodatnie poza. Aby okre±li macierz w interfejsie Rattle, musimy dostarczy list w postaci: 0, FP, FN, 0 (bª d w Rattle). Ogólnie, macierz straty musi mie te same wymiary, co liczba klas (tj. liczba poziomów zmiennej celu) w szkoleniowym zestawie danych. Dla klasykacji binarnej musimy dostarczy cztery numery z zerami na przek tnej. Przykªadem jest ci g cyfr 0, 10, 1, 0, który mo»e by interpretowany nast puj co: warto± rzeczywista 0 przewidywana jako 1 (tj. false positives) jest dziesi razy bardziej niepo» dana ni» false negatives. Jest to wykorzystywane do budowy w rz dach macierzy strat, któr podajemy do rpart () jako parametr loss = matrix ( c ( 0,10,1,0 ), byrow = TRUE, nrow = 2 ). 241 / 260

Parametry drzewa Zauwa»my,»e nie okre±lamy»adnych wag w macierzy strat dla true positives (TP) i true negatives (TN), macierz ta musi mie zera na przek tnej i warto±ci dodatnie poza. Aby okre±li macierz w interfejsie Rattle, musimy dostarczy list w postaci: 0, FP, FN, 0 (bª d w Rattle). Ogólnie, macierz straty musi mie te same wymiary, co liczba klas (tj. liczba poziomów zmiennej celu) w szkoleniowym zestawie danych. Dla klasykacji binarnej musimy dostarczy cztery numery z zerami na przek tnej. Przykªadem jest ci g cyfr 0, 10, 1, 0, który mo»e by interpretowany nast puj co: warto± rzeczywista 0 przewidywana jako 1 (tj. false positives) jest dziesi razy bardziej niepo» dana ni» false negatives. Jest to wykorzystywane do budowy w rz dach macierzy strat, któr podajemy do rpart () jako parametr loss = matrix ( c ( 0,10,1,0 ), byrow = TRUE, nrow = 2 ). 242 / 260

Parametry drzewa Zauwa»my,»e nie okre±lamy»adnych wag w macierzy strat dla true positives (TP) i true negatives (TN), macierz ta musi mie zera na przek tnej i warto±ci dodatnie poza. Aby okre±li macierz w interfejsie Rattle, musimy dostarczy list w postaci: 0, FP, FN, 0 (bª d w Rattle). Ogólnie, macierz straty musi mie te same wymiary, co liczba klas (tj. liczba poziomów zmiennej celu) w szkoleniowym zestawie danych. Dla klasykacji binarnej musimy dostarczy cztery numery z zerami na przek tnej. Przykªadem jest ci g cyfr 0, 10, 1, 0, który mo»e by interpretowany nast puj co: warto± rzeczywista 0 przewidywana jako 1 (tj. false positives) jest dziesi razy bardziej niepo» dana ni» false negatives. Jest to wykorzystywane do budowy w rz dach macierzy strat, któr podajemy do rpart () jako parametr loss = matrix ( c ( 0,10,1,0 ), byrow = TRUE, nrow = 2 ). 243 / 260

Parametry drzewa Zauwa»my,»e nie okre±lamy»adnych wag w macierzy strat dla true positives (TP) i true negatives (TN), macierz ta musi mie zera na przek tnej i warto±ci dodatnie poza. Aby okre±li macierz w interfejsie Rattle, musimy dostarczy list w postaci: 0, FP, FN, 0 (bª d w Rattle). Ogólnie, macierz straty musi mie te same wymiary, co liczba klas (tj. liczba poziomów zmiennej celu) w szkoleniowym zestawie danych. Dla klasykacji binarnej musimy dostarczy cztery numery z zerami na przek tnej. Przykªadem jest ci g cyfr 0, 10, 1, 0, który mo»e by interpretowany nast puj co: warto± rzeczywista 0 przewidywana jako 1 (tj. false positives) jest dziesi razy bardziej niepo» dana ni» false negatives. Jest to wykorzystywane do budowy w rz dach macierzy strat, któr podajemy do rpart () jako parametr loss = matrix ( c ( 0,10,1,0 ), byrow = TRUE, nrow = 2 ). 244 / 260

Parametry drzewa Zauwa»my,»e nie okre±lamy»adnych wag w macierzy strat dla true positives (TP) i true negatives (TN), macierz ta musi mie zera na przek tnej i warto±ci dodatnie poza. Aby okre±li macierz w interfejsie Rattle, musimy dostarczy list w postaci: 0, FP, FN, 0 (bª d w Rattle). Ogólnie, macierz straty musi mie te same wymiary, co liczba klas (tj. liczba poziomów zmiennej celu) w szkoleniowym zestawie danych. Dla klasykacji binarnej musimy dostarczy cztery numery z zerami na przek tnej. Przykªadem jest ci g cyfr 0, 10, 1, 0, który mo»e by interpretowany nast puj co: warto± rzeczywista 0 przewidywana jako 1 (tj. false positives) jest dziesi razy bardziej niepo» dana ni» false negatives. Jest to wykorzystywane do budowy w rz dach macierzy strat, któr podajemy do rpart () jako parametr loss = matrix ( c ( 0,10,1,0 ), byrow = TRUE, nrow = 2 ). 245 / 260

Parametry drzewa Macierz straty b dzie miaªa wpªyw na wybór zmiennej, dla których mo»na podzieli zestaw danych w ka»dym w ¹le, daj c wi cej wagi w stosownych przypadkach. Korzystanie z macierzy strat jest cz sto wskazane, gdy budowa drzewa decyzyjnego ko«czy si tylko jednym w zªem gªównym (cz sto dlatego»e pozytywna klasa stanowi mniej ni» 5% populacji - i najbardziej dokªadny model b dzie przewidywa wszystko jako 0). 246 / 260

Parametry drzewa Macierz straty b dzie miaªa wpªyw na wybór zmiennej, dla których mo»na podzieli zestaw danych w ka»dym w ¹le, daj c wi cej wagi w stosownych przypadkach. Korzystanie z macierzy strat jest cz sto wskazane, gdy budowa drzewa decyzyjnego ko«czy si tylko jednym w zªem gªównym (cz sto dlatego»e pozytywna klasa stanowi mniej ni» 5% populacji - i najbardziej dokªadny model b dzie przewidywa wszystko jako 0). 247 / 260

Parametry drzewa Parametr maxdepth= sªu»y do ograniczenia wysoko±ci drzewa. Jego domy±lna warto± to 30. Korze«jest traktowany jako gª boko± 0. Funkcja rpart () udost pnia wiele innych parametrów, które nie s dost pne przez RattleGUI, np. maxcompete=. Cz sto przydatna mo»e by obserwacja nie tylko zmiennej, która daªa najlepszy podziaª na w ¹le, ale tak»e drugiej, trzeciej najlepszej. Ten parametr kontroluje liczb najlepszych podanych opcji. 248 / 260

Parametry drzewa Parametr maxdepth= sªu»y do ograniczenia wysoko±ci drzewa. Jego domy±lna warto± to 30. Korze«jest traktowany jako gª boko± 0. Funkcja rpart () udost pnia wiele innych parametrów, które nie s dost pne przez RattleGUI, np. maxcompete=. Cz sto przydatna mo»e by obserwacja nie tylko zmiennej, która daªa najlepszy podziaª na w ¹le, ale tak»e drugiej, trzeciej najlepszej. Ten parametr kontroluje liczb najlepszych podanych opcji. 249 / 260

Drzewa decyzyjne uwagi Drzewa decyzyjne s u»ywane od dawna. Dostarczaj one serii pyta«, gdzie nast pne pytanie zale»y od odpowiedzi na poprzednie. Tradycyjne algorytmy drzew decyzyjnych mog zawodzi z powodu przeuczenia oraz mog wykazywa odchylenie w kierunku wyboru zmiennych z wieloma mo»liwymi podziaªami (to znaczy zmiennymi typu kategorialnego). Hothorn et al. (2006) wprowadziª pewn popraw w podej±ciu prezentowanym tutaj do budowy drzewa decyzyjnego, zwan warunkow indukcj drzew (conditional inference trees). 250 / 260

Drzewa decyzyjne uwagi Drzewa decyzyjne s u»ywane od dawna. Dostarczaj one serii pyta«, gdzie nast pne pytanie zale»y od odpowiedzi na poprzednie. Tradycyjne algorytmy drzew decyzyjnych mog zawodzi z powodu przeuczenia oraz mog wykazywa odchylenie w kierunku wyboru zmiennych z wieloma mo»liwymi podziaªami (to znaczy zmiennymi typu kategorialnego). Hothorn et al. (2006) wprowadziª pewn popraw w podej±ciu prezentowanym tutaj do budowy drzewa decyzyjnego, zwan warunkow indukcj drzew (conditional inference trees). 251 / 260

Drzewa decyzyjne uwagi Drzewa decyzyjne s u»ywane od dawna. Dostarczaj one serii pyta«, gdzie nast pne pytanie zale»y od odpowiedzi na poprzednie. Tradycyjne algorytmy drzew decyzyjnych mog zawodzi z powodu przeuczenia oraz mog wykazywa odchylenie w kierunku wyboru zmiennych z wieloma mo»liwymi podziaªami (to znaczy zmiennymi typu kategorialnego). Hothorn et al. (2006) wprowadziª pewn popraw w podej±ciu prezentowanym tutaj do budowy drzewa decyzyjnego, zwan warunkow indukcj drzew (conditional inference trees). 252 / 260

Drzewa decyzyjne uwagi Drzewa decyzyjne s u»ywane od dawna. Dostarczaj one serii pyta«, gdzie nast pne pytanie zale»y od odpowiedzi na poprzednie. Tradycyjne algorytmy drzew decyzyjnych mog zawodzi z powodu przeuczenia oraz mog wykazywa odchylenie w kierunku wyboru zmiennych z wieloma mo»liwymi podziaªami (to znaczy zmiennymi typu kategorialnego). Hothorn et al. (2006) wprowadziª pewn popraw w podej±ciu prezentowanym tutaj do budowy drzewa decyzyjnego, zwan warunkow indukcj drzew (conditional inference trees). 253 / 260

Drzewa decyzyjne uwagi Rattle daje wybór tradycyjnych i warunkowych algorytmów. Warunkowo indukowane drzewa lepiej radz sobie z przeuczeniem. Drzewa tego typu tworzone s za pomoc funkcji ctree() z pakietu party (Hothorn et al., 2006 [?]). W Rattle mo»emy wybra opcj Conditional w zakªadce Model. W R mamy library(party) weatherctree <- new.env(parent=weatherds) evalq({ model <- ctree(formula=form, data=data[train, vars]) }, weatherctree) weatherctree$model plot(weatherctree$model) 254 / 260

Drzewa decyzyjne uwagi Rattle daje wybór tradycyjnych i warunkowych algorytmów. Warunkowo indukowane drzewa lepiej radz sobie z przeuczeniem. Drzewa tego typu tworzone s za pomoc funkcji ctree() z pakietu party (Hothorn et al., 2006 [?]). W Rattle mo»emy wybra opcj Conditional w zakªadce Model. W R mamy library(party) weatherctree <- new.env(parent=weatherds) evalq({ model <- ctree(formula=form, data=data[train, vars]) }, weatherctree) weatherctree$model plot(weatherctree$model) 255 / 260

Drzewa decyzyjne uwagi Rattle daje wybór tradycyjnych i warunkowych algorytmów. Warunkowo indukowane drzewa lepiej radz sobie z przeuczeniem. Drzewa tego typu tworzone s za pomoc funkcji ctree() z pakietu party (Hothorn et al., 2006 [?]). W Rattle mo»emy wybra opcj Conditional w zakªadce Model. W R mamy library(party) weatherctree <- new.env(parent=weatherds) evalq({ model <- ctree(formula=form, data=data[train, vars]) }, weatherctree) weatherctree$model plot(weatherctree$model) 256 / 260

Drzewa decyzyjne uwagi Rattle daje wybór tradycyjnych i warunkowych algorytmów. Warunkowo indukowane drzewa lepiej radz sobie z przeuczeniem. Drzewa tego typu tworzone s za pomoc funkcji ctree() z pakietu party (Hothorn et al., 2006 [?]). W Rattle mo»emy wybra opcj Conditional w zakªadce Model. W R mamy library(party) weatherctree <- new.env(parent=weatherds) evalq({ model <- ctree(formula=form, data=data[train, vars]) }, weatherctree) weatherctree$model plot(weatherctree$model) 257 / 260

Drzewa decyzyjne uwagi Mo»emy zobaczy wynik, który jest w zmiennej model: Wykres warunkowego drzewa decyzyjnego Wykres jest raczej czytelny, np. w zeª 3 przewiduje z du»ym prawd. deszcz, a w zeª 6 opisuje warunki, dla których raczej nie pada jutro. 258 / 260