
decision trees.ppt
- Количество слайдов: 33
Data Mining Labs Деревья Решений
2 Зачем нужны деревья решений? ü Простые ü Наглядные ü «Белый ящик» ü Быстрые ü Работают с любыми данными ü ≈Робастны DM Labs
3 Зачем нужны деревья решений? Зачем? × Простые × Слабые × Эвристическое обучение (NP-complete) × →разные деревья для похожих данных DM Labs
4 CART, история CART • CART “Classification and Regression Trees” Breiman Friedman Olsen & Stone • CART придумали для knn http: //www. youtube. com/watch? v=8 hup. Hm. BVvb 0 • Альтернативные алгоритмы: ID 3 C 4. 5 ID 5 CART DM Labs
5 Из чего состоит дерево? DM Labs Дерево • Узлы (сплит) – условие Пил яд? bool o Условия бинарные: >? , == o Условия только по одной переменной ок Цианид? не полоний, не мышьяк • Ветки – True/False • Листья – константы o Регрессия: число Больше 1 мг? ок numeric o Классификация: метка/число не ок ок
6 Из чего состоит дерево? DM Labs Дерево • Узлы (сплит) – условие Пил яд? bool o Условия бинарные: >? , == o Условия только по одной переменной • Ветки – True/False Цианид? не полоний, не мышьяк • Листья – константы o Регрессия: число o Классификация: метка/число Больше 1 мг? numeric
7 Как вырастить дерево? DM Labs Как вырастить дерево? Learning? • Дерево недифференцируемо • Допустим у нас 100 бинарных переменных. . . Надо ли париться? • Жадная схема • Наверное не лучшое дерево, но и так сойдет
8 Как вырастить дерево? DM Labs Как вырастить дерево? 1. Как делать сплиты? 2. Когда остановиться со сплитами? ~дошли до листьев 3. Что записывать в лист?
9 Откуда брать сплиты? Как делать сплиты? DM Labs • Нужно уметь сравнивать узлы – кого лучше рассекать. Задать меру. • Мера должна достигать максимума, если в узле поровну всех классов (хуже будет). • Должна быть нулем, если в узле все одного класса (лучше не сделать).
10 Меры (не)хорошести сплитов Как делать сплиты? DM Labs • Нужно уметь сравнивать узлы – кого лучше рассекать. Задать меру (не)хорошести. 1. Misclassification Rate 2. Entropy 0 log 0 = 0 p=(p 1, p 2, …. pn) 3. Gini Index
11 Меры (не)хорошести сплитов Как делать сплиты? DM Labs • Нужно уметь сравнивать узлы – кого лучше рассекать. Задать меру (не)хорошести. 1. Misclassification Rate 2. Entropy 3. Gini Index
12 Проблемы с Misclassification Rate Меры (не)хорошести • Первая – самая логичная, НО: o МБ ни один сплит ее не улучшает. . 40% B 60% A 40% B Split 1 Split 2 DM Labs
13 Проблемы с Misclassification Rate Меры (не)хорошести DM Labs • Первая – самая логичная, НО: o МБ она будет одинаковой для двух сплитов, а один из них определенно лучше 400 A 400 B ИЛИ? 400 A 400 B 300 A 100 A 200 A 100 B 300 B 400 B 0 B
14 Хорошесть дерева DM Labs • Сумма хорошестей по узлам помноженная на %точек в узле 400 A 400 B ИЛИ? 400 A 400 B 300 A 100 A 200 A 100 B 300 B 400 B 0 B
15 Хорошесть дерева DM Labs # точек p классов A A B p. A p. B p 2 A p 2 B 1 - p 2 A- p 2 B 0. 5 0. 25 0. 5 400 B 400 Gini Index
16 Хорошесть дерева Хорошесть # точек A дерева p классов B Gini Index A p. B p 2 A p 2 B Вклад в дерево B p. A DM Labs 1 - p 2 A - p 2 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. 3333 200 0 1 0 0 0 Total 0. 3333
17 Построение сплитов DM Labs • Наделать кандидатов в листья: o для всех сплитов, o для каждой переменной, o рекурсивно • Выбрать сплит с наибольшим сниженим Gini Index. • Внутрь – метку класса с majority vote или среднее
18 Построение сплитов DM Labs • Продолжаем процесс пока есть что сплитить Тоесть, в листья осталось достаточно точек • Лучше отрастить дерево, а потом сделать из него аккуратный куст o. . . Если мы сразу не растили пень. . .
19 Игрушечный пример Пример, игрушечный • Надо выбрать по какой переменной делать сплит • Берем оба кандидата, ищем оптимальный сплит, сравниваем • Записываем majority vote/ среднее DM Labs
20 Игрушечный пример Пример, игрушечный • Получаем что-то такое (R пакет rpart) • Каждый сплит локально-оптимален DM Labs
21 Игрушечный пример Пример, игрушечный : ( DM Labs
22 Пример классификации спама Пример, spam DM Labs
23 Упрощение дерева DM Labs • Проверять наилучшую глубину лучше с помощью кросс-валидации. Source: CART by Breiman et al.
24 Упрощение дерева DM Labs • Проверять наилучшую глубину с помощью кроссвалидации. • Вводится параметр complexity. Варьируя его будет оставаться меньше листьев. Source: CART by Breiman et al.
25 Summary DM Labs • Дерево это хороший и наглядный инструмент анализа • Скорее всего оно будет не самым-оптимальным • Оно простое, но предсказательной силы может не хватить • Оно простое, поэтому его быстроить и быстро использовать • Обычно строится в глубину, а потом срезается подстать какому-то критерию
26 Случайный лес DM Labs
27 Случайный лес DM Labs kaggle cart cart cart cart cart cartcart cart cart cartcart cart cart cart cart cart cart cart cart cart cart cart
28 Зачем нужен RF? Случайный лес DM Labs Random Forest = Bagging с деревьями (Breiman et al. ) • Очень простой алгоритм • Просто паралеллить • Отличная точность (kaggle-рецепт) • Быстрый (по сравнению с neural committee) Реализует принцип «мудрость толпы» .
29 Идея RF Идея DM Labs • Строим много моделей. По-хорошему, разных, на разных dataset’ах. С высоким variance и приемлимым bias. • Усредняем – получаем низкое и то и другое. • Если ошибки моделей некоррелированы, ошибка должна уменьшится в М раз (по отношению к составляющим ансамбль моделям). • На практике оно коррелировано, но эффект есть
30 Алгоритм RF Случайный лес Алгоритм: For i in 1. . M: 1. Делаем бутстрап-выборку данных. 2. Строим на ней дерево. 3. Кладем полученное дерево в ансамбль. Использование: 1. Делаем прогноз всех M деревьев 2. Усредняем / делаем Majority Vote DM Labs
31 Дерево в лесу Случайный лес DM Labs Деревья используют по-разному: • Любой попавшийся алгоритм • ID 5 например строит более «широкую» сетку, не глубоко. Cubist – RF c ID 5 • Строят «до упора» - R random. Forest • Строят до заданного уровня (не парятся над глубиной)
32 История методов ML Случайный лес DM Labs State-of-the-art, широкий класс задач: • 1980 -90 -ые: Нейросети • 2000 -ые, начало: SVM • 2000 -ые, конец: Random Forest • 2010 -ые: Random Forest /GBM • Сейчас: Deep Learning? Его скоро разберут на части и вставят в RF
33 Summary • . . . Summary Случайный лес DM Labs
decision trees.ppt