Машинное обучение вики
Advertisement
Добавьте ссылок.png
Эта статья плохо повышает индекс цитируемости
авторов других статей этой вики.


Вы можете помочь, добавив навигационные ссылки.

Ансамблирование моделей[]

5.png

Идея алгоритма[]

Обучаем несколько базовых моделей, а затем агрегируем их результаты по какому-либо правилу и выдаем окончательный результат.

Зачем это нужно:

  • В совокупности получаем более сложную модель, чем каждая в отдельности
  • Уменьшение разбора
  • Избежание переобучения/недообучения
  • Возможность работы с признаками разной природы (использовать разные алгоритмы)

Для простоты рассмотрим задачу бинарной классификации. Пусть всего базовых моделей и каждая предсказывает класс или . Тогда агрегированный алгоритм может выдавать класс по следующим правилам:

  • AND-правило: если все базовые модели выдали
  • OR-правило: если хотя бы одна базовая модель выдала
  • -out-of-: если хотя бы базовых моделей из выдали
  • majority vote: если большинство базовых моделей выдало

Почему ансамблирование улучшает результат описано здесь.

Обобщение с весами[]

Также, если используются правила -out-of- или majority vote, можно каждой базовой модели присвоить вес, основываясь на качестве предсказания на валидационной выборке.

Предсказание класса по уровням ранжирования[]

Пусть теперь рассматривается задачи многоклассовой классификации с классами. Пусть каждая -ая базовая модель выдает некую отранжированную информацию о классе объекта:

Это означает, что класс наиболее вероятен для рассматриваемого объекта, а класс --- наименее вероятен.

Пусть --- сколько классов было отранжировано ниже -го класса -ой базовой моделью. Чем выше, тем более вероятен -ый класс. Поэтому, в качестве совокупного рейтинга построим следующую величину:

Тогда результирующее предсказание на объекте :

Предсказание класса по вероятностям[]

Опять рассмотрим задачу многоклассовой классификации с классами. Пусть каждая -ая базовая модель выдает вектор вероятностей из принадлежностей к каждому классу:

Тогда , где

--- среднее арифметическое или медиана.

Стэкинг моделей[]

Рассмотрим задачу регрессии. Пусть всего базовых моделей каждая модель --- это алгоритмов регрессии. Результирующую модель строим следующим образом:

Можно находить веса следующим образом:

Но такой способ приведет к переобучению. Поэтому будем находить веса при помощи кросс-валидации, а именно: разобьем выборке на частей. Пусть --- та часть, которая содержит -ый объект, а --- алгоритм, обученный на всех фолдах, кроме . Тогда:

Для уменьшения переобучения можно добавить условия на неотрицательность весов или добавить к функционалу регуляризатор

Обобщенный стэкинг[]

Предполагаем, что

,где --- вектор параметров:

:

  • Номер класса
  • Вектор вероятностей классов
  • Любой изначальный или сгенерированный признак

Бэггинг (Bagging)[]

Генерируем выборок фиксированного размера , выбирая с возвращением из имеющихся объектов. Доказывается, что каждый объект попадает в выборку с вероятностью , если .

Настраиваем базовых моделей на этих выборках и агрегируем результат.

Плюсы:

  • Уменьшает переобучение, если базовые модели были переобучены (например, решающие деревья)

Минусы:

  • Время обучения увеличивается в раз

Метод случайных подпространств (Random subspace method)[]

Разбиваем без возвращения признаки случайных образом (причем, не обязательно, чтобы было одинаковое количество признаков)

  • Можно объединять два вышеприведенных подхода, то есть, фактически, выбирать подматрицы матрицы .

Случайный лес (Random Forest)[]

Базовые алгоритмы --- решающие деревья. Пусть всего базовых алгоритмов и размер подвыборки признаков --- . Тогда, алгоритм построения случайного леса следующий:

  • Генерируем при помощи бэггинга выборок
  • Обучаем каждое решающее дерево на своей выборке, причем в каждом узле признаки рассматриваются из случайно выбранного подмножества размера из всех признаков.

Агрегирование результата в случае классификации производится при помощи голосования большинства, а в случае регрессии --- среднее арифметическое.

Плюсы:

  • Можно осуществить параллельную реализацию
  • Не переобучается с ростом

Минусы:

  • Менее интерпретируемый, чем решающее дерево
  • Деревья не исправляют ошибки друг друга

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

Extra Random Trees[]

В каждом узле дерева генерируется случайно пар (признак, порог).

Плюсы:

  • Упрощение модели Random Forest
  • Более быстрые, чем Random Forest
  • Не переобучается с ростом

Минусы:

  • Bias выше, чем у Random Forest, а variance --- меньше.

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

Ссылки[]

слайды Китова

семинары Соколова по бэггингу

семинары Соколова по Random Forest

Advertisement