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

Preview:

DESCRIPTION

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

Citation preview

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

Простые

Наглядные

«Белый ящик»

Быстрые

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

≈Робастны

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

Зачем?

× Простые

× Слабые

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

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

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

CART• CART “Classification and Regression Trees”

Breiman Friedman Olsen & Stone

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

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

DM Labs4 CART, история

Дерево

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

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

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

• Ветки – True/False

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

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

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

Пил яд?bool

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

Больше 1мг?numeric

ок

ок

не ок

ок

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

Дерево

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

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

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

• Ветки – True/False

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

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

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

Пил яд?bool

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

Больше 1мг?numeric

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

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

Learning?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Меры (не)хорошести сплитов

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

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

1. Misclassification Rate

2. Entropy

3. Gini Index

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

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

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

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

40% B 60% A

60% A 40% B

Split 2

Split 1

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

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

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

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

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

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

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 Хорошесть дерева

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

# точек 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 Хорошесть дерева

# точек 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 Хорошесть дерева

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

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

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

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

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

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

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

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

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

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

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

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

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 Игрушечный пример

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 Игрушечный пример

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

:(

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

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

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

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

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 Упрощение дерева

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

валидации.

• Вводится параметр 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 Упрощение дерева

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

анализа

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

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

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

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

DM Labs25 Summary

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

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

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 Случайный лес

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

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

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

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

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

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

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

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

Идея

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

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

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

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

DM Labs29 Идея RF

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

Алгоритм:

For i in 1..M:

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

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

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

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

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

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

DM Labs30 Алгоритм RF

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

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

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

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

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

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

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

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

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

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

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

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

• 2010-ые: Random Forest /GBM

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

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

Summary• ...

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

Recommended