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

Эта тема предоставляет описания алгоритмов обучения ансамбля, поддержанных Statistics and Machine Learning 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 для малочисленных ансамблей

Чтобы узнать о том, как выбрать соответствующий алгоритм, смотрите, Выбирают Applicable Ensemble Aggregation Method.

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

Загрузите агрегацию (укладывание в мешки) и случайный лес

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

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

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

Расчет выбросовOutlierMeasureN/A
Оценки из сумки важности предиктора с помощью полей классификацииOOBPermutedPredictorDeltaMeanMargin и OOBPermutedPredictorCountRaiseMargin N/A
Слияние двух ансамблей, обученных отдельноN/Aappend
Регрессия квантиляN/AquantilePredict, quantileError, oobQuantilePredict, oobQuantileError
Поддержка длинного массива создания ансамбляN/AДля получения дополнительной информации смотрите Длинные массивы.

Сложенные в мешок функции ансамбля не в TreeBagger

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

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

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

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

  • Если вы передаете матрицу стоимости misclassification TreeBagger, это передает матрицу деревьям. Если вы передаете матрицу стоимости misclassification 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, пока не будет 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-by-2 матрица классификационных оценок для этих двух классов и наблюдений N. Второй столбец в этой матрице всегда равен минус первый столбец. 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) является доверием предсказания ученика на шаге t в класс k в пределах от 0 (нисколько не уверенный) к 1 (очень уверенный).

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

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

  • Второй суммой является по всем классам кроме истинного класса yn.

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

Для примера с помощью AdaBoostM2, смотрите Предсказывают, что Класс Маркирует Using Classification Ensemble.

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

Нежное адаптивное повышение (GentleBoost, также известный как Нежный 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 Используя Раскладывание и Параллельные вычисления и Обрабатывают Неустойчивые Данные или Неравные Затраты Misclassification в Ансамблях Классификации.

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

Адаптивная логистическая регрессия (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, смотрите Обучают Ансамбль Классификации и Ускоряют Обучение Раскладыванием Числовые Значения Предиктора.

Линейное повышение программирования

Линейное повышение программирования (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 является размерностью Vapnik-Chervonenkis пробела классификатора, 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, смотрите Обучают Ансамбль Регрессии, Оптимизируют Повышенный Ансамбль Регрессии и Регуляризацию Ансамбля.

Устойчивое повышение

Повышение алгоритмов, таких как 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, смотрите Мелодию RobustBoost.

Случайное повышение субдискретизации

Случайное повышение субдискретизации (RUSBoost) является особенно эффективным при классификации неустойчивых данных, означая, что некоторый класс в обучающих данных имеет много меньше членов, чем другой. RUS обозначает Случайный При Выборке. Алгоритм берет 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 является размерностью Vapnik-Chervonenkis пробела классификатора, 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] Бреимен, L. "Укладывание в мешки Предикторов". Машинное обучение 26, 1996, стр 123–140.

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

[4] Freund, Y. "Более устойчивый повышающий алгоритм". arXiv:0905.2138v1, 2009.

[5] Freund, Y. и Р. Э. Шапайр. "Теоретическое Решением Обобщение Дистанционного обучения и Приложения к Повышению". J. Компьютерных и Системных Наук, Издания 55, 1997, стр 119–139.

[6] Фридман, J. "Жадное приближение функций: машина повышения градиента". Летопись Статистики, Издания 29, № 5, 2001, стр 1189–1232.

[7] Фридман, J., Т. Хэсти и Р. Тибширэни. "Аддитивная логистическая регрессия: статистическое представление повышения". Летопись Статистики, Издания 28, № 2, 2000, стр 337–407.

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

[9] Хо, T. K. "Случайный метод подпространства для построения лесов решения". Транзакции IEEE согласно Анализу Шаблона и Искусственному интеллекту, Изданию 20, № 8, 1998, стр 832–844.

[10] Schapire, R. и И. Зингер. "Улучшенные повышающие алгоритмы с помощью оцененных доверием предсказаний". Машинное обучение, Издание 37, № 3, 1999, стр 297–336.

[11] Schapire, R. E. и др. "Повышение поля: новое объяснение эффективности голосующих методов". Летопись Статистики, Издания 26, № 5, 1998, стр 1651–1686.

[12] Seiffert, C., Т. Хошгофтаар, Дж. Хулс и А. Наполитано. "RUSBoost: Улучшание производительности классификации, когда обучающие данные скашивается". 19-я Международная конференция по вопросам Распознавания образов, 2008, стр 1–4.

[13] Warmuth, M., Цз. Ляо и Г. Рэч. "Полностью корректирующие повышающие алгоритмы, которые максимизируют поле". Proc. 23-й Int’l. Конференция по Машинному обучению, ACM, Нью-Йорк, 2006, стр 1001–1008.

Смотрите также

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

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте