33
Data Mining Labs Деревья Решений

Деревья решений

Embed Size (px)

DESCRIPTION

Презентация "Деревья решений" от образовательной программы Data Mining Track компании Data Mining Labs

Citation preview

Page 1: Деревья решений

Data Mining LabsДеревья Решений

Page 2: Деревья решений

Простые

Наглядные

«Белый ящик»

Быстрые

Работают с любыми данными

≈Робастны

DM Labs2Зачем нужны деревья решений?

Page 3: Деревья решений

Зачем?

× Простые

× Слабые

× Эвристическое обучение (NP-complete)

× →разные деревья для похожих данных

DM Labs3Зачем нужны деревья решений?

Page 4: Деревья решений

CART• CART “Classification and Regression Trees”

Breiman Friedman Olsen & Stone

• CART придумали для knnhttp://www.youtube.com/watch?v=8hupHmBVvb0

• Альтернативные алгоритмы:ID3C4.5ID5CART

DM Labs4 CART, история

Page 5: Деревья решений

Дерево

• Узлы (сплит) – условие

o Условия бинарные: >?, ==

o Условия только по одной переменной

• Ветки – True/False

• Листья – константы

o Регрессия: число

o Классификация: метка/число

Пил яд?bool

Цианид?не полоний, не мышьяк

Больше 1мг?numeric

ок

ок

не ок

ок

DM Labs5 Из чего состоит дерево?

Page 6: Деревья решений

Дерево

• Узлы (сплит) – условие

o Условия бинарные: >?, ==

o Условия только по одной переменной

• Ветки – True/False

• Листья – константы

o Регрессия: число

o Классификация: метка/число

Пил яд?bool

Цианид?не полоний, не мышьяк

Больше 1мг?numeric

DM Labs6 Из чего состоит дерево?

Page 7: Деревья решений

Как вырастить дерево?

Learning?

• Дерево недифференцируемо

• Допустим у нас 100 бинарных переменных...

Надо ли париться?

• Жадная схема

• Наверное не лучшое дерево, но и так сойдет

DM Labs7 Как вырастить дерево?

Page 8: Деревья решений

Как вырастить дерево?

1. Как делать сплиты?

2. Когда остановиться со сплитами? ~дошли до листьев

3. Что записывать в лист?

DM Labs8 Как вырастить дерево?

Page 9: Деревья решений

Как делать сплиты?

• Нужно уметь сравнивать узлы – кого лучше рассекать. Задать меру.

• Мера должна достигать максимума, если в узле поровну всех классов (хуже будет).

• Должна быть нулем, если в узле все одного класса (лучше не сделать).

DM Labs9 Откуда брать сплиты?

Page 10: Деревья решений

Как делать сплиты?

• Нужно уметь сравнивать узлы – кого лучше рассекать. Задать меру (не)хорошести .

1. Misclassification Rate

2. Entropy

3. Gini Index

j

jj pppH log)(0log0 = 0

p=(p1,p2,…. pn)

j

jji

ji ppppi 21)(

DM Labs10 Меры (не)хорошести сплитов

Page 11: Деревья решений

Как делать сплиты?

• Нужно уметь сравнивать узлы – кого лучше рассекать. Задать меру (не)хорошести .

1. Misclassification Rate

2. Entropy

3. Gini Index

DM Labs11 Меры (не)хорошести сплитов

Page 12: Деревья решений

Меры (не)хорошести

• Первая – самая логичная, НО:

o МБ ни один сплит ее не улучшает..

40% B 60% A

60% A 40% B

Split 2

Split 1

DM Labs12Проблемы с Misclassification Rate

Page 13: Деревья решений

Меры (не)хорошести

• Первая – самая логичная, НО:

o МБ она будет одинаковой для двух сплитов, а один из них определенно лучше

400 A 400 B

300 A

100 B

100 A

300 B

ИЛИ?

200 A

400 B

200 A

0 B

400 A 400 B

DM Labs13Проблемы с Misclassification Rate

Page 14: Деревья решений

Хорошесть дерева

• Сумма хорошестей по узлампомноженная на %точек в узле

400 A 400 B

300 A

100 B

100 A

300 B

ИЛИ?

200 A

400 B

200 A

0 B

400 A 400 B

DM Labs14 Хорошесть дерева

Page 15: Деревья решений

Хорошесть дерева

# точек p классов Gini Index

A B A B

pA pB p2A p2

B 1- p2A- p2

B

400 400 0.5 0.5 0.25 0.25 0.5

DM Labs15 Хорошесть дерева

Page 16: Деревья решений

# точек p классов Gini Index Вклад в дерево

A B A B

pA pB p2A p2

B 1- p2A - p2

B

300 100 0.75 0.25 0.5625 0.0625 0.375 0.1875

100 300 0.25 0.75 0.0625 0.5625 0.375 0.1875

Total 0.375

200 400 0.33 0.67 0.1111 0.4444 0.4444 0.3333

200 0 1 0 1 0 0 0

Total 0.3333

Хорошесть дерева DM Labs16 Хорошесть дерева

Page 17: Деревья решений

Построение сплитов

• Наделать кандидатов в листья:o для всех сплитов,

oдля каждой переменной, oрекурсивно

• Выбрать сплит с наибольшим сниженим Gini Index.

• Внутрь – метку класса с majority vote или среднее

DM Labs17 Построение сплитов

Page 18: Деревья решений

Построение сплитов

• Продолжаем процесс пока есть что сплититьТоесть, в листья осталось достаточно точек

• Лучше отрастить дерево, а потом сделать из него аккуратный куст

o ...Если мы сразу не растили пень...

DM Labs18 Построение сплитов

Page 19: Деревья решений

Пример, игрушечный

0 2 4 6 8

02

46

Classifying A or B

x

y

AAA

AAAA

A

AAAA

AA

A

AA

A

AA A

A

A

AA

A

AA

AA

AA

A A

AA

A

A A

AA

A

A

AA

AA

A

A

A

BB

BB

B

BB

B

B

B

B B

B

B B

BB

BB

B

BB

BB

B

B

B

B

B

B

BB

B

B

B

B

B

B

BB

B B

B

B

B

B

B

B

B

B

• Надо выбрать по какой переменной делать сплит

• Берем оба кандидата, ищем оптимальный сплит, сравниваем

• Записываем majority vote/ среднее

DM Labs19 Игрушечный пример

Page 20: Деревья решений

0 2 4 6 8

02

46

Plot showing how Tree works

x

y

AAA

AAAA

A

AAAA

AA

A

AA

A

AA A

A

A

AA

A

AA

AA

AA

A A

AA

A

A A

AA

A

A

AA

AA

A

A

A

BB

BB

B

BB

B

B

B

B B

B

B B

BB

BB

B

BB

BB

B

B

B

B

B

B

BB

B

B

B

B

B

B

BB

B B

B

B

B

B

B

B

B

B

Пример, игрушечный

|x< 2.808

y>=2.343 y>=3.442

A B A B

• Получаем что-то такое (R пакет rpart)

• Каждый сплитлокально-оптимален

DM Labs20 Игрушечный пример

Page 21: Деревья решений

Пример, игрушечный

:(

DM Labs21 Игрушечный пример

Page 22: Деревья решений

Пример, spam DM Labs22Пример классификации спама

Page 23: Деревья решений

Упрощение дерева• Проверять наилучшую глубину лучше с помощью

кросс-валидации.

Misclassification Rates

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 10 20 30 40 50 60 70 80

Size of the Tree

Erro

r rat

es

Misclassification rateon Training Set

Misclassification rateon Test Set

Source: CART by Breiman et al.

DM Labs23 Упрощение дерева

Page 24: Деревья решений

Упрощение дерева• Проверять наилучшую глубину с помощью кросс-

валидации.

• Вводится параметр complexity. Варьируя его будет оставаться меньше листьев.

Source: CART by Breiman et al.cp

X-v

al R

ela

tive

Err

or

0.2

0.4

0.6

0.8

1.0

Inf 0.32 0.0057 0.003 0.0021 0.0017 0.0011

1 2 3 5 6 9 10 14 17 21 24 26

size of tree

DM Labs24 Упрощение дерева

Page 25: Деревья решений

Summary• Дерево это хороший и наглядный инструмент

анализа

• Скорее всего оно будет не самым-оптимальным

• Оно простое, но предсказательной силы может не хватить

• Оно простое, поэтому его быстро строить и быстро использовать

• Обычно строится в глубину, а потом срезается подстать какому-то критерию

DM Labs25 Summary

Page 26: Деревья решений

Случайный лес DM Labs26 Случайный лес

Page 27: Деревья решений

Случайный лес

cart

cart cart cartcart

cartcart

cartcart

cart

cartcartcartcartcartcart cart cart

cart cartcartcartcart

cart cart cartcart cartcartcartcart

cart cart cartcart cartcartcartcartcart cart cart

cart cartcartcartcart

cart cart cartcart cartcartcartcart

cart cart cartcart cartcartcartcart cart cart cart

cart cartcartcartcart

cart cart cartcart cartcartcartcart

cart cart cartcart cartcartcartcart

kaggle

DM Labs27 Случайный лес

Page 28: Деревья решений

Случайный лес

Random Forest = Bagging с деревьями (Breiman et al.)

• Очень простой алгоритм

• Просто паралеллить

• Отличная точность (kaggle-рецепт)

• Быстрый (по сравнению с neural committee)

Реализует принцип «мудрость толпы».

DM Labs28 Зачем нужен RF?

Page 29: Деревья решений

Идея

• Строим много моделей.По-хорошему, разных, на разных dataset’ах.С высоким variance и приемлимым bias.

• Усредняем – получаем низкое и то и другое.

• Если ошибки моделей некоррелированы, ошибка должна уменьшится в М раз (по отношению к составляющим ансамбль моделям).

• На практике оно коррелировано, но эффект есть

DM Labs29 Идея RF

Page 30: Деревья решений

Случайный лес

Алгоритм:

For i in 1..M:

1. Делаем бутстрап-выборку данных.

2. Строим на ней дерево.

3. Кладем полученное дерево в ансамбль.

Использование:

1. Делаем прогноз всех M деревьев

2. Усредняем / делаем Majority Vote

DM Labs30 Алгоритм RF

Page 31: Деревья решений

Случайный лес

Деревья используют по-разному:

• Любой попавшийся алгоритм

• ID5 например строит более «широкую» сетку, не глубоко. Cubist – RF c ID5

• Строят «до упора» - R randomForest

• Строят до заданного уровня (не парятся над глубиной)

Случайный лес DM Labs31 Дерево в лесу

Page 32: Деревья решений

Случайный лес

State-of-the-art, широкий класс задач:

• 1980-90-ые: Нейросети

• 2000-ые, начало: SVM

• 2000-ые, конец: Random Forest

• 2010-ые: Random Forest /GBM

• Сейчас: Deep Learning? Его скоро разберут на части и вставят в RF

Случайный лес DM Labs32 История методов ML

Page 33: Деревья решений

Summary• ...

Случайный лес DM Labs33 Summary