Rozhodovací stromy a jejich konstrukce z dat

Podobné dokumenty
Rozhodovací stromy a jejich konstrukce z dat

Učení z klasifikovaných dat

3.1 Úvod do problematiky

Výpočetní teorie strojového učení a pravděpodobně skoro správné (PAC) učení. PAC učení 1

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

DATA MINING KLASIFIKACE DMINA LS 2009/2010

Pravděpodobně skoro správné. PAC učení 1

Testování modelů a jejich výsledků. Jak moc můžeme věřit tomu, co jsme se naučili?

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

Testování modelů a jejich výsledků. Jak moc můžeme věřit tomu, co jsme se naučili?

Testování modelů a jejich výsledků. tomu, co jsme se naučili?

Dobývání znalostí. Doc. RNDr. Iveta Mrázová, CSc. Katedra teoretické informatiky Matematicko-fyzikální fakulta Univerzity Karlovy v Praze

Obsah přednášky Jaká asi bude chyba modelu na nových datech?

UČENÍ BEZ UČITELE. Václav Hlaváč

Projekční algoritmus. Urychlení evolučních algoritmů pomocí regresních stromů a jejich zobecnění. Jan Klíma

Hledání kořenů rovnic jedné reálné proměnné metoda půlení intervalů Michal Čihák 23. října 2012

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

12. Globální metody MI-PAA

Chybějící atributy a postupy pro jejich náhradu

Předzpracování dat. Lenka Vysloužilová

Jana Vránová, 3. lékařská fakulta UK

PQ-stromy a rozpoznávání intervalových grafů v lineárním čase

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

Katedra kybernetiky laboratoř Inteligentní Datové Analýzy (IDA) Katedra počítačů, Computational Intelligence Group

přetrénování = ztráta schopnosti generalizovat vlivem přílišného zaměření klasifikátorů na rozeznávání pouze konkrétních trénovacích dat

Rozhodovací pravidla

Moderní systémy pro získávání znalostí z informací a dat

Strojové učení Marta Vomlelová

5.1 Rozhodovací stromy

Získávání znalostí z dat

Rozhodovací stromy. Úloha klasifikace objektů do tříd. Top down induction of decision trees (TDIDT) - metoda divide and conquer (rozděl a panuj)

Usuzování za neurčitosti

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

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

Statistická teorie učení

ANALÝZA A KLASIFIKACE DAT

Přednáška 13 Redukce dimenzionality

Kybernetika a umělá inteligence, cvičení 10/11

Náhodné chyby přímých měření

Úloha - rozpoznávání číslic

Rozdělování dat do trénovacích a testovacích množin

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

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

Modely Herbrandovské interpretace

8 Přednáška z

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

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

Hodnocení klasifikátoru Test nezávislosti. 14. prosinec Rozvoj aplikačního potenciálu (RAPlus) CZ.1.07/2.4.00/

Zdůvodněte, proč funkce n lg(n) roste alespoň stejně rychle nebo rychleji než než funkce lg(n!). Symbolem lg značíme logaritmus o základu 2.

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

KMA/P506 Pravděpodobnost a statistika KMA/P507 Statistika na PC

Grafika na počítači. Bc. Veronika Tomsová

Testování statistických hypotéz

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Lineární klasifikátory

State Space Search Step Run Editace úloh Task1 Task2 Init Clear Node Goal Add Shift Remove Add Node Goal Node Shift Remove, Add Node

Úvod do mobilní robotiky AIL028

Pravděpodobnost a statistika, Biostatistika pro kombinované studium. Tutoriál č. 5: Bodové a intervalové odhady, testování hypotéz.

xrays optimalizační nástroj

Umělá inteligence II

Mann-Whitney U-test. Znaménkový test. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek

sin(x) x lim. pomocí mocninné řady pro funkci sin(x) se středem x 0 = 0. Víme, že ( ) k=0 e x2 dx.

10. cvičení z PST. 5. prosince T = (n 1) S2 X. (n 1) s2 x σ 2 q χ 2 (n 1) (1 α 2 ). q χ 2 (n 1) 2. 2 x. (n 1) s. x = 1 6. x i = 457.

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

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

Binární vyhledávací stromy pokročilé partie

PRAVDĚPODOBNOST A STATISTIKA. Neparametrické testy hypotéz čast 1

Prohledávání svazu zjemnění

Stromy, haldy, prioritní fronty

Automatizace je proces při němž je řídicí funkce člověka nahrazována činností

2 Hlavní charakteristiky v analýze přežití

Matematika pro informatiky

Algoritmy a struktury neuropočítačů ASN - P11

Trénování sítě pomocí učení s učitelem

VZOROVÝ TEST PRO 3. ROČNÍK (3. A, 5. C)

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od jara 2016

AVDAT Mnohorozměrné metody, metody klasifikace Shluková analýza

13 Barvy a úpravy rastrového

Počítačové šachy. Otakar Trunda

Popis metod CLIDATA-GIS. Martin Stříž

4. NP-úplné (NPC) a NP-těžké (NPH) problémy

Vlastnosti a modelování aditivního

MATEMATICKÁ STATISTIKA. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Dynamické programování

Dnes budeme učit agenty, jak zlepšit svůj

Pravděpodobnost a statistika I KMA/K413

Křivky a plochy technické praxe


Modely teorie grafů, min.kostra, max.tok, CPM, MPM, PERT

Úvod do mobilní robotiky AIL028

NPRG030 Programování I, 2018/19 1 / :03:07

NMAI059 Pravděpodobnost a statistika

8. Strojové učení. Strojové učení. 16. prosince Václav Matoušek. 8-1 Úvod do znalostního inženýrství, ZS 2014/15

Lineární funkce, rovnice a nerovnice

Cvičná bakalářská zkouška, 1. varianta

Základy matematické analýzy

1. Chyby vstupních dat metody převedení úlohy na numerickou (řád použité metody) zaokrouhlovací reprezentace čísel v počítači

Asociační i jiná. Pravidla. (Ch )

Ukážeme si lineární algoritmus, který pro pevné k rozhodne, zda vstupní. stromový rozklad. Poznamenejme, že je-li k součástí vstupu, pak rozhodnout

Učící se klasifikátory obrazu v průmyslu

Transkript:

Rozhodovací stromy a jejich konstrukce z dat

Příklad počítačová hra. Můžeme počítač naučit rozlišovat přátelské a nepřátelské roboty? Učení s učitelem: u některých už víme, jakou mají povahu (klasifikace) Neparametrická úloha: Nic nevíme o pravděpodobnostní distribuci jednotlivých objektů 2

Příklad počítačová hra 1. Můžeme se naučit roboty rozlišit na základě krátké zkušenosti? přátelští nepřátelští 3

Reprezentace úlohy pomocí atributů Klasifika ce Usmíva_se kravata tělo hlava v_ruce přítel ano ano kruh 3úhelník nic Můžeme navrhnout odpovídající klasifikační algoritmus? přítel ne ne 3úhelník 3úhelník balon nepřítel ne ano čtverec 3úhelník balón nepřítel ne ano čtverec kruh meč přítel ano ne 3úhelník kruh květ přítel ano ano kruh kruh nic nepřítel ano ne čtverec čtverec nic nepřítel ne ne kruh kruh meč přátelští nepřátelští Vyhledávání v tabulce, 4

Rozhodovací strom 1 pro danou množinu příkladů Klasifika ce Usmíva_se kravata tělo hlava v_ruce přítel ano ano kruh 3úhelník nic přítel ne ne 3úhelník 3úhelník balon nepřítel ne ano čtverec 3úhelník balón kravata nepřítel ne ano čtverec kruh meč přítel ano ne 3úhelník kruh květ ano úsměv ne přítel ano ano kruh kruh nic nepřítel ano ne čtverec čtverec nic nepřítel ne ne kruh kruh meč tělo ano ne jiné přítel nepřítel nepřítel přítel 5

Rozhodovací strom 2 pro tutéž množinu příkladů hlava Klasifika ce Usmíva_se kravata tělo hlava v_ruce přítel ano ano kruh 3úhelník nic přítel ne ne 3úhelník 3úhelník balon nepřítel ne ano čtverec 3úhelník balón nepřítel ne ano čtverec kruh meč přítel ano ne 3úhelník kruh květ přítel ano ano kruh kruh nic úsměv nepřítel nepřítel ano ne čtverec čtverec nic nepřítel ne ne kruh kruh meč ano ne přítel kravata úsměv ano ne ano ne nepřítel 6 přítel přítel nepřítel

Rozhodovací strom 3 pro tutéž množinu příkladů Klasifika ce Usmíva_se kravata tělo hlava v_ruce přítel ano ano kruh 3úhelník nic Který strom je lepší a jak jej najdeme? přítel ne ne 3úhelník 3úhelník balon nepřítel ne ano čtverec 3úhelník balón nepřítel ne ano čtverec kruh meč přítel ano ne 3úhelník kruh květ přítel ano ano kruh kruh nic nepřítel ano ne čtverec čtverec nic nepřítel ne ne kruh kruh meč tělo ano přítel v_ruce nepřítel meč nic 7 nepřítel přítel

Klasifikace úsměv kravata tělo hlava v_ruce přítel ano ano kruh 3úhelník nic přítel ne ne 3úhelník 3úhelník balon nepřítel ne ano čtverec 3úhelník balón nepřítel ne ano čtverec kruh meč přítel ano ne 3úhelník kruh květ přítel ano ano kruh kruh nic nepřítel ano ne čtverec čtverec nic nepřítel ne ne kruh kruh meč Souhrn úsměv Kravata tělo=3úh. hlava=3úh v_r.=nic významu atributů Ano:3P,1N Ne: 1P,3N Ano:2P,2N Ne: 2P,2N Ano:2P,0N Ne: 2P,4N Ano:2P,1N Ne:2P,3N Ano:2P,1N Ne: 2P,3N 8

Indukce rozhodovacího stromu z trénovací množiny dáno: S... trénovací množina (množina klasifikovaných příkladů) 1. Nalezni "nejlepší" atribut at 0 (t.j. atribut, jehož hodnoty nejlépe diskriminují mezi pozitivní a neg. příklady) pro S a tím ohodnoť kořen vytvářeného stromu. 2. Rozděl množinu S na podmnožiny S 1,S 2,...,S n podle hodnot atributu at 0 a pro každou množinu příkladů S i vytvoř nový uzel jako následníka právě zpracovávaného uzlu (kořenu) 3. Pro každý nově vzniklý uzel s přiřazenou podmnožinou S i proveď: Jestliže všechny příklady v S i mají tutéž klasifikaci (všechny jsou pozitivní nebo všechny jsou negativní), pak uzel odp. množině S i je prohlášen za list vytvářeného rozhodovacího stromu (a tedy se už dále nevětví) a získává příslušné ohodnocení, jinak jdi na bod 1 s tím, že S : = S i. 9

Entropie množiny M vzhledem k dané klasifikaci Posuzuje různorodost klasifikace prvků z množiny M Nechť klasifikaci představuje atribut y, který má jen 2 hodnoty {0,1}. Pak označme M 0 = {z M : z y = 0} a M 1 = {z M : z y = 1} Entropy(M ) = - M 0 / M * log 2 M 0 / S - M 1 / M * log 2 M 1 / M, kde A označuje mohutnost množiny A Je-li M 0 =, pak Entropy (M )=0 Je-li M 0 = M 1, pak Entropy (M )=1 Je-li M 0 = 1, pak Entropy (M )= 0 10

Volba nejlepšího atributu pro množinu příkladů S vzhledem k dané klasifikaci Kriterium minimální entropie rozkladu (KMER) Nechť at je pevně zvolený atribut, který může nabývat hodnot v 1 až v n. Označme S i = {z S : z at = v i } podmnožinu S, která obsahuje právě ty objekty, které v atributu at mají hodnotu v i Vážená entropie E(S,at) rozkladu S podle hodnot atributu at charakterizuje čistotu klasifikace v jednotlivých složkách rozkladu S a je definována E(S,at) = n i=1 S i / S * E(S i ) KMER vypočte E(S,at) pro všechny atributy at a jako nejlepší atribut at 0 zvolí ten z nich, pro který je hodnota E(S,at 0 ) nejmenší 11

Základní algoritmus ID3 Realizuje prohledávání prostoru všech stromů, které lze zkonstruovat v jazyku trénovacích dat : shora dolů s použitím hladové strategie Volba atributu pro větvení na základě charakterizace (ne)homogenity nově vzniklého pokrytí (používají se různé míry), např.: Kriterium minimalní entropie rozkladu Informační zisk (gain) odhaduje předpokládané snížení entropie pro pokrytí vzniklé použitím hodnot odpovídajícího atributu 12

Nebezpečí použití kriteria KMER Co se stane, pokud některý atribut má hodně skoro unikátních hodnot, které takřka jednoznačně charakterizují každý trénovací příklad? Například pro rodné číslo je S i = 1 a tedy E(S i ) = 0 a E(S, rodne_cislo ) = 0 Tento agrument je tedy kriteriem KMER vybrán jako nejlepší! Je takový atribut opravdu užitečný pro testovací data? 13

Nebezpečí použití kriteria KMER Co se stane, pokud některý atribut má hodně skoro unikátních hodnot, které takřka jednoznačně charakterizují každý trénovací příklad? Například pro rodné číslo je S i = 1 a tedy E(S i ) = 0 a E(S, rodne_cislo ) = 0 Tento agrument je tedy kriteriem KMER vybrán jako nejlepší! Je takový atribut opravdu užitečný pro testovací data? Ne, má malou generalizační schopnost! Nebylo by vhodné takovou situaci nějak penalizovat? JAK? Zde (pro KMER = 0) nepomůže multiplikatiční koeficient! Raději využijeme hodnotu doplňkovou, kterým je kriterium zisku: Gain E(S,at) = E(S) - E(S,at) = E(S) - n i=1 S i / S * E(S i ) 14

Jak charakterizovat rozklad množiny S na c disjunktních podmnožin S i podle všech hodnot uvažovaného atributu A? SplitInformation odpovídá entropii rozdělení S podle všech hodnot atributu A (ignoruje klasifikaci). Např. je-li S i =1 pro všechna i (c +1), je jeho hodnota rovna (log 2 c ). Používá se pro výpočet GainRatio, který penalizuje atributy s příliš mnoha hodnotami: 15

Volba atributů a významné speciální situace Reálné hodnoty. používá se diskretizace Různé ceny pro získání hodnoty atributu 16

Volba atributů a speciální situace 1 Reálné hodnoty používá se diskretizace JAK SE VOLÍ VHODNÉ MEZNÍ HODNOTY? Vhodné řešení (Fayyad 91): Uspořádejte příklady podle velikosti zpracovávaného atributu a zvolte jako kandidátní mezní hodnoty ty, které leží v intervalu, kde se mění klasifikace. Hodnota, která maximalizuje Gain, je nutně jednou z nich. 17

Volba atributů a speciální situace 2 Různé ceny pro získání hodnoty atributu. Určíme-li cenu Cost(A) v intervalu <0,1>, pak použijeme změněné kriterium, např. 18

19 Postup prohledávání

Vlastnosti ID3: důsledky postupu prohledávání Pro klasifikační úlohu s diskrétními atributy je prohledávaný prostor hypotéz úplný (tj. je schopný reprezentovat libovolnou možnou cílovou funkci) --> existuje mnoho hypotéz konzistentních s daty! Aktuální množina hypotéz je vždy jednoprvková (hladová volba následníka), nelze jej tedy použít pro odpověď na dotaz kolik je alternativních stromů konzistentních s daty? Nepoužívá zpětný chod --> možnost uvíznutí v lokálním optimu Rozhoduje se na základě všech příkladů (nikoliv inkrementálně) --> metoda není příliš ovlivněna šumem 20

Kdy je vhodné použít algoritmy pro konstrukci rozhodovacího stromu? Cílová funkce má diskrétní hodnoty (jedná se o klasifikační problém) Instance trénovacích dat mají jednotný formát popisující hodnoty atributů Trénovací data mohou být zašuměná Obsahovat chybějící hodnoty Je potřeba reprezentovat disjunkci podmínek (pravidla) 21

Proč dáváme přednost jednoduchým hypotézám? Argument : Jednoduchých hypotéz je výrazně méně než složitých. Proto, pokud některé z jednoduchých h. data odpovídají, pak asi nejde o náhodný jev Occamova břitva : Nejlepší hypotéza je ta nejjednodušší, která odpovídá datům. Související problémy: - proč zrovna tato malá množina? - pozor na použitý jazyk! 22 William of Ockham, born in the village of Ockham in Surrey (England) about 1285, was the most influential philosopher of the 14th century and a controversial theologian. witten & eibe

Otázky související s ID3 Jak velké stromy konstruovat? Až do pokrytí všech příkladů? Co s přeučením? Spojitý definiční obor atributů Metody volby nejvhodnějšího atributu Atributy o různých cenách Chybějící hodnoty??? 23

Přeučení Nechť H je prostor hypotéz. Hypotéza h H je přeučená, pokud exituje jiná hypotéza h1 H taková, že chyba h na trénovacích datech je menší než chyba h1, avšak na celém prostoru instancí uvažovaných objektů je chyba h1 menší než chyba h Často pozorovaná vlastnost zkonstruovaných stromů 24

Jak se vyhnout přeučení? Jak zvolit správnou velikost stromu? Jak takový strom získat? 1. Zastavit růst stromu dřív než jsou vyčerpána všechna trénovací data 2. Prořezávání hotového stromu ukazuje se jako zvlášť užitečné! Volba vhodného prořezání pomocí validační množiny dat (vybraná nezávisle, tedy bez náhodných vlivů případně přítomných v trénovacích datech). Algoritmus prořezávání redukce chyby : Vyberte uzel, odstraňte podstrom, v něm začínající a přiřaďte většinovou klasifikaci. Pokud se chyba na validačních datech zmenšila proveďte uvedené proříznutí (ze všech možností vyberte tu s největším zlepšením). 25

Hodnocení přesnosti klasifikace v závislosti na složitosti použitého stromu Výsledky na hladké linii odpovídají stromům získaným prořezáním tak, jak bylo otestováno na validačních datech (jiná než testovací!!!) 26

Rozhodovací strom jako logický výraz Klasifika ce Usmíva_se kravata tělo hlava v_ruce přítel ano ano kruh 3úhelník nic přítel ne ne 3úhelník 3úhelník balon nepřítel ne ano čtverec 3úhelník balón kravata nepřítel ne ano čtverec kruh meč přítel ano ne 3úhelník kruh květ ano Usmívá_se ne přítel ano ano kruh kruh nic nepřítel ano ne čtverec čtverec nic nepřítel ne ne kruh kruh meč tělo ano ne jiné přítel nepřítel nepřítel přítel (Kravata=ano & usmívá_se=ano) V (Kravata=ne & tělo=3úh.) -> přítel 27

Závěrečné prořezávání pravidel (rule post-pruning) použité v C4.5 1. Vytvořte přeučený rozhodovací strom 2. Zapište výsledný strom ve tvaru disjunkce pravidel (každá větev = jedno pravidlo) 3. Každé jednotlivé pravidlo co nejvíc prořežte (odstraní se postupně ty podmínky, které nezhorší jeho klasifikační přesnost) 4. Uspořádejte výsledná pravidla podle jejich odhadnuté přesnosti a dále je používejte jako rozhodovací seznam Odhad přesnosti pravidla na validační množině (= relativní počet správných závěrů) na trénovacích datech (= pesimistický odhad počtu správých závěrů za předpokladu binomického rozdělení ) 28

Klasifikace metodou n nejbližších sousedů Pro nový objekt je vypočtena vzdálenost od všech objektů v trén. příkl. Je nalezeno všech n trén. příkladů (= množina T n ), které jsou k novému objektu nejblíž. Nový objekt získá klasifikaci, která je v T n nejčastější. Možné zobecnění: hledá se nejlepší vážicí koeficient pro jednotlivé atributy. 29

30 Příklad: Létání na simulátoru F16 Úkol: sestavit řídící systém pro ovládání leteckého simulátoru F16 tak, aby splnil předem definovaný plán letu daný takto: 1. vzlet a výstup do výšky 2000 stop 2. let v dané výšce směrem N do vzdálenosti 32000 stop od místa startu 3. zahnout vpravo v kurzu 330 4. ve vzdálenosti 42000 stop od místa startu (ve směru S-N) provést obrat vlevo a zamířit zpět do místa startu (obrat je ukončen při kurzu mezi 140 a 180 ) 5 vyrovnat směr letu s přistávací dráhou, tolerance 5 pro kurz a 10 pro výchylku křídel oproti horizontu 6. klesat směrem k počátku přistávací dráhy 7. přistát Trénovací data: 3x30 letů (od 3 pilotů). Každý let popsán pomocí 1000 záznamů (poloha a stav letounu, pilotem provedený řídící zásah)

on_gound g_limit wing_stall Záznam: Poloha a stav boolean: je letadlo na zemi? boolean: je překročen g limit letadla? boolean: je letadlo stabilní? twist integer: 0-360, výchylka křídel vůči obzoru elevation azimuth roll_speed elev_speed integer: 0-360, výchylka trupu vůči obzoru integer: 0-360, směr letu integer: 0-360, rychlost změny výchylky křídel [ /s] integer: 0-360, rychlost změny výchylky trupu [ /s] azimuth_speedinteger: 0-360, rychlost změny kurzu [ /s] airspeed climbspeed 31 integer: rychlost letadla v uzlech integer: rychlost změny výšky [stop/s]

E/W distance N/S distance fuel Řízení: rollers elevator thrust flaps Záznam: Poloha a stav + Řízení real: vzdálenost ve směru východ-západ od místa startu real: vzdálenost ve směru sever-jih od místa startu integer: váha paliva v librách real: nastavení ovladače horizontálního vychýlení real: nastavení ovladače vertikálního vychýlení integer: 0-100%, plyn integer: 0, 10 nebo 20, nastavení křídlových lopatek Každá ze 7 fází letu vyžaduje vlastní typ řízení (jiné zásahy pilota): trénovací příklady rozděleny do 7 odpovídajících skupin. V každé skupině je zkonstruován zvlášť rozhodovací strom pro každý typ řídícího zásahu (rollers, elevator, thrust, flaps), t.j. 7 x 4 stromů 32

Zkuste navrhnout nejjednodušší klasifikační algoritmus přátelští nepřátelští 33