Aleternativni rozhodovaci stromy

1,528 views

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,528
On SlideShare
0
From Embeds
0
Number of Embeds
69
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Aleternativni rozhodovaci stromy

  1. 1. Alternativn í metody rozhodovací ch strom ů David Filip dejv.eu twitter.com/dejv [email_address]
  2. 2. Osnova <ul><ul><li>R ozhodovací stromy </li></ul></ul><ul><ul><ul><ul><li>Historie, algoritmy, limity </li></ul></ul></ul></ul><ul><ul><li>Alternativní techniky rozhodovacích stromů </li></ul></ul><ul><ul><ul><ul><li>Bagging, boosting, random forest, genetické stromy </li></ul></ul></ul></ul><ul><ul><li>Proudy dat </li></ul></ul><ul><ul><li>Swarm trees </li></ul></ul>
  3. 3. Rozhodovací stromy
  4. 4. Rozhodovací strom <ul><ul><li>Nejsnáze pochopitelná technika ML </li></ul></ul><ul><ul><li>Funguje prakticky na všech typech dat: kategorické, numerické, chybějící , ... </li></ul></ul><ul><ul><li>Velmi snadno vizualizovatelné </li></ul></ul><ul><ul><li>S nadný převod na if-then pravidla </li></ul></ul>
  5. 5. Historie <ul><ul><li>Vznik koncem 70. let </li></ul></ul><ul><ul><li>Ross Quinlan: </li></ul></ul><ul><ul><ul><li>1986 – ID3 </li></ul></ul></ul><ul><ul><ul><li>1993 – C4.5 </li></ul></ul></ul><ul><ul><li>1995 - Random Forest </li></ul></ul>
  6. 6. Obecný algoritmus <ul><ul><li>Zvol jeden atribut jako kořen dílčího stromu </li></ul></ul><ul><ul><li>Rozděl data v tomto uzlu na podmnožiny podle hodnot a přidej uzel pro každou podmnožinu </li></ul></ul><ul><ul><li>Opakuj dokud je co rozdělovat </li></ul></ul><ul><li>Výběr atributu záleží na zvoleném algoritmu, často se používá entropie/informační zisk. </li></ul>
  7. 7. Limity rozhodovacích stromů <ul><ul><li>Učení optimálního rozhodovacího stromu je NP-úplný problém => je třeba využít heuristických algoritmů k nalezení lokálního optima pro každý uzel. </li></ul></ul><ul><ul><li>Generování vede k přeučení (overfitting). Je třeba provádět prořezávání. </li></ul></ul><ul><ul><li>Existují koncepty, které jsou složité pro učení rozhodovacích stromů (např. XOR), vznikají složité stromy. </li></ul></ul>
  8. 8. Benchmark http://videolectures.net/mlas06_cohen_tc/ Dataset: Reuters-21578 newswire stories 9603 train, 3299 test documents, 80-100 words each, 93 classes
  9. 9. Alternativní metody
  10. 10. Leo Breiman <ul><ul><li>1928 – 2005 </li></ul></ul><ul><ul><li>University of California, Berkeley </li></ul></ul><ul><ul><li>Výzkum rozhodovacíh a regresních stromů </li></ul></ul><ul><ul><li>Bagging + Random Forest </li></ul></ul>
  11. 11. Bagging <ul><li>Bootstrap aggregating </li></ul><ul><ul><li>Z trénovacích dat vytvoříme N stejně velkých podmnožin pomocí náhodného výběru s opakováním (= jedna trénovací položka může být vložena vícekrát). </li></ul></ul><ul><ul><li>Na těchto podmnožinách necháme naučit N rozhodovacích stromů. </li></ul></ul><ul><ul><li>Při klasifikaci hlasují o výsledku. </li></ul></ul>
  12. 12. Boosting <ul><ul><li>Iterativně vytváříme nové modely </li></ul></ul><ul><ul><li>Každý nový model se zaměřuje na příklady, které se nepodařilo správně klasifikovat </li></ul></ul><ul><ul><li>Výsledkem iterace vzniká pouze jeden strom </li></ul></ul><ul><li>Známý algoritmus AdaBoost (Shapire, 1999) </li></ul>
  13. 13. Random Forest <ul><ul><li>Kombinace baggingu a náhodného výběru parametrů </li></ul></ul><ul><ul><li>Stromy se neprořezávají </li></ul></ul><ul><ul><li>Zvládá datové soubory s velkým množstvím parametrů a učení je velmi rychlé </li></ul></ul><ul><ul><li>Nevýhoda: overfitting, nepříliš velká úspěšnost pro data s šumem </li></ul></ul>
  14. 14. Genetické Stromy <ul><ul><li>Náhodně vytvoříme množinu minimálních stromů </li></ul></ul><ul><ul><li>Podle výsledku testu vybíráme nejlepší stromy, které rozrůstáme, mutujeme a křížíme </li></ul></ul><ul><ul><li>Opakujeme dokud nezískáme uspokojivý klasifikátor </li></ul></ul><ul><li>Jakub Gajarský, 2009: Efektívne algoritmy pre učenie rozhodovacích stromov </li></ul>
  15. 15. Proudy dat
  16. 16. Typický Přístup k Datům v ML <ul><ul><li>Máme množinu učících příkladů uloženou v paměti či v jiném uložišti. </li></ul></ul><ul><ul><li>Jednotlivé algoritmy mají přístup k těmto datům opakovaně. </li></ul></ul><ul><li>Příklad: C4.5 opakovaně načítá data a hledá, který parametr nejlépe rozdělí množinu. </li></ul>
  17. 17. Proudy dat <ul><ul><li>Proud dat je sekvence jednotlivých příkladů, kde každý příklad může být čten pouze jednou či po nějaký (krátký) časový úsek </li></ul></ul><ul><ul><li>Motivace: potřebujeme jednotlivé případy zpracovávat rychle </li></ul></ul><ul><ul><li>Příklady: bankovní či telefonické transakce, sensorové sítě, síťové logy </li></ul></ul>
  18. 18. Swarm Trees
  19. 19. Very Fast Decission Tree <ul><ul><li>Algoritmus na učení rozhodovacích stromů z proudů dat </li></ul></ul><ul><ul><li>Využívá Hoeffdingovo ohraničení: určuje kolik příkladů je potřeba výběr nejlepšího atributu </li></ul></ul><ul><ul><li>Horší účinnost než jiné metody: potřeba použít na velkých datasetech -> množství dat vždy překoná kvalitu algoritmu (Norvig) </li></ul></ul>
  20. 20. Distribuované učení <ul><ul><li>Učení: vytvořím N VFDT klasifikátorů a ty pak spustím na jednotlivých podstreamech </li></ul></ul><ul><ul><li>Klasifikace: &quot;obešlu&quot; všechny klasifikátory a ty hlasují o výsledné třídě </li></ul></ul>
  21. 21. Swarm Inteligence <ul><ul><li>Inspirováno přírodními koloniemi (např. mravenci, včely) či obecně genetickými algoritmy </li></ul></ul><ul><ul><li>V množině VFDT stromů se snažím vytvářet co nejvíce nehomogení společnost: odstraňuji podobné stromy, čímž podporuju pokrývání celého stavového prostoru </li></ul></ul>

×