Алгоритмы ансамбля

В этой теме приведены описания алгоритмов обучения ансамбля, поддерживаемых Statistics and Machine Learning Toolbox™, включая мешки, случайное пространство и различные алгоритмы усиления. Вы можете задать алгоритм при помощи 'Method' Аргумент пары "имя-значение" из fitcensemble, fitrensemble, или templateEnsemble. Использовать fitcensemble или fitrensemble создать ансамбль учащихся для классификации или регрессии, соответственно. Использовать templateEnsemble чтобы создать шаблон обучающегося ансамбля и передать шаблон в fitcecoc определить ансамблевых двоичных учащихся для многоклассового обучения ECOC.

Для агрегирования bootstrap (упаковка в мешки) и случайного леса можно использовать TreeBagger также.

Значение 'Method'АлгоритмПоддерживаемые проблемыПримеры
'Bag'Агрегирование Bootstrap (Bagging) и случайный лес ([1], [2], [3])Двоичная и многоклассовая классификация, регрессия
'Subspace'Случайное подпространство ([9])Двоичная и многоклассовая классификацияКлассификация случайных подпространств
'AdaBoostM1'Адаптивное усиление для двоичной классификации ([5], [6], [7], [11])Двоичная классификация
'AdaBoostM2'Адаптивное усиление для многоклассовой классификации ([5])Многоклассовая классификацияПредсказание меток классов с помощью классификационного ансамбля
'GentleBoost'Мягкое адаптивное усиление ([7])Двоичная классификация
'LogitBoost'Адаптивная логистическая регрессия ([7])Двоичная классификация
'LPBoost'Ускорение линейного программирования ([13])Двоичная и многоклассовая классификацияLPBoost и TotalBoost для малых ансамблей
'LSBoost'Ускорение наименьших квадратов ([2], [8])Регресс
'RobustBoost'Устойчивое усиление ([4])Двоичная классификацияНастройка RobustBoost
'RUSBoost'Увеличение случайной понижающей дискретизации ([12])Двоичная и многоклассовая классификацияКлассификация с несбалансированными данными
'TotalBoost'Полное корректирующее усиление ([13])Двоичная и многоклассовая классификацияLPBoost и TotalBoost для малых ансамблей

Чтобы узнать о том, как выбрать подходящий алгоритм, смотрите Выбор Применимого Метода Агрегации Ансамбля.

Обратите внимание, что использование некоторых алгоритмов, таких как LPBoost, TotalBoost, и RobustBoost, требует Optimization Toolbox™.

Агрегация Bootstrap (Bagging) и случайный лес

Statistics and Machine Learning Toolbox предлагает три объекта для упаковки в мешки и случайный лес:

Для получения дополнительной информации о различиях между TreeBagger и пакетированные ансамбли (ClassificationBaggedEnsemble и RegressionBaggedEnsemble), см. Сравнение TreeBagger и Bagged Ensembles.

Bootstrap aggregation (bagging) - тип ансамблевого обучения. Чтобы упаковать слабого обучающегося, такого как дерево решений на наборе данных, сгенерируйте много реплик bootstrap набора данных и выращивайте деревья решений на репликах. Получите каждую реплику bootstrap путем случайного выбора N вне N наблюдения с заменой, где N - размер набора данных. В сложение, каждое дерево в ансамбле может случайным образом выбрать предикторы для каждого разделения решений, метод называется случайным лесом [2], который, как известно, улучшает точность упакованных деревьев. По умолчанию количество предикторов для случайного выбора для каждого разделения равно квадратному корню из числа предикторов для классификации и одной трети от числа предикторов для регрессии. После обучения модели можно найти предсказанную реакцию обученного ансамбля для новых данных при помощи predict функция. predict принимает на среднее значение предсказаний от отдельных деревьев.

По умолчанию минимальное количество наблюдений за листом для мешанных деревьев устанавливается равным 1 для классификации и 5 для регрессии. Деревья, выращенные с размером листа по умолчанию, обычно очень глубокие. Эти настройки близки к оптимальным для прогнозирующей степени ансамбля. Часто можно выращивать деревья с большими листьями, не теряя прогнозирующей степени. Это сокращает время обучения и предсказания, а также использование памяти для обученного ансамбля. Вы можете управлять минимальным количеством наблюдений на лист при помощи 'MinLeafSize' Аргумент пары "имя-значение" из templateTree или TreeBagger. Обратите внимание, что вы используете templateTree функция для определения опций учащихся дерева при создании упакованного ансамбля при помощи fitcensemble или fitrensemble.

Несколько функции мешанных деревьев принятия решений делают их уникальным алгоритмом. Построение N вне N наблюдения с замещающими пробелами наблюдений, в среднем 37%, для каждого дерева решений. Эти опущенные наблюдения называются наблюдениями «вне мешка». TreeBagger и пакетированные ансамбли (ClassificationBaggedEnsemble и RegressionBaggedEnsemble) имеют свойства и функции объекта, имена которых начинаются с oob, которые используют внешние наблюдения.

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

  • Оцените среднюю ошибку вне сумки при помощи oobError (для TreeBagger) или oobLoss (для упакованных в мешки ансамблей). Эти функции сравнивают предсказанные отклики вне мешка с наблюдаемыми ответами для всех наблюдений, используемых для обучения. Среднее значение вне мешка является объективной оценкой истинной ошибки ансамбля.

  • Получите оценки функций вне мешка при помощи OOBPermutedPredictorDeltaError свойство (для TreeBagger) или oobPermutedPredictorImportance свойство (для упакованных в мешки ансамблей). Программа случайным образом переставляет данные вне сумки через одну переменную или столбец за раз и оценивает увеличение ошибки вне сумки из-за этого сочетания. Чем больше увеличение, тем важнее функция. Поэтому вам не нужно поставлять тестовые данные для упакованных в мешки ансамблей, потому что вы можете получить надежные оценки прогнозирующей степени и особенностей важности в процессе обучения.

TreeBagger также предлагает близкую матрицу в Proximity свойство. Каждый раз, когда два наблюдения приземляются на один и тот же лист дерева, их близость увеличивается на 1. Для нормализации суммируйте эти близости по всем деревьям ансамбля и разделите на количество деревьев. Получившаяся матрица симметрична с диагональными элементами, равными 1 и недиагональными элементами в диапазоне от 0 до 1. Можно использовать эту матрицу, чтобы найти наблюдения выбросов и обнаружить кластеры в данных посредством многомерного масштабирования.

Для примеров, использующих упаковку в мешки, смотрите:

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

TreeBagger и пакетированные ансамбли (ClassificationBaggedEnsemble и RegressionBaggedEnsemble) разделяют большинство функциональных возможностей, но не все. Кроме того, некоторые функциональности имеют различные имена.

TreeBagger функции, не входящие в состав упакованных в мешки ансамблей

ФункцияTreeBagger СвойствоTreeBagger Метод
Расчет матрицы близостиProximity

fillprox, mdsprox

Когда вы оцениваете матрицу близости и выбросы TreeBagger моделировать с использованием fillprox, MATLAB® должна соответствовать n -by - n матрице в памяти, где n - количество наблюдений. Поэтому, если n умеренная к большой, избегайте оценки матрицы близости и выбросов.

Расчет выбросовOutlierMeasureН/Д
Out-of-bag оценки предикторной важности с использованием классификационных полейOOBPermutedPredictorDeltaMeanMargin и OOBPermutedPredictorCountRaiseMargin Н/Д
Объединение двух ансамблей, обученных отдельноН/Дappend
Регрессия квантиляН/ДquantilePredict, quantileError, oobQuantilePredict, oobQuantileError
Поддержка длинный массив для создания ансамбляН/ДДля получения дополнительной информации см. Раздел «Длинные массивы»

Упакованный ансамбль функций не в TreeBagger

ФункцияОписание
Гипероптимизация параметров управленияИспользуйте 'OptimizeHyperparameters' аргумент пары "имя-значение".
Раскладывание числовых предикторов для ускорения обученияИспользуйте 'NumBins' аргумент пары "имя-значение".
Генерация кода для predictПосле обучения модели можно сгенерировать код C/C + +, который предсказывает метки для новых данных. Для генерации кода C/C + + требуется MATLAB Coder™. Для получения дополнительной информации смотрите Введение в генерацию кода.

Различные имена для TreeBagger и упакованные в мешки ансамбли

ФункцияTreeBaggerУпакованные ансамбли
Разделение вкладов критерия для каждого предиктораDeltaCriterionDecisionSplit свойствоПервый выход predictorImportance (классификация) или predictorImportance (регрессия)
Ассоциации предикторовSurrogateAssociation свойствоВторой выход predictorImportance (классификация) или predictorImportance (регрессия)
Out-of-bag оценки предикторной важностиOOBPermutedPredictorDeltaError свойствоВыход oobPermutedPredictorImportance (классификация) или oobPermutedPredictorImportance (регрессия)
Ошибка (вероятность неправильной классификации или среднеквадратичная ошибка)error и oobError методыloss и oobLoss методы (классификация) или loss и oobLoss методы (регрессия)
Обучение дополнительных деревьев и добавление их в ансамбльgrowTrees методresume метод (классификация) или resume метод (регрессия)
Среднее значение запаса классификации на деревоmeanMargin и oobMeanMargin методыedge и oobEdge методы (классификация)

В сложение, два важных различия существуют, когда вы обучаете модель и предсказываете ответы:

  • Если вы передаете матрицу затрат неправильной классификации в TreeBagger, она передает матрицу вдоль к деревьям. Если вы передаете матрицу затрат неправильной классификации в fitcensemble, он использует матрицу, чтобы настроить предыдущие вероятности класса. fitcensemble затем передает скорректированные предыдущие вероятности и матрицу затрат по умолчанию в деревья. Матрица затрат по умолчанию ones(K)–eye(K) для K классы.

  • В отличие от loss и edge методы в ClassificationBaggedEnsemble, а TreeBagger error и meanMargin методы не нормализуют входные веса наблюдений априорных вероятностей в соответствующем классе.

Случайный подпространство

Используйте случайные ансамбли подпространства (Subspace) для повышения точности дискриминантного анализа (ClassificationDiscriminant) или k-ближайших соседей (ClassificationKNN) классификаторы. Subspace ансамбли также имеют преимущество использования меньшей памяти, чем ансамбли со всеми предикторами, и могут обрабатывать отсутствующие значения (NaNс).

Основной алгоритм случайного подпространства использует эти параметры.

  • m - количество размерностей (переменных) для выборки в каждом учащемся. Установите m с помощью NPredToSample Пара "имя-значение".

  • d - количество размерностей в данных, которое является количеством столбцов (предикторов) в матрице данных X.

  • n - количество учащихся ансамбля. Установите n с помощью NLearn вход.

Основной алгоритм случайного подпространства выполняет следующие шаги:

  1. Выберите без замены случайный набор m предикторов из d возможных значений.

  2. Обучите слабого ученика, используя только m выбранные предикторы.

  3. Повторяйте шаги 1 и 2 до тех пор, пока не будет n слабых учащихся.

  4. Предсказать, взяв среднее значение score предсказание слабых учащихся и классификация категории с наивысшим средним score.

Можно принять решение создать слабого ученика для каждого возможного набора m предикторов из d размерностей. Для этого установите n, количество учащихся, равное 'AllPredictorCombinations'. В этом случае существуют nchoosek(size(X,2),NPredToSample) слабые ученики в ансамбле.

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

Для примеров использование Subspace, см. «Классификация случайных подпространств».

Алгоритмы бустинга

Адаптивное усиление для двоичной классификации

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

εt=n=1Ndn(t)I(ynht(xn)),

где

  • xn является вектором значений предиктора для n наблюдений.

  • yn - это истинная метка класса.

  • ht - предсказание учащегося (гипотеза) с индексными t.

  • I - функция индикации.

  • dn(t) - вес n наблюдений на этапе t.

AdaBoostM1 затем увеличивает веса для наблюдений, неправильно классифицированных t учащихся, и уменьшает веса для наблюдений, правильно классифицированных t учащихся. Следующий учебный t + 1 затем обучается на данных с обновленными весами dn(t+1).

После концов обучения AdaBoostM1 вычисляет предсказание для новых данных используя

f(x)=t=1Tαtht(x),

где

αt=12log1εtεt

являются весами слабых гипотез в ансамбле.

Обучение по AdaBoostM1 можно рассматривать как ступенчатую минимизацию экспоненциальных потерь

n=1Nwnexp(ynf(xn)),

где

  • yn ∊ {-1, + 1} является истинной меткой класса.

  • wn веса наблюдений нормированы до 1.

  • f (xn) ∊ (- ∞, + ∞) - предсказанная классификационная оценка.

wn веса наблюдений являются исходными весами наблюдений, в которые вы перешли fitcensemble.

Второй выход от predict метод AdaBoostM1 классификационный ансамбль является N-на-2 матрицей классификационных оценок для двух классов и N наблюдений. Второй столбец этой матрицы всегда равен минус первому столбцу. The predict метод возвращает два счетов, чтобы соответствовать многоклассовым моделям, хотя это избыточно, потому что второй столбец всегда является отрицательным для первой.

Чаще всего AdaBoostM1 используется с пнями принятия решений (по умолчанию) или мелкими деревьями. Если усиленные пни дают плохую эффективность, попробуйте задать минимальный размер родительского узла, равный одной четверти обучающих данных.

По умолчанию скорость обучения для алгоритмов ускорения 1. Если установить скорость обучения на меньшее число, ансамбль учится с меньшей скоростью, но может сходиться к лучшему решению. 0.1 является популярным выбором для скорости обучения. Обучение со скоростью меньше 1 часто называется «усадка».

Для примеров использование AdaBoostM1, см. Проведение чувствительного к затратам сравнения двух классификационных моделей и создание шаблона ансамбля для многоклассового обучения ECOC.

Адаптивное усиление для многоклассовой классификации

Адаптивное усиление с именем AdaBoostM2 является расширением AdaBoostM1 для нескольких классов. Вместо взвешенной ошибки классификации AdaBoostM2 использует взвешенные псевдопотери для наблюдений N и классов K

εt=12n=1Nkyndn,k(t)(1ht(xn,yn)+ht(xn,k)),

где

  • ht (xn, k) доверие предсказания учеником в шаге <reservedrangesplaceholder1> в класс k в пределах от 0 (нисколько не уверенный) к 1 (очень уверенный).

  • dn,k(t) являются весами наблюдений на шаге t для класса k.

  • yn является меткой истинного класса, принимая одно из K значений.

  • Вторая сумма по всем классам, кроме истинных yn классов.

Интерпретация псевдопотери сложнее, чем классификационная ошибка, но идея та же самая. Псевдопотеря может использоваться как мера точности классификации от любого ученика ансамбля. Псевдопотеря обычно показывает то же поведение что и взвешенная классификационная ошибка для AdaBoostM1: первые несколько учеников в усиленном ансамбле дают низкие псевдопотери значений. После первых нескольких шагов обучения ансамбль начинает учиться более медленными темпами, а значение псевдопотери приближается к 0,5 снизу.

Для примера использование AdaBoostM2, см. «Предсказание меток классов с использованием классификационного ансамбля».

Мягкое адаптивное усиление

Нежное адаптивное ускорение (GentleBoost, также известный как Gentle AdaBoost) сочетает в себе функции AdaBoostM1 и LogitBoost. Как AdaBoostM1, GentleBoost минимизирует экспоненциальные потери. Но его числовая оптимизация настраивается по-другому. Как LogitBoostкаждый слабый ученик подбирает регрессионую модель к значениям отклика yn ∊ {-1, + 1}.

fitcensemble вычисляет и сохраняет среднюю квадратную ошибку в FitInfo свойство объекта ансамбля. Средняя квадратная ошибка

n=1Ndn(t)(y˜nht(xn))2,

где

  • dn(t) являются весами наблюдений на этапе t (веса складываются до 1).

  • ht (xn) являются предсказания регрессионной модели ht подобранные к значениям yn отклика .

Когда сила отдельных учащихся ослабевает, средневзвешенная квадратная ошибка приближается к 1.

Для примеров использование GentleBoost, см. «Ускорение обучения классификаторов ECOC с использованием раскладывания и параллельных вычислений и указатели несбалансированных данных или неравных затрат на неправильную классификацию в классификационных ансамблях».

Адаптивная логистическая регрессия

Адаптивная логистическая регрессия (LogitBoost) является другим популярным алгоритмом для двоичной классификации. LogitBoost работает аналогично AdaBoostM1, за исключением того, что он минимизирует биномиальное отклонение

n=1Nwnlog(1+exp(2ynf(xn))),

где

  • yn ∊ {-1, + 1} является истинной меткой класса.

  • wn веса наблюдений нормированы до 1.

  • f (xn) ∊ (- ∞, + ∞) - предсказанная классификационная оценка.

Биномиальное отклонение присваивает меньше веса плохо неправильно классифицированным наблюдениям (наблюдения с большими отрицательными значениями ynf (xn)). LogitBoost может дать лучшую среднюю точность, чем AdaBoostM1 для данных с плохо разделяемыми классами.

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

y˜n=yn*pt(xn)pt(xn)(1pt(xn)),

где

  • y*n ∊ {0, + 1} являются вновь маркированными классами (0 вместо -1).

  • pt (xn) - текущая ансамблевая оценка вероятности xn наблюдений класса 1.

fitcensemble вычисляет и сохраняет среднюю квадратную ошибку в FitInfo свойство объекта ансамбля. Средняя квадратная ошибка

n=1Ndn(t)(y˜nht(xn))2,

где

  • dn(t) являются весами наблюдений на этапе t (веса складываются до 1).

  • ht (xn) - предсказания регрессионной модели ht подобранные к значениям откликаy˜n.

Значения yn могут варьироваться от - ∞ до +∞, поэтому среднеквадратичная ошибка не имеет четко определенных границ.

Для примеров использование LogitBoost, см. Train Classification Ensemble и ускоренное обучение с помощью числовых значений предиктора раскладывания.

Ускорение линейного программирования

Ускорение линейного программирования (LPBoost), как TotalBoost, выполняет мультикласс классификацию, пытаясь максимизировать минимальное margin в набор обучающих данных. Эта попытка использует алгоритмы оптимизации, а именно линейное программирование для LPBoost. Поэтому вам нужна лицензия Optimization Toolbox для использования LPBoost или TotalBoost.

Запас классификации является различием между предсказанной score мягкой классификации для истинного класса и самым большим счетом для ложных классов. Для деревьев score классификации узла листа является апостериорной вероятностью классификации в этом узле. Апостериорная вероятность классификации в узле - это количество обучающих последовательностей, которые ведут к этому узлу с классификацией, разделенной на количество обучающих последовательностей, которые ведут к этому узлу. Для получения дополнительной информации смотрите Дополнительные сведения в margin.

Зачем максимизировать минимальный запас? Для одного, ошибка обобщения (ошибка на новых данных) является вероятностью получения отрицательного запаса. Шапир и Сингер [10] устанавливают это неравенство на вероятности получения отрицательного запаса:

Ptest(m0)Ptrain(mθ)+O(1NVlog2(N/V)θ2+log(1/δ)).

Здесь m - запас, θ - любое положительное число, V - размерность Вапника-Червоненкиса пространства классификатора, N - размер набора обучающих данных, а δ - небольшое положительное число. Неравенство удерживается с вероятностью 1- δ по многим i.i.d. обучающие и тестовые наборы. Это неравенство говорит: Чтобы получить низкую ошибку обобщения, минимизируйте количество наблюдений ниже предельных θ в набор обучающих данных.

LPBoost итерационно максимизирует минимальный запас через последовательность задач линейного программирования. Эквивалентно, по двойственности, LPBoost минимизирует максимальное edge, где ребро является средневзвешенным запасом (см. «Подробнее»). На каждой итерации в задаче больше ограничений. Таким образом, для больших задач задача оптимизации становится все более ограниченной, и медленно решается.

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

Для примера использование LPBoost, см. LPBoost и TotalBoost для малых ансамблей.

Ускорение методом наименьших квадратов

Ускорение методом наименьших квадратов (LSBoost) подходит для регрессионных ансамблей. На каждом шаге ансамбль подходит новому ученику к различию между наблюдаемой реакцией и агрегированным предсказанием всех учащихся, выращенных ранее. Ансамбль подходит для минимизации среднеквадратичной ошибки.

Можно использовать LSBoost с усадкой путем прохождения в LearnRate параметр. По умолчанию для этого параметра задано значение 1, и ансамбль учится с максимальной скоростью. Если вы задаете LearnRate в значение от 0 на 1, ансамбль подходит каждому новому ученику, чтобы yn - ηf (xn), где

  • yn - наблюдаемая реакция.

  • f (xn) является агрегированным предсказанием от всех слабых учащихся, выращенных до сих пор для xn наблюдений.

  • η является скоростью обучения.

Для примеров использование LSBoost, см. Train Regression Ensemble, Optimize a Busted Regression Ensemble и Ensemble Regularization.

Устойчивое усиление

Алгоритмы бустинга, такие как AdaBoostM1 и LogitBoost увеличение весов для неправильной классификации наблюдений на каждом шаге ускорения. Эти веса могут стать очень большими. Если это происходит, алгоритм ускорения иногда концентрируется на нескольких неправильно классифицированных наблюдениях и пренебрегает большинством обучающих данных. Следовательно, страдает средняя точность классификации. В этой ситуации можно попробовать использовать устойчивое усиление (RobustBoost). Этот алгоритм не присваивает почти весь вес данных плохо классифицированным наблюдениям. Это может привести к лучшей средней точности классификации. Для использования необходима лицензия Optimization Toolbox RobustBoost.

В отличие от AdaBoostM1 и LogitBoost, RobustBoost не минимизирует определенную функцию потерь. Вместо этого он максимизирует количество наблюдений с классификационным запасом выше определенного порога.

RobustBoost тренируется на основе эволюции времени. Алгоритм начинается с t = 0. На каждом шаге RobustBoost решает задачу оптимизации найти положительный шаг вовремя Δ <reservedrangesplaceholder2> и соответствующее положительное изменение в среднем краю для обучающих данных Δ <reservedrangesplaceholder1>. RobustBoost останавливает обучение и выходит, если хотя бы одно из этих трех условий верно:

  • Время t достигает 1.

  • RobustBoost не может найти решение к задаче оптимизации с положительным Δ <reservedrangesplaceholder1> обновлений и Δ <reservedrangesplaceholder0>.

  • RobustBoost растет столько учащихся, сколько вы просите.

Результаты из RobustBoost может использоваться для любого условия завершения. Оцените точность классификации путем перекрестной валидации или с помощью независимого тестового набора.

Чтобы получить лучшую точность классификации от RobustBoost, можно настроить три параметра в fitcensemble: RobustErrorGoal, RobustMaxMargin, и RobustMarginSigma. Начните с варьирования значений для RobustErrorGoal от 0 до 1. Максимальное допустимое значение для RobustErrorGoal зависит от двух других параметров. Если вы передаете слишком высокое значение, fitcensemble выдает сообщение об ошибке, показывающее допустимую область значений для RobustErrorGoal.

Для примера использование RobustBoost, см. «Настройка RobustBoost».

Увеличение случайной понижающей дискретизации

Случайное усиление понижающей дискретизации (RUSBoost) особенно эффективен при классификации несбалансированных данных, что означает, что у некоторых классов в обучающих данных гораздо меньше представителей, чем у других. RUS означает Random Under Sampling. Алгоритм принимает N, количество представителей в классе с наименьшим количеством представителей в обучающих данных, в качестве основного модуля для выборки. Классы с большим количеством представителей подвергаются выборке путем взятия только N наблюдений каждого класса. Другими словами, если классов K, то, для каждого слабого ученика в ансамбле, RUSBoost принимает подмножество данных с N наблюдениями из каждого из классов K. Процедура бустинга выполняется в соответствии с процедурой адаптивного бустинга для многоклассовой классификации для повторного взвешивания и построения ансамбля.

Когда вы создаете RUSBoost ансамбль, существует опциональная пара "имя-значение" RatioToSmallest. Дайте вектор K значений, каждое значение, представляющее кратное N для выборки для связанного класса. Для примера, если самый маленький класс имеет N = 100 представители, то RatioToSmallest = [2,3,4] означает, что каждый слабый учащийся имеет 200 представителей в классе 1, 300 в классе 2 и 400 в классе 3. Если RatioToSmallest приводит к значению, которое больше, чем количество представителей в конкретном классе, затем RUSBoost производит измерения представителей с заменой. В противном случае RUSBoost пробует представителей без замены.

Для примера использование RUSBoost, см. Классификация с несбалансированными данными.

Полное корректирующее усиление

Полное корректирующее усиление (TotalBoost), как линейное повышение программирования (LPBoost), выполняет мультикласс классификацию, пытаясь максимизировать минимальное margin в набор обучающих данных. Эта попытка использует алгоритмы оптимизации, а именно квадратичное программирование для TotalBoost. Поэтому вам нужна лицензия Optimization Toolbox для использования LPBoost или TotalBoost.

Запас классификации является различием между предсказанной score мягкой классификации для истинного класса и самым большим счетом для ложных классов. Для деревьев score классификации узла листа является апостериорной вероятностью классификации в этом узле. Апостериорная вероятность классификации в узле - это количество обучающих последовательностей, которые ведут к этому узлу с классификацией, разделенной на количество обучающих последовательностей, которые ведут к этому узлу. Для получения дополнительной информации смотрите Дополнительные сведения в margin.

Зачем максимизировать минимальный запас? Для одного, ошибка обобщения (ошибка на новых данных) является вероятностью получения отрицательного запаса. Шапир и Сингер [10] устанавливают это неравенство на вероятности получения отрицательного запаса:

Ptest(m0)Ptrain(mθ)+O(1NVlog2(N/V)θ2+log(1/δ)).

Здесь m - запас, θ - любое положительное число, V - размерность Вапника-Червоненкиса пространства классификатора, N - размер набора обучающих данных, а δ - небольшое положительное число. Неравенство удерживается с вероятностью 1- δ по многим i.i.d. обучающие и тестовые наборы. Это неравенство говорит: Чтобы получить низкую ошибку обобщения, минимизируйте количество наблюдений ниже предельных θ в набор обучающих данных.

TotalBoost минимизирует прокси расхождения Kullback-Leibler между текущим распределением веса и начальным распределением веса при условии, что edge (взвешенный запас) ниже определенного значения. Прокси является квадратичным расширением расхождения:

D(W,W0)=n=1NlogW(n)W0(n)n=1N(1+W(n)W0(n))Δ+12W(n)Δ2,

где И - различие между W (n), весами в текущей и следующей итерации и W 0, начальное распределение веса, которое является равномерным. Эта оптимизационная формулировка мешает весам становиться нулем. На каждой итерации в задаче больше ограничений. Таким образом, для больших задач задача оптимизации становится все более ограниченной, и медленно решается.

TotalBoost обычно создает ансамбли со многими учащимися с весами, которые на порядки величины меньше, чем у других учащихся. Поэтому, чтобы лучше позволить вам удалить неважные представителей ансамбля, compact метод переупорядочивает представители TotalBoost ансамбль от наибольшего веса до наименьшего. Поэтому можно легко удалить наименее важнейшие представители ансамбля, используя removeLearners способ.

Для примера использование TotalBoost, см. LPBoost и TotalBoost для малых ансамблей.

Ссылки

[1] Breiman, L. «Bagging Predictors». Машинное обучение 26, 1996, с. 123-140.

[2] Breiman, L. «Random Forests». Машинное обучение 45, 2001, стр. 5-32.

[4] Freund, Y. «Более надежный алгоритм усиления». arXiv:0905.2138v1, 2009.

[5] Freund, Y. and R. E. Schapire. Теоретически решающее обобщение онлайн-обучения и приложение к бустингу. J. Computer and System Sciences, Vol. 55, 1997, pp. 119-139.

[6] Friedman, J. «Greedy приближения функций: A Gradient buosting machine». Анналы статистики, том 29, № 5, 2001, стр. 1189-1232.

[7] Фридман, Дж., Т. Хасти и Р. Тибширани. «Аддитивная логистическая регрессия: статистический взгляд на увеличение». Анналы статистики, том 28, № 2, 2000, стр. 337-407.

[8] Хасти, Т., Р. Тибширани и Дж. Фридман. Элементы статистического обучения, второе издание. Нью-Йорк: Спрингер, 2008.

[9] Ho, T. K. «Метод случайного подпространства для построения лесов для принятия решений». Транзакции IEEE по анализу шаблонов и машинной разведке, том 20, № 8, 1998, стр. 832-844.

[10] Schapire, R. and Y. Singer. «Улучшенные алгоритмы бустинга с использованием доверительных предсказаний». Машинное обучение, том 37, № 3, 1999, стр. 297-336.

[11] Schapire, R. E. et al. «Увеличение разницы: новое объяснение эффективности методов голосования». Анналы статистики, том 26, № 5, 1998, стр. 1651-1686.

[12] Seiffert, C., T. Khoshgoftaar, J. Hulse, and A. Napolitano. «RUSBoost: Повышение эффективности классификации при искажении обучающих данных». 19-я Международная конференция по распознаванию шаблона, 2008, стр. 1-4.

[13] Warmuth, M., J. Liao, and G. Ratsch. «Полностью корректирующие алгоритмы повышения, которые максимизируют запас». Proc. 23-й Int 'l. Конф. по машинному обучению, ACM, Нью-Йорк, 2006, стр. 1001-1008.

См. также

| | | | | | | | | | | |

Похожие темы