l11: Метод ансамблей

26
Введение в Data Science Занятие 10. Метод ансамблей Николай Анохин Михаил Фирулик 17 мая 2014 г.

Upload: technosphere1

Post on 02-Dec-2014

237 views

Category:

Software


1 download

DESCRIPTION

Data Science, Техносфера

TRANSCRIPT

Page 1: L11: Метод ансамблей

Введение в Data ScienceЗанятие 10. Метод ансамблей

Николай Анохин Михаил Фирулик

17 мая 2014 г.

Page 2: L11: Метод ансамблей

Метод ансамблей

Boosting

Bagging

Комбинирование моделей

Page 3: L11: Метод ансамблей

Задача классификации

Пусть дана выборка, состоящая из обучающих объектов

X = (x1, . . . , xN),

и соответствующих значений целевой переменной

Y = (y1, . . . , yN) = (f (x1), . . . , f (xN)).

Требуется найти функцию h(x), наилучшим образом приближающуюf (x), то есть точно предсказывающую значение целевой переменнойдля любых x.

Page 4: L11: Метод ансамблей

Недостатки одиночных моделей

I Statistical issueриск выбрать неправильную гипотезу из возможного набора,учитывая ограниченность выборки

I Computational issueриск получить локальный минимум в результате оптимизации

I Representational issueриск, что ни одна из моделей не окажется достаточно хорошей

Page 5: L11: Метод ансамблей

Метод ансамблей

ИдеяПостроить несколько базовых моделей и правильным образомскомбинировать их для принятия решения. В идеале базовыемодели должны быть максимально точными и при этомразнообразными.

Page 6: L11: Метод ансамблей

Виды ансамблей

I комбинация классификаторов (combining classifiers)pattern recognition

I ансамбль слабых моделей (ensemble of weak learners)machine learning

I смесь экспертов (mixture of experts)neural networks

Page 7: L11: Метод ансамблей

Стоит ли?

I Рекомендательные системыПобедитель Netflx Prize $1M(первое и второе места)

I Компьютерное зрениеAdaBoost with cascade –определение лиц на фото(или стыковка с МКС -)

I Медицинская диагностикаОпределение болезни наранней стадии

Page 8: L11: Метод ансамблей

Boosting

Пусть дан алгоритм обучения “слабой” модели – такой, котораятолько немного лучше случайности

Идея методаПоследовательно обучать слабыемодели так, что каждаяследующая модель “исправляетошибки” предыдущих. Дляпредсказания используетсякомбинация из всех моделейпоследовательности.

Page 9: L11: Метод ансамблей

AdaBoost

ada_boost(X, Y , T):инициализируем D1 = 1/mfor t = 1, . . . ,T:обучаем модель ht(x) = L(X,Y ),принимая во внимание распределение Dt

вычисляем ошибку ht(x): εt = Px∼Dt (ht(x) 6= f (x))if εt > error_rdm:break

вычисляем вес ht(x): at =12 ln(

1−εtεt

)

новое распределение: Dt+1(x) =Dt(x)Zt

exp(−at f (x)ht(x))return H(x) = sign

∑Tt=1 atht(x)

Page 10: L11: Метод ансамблей

Свойства AdaBoost

I Минимизирует экспоненциальную ошибку (exponential loss)

Lexp(h|D) = Ex∼D[e−f (x)h(x)]

I Требует обучения модели с учетом распределенияВарианты: re-weighting или re-sampling

I Ошибка классификации

εD ≤ εX + O

(√dT

N

)

(d отражает “сложность” классификатора)

Page 11: L11: Метод ансамблей

AdaBoost: тесты

Page 12: L11: Метод ансамблей

Пример

h1(x) =

{+1, если x1 > −0.5

−1, иначеh2(x) =

{−1, если x1 > −0.5

+1, иначе

h3(x) =

{+1, если x1 > +0.5

−1, иначеh4(x) =

{−1, если x1 > +0.5

+1, иначе

h5(x) =

{+1, если x2 > −0.5

−1, иначеh6(x) =

{−1, если x2 > −0.5

+1, иначе

h7(x) =

{+1, если x2 > +0.5

−1, иначеh8(x) =

{−1, если x2 > +0.5

+1, иначе

Page 13: L11: Метод ансамблей

Еще boosting

I LogitBoost

Llog (h|D) = Ex∼D

[ln(1 + e−2f (x)h(x)

)]I GradientBoosting

оптимизация произвольной функции потерь + регуляризация

Page 14: L11: Метод ансамблей

AdaBoost. Итоги

+ Высокая точность+ Почти не переобучается— Трудно параллелизовать— Чувствителен к шуму

Page 15: L11: Метод ансамблей

Bagging

Bagging = Bootstrap + Aggregating

Идея методаОбучить несколько независимых моделей на основании случайновыбранных (bootstrap) подмножеств объектов из обучающейвыборки. Классификация производится на основании результатаголосования (aggregating) моделей.

Page 16: L11: Метод ансамблей

Bagging

bagging(X, Y , T):for t = 1, . . . ,T:генерируем bootstrap-распределение Dbs

обучаем модель ht(x) = L(X,Y ),принимая во внимание распределение Dbs

return H(x) = argmaxy∈Y∑T

t=1 I(ht(x) = y)

Page 17: L11: Метод ансамблей

Bagging: тесты

Page 18: L11: Метод ансамблей

Random Forest

random_tree(X, Y , K):N – узел дерева для Xif все x ∈ X одного класса:return N

F – случайно выбираем K признаковf ∈ F – признак, наилучшим образом разделяющий XNl = random_tree(X f

l ,Yfl ,K )

Nr = random_tree(X fr ,Y

fr ,K )

добавляем Nl и Nr как детей к Nreturn N

Page 19: L11: Метод ансамблей

Random Forest: тесты

Page 20: L11: Метод ансамблей

Модификации Random Forest

I VR-TreeВ каждом узле с вероятностью α просиходит случайный выборпризнака

I Density estimationПольностью случайное дерево

I Anomaly DetectionПольностью случайное дерево с ограничением по глубинеSCiForest

Page 21: L11: Метод ансамблей

Density Estimation

Page 22: L11: Метод ансамблей

Random Forest. Итоги

+ Высокая точность+ Мало переобучения+ Легко параллелится— Медленный без параллелизма

Page 23: L11: Метод ансамблей

Сравнение методов

Page 24: L11: Метод ансамблей

Зоопарк комбинаций

Задача регрессииI averagingI weighted averaging

Задача классификацииI majority votingI plurality votingI weighted votingI soft voting

Кроме того: stacking

Page 25: L11: Метод ансамблей

Выводы

Page 26: L11: Метод ансамблей

Задача. Распознавание цифр

Дана обучающая выборка с картинками 8x8, на каждой из картинокизображена рукописная цифра.

$ python digits.py -s 25

1. для алгоритма AdaBoost построить график зависимостиtrain_error и test_error от T

2. для алгоритма RandomForest построить график зависимостиtrain_error и test_error от размера леса

3. реализовать простейший голосующий ансамбль и исследоватьзависимость его точности от вида и количества базовых моделей