View
102
Download
4
Category
Preview:
Citation preview
Лекция 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
Вопросы
Recommended