В этой теме приведены описания алгоритмов обучения ансамбля, поддерживаемых Statistics and Machine Learning Toolbox™, включая мешки, случайное пространство и различные алгоритмы усиления. Вы можете задать алгоритм при помощи 'Method'
Аргумент пары "имя-значение" из fitcensemble
, fitrensemble
, или templateEnsemble
. Использовать fitcensemble
или fitrensemble
создать ансамбль учащихся для классификации или регрессии, соответственно. Использовать templateEnsemble
чтобы создать шаблон обучающегося ансамбля и передать шаблон в fitcecoc
определить ансамблевых двоичных учащихся для многоклассового обучения ECOC.
Для агрегирования bootstrap (упаковка в мешки) и случайного леса можно использовать TreeBagger
также.
Чтобы узнать о том, как выбрать подходящий алгоритм, смотрите Выбор Применимого Метода Агрегации Ансамбля.
Обратите внимание, что использование некоторых алгоритмов, таких как LPBoost
, TotalBoost
, и RobustBoost
, требует Optimization Toolbox™.
Statistics and Machine Learning Toolbox предлагает три объекта для упаковки в мешки и случайный лес:
ClassificationBaggedEnsemble
созданный fitcensemble
для классификации
RegressionBaggedEnsemble
созданный fitrensemble
для регрессии
TreeBagger
созданный TreeBagger
для классификации и регрессии
Для получения дополнительной информации о различиях между TreeBagger
и пакетированные ансамбли (ClassificationBaggedEnsemble
и RegressionBaggedEnsemble
), см. Сравнение TreeBagger и Bagged Ensembles.
Bootstrap aggregation (bagging) - тип ансамблевого обучения. Чтобы упаковать слабого обучающегося, такого как дерево решений на наборе данных, сгенерируйте много реплик bootstrap набора данных и выращивайте деревья решений на репликах. Получите каждую реплику bootstrap путем случайного выбора 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 | Н/Д |
Out-of-bag оценки предикторной важности с использованием классификационных полей | OOBPermutedPredictorDeltaMeanMargin и OOBPermutedPredictorCountRaiseMargin
| Н/Д |
Объединение двух ансамблей, обученных отдельно | Н/Д | append |
Регрессия квантиля | Н/Д | quantilePredict , quantileError , oobQuantilePredict , oobQuantileError |
Поддержка длинный массив для создания ансамбля | Н/Д | Для получения дополнительной информации см. Раздел «Длинные массивы» |
Упакованный ансамбль функций не в TreeBagger
Функция | Описание |
---|---|
Гипероптимизация параметров управления | Используйте 'OptimizeHyperparameters' аргумент пары "имя-значение". |
Раскладывание числовых предикторов для ускорения обучения | Используйте 'NumBins' аргумент пары "имя-значение". |
Генерация кода для predict | После обучения модели можно сгенерировать код C/C + +, который предсказывает метки для новых данных. Для генерации кода C/C + + требуется MATLAB Coder™. Для получения дополнительной информации смотрите Введение в генерацию кода. |
Различные имена для TreeBagger
и упакованные в мешки ансамбли
Функция | TreeBagger | Упакованные ансамбли |
---|---|---|
Разделение вкладов критерия для каждого предиктора | DeltaCriterionDecisionSplit свойство | Первый выход predictorImportance (классификация) или predictorImportance (регрессия) |
Ассоциации предикторов | SurrogateAssociation свойство | Второй выход predictorImportance (классификация) или predictorImportance (регрессия) |
Out-of-bag оценки предикторной важности | OOBPermutedPredictorDeltaError свойство | Выход oobPermutedPredictorImportance (классификация) или oobPermutedPredictorImportance (регрессия) |
Ошибка (вероятность неправильной классификации или среднеквадратичная ошибка) | error и oobError методы | loss и oobLoss методы (классификация) или loss и oobLoss методы (регрессия) |
Обучение дополнительных деревьев и добавление их в ансамбль | growTrees метод | resume метод (классификация) или resume метод (регрессия) |
Среднее значение запаса классификации на дерево | meanMargin и oobMeanMargin методы | edge и oobEdge методы (классификация) |
В сложение, два важных различия существуют, когда вы обучаете модель и предсказываете ответы:
Если вы передаете матрицу затрат неправильной классификации в TreeBagger
, она передает матрицу вдоль к деревьям. Если вы передаете матрицу затрат неправильной классификации в fitcensemble
, он использует матрицу, чтобы настроить предыдущие вероятности класса. fitcensemble
затем передает скорректированные предыдущие вероятности и матрицу затрат по умолчанию в деревья. Матрица затрат по умолчанию ones(K)–eye(K)
для K
классы.
В отличие от loss
и edge
методы в ClassificationBaggedEnsemble
, а TreeBagger
error
и meanMargin
методы не нормализуют входные веса наблюдений априорных вероятностей в соответствующем классе.
Используйте случайные ансамбли подпространства (Subspace
) для повышения точности дискриминантного анализа (ClassificationDiscriminant
) или k-ближайших соседей (ClassificationKNN
) классификаторы. Subspace
ансамбли также имеют преимущество использования меньшей памяти, чем ансамбли со всеми предикторами, и могут обрабатывать отсутствующие значения (NaN
с).
Основной алгоритм случайного подпространства использует эти параметры.
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-на-2 матрицей классификационных оценок для двух классов и N наблюдений. Второй столбец этой матрицы всегда равен минус первому столбцу. The predict
метод возвращает два счетов, чтобы соответствовать многоклассовым моделям, хотя это избыточно, потому что второй столбец всегда является отрицательным для первой.
Чаще всего AdaBoostM1
используется с пнями принятия решений (по умолчанию) или мелкими деревьями. Если усиленные пни дают плохую эффективность, попробуйте задать минимальный размер родительского узла, равный одной четверти обучающих данных.
По умолчанию скорость обучения для алгоритмов ускорения 1
. Если установить скорость обучения на меньшее число, ансамбль учится с меньшей скоростью, но может сходиться к лучшему решению. 0.1
является популярным выбором для скорости обучения. Обучение со скоростью меньше 1
часто называется «усадка».
Для примеров использование AdaBoostM1
, см. Проведение чувствительного к затратам сравнения двух классификационных моделей и создание шаблона ансамбля для многоклассового обучения ECOC.
Адаптивное усиление с именем AdaBoostM2
является расширением AdaBoostM1
для нескольких классов. Вместо взвешенной ошибки классификации AdaBoostM2
использует взвешенные псевдопотери для наблюдений N и классов K
где
ht (xn, k) доверие предсказания учеником в шаге <reservedrangesplaceholder1> в класс k в пределах от 0 (нисколько не уверенный) к 1 (очень уверенный).
являются весами наблюдений на шаге t для класса k.
yn является меткой истинного класса, принимая одно из K значений.
Вторая сумма по всем классам, кроме истинных yn классов.
Интерпретация псевдопотери сложнее, чем классификационная ошибка, но идея та же самая. Псевдопотеря может использоваться как мера точности классификации от любого ученика ансамбля. Псевдопотеря обычно показывает то же поведение что и взвешенная классификационная ошибка для AdaBoostM1
: первые несколько учеников в усиленном ансамбле дают низкие псевдопотери значений. После первых нескольких шагов обучения ансамбль начинает учиться более медленными темпами, а значение псевдопотери приближается к 0,5 снизу.
Для примера использование AdaBoostM2
, см. «Предсказание меток классов с использованием классификационного ансамбля».
Нежное адаптивное ускорение (GentleBoost
, также известный как Gentle AdaBoost) сочетает в себе функции AdaBoostM1
и LogitBoost
. Как AdaBoostM1
, GentleBoost
минимизирует экспоненциальные потери. Но его числовая оптимизация настраивается по-другому. Как LogitBoost
каждый слабый ученик подбирает регрессионую модель к значениям отклика yn ∊ {-1, + 1}.
fitcensemble
вычисляет и сохраняет среднюю квадратную ошибку в FitInfo
свойство объекта ансамбля. Средняя квадратная ошибка
где
являются весами наблюдений на этапе t (веса складываются до 1).
ht (xn) являются предсказания регрессионной модели ht подобранные к значениям yn отклика .
Когда сила отдельных учащихся ослабевает, средневзвешенная квадратная ошибка приближается к 1.
Для примеров использование GentleBoost
, см. «Ускорение обучения классификаторов ECOC с использованием раскладывания и параллельных вычислений и указатели несбалансированных данных или неравных затрат на неправильную классификацию в классификационных ансамблях».
Адаптивная логистическая регрессия (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 Classification Ensemble и ускоренное обучение с помощью числовых значений предиктора раскладывания.
Ускорение линейного программирования (LPBoost
), как TotalBoost
, выполняет мультикласс классификацию, пытаясь максимизировать минимальное margin в набор обучающих данных. Эта попытка использует алгоритмы оптимизации, а именно линейное программирование для LPBoost
. Поэтому вам нужна лицензия Optimization Toolbox для использования LPBoost
или TotalBoost
.
Запас классификации является различием между предсказанной score мягкой классификации для истинного класса и самым большим счетом для ложных классов. Для деревьев score классификации узла листа является апостериорной вероятностью классификации в этом узле. Апостериорная вероятность классификации в узле - это количество обучающих последовательностей, которые ведут к этому узлу с классификацией, разделенной на количество обучающих последовательностей, которые ведут к этому узлу. Для получения дополнительной информации смотрите Дополнительные сведения в margin
.
Зачем максимизировать минимальный запас? Для одного, ошибка обобщения (ошибка на новых данных) является вероятностью получения отрицательного запаса. Шапир и Сингер [10] устанавливают это неравенство на вероятности получения отрицательного запаса:
Здесь m - запас, θ - любое положительное число, V - размерность Вапника-Червоненкиса пространства классификатора, 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 Regression Ensemble, Optimize a Busted Regression Ensemble и Ensemble Regularization.
Алгоритмы бустинга, такие как AdaBoostM1
и LogitBoost
увеличение весов для неправильной классификации наблюдений на каждом шаге ускорения. Эти веса могут стать очень большими. Если это происходит, алгоритм ускорения иногда концентрируется на нескольких неправильно классифицированных наблюдениях и пренебрегает большинством обучающих данных. Следовательно, страдает средняя точность классификации. В этой ситуации можно попробовать использовать устойчивое усиление (RobustBoost
). Этот алгоритм не присваивает почти весь вес данных плохо классифицированным наблюдениям. Это может привести к лучшей средней точности классификации. Для использования необходима лицензия Optimization Toolbox RobustBoost
.
В отличие от AdaBoostM1
и LogitBoost
, RobustBoost
не минимизирует определенную функцию потерь. Вместо этого он максимизирует количество наблюдений с классификационным запасом выше определенного порога.
RobustBoost
тренируется на основе эволюции времени. Алгоритм начинается с t = 0. На каждом шаге RobustBoost
решает задачу оптимизации найти положительный шаг вовремя Δ <reservedrangesplaceholder2> и соответствующее положительное изменение в среднем краю для обучающих данных Δ <reservedrangesplaceholder1>. RobustBoost
останавливает обучение и выходит, если хотя бы одно из этих трех условий верно:
Время t достигает 1.
RobustBoost
не может найти решение к задаче оптимизации с положительным Δ <reservedrangesplaceholder1> обновлений и Δ <reservedrangesplaceholder0>.
RobustBoost
растет столько учащихся, сколько вы просите.
Результаты из RobustBoost
может использоваться для любого условия завершения. Оцените точность классификации путем перекрестной валидации или с помощью независимого тестового набора.
Чтобы получить лучшую точность классификации от RobustBoost
, можно настроить три параметра в fitcensemble
: RobustErrorGoal
, RobustMaxMargin
, и RobustMarginSigma
. Начните с варьирования значений для RobustErrorGoal
от 0 до 1. Максимальное допустимое значение для RobustErrorGoal
зависит от двух других параметров. Если вы передаете слишком высокое значение, fitcensemble
выдает сообщение об ошибке, показывающее допустимую область значений для RobustErrorGoal
.
Для примера использование RobustBoost
, см. «Настройка RobustBoost».
Случайное усиление понижающей дискретизации (RUSBoost
) особенно эффективен при классификации несбалансированных данных, что означает, что у некоторых классов в обучающих данных гораздо меньше представителей, чем у других. RUS означает Random Under Sampling. Алгоритм принимает 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 - размерность Вапника-Червоненкиса пространства классификатора, N - размер набора обучающих данных, а δ - небольшое положительное число. Неравенство удерживается с вероятностью 1- δ по многим i.i.d. обучающие и тестовые наборы. Это неравенство говорит: Чтобы получить низкую ошибку обобщения, минимизируйте количество наблюдений ниже предельных θ в набор обучающих данных.
TotalBoost
минимизирует прокси расхождения Kullback-Leibler между текущим распределением веса и начальным распределением веса при условии, что edge (взвешенный запас) ниже определенного значения. Прокси является квадратичным расширением расхождения:
где И - различие между W (n), весами в текущей и следующей итерации и W 0, начальное распределение веса, которое является равномерным. Эта оптимизационная формулировка мешает весам становиться нулем. На каждой итерации в задаче больше ограничений. Таким образом, для больших задач задача оптимизации становится все более ограниченной, и медленно решается.
TotalBoost
обычно создает ансамбли со многими учащимися с весами, которые на порядки величины меньше, чем у других учащихся. Поэтому, чтобы лучше позволить вам удалить неважные представителей ансамбля, compact
метод переупорядочивает представители TotalBoost
ансамбль от наибольшего веса до наименьшего. Поэтому можно легко удалить наименее важнейшие представители ансамбля, используя removeLearners
способ.
Для примера использование TotalBoost
, см. LPBoost и TotalBoost для малых ансамблей.
[1] Breiman, L. «Bagging Predictors». Машинное обучение 26, 1996, с. 123-140.
[2] Breiman, L. «Random Forests». Машинное обучение 45, 2001, стр. 5-32.
[3] Брейман, Л. https://www.stat.berkeley.edu/~breiman/RandomForests/
[4] Freund, Y. «Более надежный алгоритм усиления». arXiv:0905.2138v1, 2009.
[5] Freund, Y. and R. E. Schapire. Теоретически решающее обобщение онлайн-обучения и приложение к бустингу. J. Computer and System Sciences, Vol. 55, 1997, pp. 119-139.
[6] Friedman, J. «Greedy приближения функций: A Gradient buosting machine». Анналы статистики, том 29, № 5, 2001, стр. 1189-1232.
[7] Фридман, Дж., Т. Хасти и Р. Тибширани. «Аддитивная логистическая регрессия: статистический взгляд на увеличение». Анналы статистики, том 28, № 2, 2000, стр. 337-407.
[8] Хасти, Т., Р. Тибширани и Дж. Фридман. Элементы статистического обучения, второе издание. Нью-Йорк: Спрингер, 2008.
[9] Ho, T. K. «Метод случайного подпространства для построения лесов для принятия решений». Транзакции IEEE по анализу шаблонов и машинной разведке, том 20, № 8, 1998, стр. 832-844.
[10] Schapire, R. and Y. Singer. «Улучшенные алгоритмы бустинга с использованием доверительных предсказаний». Машинное обучение, том 37, № 3, 1999, стр. 297-336.
[11] Schapire, R. E. et al. «Увеличение разницы: новое объяснение эффективности методов голосования». Анналы статистики, том 26, № 5, 1998, стр. 1651-1686.
[12] Seiffert, C., T. Khoshgoftaar, J. Hulse, and A. Napolitano. «RUSBoost: Повышение эффективности классификации при искажении обучающих данных». 19-я Международная конференция по распознаванию шаблона, 2008, стр. 1-4.
[13] Warmuth, M., J. Liao, and G. Ratsch. «Полностью корректирующие алгоритмы повышения, которые максимизируют запас». Proc. 23-й Int 'l. Конф. по машинному обучению, ACM, Нью-Йорк, 2006, стр. 1001-1008.
ClassificationBaggedEnsemble
| ClassificationDiscriminant
| ClassificationEnsemble
| ClassificationKNN
| ClassificationPartitionedEnsemble
| CompactClassificationEnsemble
| CompactRegressionEnsemble
| fitcensemble
| fitrensemble
| RegressionBaggedEnsemble
| RegressionEnsemble
| RegressionPartitionedEnsemble
| TreeBagger