Лекция 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
Вопросы

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

  • 1.
  • 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
  • 5.
  • 6.
  • 7.
    Смесь экспертов Mixture ofExperts 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.
    Текущее положение дел DecisionTrees 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
  • 15.
  • 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 variancetradeoff 18 / 35
  • 20.
    Bias and variancetradeoff 19 / 35
  • 21.
    Стохастические методы Стратегии Bagging =Bootstrap aggregation. Обучаем алгоритмы по случайным подвыборкам размера N, полученным с помощью выбора с возвращением. RSM = Random Subspace Method. Метод случайных подпространств. Обучаем алгоритмы по случайным подмножествам признаков. Благодаря описанным стратегиям добиваемся максимального различия между базовыми алгоритмами. 20 / 35
  • 22.
    Bagging & RSM 1function 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 bagsamples 27 / 35
  • 29.
    Random Forest &overfitting Не переобучается с ростом числа алгоритмов 28 / 35
  • 30.
  • 31.
    Random Forest Clustering Концепция Водин кластер попадают те примеры, которые чаще всего вместе попадали в листья деревьев 30 / 35
  • 32.
    Random Forest. Итоги Алгоритм прост Не пререобучается Хорошо параллелится Не требует сложной настройки параметров Не требует нормализации данных (деревья решений) Модели получаются большие и неинтерпретируемые Плохо работает с полиномиальными зависимостями. “Медленно” работает для большого объема данных. 31 / 35
  • 33.
    Extremely Randomized Trees Проверяемтолько один предикат на фичу Используем все фичи для каждого дерева Работает в разы быстрее 32 / 35
  • 34.
    Kaggle.com about RandomForest 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
  • 36.