SlideShare a Scribd company logo
1 of 36
Download to read offline
Лекция 9
Алгоритмические композиции
Начало
Владимир Гулин
19 ноября 2014 г.
План лекции
Мотивация
Обзор методов построения алгоритмических композиций
Стохастические методы построения алгоритмических композиций
Random Forest
1 / 35
Выбираем ноутбук
Параметры ноутбука
Камень
Память
Видеокарта
Диагональ монитора
и т.д
Воспользуемся экспертным мнением
Консультант в магазине
Сосед “программист”
Друзья
Форумы
2 / 35
Задача обучения с учителем
Постановка задачи
Пусть дан набор объектов D = {(xi , yi )}, xi ∈ X, yi ∈ Y, i ∈ 1, . . . , N,
полученный из неизвестной закономерности y = f (x). Необходимо
построить такую h(x), которая наиболее точно апроксимирует f (x).
Будем искать неизвестную
h(x) = C(a1(x), . . . , aT (x))
ai (x) : X → R, ∀i ∈ {1, . . . , T} - базовые модели
C : R → Y - решающее правило
3 / 35
Простое голосование
Simple Voting
h(x) =
1
T
T
i=1
ai (x)
4 / 35
Взвешенное голосование
Weighted Voting
h(x) =
1
T
T
i=1
bi ai (x), bi ∈ R
5 / 35
Смесь экспертов
Mixture of Experts
h(x) =
1
T
T
i=1
bi (x)ai (x), bi (x) : X → R
6 / 35
Топологические композиции
Модельные деревья решений (Model decision trees)
Поместим в листья деревьев какие-нибудь алгоритмы вместо
констант
7 / 35
Нейронные сети
Neural networks
h(x) = g(wT
x) - композиция линейных моделей
8 / 35
Текущее положение дел
Decision Trees Compositions vs Neural Nets
9 / 35
Neural nets
Где нейронные сети побеждают?
Computer Vision (ImageNet)
Speech recognition
10 / 35
Decision trees compositions
Где побеждают ансамбли деревьев решений?
Learning to rank (Yahoo Learning to rank challenge 2010)
Text categorization (NIPS 2006)
Везде
11 / 35
Взгляд с точки зрения функционального анализа
Гладкие функции
h(x) = σ(. . . σ(wT
x))
Кусочно-постоянные
функции
h(x) =
d
cd I{x ∈ Rd }
12 / 35
Методы построения алгоритмических композиций
Стохастические методы
Бустинг
Мета алгоритмы. Stacking
13 / 35
Stacking
Мета-алгоритм
14 / 35
Netflix Challenge
Задача предсказания оценки фильму
ПФ - 1000000$
Победил Stacking на “зоопарке” алгоритмов
15 / 35
Немного теории
Недообучение - сложность модели недостаточна. Данные имеют
более сложную природу.
Переобучение - сложность модели избыточна. Модель слишком
настроена на выборку. Обобщающая способность алгоритма низка.
16 / 35
The bias-variance Decomposition
Задача регресии
y = f (x) +
∼ N(0, σ )
Ищем h(x) аппроксимирующую f (x) Таким образом, мы можем
оценить ожидание среднеквадратичной ошибки для некоторой
точки x0
Err(x0) = E[(y − h(x0))2
]
Это можно переписать в виде
Err(x0) = (E[h(x0)] − f (x0))2
+ E[h(x0) − E(h(x0))]2
+ σ2
Err(x0) = Bias2
+ Variance + Noise(Irreducible Error)
17 / 35
Bias and variance tradeoff
18 / 35
Bias and variance tradeoff
19 / 35
Стохастические методы
Стратегии
Bagging = Bootstrap aggregation. Обучаем алгоритмы по
случайным подвыборкам размера N, полученным с помощью
выбора с возвращением.
RSM = Random Subspace Method. Метод случайных
подпространств. Обучаем алгоритмы по случайным
подмножествам признаков.
Благодаря описанным стратегиям добиваемся максимального
различия между базовыми алгоритмами.
20 / 35
Bagging & RSM
1 function BaggingRSM(X, F, poi, pof, T):
2 # X - point from dataset
3 # F - original set of features
4 # poi - percent of items
5 # pof - percent of features
6 # T - number of algorithms
7 for j in 1..T:
8 fsubset = sample_features(F, pof)
9 xsubset = sample_items(X, poi)
10 a_j = build_base_model(xsubset, fsubset)
11
12 return a_1 ... a_T
21 / 35
Bagging & RSM
Геометрическая интерпрeтация
22 / 35
Bias-Variance for Bagging & RSM
Модель простого голосования
h(x) =
1
T
T
i=1
a(x)
Смещение и разброс
Bias2
= (E[h(x0)] − f (x0))2
= (E[a(x0)] − f (x0))2
Variance = E[h(x0) − E(h(x0))]2
=
=
1
T
T
i=1
E[ai (x0) − E[ai (x0)]]2
+
+
1
T
i=j
E[(ai (x0) − E[ai (x0)])(aj (x0) − E[aj (x0)])] =
=
1
T
T
i=1
E[ai (x0) − E[ai (x0)]]2
+
1
T
i=j
cov(ai (x0), aj (x0))
23 / 35
Random Forest
Случайный лес (random forest) - bagging & rsm над решающими
деревьями.
24 / 35
“Неустойчивость” деревьев решений
Незначительные изменения в данных приводят к значительным
изменениям в топологии дерева
25 / 35
Random Forest. Пример
(a) Original data (b) RF (50 Trees) (c) RF (2000 Trees)
26 / 35
Out of bag samples
27 / 35
Random Forest & overfitting
Не переобучается с ростом числа алгоритмов
28 / 35
Feature impotance
29 / 35
Random Forest Clustering
Концепция
В один кластер попадают те примеры, которые чаще всего
вместе попадали в листья деревьев
30 / 35
Random Forest. Итоги
 Алгоритм прост
 Не пререобучается
 Хорошо параллелится
 Не требует сложной настройки параметров
 Не требует нормализации данных (деревья решений)
 Модели получаются большие и неинтерпретируемые
 Плохо работает с полиномиальными зависимостями.
 “Медленно” работает для большого объема данных.
31 / 35
Extremely Randomized Trees
Проверяем только один предикат на фичу
Используем все фичи для каждого дерева
Работает в разы быстрее
32 / 35
Kaggle.com about Random Forest
https://www.kaggle.com/wiki/RandomForests
33 / 35
Задача
Дано: Имеется набор данных из системы поискового антиспама.
Требуется: Требуется построить классификатор для
представленных данных на основе алгоритма Random Forest.
Провести сравнение данного метода с известными алгоритмами
классификации. Ответить на вопросы.
Пошаговая инструкция
1. Скачать данные и запустить шаблон кода на python
http://goo.gl/gCQ7Y3
$ python rf.py -h
$ python rf.py -tr spam.train.txt -te spam.test.txt
2. Сравнинить RF c другими известными алгоритмами
классификации.
3. Написать функцию подбирающую параметры числа деревьев и
процента признаков в деревьях. Построить график.
4. Ответить на вопрос: Почему качество классификации для
класса spam выше чем для класса notspam?
34 / 35
Вопросы

More Related Content

What's hot

Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементов
Theoretical mechanics department
 
Многочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийМногочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближений
Theoretical mechanics department
 
Численное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод ЭйлераЧисленное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод Эйлера
Theoretical mechanics department
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Mikhail Kurnosov
 
20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov
Computer Science Club
 

What's hot (20)

L2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибокL2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибок
 
L11: Метод ансамблей
L11: Метод ансамблейL11: Метод ансамблей
L11: Метод ансамблей
 
L6: Метод опорных векторов
L6: Метод опорных векторовL6: Метод опорных векторов
L6: Метод опорных векторов
 
L5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмыL5: Л5 Байесовские алгоритмы
L5: Л5 Байесовские алгоритмы
 
Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"Лекция №3 "Различные алгоритмы кластеризации"
Лекция №3 "Различные алгоритмы кластеризации"
 
L3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессияL3: Линейная и логистическая регрессия
L3: Линейная и логистическая регрессия
 
Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining" Лекция №1 "Задачи Data Mining"
Лекция №1 "Задачи Data Mining"
 
L7:Задача кластеризации. Метрики качества
L7:Задача кластеризации. Метрики качестваL7:Задача кластеризации. Метрики качества
L7:Задача кластеризации. Метрики качества
 
L10: Алгоритмы кластеризации
L10: Алгоритмы кластеризацииL10: Алгоритмы кластеризации
L10: Алгоритмы кластеризации
 
Решение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементовРешение краевых задач методом конечных элементов
Решение краевых задач методом конечных элементов
 
Многочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближенийМногочлены наилучших среднеквадратичных приближений
Многочлены наилучших среднеквадратичных приближений
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
 
Метод конечных разностей
Метод конечных разностейМетод конечных разностей
Метод конечных разностей
 
Лекция №11 "Основы нейронных сетей"
Лекция №11 "Основы нейронных сетей" Лекция №11 "Основы нейронных сетей"
Лекция №11 "Основы нейронных сетей"
 
Структурное обучение и S-SVM
Структурное обучение и S-SVMСтруктурное обучение и S-SVM
Структурное обучение и S-SVM
 
Сплайн интерполяция
Сплайн интерполяцияСплайн интерполяция
Сплайн интерполяция
 
Численное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод ЭйлераЧисленное решение ОДУ. Метод Эйлера
Численное решение ОДУ. Метод Эйлера
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
 
Лекция №13 "Глубокие нейронные сети"
Лекция №13 "Глубокие нейронные сети" Лекция №13 "Глубокие нейронные сети"
Лекция №13 "Глубокие нейронные сети"
 
20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov
 

Similar to Лекция №9 "Алгоритмические композиции. Начало"

20120415 videorecognition konushin_lecture06
20120415 videorecognition konushin_lecture0620120415 videorecognition konushin_lecture06
20120415 videorecognition konushin_lecture06
Computer Science Club
 
презентация с авторским шаблоном и заметками дз 28.03.12
презентация с авторским шаблоном и заметками дз 28.03.12презентация с авторским шаблоном и заметками дз 28.03.12
презентация с авторским шаблоном и заметками дз 28.03.12
galinalevna
 
CV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time visionCV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time vision
Anton Konushin
 
20071111 efficientalgorithms kulikov_lecture06
20071111 efficientalgorithms kulikov_lecture0620071111 efficientalgorithms kulikov_lecture06
20071111 efficientalgorithms kulikov_lecture06
Computer Science Club
 
презентация к лекции по параметрическим колебаниям
презентация к лекции по параметрическим колебаниямпрезентация к лекции по параметрическим колебаниям
презентация к лекции по параметрическим колебаниям
Galnalevina
 
презентация к лекции по параметрическим колебаниям
презентация к лекции по параметрическим колебаниямпрезентация к лекции по параметрическим колебаниям
презентация к лекции по параметрическим колебаниям
levinaga
 
презентация с авторским шаблоном и заметками Levinaga
презентация с авторским шаблоном и заметками Levinagaпрезентация с авторским шаблоном и заметками Levinaga
презентация с авторским шаблоном и заметками Levinaga
Galnalevina
 
презентация с авторским шаблоном и заметками Levinaga
презентация с авторским шаблоном и заметками Levinagaпрезентация с авторским шаблоном и заметками Levinaga
презентация с авторским шаблоном и заметками Levinaga
Galnalevina
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Mikhail Kurnosov
 
20101125 proof complexity_hirsch_lecture08
20101125 proof complexity_hirsch_lecture0820101125 proof complexity_hirsch_lecture08
20101125 proof complexity_hirsch_lecture08
Computer Science Club
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмов
Mikhail Kurnosov
 
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
yaevents
 

Similar to Лекция №9 "Алгоритмические композиции. Начало" (19)

20120415 videorecognition konushin_lecture06
20120415 videorecognition konushin_lecture0620120415 videorecognition konushin_lecture06
20120415 videorecognition konushin_lecture06
 
Свойства оценок
Свойства оценокСвойства оценок
Свойства оценок
 
Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.Лекция 12. Быстрее, Python, ещё быстрее.
Лекция 12. Быстрее, Python, ещё быстрее.
 
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
CV2015. Лекция 4. Классификация изображений и введение в машинное обучение.
 
презентация с авторским шаблоном и заметками дз 28.03.12
презентация с авторским шаблоном и заметками дз 28.03.12презентация с авторским шаблоном и заметками дз 28.03.12
презентация с авторским шаблоном и заметками дз 28.03.12
 
CV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time visionCV2011 Lecture 13. Real-time vision
CV2011 Lecture 13. Real-time vision
 
20071111 efficientalgorithms kulikov_lecture06
20071111 efficientalgorithms kulikov_lecture0620071111 efficientalgorithms kulikov_lecture06
20071111 efficientalgorithms kulikov_lecture06
 
презентация к лекции по параметрическим колебаниям
презентация к лекции по параметрическим колебаниямпрезентация к лекции по параметрическим колебаниям
презентация к лекции по параметрическим колебаниям
 
презентация к лекции по параметрическим колебаниям
презентация к лекции по параметрическим колебаниямпрезентация к лекции по параметрическим колебаниям
презентация к лекции по параметрическим колебаниям
 
презентация с авторским шаблоном и заметками Levinaga
презентация с авторским шаблоном и заметками Levinagaпрезентация с авторским шаблоном и заметками Levinaga
презентация с авторским шаблоном и заметками Levinaga
 
презентация с авторским шаблоном и заметками Levinaga
презентация с авторским шаблоном и заметками Levinagaпрезентация с авторским шаблоном и заметками Levinaga
презентация с авторским шаблоном и заметками Levinaga
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.
 
20101125 proof complexity_hirsch_lecture08
20101125 proof complexity_hirsch_lecture0820101125 proof complexity_hirsch_lecture08
20101125 proof complexity_hirsch_lecture08
 
Метод искусственной пчелиной колонии, алгоритм пчёл
Метод искусственной пчелиной колонии, алгоритм пчёлМетод искусственной пчелиной колонии, алгоритм пчёл
Метод искусственной пчелиной колонии, алгоритм пчёл
 
КР 1 с решением
КР 1 с решениемКР 1 с решением
КР 1 с решением
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмов
 
20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich20131027 h10 lecture5_matiyasevich
20131027 h10 lecture5_matiyasevich
 
Методы решения нелинейных уравнений
Методы решения нелинейных уравненийМетоды решения нелинейных уравнений
Методы решения нелинейных уравнений
 
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
 

More from Technosphere1

L13: Заключительная
L13: ЗаключительнаяL13: Заключительная
L13: Заключительная
Technosphere1
 

More from Technosphere1 (11)

L13: Заключительная
L13: ЗаключительнаяL13: Заключительная
L13: Заключительная
 
Л9: Взаимодействие веб-приложений
Л9: Взаимодействие веб-приложенийЛ9: Взаимодействие веб-приложений
Л9: Взаимодействие веб-приложений
 
Л8 Django. Дополнительные темы
Л8 Django. Дополнительные темыЛ8 Django. Дополнительные темы
Л8 Django. Дополнительные темы
 
Webdev7 (2)
Webdev7 (2)Webdev7 (2)
Webdev7 (2)
 
Мастер-класс: Особенности создания продукта для мобильного веб
Мастер-класс: Особенности создания продукта для мобильного вебМастер-класс: Особенности создания продукта для мобильного веб
Мастер-класс: Особенности создания продукта для мобильного веб
 
Web лекция 1
Web   лекция 1Web   лекция 1
Web лекция 1
 
Мастер-класс: "Интеграция в промышленную разработку"
Мастер-класс: "Интеграция в промышленную разработку"Мастер-класс: "Интеграция в промышленную разработку"
Мастер-класс: "Интеграция в промышленную разработку"
 
Webdev7: Обработка HTTP запросов. Django Views
Webdev7: Обработка HTTP запросов. Django ViewsWebdev7: Обработка HTTP запросов. Django Views
Webdev7: Обработка HTTP запросов. Django Views
 
L8: Л7 Em-алгоритм
L8: Л7 Em-алгоритмL8: Л7 Em-алгоритм
L8: Л7 Em-алгоритм
 
L4: Решающие деревья
L4: Решающие деревьяL4: Решающие деревья
L4: Решающие деревья
 
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
 

Лекция №9 "Алгоритмические композиции. Начало"

  • 2. План лекции Мотивация Обзор методов построения алгоритмических композиций Стохастические методы построения алгоритмических композиций Random Forest 1 / 35
  • 3. Выбираем ноутбук Параметры ноутбука Камень Память Видеокарта Диагональ монитора и т.д Воспользуемся экспертным мнением Консультант в магазине Сосед “программист” Друзья Форумы 2 / 35
  • 4. Задача обучения с учителем Постановка задачи Пусть дан набор объектов D = {(xi , yi )}, xi ∈ X, yi ∈ Y, i ∈ 1, . . . , N, полученный из неизвестной закономерности y = f (x). Необходимо построить такую h(x), которая наиболее точно апроксимирует f (x). Будем искать неизвестную h(x) = C(a1(x), . . . , aT (x)) ai (x) : X → R, ∀i ∈ {1, . . . , T} - базовые модели C : R → Y - решающее правило 3 / 35
  • 7. Смесь экспертов Mixture of Experts h(x) = 1 T T i=1 bi (x)ai (x), bi (x) : X → R 6 / 35
  • 8. Топологические композиции Модельные деревья решений (Model decision trees) Поместим в листья деревьев какие-нибудь алгоритмы вместо констант 7 / 35
  • 9. Нейронные сети Neural networks h(x) = g(wT x) - композиция линейных моделей 8 / 35
  • 10. Текущее положение дел Decision Trees Compositions vs Neural Nets 9 / 35
  • 11. Neural nets Где нейронные сети побеждают? Computer Vision (ImageNet) Speech recognition 10 / 35
  • 12. Decision trees compositions Где побеждают ансамбли деревьев решений? Learning to rank (Yahoo Learning to rank challenge 2010) Text categorization (NIPS 2006) Везде 11 / 35
  • 13. Взгляд с точки зрения функционального анализа Гладкие функции h(x) = σ(. . . σ(wT x)) Кусочно-постоянные функции h(x) = d cd I{x ∈ Rd } 12 / 35
  • 14. Методы построения алгоритмических композиций Стохастические методы Бустинг Мета алгоритмы. Stacking 13 / 35
  • 16. Netflix Challenge Задача предсказания оценки фильму ПФ - 1000000$ Победил Stacking на “зоопарке” алгоритмов 15 / 35
  • 17. Немного теории Недообучение - сложность модели недостаточна. Данные имеют более сложную природу. Переобучение - сложность модели избыточна. Модель слишком настроена на выборку. Обобщающая способность алгоритма низка. 16 / 35
  • 18. The bias-variance Decomposition Задача регресии y = f (x) + ∼ N(0, σ ) Ищем h(x) аппроксимирующую f (x) Таким образом, мы можем оценить ожидание среднеквадратичной ошибки для некоторой точки x0 Err(x0) = E[(y − h(x0))2 ] Это можно переписать в виде Err(x0) = (E[h(x0)] − f (x0))2 + E[h(x0) − E(h(x0))]2 + σ2 Err(x0) = Bias2 + Variance + Noise(Irreducible Error) 17 / 35
  • 19. Bias and variance tradeoff 18 / 35
  • 20. Bias and variance tradeoff 19 / 35
  • 21. Стохастические методы Стратегии Bagging = Bootstrap aggregation. Обучаем алгоритмы по случайным подвыборкам размера N, полученным с помощью выбора с возвращением. RSM = Random Subspace Method. Метод случайных подпространств. Обучаем алгоритмы по случайным подмножествам признаков. Благодаря описанным стратегиям добиваемся максимального различия между базовыми алгоритмами. 20 / 35
  • 22. Bagging & RSM 1 function BaggingRSM(X, F, poi, pof, T): 2 # X - point from dataset 3 # F - original set of features 4 # poi - percent of items 5 # pof - percent of features 6 # T - number of algorithms 7 for j in 1..T: 8 fsubset = sample_features(F, pof) 9 xsubset = sample_items(X, poi) 10 a_j = build_base_model(xsubset, fsubset) 11 12 return a_1 ... a_T 21 / 35
  • 23. Bagging & RSM Геометрическая интерпрeтация 22 / 35
  • 24. Bias-Variance for Bagging & RSM Модель простого голосования h(x) = 1 T T i=1 a(x) Смещение и разброс Bias2 = (E[h(x0)] − f (x0))2 = (E[a(x0)] − f (x0))2 Variance = E[h(x0) − E(h(x0))]2 = = 1 T T i=1 E[ai (x0) − E[ai (x0)]]2 + + 1 T i=j E[(ai (x0) − E[ai (x0)])(aj (x0) − E[aj (x0)])] = = 1 T T i=1 E[ai (x0) − E[ai (x0)]]2 + 1 T i=j cov(ai (x0), aj (x0)) 23 / 35
  • 25. Random Forest Случайный лес (random forest) - bagging & rsm над решающими деревьями. 24 / 35
  • 26. “Неустойчивость” деревьев решений Незначительные изменения в данных приводят к значительным изменениям в топологии дерева 25 / 35
  • 27. Random Forest. Пример (a) Original data (b) RF (50 Trees) (c) RF (2000 Trees) 26 / 35
  • 28. Out of bag samples 27 / 35
  • 29. Random Forest & overfitting Не переобучается с ростом числа алгоритмов 28 / 35
  • 31. Random Forest Clustering Концепция В один кластер попадают те примеры, которые чаще всего вместе попадали в листья деревьев 30 / 35
  • 32. Random Forest. Итоги Алгоритм прост Не пререобучается Хорошо параллелится Не требует сложной настройки параметров Не требует нормализации данных (деревья решений) Модели получаются большие и неинтерпретируемые Плохо работает с полиномиальными зависимостями. “Медленно” работает для большого объема данных. 31 / 35
  • 33. Extremely Randomized Trees Проверяем только один предикат на фичу Используем все фичи для каждого дерева Работает в разы быстрее 32 / 35
  • 34. Kaggle.com about Random Forest https://www.kaggle.com/wiki/RandomForests 33 / 35
  • 35. Задача Дано: Имеется набор данных из системы поискового антиспама. Требуется: Требуется построить классификатор для представленных данных на основе алгоритма Random Forest. Провести сравнение данного метода с известными алгоритмами классификации. Ответить на вопросы. Пошаговая инструкция 1. Скачать данные и запустить шаблон кода на python http://goo.gl/gCQ7Y3 $ python rf.py -h $ python rf.py -tr spam.train.txt -te spam.test.txt 2. Сравнинить RF c другими известными алгоритмами классификации. 3. Написать функцию подбирающую параметры числа деревьев и процента признаков в деревьях. Построить график. 4. Ответить на вопрос: Почему качество классификации для класса spam выше чем для класса notspam? 34 / 35