exponenta event banner

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

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

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

Значение 'Method'АлгоритмПоддерживаемые проблемыПримеры
'Bag'Агрегирование начальной загрузки (пакетирование) и случайный лес ([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, требуется Toolbox™ оптимизации.

Агрегирование начальной загрузки (пакетирование) и случайный лес

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

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

Агрегация бутстрэпа (фасовка в мешки) - вид ансамблевого обучения. Чтобы собрать в пакет слабого ученика, такого как дерево принятия решений в наборе данных, создайте множество загрузочных реплик набора данных и вырастите деревья принятия решений в репликах. Получение каждой реплики начальной загрузки путем случайного выбора 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 модель с использованием fillproxMATLAB ® должен соответствовать матрице n-by-n в памяти, где n - количество наблюдений. Поэтому, если n является умеренным или большим, избегайте оценки матрицы близости и отклонений.

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

Фасованные элементы ансамбля не в TreeBagger

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

Различные имена для TreeBagger и фасованные ансамбли

ОсобенностьTreeBaggerФасованные ансамбли
Вклад критерия разделения для каждого предиктораDeltaCriterionDecisionSplit собственностьПервый выход predictorImportance (классификация) или predictorImportance (регрессия)
Ассоциации предикторовSurrogateAssociation собственностьВторой выход predictorImportance (классификация) или predictorImportance (регрессия)
Внеплановые оценки важности предиктора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 ансамбли также имеют преимущество использования меньшего объема памяти, чем ансамбли со всеми предикторами, и могут обрабатывать отсутствующие значения (NaNs).

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

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

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

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

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

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

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

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

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

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

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

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

Алгоритмы повышения

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

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

εt=∑n=1Ndn (t) I (yn≠ht (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-by-2 матрицей классификационных баллов для двух классов и N наблюдений. Второй столбец в этой матрице всегда равен минус первый столбец. predict метод возвращает два балла, чтобы быть совместимыми с многоклассовыми моделями, хотя это избыточно, поскольку второй столбец всегда является отрицательным для первого.

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

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

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

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

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

εt=12∑n=1N∑k≠yndn,k (t) (1 ht (xn, yn) + ht (xn, k)),

где

  • ht (xn, k) - уверенность предсказания учеником на шаге t в классе 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˜n−ht (xn)) 2,

где

  • dn (t) - наблюдаемые веса на этапе t (веса в сумме до 1).

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

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

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

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

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

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

где

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

  • wn - веса наблюдения, нормализованные в сумме до 1.

  • f (xn) ∊ (- ∞,+∞) - прогнозируемый показатель классификации.

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

Ученик t в LogitBoost ensemble соответствует регрессионной модели значениям отклика

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

где

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

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

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

∑n=1Ndn (t) (y˜n−ht (xn)) 2,

где

  • dn (t) - наблюдаемые веса на этапе t (веса в сумме до 1).

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

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

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

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

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

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

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

Ptest (m≤0) ≤Ptrain (m≤θ) + O (1NVlog2 (N/V) start2 + log (1/δ)).

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

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

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

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

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

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

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

  • yn - наблюдаемый ответ.

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

  • start- скорость обучения.

Для примеров использования LSBoost, см. Ансамбль регрессии поезда, Оптимизация ансамбля усиленной регрессии и Регуляризация ансамбля.

Надежное повышение

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

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

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

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

  • RobustBoost не может найти решение задачи оптимизации с положительными обновлениями Δt и Δm.

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

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

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

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

Ускорение случайной недостаточной выборки

Случайная недостаточная выборка повышения (RUSBoost) особенно эффективен при классификации несбалансированных данных, что означает, что некоторые классы в данных обучения имеют гораздо меньше членов, чем другие. RUS означает случайную выборку. Алгоритм принимает N, количество членов в классе с наименьшим количеством членов в данных обучения, в качестве базовой единицы выборки. Классы с большим количеством членов подвергаются выборке, принимая только N наблюдений каждого класса. Другими словами, если есть К классов, то, для каждого слабого учащегося в ансамбле, 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), выполняет мультиклассовую классификацию, пытаясь максимизировать минимальный запас в обучающем наборе. Эта попытка использует алгоритмы оптимизации, а именно квадратичное программирование для TotalBoost. Таким образом, вам нужна лицензия Optimization Toolbox для использования LPBoost или TotalBoost.

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

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

Ptest (m≤0) ≤Ptrain (m≤θ) + O (1NVlog2 (N/V) start2 + log (1/δ)).

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

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

D (W, W0) = ∑n=1NlogW (n) W0 (n) ≈∑ n=1N (1+W (n) W0 (n)) Δ + 12 Вт (n) Δ2,

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

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

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

Ссылки

[1] Брейман, Л. «Предикторы пакетирования». Машинное обучение 26, 1996, стр. 123-140.

[2] Брейман, Л. «Случайные леса». Машинное обучение 45, 2001, стр. 5-32.

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

[5] Фрейнд, Ю. и Р. Э. Схапире. «Теоретическое обобщение онлайн-обучения и приложения для повышения». J. of Computer and System Sciences, Vol. 55, 1997, pp. 119-139.

[6] Фридман, Дж. «Приближение жадной функции: повышающая градиент машина». Летописи статистики, т. 29, № 5, 2001, с. 1189-1232.

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

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

[9] Хо, Т. К. «Метод случайного подпространства для построения решающих лесов». IEEE Transactions on Pattern Analysis and Machine Intelligence, том 20, № 8, 1998, стр. 832-844.

[10] Шапире, Р. и Я. Сингер. «Улучшены алгоритмы повышения с использованием прогнозов с оценкой доверия». Машинное обучение, том 37, № 3, 1999, стр. 297-336.

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

[12] Зайфферт, К., Т. Хошгофтаар, Ж. Хульсе и А. Наполитано. «RUSBoost: Повышение эффективности классификации при искажении данных обучения» 19-я Международная конференция по распознаванию образов, 2008, стр. 1-4.

[13] Вармут, М., Дж. Ляо и Г. Ратш. «Полностью корректирующие алгоритмы повышения, которые максимизируют запас». Proc. 23-я Int 'l. Conf. on Machine Learning, ACM, New York, 2006, pp. 1001-1008.

См. также

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

Связанные темы