2019/03/31 17:38 1/2 Klasifikační a regresní stromy

Podobné dokumenty
ELLENBERGOVY INDIKAČNÍ HODNOTY. David Zelený Zpracování dat v ekologii společenstev

ELLENBERGOVY INDIKAČNÍ HODNOTY. David Zelený Zpracování dat v ekologii společenstev

Lineární regrese. Komentované řešení pomocí MS Excel

Pokročilé neparametrické metody. Klára Kubošová

10. Předpovídání - aplikace regresní úlohy

Pokročilé neparametrické metody. Klára Kubošová

6. Lineární regresní modely

Pokud data zadáme přes "Commands" okno: SDF1$X1<-c(1:15) //vytvoření řady čísel od 1 do 15 SDF1$Y1<-c(1.5,3,4.5,5,6,8,9,11,13,14,15,16,18.

Pracovní text a úkoly ke cvičením MF002

4EK211 Základy ekonometrie

4EK211 Základy ekonometrie

Informatika 8. třída/6

INDUKTIVNÍ STATISTIKA

Chyby nepřímých měření

Statistika (KMI/PSTAT)

Zadání Máme data hdp.wf1, která najdete zde: Bodová předpověď: Intervalová předpověď:

Připomeň: Shluková analýza

ALGORITMIZACE Příklady ze života, větvení, cykly

Rozhodovací stromy a lesy

Fyzikální korespondenční seminář MFF UK

Téma 9: Vícenásobná regrese

Tomáš Karel LS 2012/2013

1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004.

KEA 2007/ A. Analýza dovedností a tematických částí - ČJ

Excel mini úvod do kontingenčních tabulek

LINEÁRNÍ REGRESE Komentované řešení pomocí programu Statistica

PRAVDĚPODOBNOST A STATISTIKA

Kreslení grafů v Matlabu

Kapitola Hlavička. 3.2 Teoretický základ měření

Optimalizace 2007/ B

RNDr. Eva Janoušová doc. RNDr. Ladislav Dušek, Dr.

Univerzita Pardubice 8. licenční studium chemometrie

Popisná statistika. Komentované řešení pomocí MS Excel

SEMESTRÁLNÍ PRÁCE Z PŘEDMĚTU MODELOVÁNÍ MATLABEM

Úvodem Dříve les než stromy 3 Operace s maticemi

Parametry hledáme tak, aby součet čtverců odchylek byl minimální. Řešením podle teorie je =

You created this PDF from an application that is not licensed to print to novapdf printer (

NEXIS 32 rel Generátor fází výstavby TDA mikro

Statistika. Regresní a korelační analýza Úvod do problému. Roman Biskup

Regresní analýza 1. Regresní analýza

Vytváření grafů v aplikaci Helios Red

PRAVDĚPODOBNOST A STATISTIKA

VYUŽITÍ MATLABU PRO VÝUKU NUMERICKÉ MATEMATIKY Josef Daněk Centrum aplikované matematiky, Západočeská univerzita v Plzni. Abstrakt

JEDNOVÝBĚROVÉ TESTY. Komentované řešení pomocí programu Statistica

Kombinatorická minimalizace

Popis metod CLIDATA-GIS. Martin Stříž

Statistická analýza jednorozměrných dat

UNIVERZITA PARDUBICE. 4.4 Aproximace křivek a vyhlazování křivek

Úloha 1. Napište matici pro případ lineárního regresního spline vyjádřeného přes useknuté

MODEL TVÁŘECÍHO PROCESU

Ing. Petr Hájek, Ph.D. Podpora přednášky kurzu Aplikace umělé inteligence

Aplikace teoretických postupů pro ocenění rizika při upisování pojistných smluv v oblasti velkých rizik

Regresní a korelační analýza

Hodnocení soutěžních úloh

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Regresní analýza. Eva Jarošová

4EK211 Základy ekonometrie

MATLAB PRO PODPORU VÝUKY KOMUNIKAČNÍCH SYSTÉMŮ

Průměrné percentily - OSP

Měření závislosti statistických dat

StatSoft Jak poznat vliv faktorů vizuálně

Analýza dat pomocí systému Weka, Rapid miner a Enterprise miner

KORELACE. Komentované řešení pomocí programu Statistica

4EK211 Základy ekonometrie

Obr. 1: Vizualizace dat pacientů, kontrolních subjektů a testovacího subjektu.

Regresní a korelační analýza

Zákony hromadění chyb.

4EK211 Základy ekonometrie

Cvičení ze statistiky - 3. Filip Děchtěrenko

Regresní a korelační analýza

Smíšené regresní modely a možnosti jejich využití. Karel Drápela

Korelace. Komentované řešení pomocí MS Excel

Metoda backward výběru proměnných v lineární regresi a její vlastnosti

Výsledný graf ukazuje následující obrázek.

4ST201 STATISTIKA CVIČENÍ Č. 10

ZÍSKÁVÁNÍ ZNALOSTÍ Z DATABÁZÍ

Popisná statistika kvantitativní veličiny

Změkčování hranic v klasifikačních stromech

řešeny numericky 6 Obyčejné diferenciální rovnice řešeny numericky

Prostorová variabilita

vzorek vzorek

SOLVER UŽIVATELSKÁ PŘÍRUČKA. Kamil Šamaj, František Vižďa Univerzita obrany, Brno, 2008 Výzkumný záměr MO0 FVT

Přenos pasivního dvojbranu RC

Regresní a korelační analýza

Zadání soutěžních úloh

Kreslení elipsy Andrej Podzimek 22. prosince 2005

Statistické metody v marketingu. Ing. Michael Rost, Ph.D.

Obsah Úvod Kapitola 1 Než začneme Kapitola 2 Práce s hromadnými daty před analýzou

STATISTICA Téma 8. Regresní a korelační analýza, regrese prostá

AVDAT Nelineární regresní model

Analýza dat na PC I.

Experimentální realizace Buquoyovy úlohy

Fakulta chemicko-technologická Katedra analytické chemie. 3.2 Metody s latentními proměnnými a klasifikační metody

Regresní a korelační analýza

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) b)

GEODETICKÉ VÝPOČTY I.

PRAVDĚPODOBNOST A STATISTIKA

Vytyčení polohy bodu polární metodou

Transkript:

2019/03/31 17:38 1/2 Klasifikační a regresní stromy Table of Contents Klasifikační a regresní stromy... 1 rpart (library rpart)... 1 draw.tree (library maptree)... 3 plotcp a rsq.rpart (library rpart)... 4 prune (library rpart)... 6 Rozšiřující informace... 7 Cvičení 1... 7 Analysis of community ecology data in R - https://www.davidzeleny.net/anadat-r/

Last update: 2017/10/11 20:36 cs:cart https://www.davidzeleny.net/anadat-r/doku.php/cs:cart https://www.davidzeleny.net/anadat-r/ Printed on 2019/03/31 17:38

2019/03/31 17:38 1/8 Klasifikační a regresní stromy Česká verze stránek není od roku 2013 aktualizována. Klasifikační a regresní stromy Metoda klasifikačních a regresních stromů (Classification and regression trees, CART) je obdobou mnohonásobné regrese - vysvětlovaná proměnná je jen jedna, vysvětlujících je několik. Výhodou této metody (oproti regrese) je méně požadavků na kvalitu vysvětlujících proměnných. V ekologii se metoda používá především pro explorativní analýzu - pro popis vztahů mezi vysvětlovanou a vysvětlujícími proměnnými. Pokud je vysvětlovaná proměnná kvantitativní, počítá se regresní strom, pokud je kvalitativní, jde o klasifikační strom. rpart (library rpart) Vypočteme regresní strom závislosti počtu druhů na faktorech prostředí (použijeme datový soubor Vltava a jako faktory prostředí použijeme vypočtené Ellenbergovy indikační hodnoty 1) ): vltava.spe <- read.delim ('http://www.davidzeleny.net/anadat-r/data-download/vltava-spe.txt', row.names = 1) vltava.env <- read.delim ('http://www.davidzeleny.net/anadat-r/data-download/vltava-env.txt') env <- vltava.env[, 20:25] Počet druhů vypočteme pomocí funkce specnumber z knihovny vegan: library (vegan) S <- specnumber (vltava.spe) Následuje vlastní model pro výpočet regresního stromu, pro který je použita funkce rpart ze stejnojmenné knihovny. Pokud chcete získat stejný strom jako v této úloze, použijte funkci set.seed a stejnou numerickou hodnotu, která nastaví výchozí hodnotu pro generátor pseudonáhodných čísel na vašem počítači. library (rpart) # set.seed (1234) # pokud chcete získat stejný strom jako v této úloze, odkomentujte tuto funkci tree.1 <- rpart (S ~., env) tree.1 Funkce vrací textovou podobu regresního stromu s čísly jednotlivých uzlů a terminálních lístků (ty jsou označeny hvězdičkou): n= 97 Analysis of community ecology data in R - https://www.davidzeleny.net/anadat-r/

Last update: 2017/10/11 20:36 cs:cart https://www.davidzeleny.net/anadat-r/doku.php/cs:cart node), split, n, deviance, yval * denotes terminal node 1) root 97 11009.0100 32.22680 2) ELL.MOIST< 5.785 77 4824.8050 28.83117 4) ELL.REACT< 5.03 32 1427.9690 24.53125 8) ELL.REACT< 4.185 8 104.0000 18.50000 * 9) ELL.REACT>=4.185 24 935.9583 26.54167 18) ELL.MOIST>=5.085 8 95.5000 22.25000 * 19) ELL.MOIST< 5.085 16 619.4375 28.68750 * 5) ELL.REACT>=5.03 45 2384.4440 31.88889 10) ELL.NUTR>=5.865 19 369.6842 26.73684 * 11) ELL.NUTR< 5.865 26 1141.8850 35.65385 22) ELL.NUTR>=5.285 12 395.0000 32.50000 * 23) ELL.NUTR< 5.285 14 525.2143 38.35714 * 3) ELL.MOIST>=5.785 20 1878.2000 45.30000 6) ELL.NUTR>=6.31 11 676.7273 40.45455 * 7) ELL.NUTR< 6.31 9 627.5556 51.22222 * Strom můžeme nakreslit takto: plot (tree.1) text (tree.1) https://www.davidzeleny.net/anadat-r/ Printed on 2019/03/31 17:38

2019/03/31 17:38 3/8 Klasifikační a regresní stromy draw.tree (library maptree) Lepší grafické zobrazení regresních a klasifikačních stromů nabízí funkce draw.tree z knihovny maptree: library (maptree) draw.tree (tree.1, nodeinfo = T, digits = 1) Argument nodeinfo ovlivňuje množství informací, které se v obrázku vykreslí - konkrétně ke každému uzlu přidá detailní informaci o množství vysvětlené variability. Argument digits ovlivňuje počet desetinných míst, který se zobrazuje u jednotlivých hodnot závislé proměnné (počet druhů v tomto případě) - pokud ho nezadáte, zobrazí se průměrné počty druhů v nodech s přesností na nesmysleně vysoký počet desetinných míst). Analysis of community ecology data in R - https://www.davidzeleny.net/anadat-r/

Last update: 2017/10/11 20:36 cs:cart https://www.davidzeleny.net/anadat-r/doku.php/cs:cart plotcp a rsq.rpart (library rpart) Algoritmus klasifikačních a regresních stromů má tendenci vytvářet komplikované struktury - stromy s mnoha koncovými větvemi. Je proto vhodné stromy nějakým způsobem zjednodušit. Míra zjednodušení bude záležet na tom, co od stromu očekávám. Pokud mi jde o zobecnitelný popis situace, pak je na místě strom prořezat pořádně, aby se dobře interpretoval a zároveň aby v něm byla určitá míra zobecnění. Pokud je naopak účelem vytvořit strom pro predikci z nových dat, může být složitější, aby dosáhl přesnějších výsledků. Rozhodnutí o komplexnosti stromu bývá založené na tzv. krosvalidaci, křížovém zhodnocení. Datový soubor se rozdělí např. na 10 skupin vzorků, náhodně se vybere 9 a na nich se vytvoří nový strom. Nepoužité vzorky z desáté skupiny se pak použijí k predikci a vyhodnotí se kvalita této predikce. Pak https://www.davidzeleny.net/anadat-r/ Printed on 2019/03/31 17:38

2019/03/31 17:38 5/8 Klasifikační a regresní stromy se odřízne poslední větvička, znovu se vyhodnotí kvalita predikce, a v prořezávání se pokračuje až na pařez. Toto se zopakuje pro všechny kombinace 9 podskupin vzorků. Následující funkce slouží k zobrazení výsledků krosvalidace daného (tu provádí už funkce rpart). Funkce plotcp kreslí vztah mezi složitostí stromu (vodorovná osa) a hodnoty chyb v predikci modelem pro danou velikost (svislá osa). Křivka na začátku strmě klesá, tzn. že složitost modelu je vyvážena lepší predikcí. Jakmile začne růst, znamená to že složitější model jde na úkor kvality predikce. Jedno z možných pravidel při rozhodnutí o velikosti stromu říká vybrat takové dělení, které se jako první vyskytuje pod horizontální čárou. plotcp (tree.1) Podobný obrázek zobrazuje i funkce rsq.rpart - ta kreslí obrázky dva za sebou, je ale dobré si je zobrazit vvedle sebe, proto funkce par s argumentem mfrow. Druhý obrázek je identický s předchozím výstupem funkce plotcp, ale bez dalších informací. První obrázek ukazuje, jak stoupá koeficient determinace (vysvětlená vvariabilita) modelu s jeho složitostí. Plná čára (apparent) ukazuje Analysis of community ecology data in R - https://www.davidzeleny.net/anadat-r/

Last update: 2017/10/11 20:36 cs:cart https://www.davidzeleny.net/anadat-r/doku.php/cs:cart zjevnou vysvětlenou variabilitu, tedy tu kkterou vysvětlí strom o dané velikosti na všech datech. Přerušovaná čára ukazuje na krosvalidovaný odhad koeficientu determinace pro nová data. V našem případě roste kvalita předpovědi modelem na nových datech (z krosvalidace) do velikosti stromu 2, pak opět klesne. par (mfrow = c(1,2)) rsq.rpart (tree.1) Interpretace výsledků krosvalidace není jednoznačná - vypadá to, že bychom mohli vybrat jak velmi jednoduchý strom s dvěmi větvemi, tak i celý strom se sedmi větvemi. Výsledek se navíc v každé analýze bude měnit - zkuste analýzu příkazem rpart několikrát zopakovat, pokaždé dostanete mírně jiný výsledek (je to způsobeno právě krosvalidací, resp. tím, že dělení do 10 podskupin je pokaždé provedeno jinak). prune (library rpart) Pokud se rozhodneme rozsáhlý strom, který vrátila předchozí analýza, zjednodušit (prořezat) podle výsledků krosvalidace, použijeme k tomu příkaz prune z knihovny rpart. Argument cp v této funkci představuje copmplexity parameter, vyjadřující složitost stromu který se má zachovat - najdete ho na horizontální ose v obrázku vygenerovaném funkcí plotcp 2) : tree.2 <- prune (tree.1, cp = 0.085) draw.tree (tree.2, nodeinfo = T, digits = 1) https://www.davidzeleny.net/anadat-r/ Printed on 2019/03/31 17:38

2019/03/31 17:38 7/8 Klasifikační a regresní stromy Rozšiřující informace Podrobný popis, jak spočítat regresní a klasifikační stromy v R, najdete ve skriptech Petra Šmilauera Moderní regresní metody v kapitole 7 (pdf). Velmi detailní rozbor problematiky rozhodovacích stromů s teorií týkající se i dalších metod najdete ve skriptech Kláry Komprdové Rozhodovací stromy a lesy (pdf). Cvičení 1 Vypočtěte klasifikační strom, ve kterém bude vysvětlovaná proměnná zařazení vegetačních snímků do vegetačního typy, a vysvětlující proměnné budou abundance jednotlivých druhů v druhové matici. Použijte soubor dat z údolí Vltavy. Klasifikace jednotlivých snímku do vegetačních typů je obsažena v proměnné GROUP v datovém rámcí vltava.env. Druhová data před použitím odmocněte. Nakreslete Analysis of community ecology data in R - https://www.davidzeleny.net/anadat-r/

Last update: 2017/10/11 20:36 cs:cart https://www.davidzeleny.net/anadat-r/doku.php/cs:cart klasifikační strom pomocí funkce draw.tree. Nápověda: použijte funkci rpart. Na levé straně rovnice bude proměnná vltava.env$group - pozor ale, proměnnou je třeba zadat jako faktor, tedy obalit funkcí as.factor, jinak bude použita jako proměnná kvantitativní a výsledný strom bude regresní, ne klasifikační. Řešení cvičení 1) Průměrné Ellenbergovy indikační hodnoty jsou vypočtené ze stejných dat, jako počty druhů, které budou v následující analýze použity jako závislá proměnná. Tím, že vysvětlující (průměrné Ell. hodnoty) i závislá proměnná na sobě nejsou nezávislé dává následující analýza příliš optimistické výsledky - rozumněj příliš vysoké hodnoty vysvětlené variability. Pokud nám jde jen o popis vztahu, pak to nejspíš nevadí. Není ale možné v analýze průměrné EIH míchat s jinými, měřenými faktory prostředí, protože průměrné EIH se právě díky nezávislosti budou tvářit jako lepší proměnné a budou umístěny výše ve stromu. Více k této problematice zde a zde. 2) jinak škálovanou hodnotu CP najdete také ve výpisu funkce summary - pro příkaz prune je ale třeba používat hodnoty z grafu From: https://www.davidzeleny.net/anadat-r/ - Analysis of community ecology data in R Permanent link: https://www.davidzeleny.net/anadat-r/doku.php/cs:cart Last update: 2017/10/11 20:36 https://www.davidzeleny.net/anadat-r/ Printed on 2019/03/31 17:38