Эта тема предоставляет описания алгоритмов обучения ансамбля, поддержанных 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
из 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
, TreeBagger
error
и meanMargin
методы не нормируют входные веса наблюдения априорных вероятностей в соответствующем классе.
Используйте случайные ансамбли подпространства (Subspace
) улучшить точность дискриминантного анализа (ClassificationDiscriminant
) или k - ближайших соседей (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
, смотрите Обучают Ансамбль Классификации и Ускоряют Обучение Раскладыванием Числовые Значения Предиктора.
Линейное повышение программирования (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
, смотрите Обучают Ансамбль Регрессии, Оптимизируют Повышенный Ансамбль Регрессии и Регуляризацию Ансамбля.
Повышение алгоритмов, таких как 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