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

Эта тема предоставляет описания ансамбля, изучающего алгоритмы, поддержанные 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 out of 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Нет данных
Оценки из сумки важности предиктора с помощью полей классификацииOOBPermutedPredictorDeltaMeanMargin и OOBPermutedPredictorCountRaiseMargin Нет данных
Слияние двух ансамблей, обученных отдельноНет данныхappend
Регрессия квантиляНет данныхquantilePredict, quantileError, oobQuantilePredict, oobQuantileError
Параллельное вычисление для создания ансамбляНет данных

Установите параметр 'UseParallel' на true при помощи аргумента пары "имя-значение" 'Options' TreeBagger или growTrees. Параллельное вычисление требует Parallel Computing Toolbox™.

Для двухъядерных систем и выше, TreeBagger параллелизирует обучение с помощью Intel® Threading Building Blocks (TBB). Поэтому определение опции 'UseParallel' не полезно на одиночном компьютере. Используйте эту опцию, когда вы запустите TreeBagger на кластере. Для получения дополнительной информации на Intel TBB, см. https://software.intel.com/en-us/intel-tbb.

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

Для двухъядерных систем и выше, fitrensemble и fitcensemble также параллелизируют использование обучения Поточная обработка стандартных блоков (TBB) Intel.

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

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

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

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

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

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

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

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

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

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

  • 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=12журнал1ε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=1Nwnжурнал(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 и Ускорьте Обучение Раскладыванием Числовые Значения Предиктора.

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

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

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

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

Pтест(m0)Ptrain(mθ)+O(1NVжурнал2(N/V)θ2+журнал(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 смотрите Ансамбль Регрессии Train, Оптимизируйте Повышенный Ансамбль Регрессии и Регуляризацию Ансамбля.

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

Повышение алгоритмов, таких как 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] устанавливают это неравенство на вероятности получения отрицательного поля:

Pтест(m0)Ptrain(mθ)+O(1NVжурнал2(N/V)θ2+журнал(1/δ)).

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

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

D(W,W0)=n=1NжурналW(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.

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

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

Похожие темы