Эта тема предоставляет описания ансамбля, изучающего алгоритмы, поддержанные Statistics and Machine Learning Toolbox™, включая укладывание в мешки, случайный пробел и различные повышающие алгоритмы. Можно задать алгоритм при помощи аргумента пары "имя-значение" 'Method'
fitcensemble
, fitrensemble
или templateEnsemble
. Используйте fitcensemble
или fitrensemble
, чтобы создать ансамбль учеников для классификации или регрессии, соответственно. Используйте templateEnsemble
, чтобы создать шаблон ученика ансамбля и передать шаблон fitcecoc
, чтобы задать двоичных учеников ансамбля для изучения мультикласса ECOC.
Для агрегации начальной загрузки (укладывание в мешки) и случайный лес, можно использовать TreeBagger
также.
Чтобы узнать о том, как выбрать соответствующий алгоритм, смотрите, Выбирают Applicable Ensemble Aggregation Method.
Обратите внимание на то, что использование некоторых алгоритмов, таких как LPBoost
, TotalBoost
, и RobustBoost
, требует Optimization Toolbox™.
Statistics and Machine Learning Toolbox предлагает три объекта для укладывания в мешки и случайного леса:
ClassificationBaggedEnsemble
создается fitcensemble
для классификации
RegressionBaggedEnsemble
создается fitrensemble
для регрессии
TreeBagger
, созданный TreeBagger
для классификации и регрессии
Для получения дополнительной информации о различиях между 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 | Когда вы оцениваете матрицу близости и выбросы модели |
Вычисление выбросов | OutlierMeasure | Нет данных |
Оценки из сумки важности предиктора с помощью полей классификации | OOBPermutedPredictorDeltaMeanMargin и OOBPermutedPredictorCountRaiseMargin
| Нет данных |
Слияние двух ансамблей, обученных отдельно | Нет данных | append |
Регрессия квантиля | Нет данных | quantilePredict , quantileError , oobQuantilePredict , oobQuantileError |
Параллельное вычисление для создания ансамбля | Нет данных | Установите параметр Для двухъядерных систем и выше, |
Поддержка длинного массива создания ансамбля | Нет данных | Для получения дополнительной информации смотрите Длинные массивы. |
Для двухъядерных систем и выше, 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 и методы 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
,
error
TreeBagger
и методы meanMargin
не нормируют входные веса наблюдения априорных вероятностей в соответствующем классе.
Используйте случайные ансамбли подпространства (Subspace
), чтобы улучшить точность дискриминантного анализа (ClassificationDiscriminant
) или сосед k-nearest (ClassificationKNN
) классификаторы. ансамбли Subspace
также имеют преимущество использования меньшей памяти, чем ансамбли со всеми предикторами и могут обработать отсутствующие значения (NaN
s).
Основной случайный алгоритм подпространства использует эти параметры.
m является количеством размерностей (переменные) к выборке в каждом ученике. Установите m с помощью пары "имя-значение" NPredToSample
.
d является количеством размерностей в данных, которые являются количеством столбцов (предикторы) в матрице данных X
.
n является количеством учеников в ансамбле. Установите n с помощью входа NLearn
.
Основной случайный алгоритм подпространства выполняет следующие шаги:
Выберите без замены случайный набор предикторов m от d возможные значения.
Обучите слабого ученика, использующего только m выбранные предикторы.
Повторите шаги 1 и 2, пока не будет n слабые ученики.
Предскажите путем взятия в среднем прогноза score
слабых учеников и классифицируйте категорию с самым высоким средним score
.
Можно принять решение создать слабого ученика для каждого возможного набора предикторов m от размерностей d. Для этого установите n, количество учеников, к 'AllPredictorCombinations'
. В этом случае существует nchoosek(size(X,2),NPredToSample)
слабые ученики в ансамбле.
fitcensemble
подавляет предикторы после выбора их для ученика, таким образом, у последующих учеников есть более низкий шанс использования предиктора, который ранее использовался. Это взвешивание имеет тенденцию делать предикторы более равномерно распределенными среди учеников, чем в универсальном взвешивании.
Для примеров с помощью Subspace
смотрите Случайную Классификацию Подпространств.
Адаптивное повышение под названием AdaBoostM1
является очень популярным повышающим алгоритмом для бинарной классификации. Алгоритм обучает учеников последовательно. Для каждого ученика с индексом t AdaBoostM1
вычисляет взвешенную ошибку классификации
где
xn является вектором значений предиктора для наблюдения n.
yn является истинной меткой класса.
ht является прогнозом ученика (гипотеза) с индексом t.
функция индикатора.
вес наблюдения n на шаге t.
AdaBoostM1
затем увеличивает веса для наблюдений, неправильно классифицированных учеником t, и уменьшает веса для наблюдений, правильно классифицированных учеником t. Следующий ученик t + 1 затем обучен на данных с обновленными весами .
После учебных концов AdaBoostM1
вычисляет прогноз для нового использования данных
где
веса слабых гипотез в ансамбле.
Обучение AdaBoostM1
может быть просмотрено как поэтапная минимизация экспоненциальной потери
где
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
где
ht (xn, k) является уверенностью прогноза ученика на шаге t в класс k в пределах от 0 (нисколько не уверенный) к 1 (очень уверенный).
веса наблюдения на шаге t для класса k.
yn является истинной меткой класса, берущей одно из значений K.
Второй суммой является по всем классам кроме истинного класса yn.
Интерпретация псевдопотери более трудна, чем ошибка классификации, но идея является тем же самым. Псевдопотеря может использоваться в качестве меры точности классификации от любого ученика в ансамбле. Псевдопотеря обычно показывает то же поведение как взвешенная ошибка классификации для AdaBoostM1
: первые несколько учеников в повышенном ансамбле дают низкие значения псевдопотерь. После первых нескольких учебных шагов ансамбль начинает учиться в более медленном темпе, и значение псевдопотерь приближается 0.5 снизу.
Для примера с помощью AdaBoostM2
смотрите, Предсказывают, что Класс Маркирует Using Classification Ensemble.
Нежное адаптивное повышение (GentleBoost
, также известный как Нежный AdaBoost), сочетает функции AdaBoostM1
и LogitBoost
. Как AdaBoostM1
, GentleBoost
минимизирует экспоненциальную потерю. Но его числовая оптимизация настраивается по-другому. Как LogitBoost
, каждый слабый ученик соответствует модели регрессии к значениям ответа yn ∊ {–1, +1}.
fitcensemble
вычисляет и хранит среднеквадратическую ошибку в свойстве FitInfo
объекта ансамбля. Среднеквадратическая ошибка
где
веса наблюдения на шаге t (веса составляют в целом 1).
ht (xn) является прогнозами модели ht регрессии, адаптированной к значениям ответа yn.
Когда сила отдельных учеников слабеет, взвешенная среднеквадратическая ошибка приближается 1.
Для примеров с помощью GentleBoost
смотрите, Ускоряют Учебные Классификаторы ECOC Используя Раскладывание и Параллельные вычисления и Обрабатывают Неустойчивые Данные или Неравные Затраты Misclassification в Ансамблях Классификации.
Адаптивная логистическая регрессия (LogitBoost
) является другим популярным алгоритмом для бинарной классификации. LogitBoost
работает так же к AdaBoostM1
, кроме него минимизирует биномиальное отклонение
где
yn ∊ {–1, +1} является истинной меткой класса.
wn является весами наблюдения, нормированными, чтобы составить в целом 1.
f (xn) ∊ (– ∞, + ∞) является предсказанным счетом классификации.
Биномиальное отклонение присваивает меньше веса плохо неправильно классифицированным наблюдениям (наблюдения с большими отрицательными величинами ynf (xn)). LogitBoost
может дать лучшую среднюю точность, чем AdaBoostM1
для данных с плохо отделимыми классами.
Ученик t в ансамбле LogitBoost
соответствует модели регрессии к значениям ответа
где
y*n ∊ {0, +1} повторно маркированы классы (0 вместо –1).
pt (xn) является текущей оценкой ансамбля вероятности для наблюдения xn, чтобы быть класса 1.
fitcensemble
вычисляет и хранит среднеквадратическую ошибку в свойстве FitInfo
объекта ансамбля. Среднеквадратическая ошибка
где
веса наблюдения на шаге t (веса составляют в целом 1).
ht (xn) является прогнозами модели ht регрессии, адаптированной к значениям ответа .
yn значений может расположиться от – ∞ к + ∞, таким образом, среднеквадратическая ошибка не имеет четко определенных границ.
Для примера с помощью LogitBoost
смотрите Ансамбль Классификации Train и Ускорьте Обучение Раскладыванием Числовые Значения Предиктора.
Линейное программирование, повышающее (LPBoost
), как TotalBoost
, выполняет классификацию мультиклассов путем попытки максимизировать минимальный margin в наборе обучающих данных. Эта попытка использует алгоритмы оптимизации, а именно, линейное программирование для LPBoost
. Таким образом, вам нужна лицензия Optimization Toolbox, чтобы использовать LPBoost
или TotalBoost
.
Поле классификации является различием между предсказанной мягкой классификацией score для истинного класса и самым большим счетом к ложным классам. Для деревьев score классификации вершины является апостериорной вероятностью классификации в том узле. Апостериорная вероятность классификации в узле является количеством обучающих последовательностей, которые приводят к тому узлу с классификацией, разделенной на количество обучающих последовательностей, которые приводят к тому узлу. Для получения дополнительной информации см. Определения в margin
.
Почему максимизируют минимальное поле? С одной стороны, ошибка обобщения (ошибка на новых данных) является вероятностью получения отрицательного поля. Шапайр и Зингер [10] устанавливают это неравенство на вероятности получения отрицательного поля:
Здесь 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] устанавливают это неравенство на вероятности получения отрицательного поля:
Здесь m является полем, θ является любым положительным числом, V является размерностью Vapnik-Chervonenkis пробела классификатора, N является размером набора обучающих данных, и δ является маленьким положительным числом. Неравенство держится одинаковых взглядов с вероятностью 1–δ по многим i.i.d. наборам обучающих данных и наборам тестов. Это неравенство говорит: Чтобы получить низкую ошибку обобщения, минимизируйте количество наблюдений ниже граничного θ в наборе обучающих данных.
TotalBoost
минимизирует прокси расхождения Kullback-Leibler между текущим распределением веса и начальным распределением веса согласно ограничению, что edge (взвешенное поле) ниже определенного значения. Прокси является квадратичным расширением расхождения:
где Δ является различием между W (n), веса в текущей и следующей итерации, и W 0, начальным распределением веса, которое универсально. Эта формулировка оптимизации мешает весам становиться нулем. В каждой итерации в проблеме существует больше ограничений. Так, для больших проблем задача оптимизации все больше становится ограниченной и медленной, чтобы решить.
TotalBoost
обычно создает ансамбли со многими учениками, имеющими веса, которые являются порядками величины, меньшими, чем те из других учеников. Поэтому, чтобы лучше позволить вам удалить неважных членов ансамбля, метод compact
переупорядочивает членов ансамбля TotalBoost
от самого большого веса до самого маленького. Поэтому можно легко удалить наименее важных членов ансамбля, использующего метод removeLearners
.
Для примера с помощью TotalBoost
см. LPBoost и TotalBoost для Малочисленных Ансамблей.
[1] Бреимен, L. Укладывание в мешки Предикторов. Машинное обучение 26, 1996, стр 123–140.
[2] Бреимен, L. Случайные Леса. Машинное обучение 45, 2001, стр 5–32.
[3] Бреимен, L. https://www.stat.berkeley.edu/~breiman/RandomForests/
[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.
ClassificationBaggedEnsemble
| ClassificationDiscriminant
| ClassificationEnsemble
| ClassificationKNN
| ClassificationPartitionedEnsemble
| CompactClassificationEnsemble
| CompactRegressionEnsemble
| RegressionBaggedEnsemble
| RegressionEnsemble
| RegressionPartitionedEnsemble
| TreeBagger
| fitcensemble
| fitrensemble