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

Post on 18-Jul-2015

101 Views

Category:

Education

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Лекция 9Алгоритмические композиции

Начало

Владимир Гулин

19 ноября 2014 г.

План лекции

Мотивация

Обзор методов построения алгоритмических композиций

Стохастические методы построения алгоритмических композиций

Random Forest

1 / 35

Выбираем ноутбук

Параметры ноутбукаI КаменьI ПамятьI ВидеокартаI Диагональ монитораI и т.д

Воспользуемся экспертным мнениемI Консультант в магазинеI Сосед “программист”I ДрузьяI Форумы

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

biai (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)

I Поместим в листья деревьев какие-нибудь алгоритмы вместоконстант

7 / 35

Нейронные сети

Neural networks

h(x) = g(wTx) - композиция линейных моделей

8 / 35

Текущее положение дел

Decision Trees Compositions vs Neural Nets

9 / 35

Neural nets

Где нейронные сети побеждают?I Computer Vision (ImageNet)I Speech recognition

10 / 35

Decision trees compositions

Где побеждают ансамбли деревьев решений?I Learning to rank (Yahoo Learning to rank challenge 2010)I Text categorization (NIPS 2006)I Везде

11 / 35

Взгляд с точки зрения функционального анализа

Гладкие функции

h(x) =∑

σ(. . .∑

σ(wTx))

Кусочно-постоянныефункции

h(x) =∑d

cd I{x ∈ Rd}

12 / 35

Методы построения алгоритмических композиций

Стохастические методы

Бустинг

Мета алгоритмы. Stacking

13 / 35

Stacking

Мета-алгоритм

14 / 35

Netflix Challenge

I Задача предсказания оценки фильмуI ПФ - 1000000$I Победил Stacking на “зоопарке” алгоритмов

15 / 35

Немного теории

Недообучение - сложность модели недостаточна. Данные имеютболее сложную природу.Переобучение - сложность модели избыточна. Модель слишкомнастроена на выборку. Обобщающая способность алгоритма низка.

16 / 35

The bias-variance Decomposition

I Задача регресииI y = f (x) + ε

I ε ∼ N (0, σε)

I Ищем 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

Стохастические методы

Стратегии

I Bagging = Bootstrap aggregation. Обучаем алгоритмы послучайным подвыборкам размера N, полученным с помощьювыбора с возвращением.

I RSM = Random Subspace Method. Метод случайныхподпространств. Обучаем алгоритмы по случайнымподмножествам признаков.

Благодаря описанным стратегиям добиваемся максимальногоразличия между базовыми алгоритмами.

20 / 35

Bagging & RSM

1 function BaggingRSM(X, F, poi, pof, T):2 # X - point from dataset3 # F - original set of features4 # poi - percent of items5 # pof - percent of features6 # T - number of algorithms7 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)1112 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 6=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 6=j

cov(ai (x0), aj(x0))

23 / 35

Random Forest

Случайный лес (random forest) - bagging & rsm над решающимидеревьями.

24 / 35

“Неустойчивость” деревьев решений

I Незначительные изменения в данных приводят к значительнымизменениям в топологии дерева

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

I Не переобучается с ростом числа алгоритмов

28 / 35

Feature impotance

29 / 35

Random Forest Clustering

Концепция

I В один кластер попадают те примеры, которые чаще всеговместе попадали в листья деревьев

30 / 35

Random Forest. Итоги

4 Алгоритм прост4 Не пререобучается4 Хорошо параллелится4 Не требует сложной настройки параметров4 Не требует нормализации данных (деревья решений)6 Модели получаются большие и неинтерпретируемые6 Плохо работает с полиномиальными зависимостями.6 “Медленно” работает для большого объема данных.

31 / 35

Extremely Randomized Trees

I Проверяем только один предикат на фичуI Используем все фичи для каждого дереваI Работает в разы быстрее

32 / 35

Kaggle.com about Random Forest

I 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

Вопросы

top related