Класс: TreeBagger
Создайте сумку деревьев принятия решений
Отдельные деревья решений, как правило, перегружаются. Агрегированные по Bootstrap (bagged) деревья решений объединяют результаты многих деревьев решений, что уменьшает эффекты сверхподбора кривой и улучшает обобщение. TreeBagger
выращивает деревья решений в ансамбле, используя выборки данных bootstrap. Кроме того, TreeBagger
выбирает случайный подмножество предикторов для использования при каждом разделении решений как в алгоритме случайного леса [1].
По умолчанию TreeBagger
деревья классификации мешков. Чтобы вместо этого упаковать деревья регрессии, задайте 'Method','regression'
.
Для задач регрессии, TreeBagger
поддерживает среднюю и квантовую регрессию (то есть лес регрессии квантиля [5]).
Mdl = TreeBagger(NumTrees,Tbl,ResponseVarName)
Mdl = TreeBagger(NumTrees,Tbl,formula)
Mdl = TreeBagger(NumTrees,Tbl,Y)
B = TreeBagger(NumTrees,X,Y)
B = TreeBagger(NumTrees,X,Y,Name,Value)
возвращает ансамбль Mdl
= TreeBagger(NumTrees
,Tbl
,ResponseVarName
)NumTrees
упакованные классификационные деревья, обученные с использованием выборочных данных в таблице Tbl
. ResponseVarName
- имя переменной отклика в Tbl
.
возвращает ансамбль упакованных классификационных деревьев, обученный с использованием выборочных данных в таблице Mdl
= TreeBagger(NumTrees
,Tbl
,formula
)Tbl
. formula
является объяснительной моделью отклика и подмножеством переменных предиктора в Tbl
используется для подгонки Mdl
. Задайте Formula
использование обозначения Уилкинсона. Для получения дополнительной информации см. Обозначение Уилкинсона.
возвращает ансамбль деревьев классификации, используя переменные предиктора в таблице Mdl
= TreeBagger(NumTrees
,Tbl
,Y
)Tbl
и метки классов в векторных Y
.
Y
- массив данных отклика. Элементы Y
соответствуют строкам Tbl
. Для классификации, Y
- набор меток истинных классов. Метки могут быть любой сгруппированной переменной, то есть числовым или логическим вектором, символом матрицей, строковыми массивами, массивом ячеек векторов символов или категориальным вектором. TreeBagger
преобразует метки в массив ячеек из векторов символов. Для регрессии, Y
является числовым вектором. Чтобы вырастить деревья регрессии, необходимо задать пару "имя-значение" 'Method','regression'
.
создает ансамбль B
= TreeBagger(NumTrees
,X
,Y
)B
от NumTrees
деревья решений для предсказания Y отклика
как функция предикторов в числовой матрице обучающих данных, X
. Каждая строка в X
представляет наблюдение, и каждый столбец представляет предиктор или функцию.
B = TreeBagger(NumTrees,X,Y,Name,Value)
задает необязательные пары "имя-значение" параметра:
'InBagFraction' | Доля входных данных для выборки с заменой из входных данных для выращивания каждого нового дерева. Значение по умолчанию 1. |
'Cost' | Квадратная матрица Другой способ
Значение по умолчанию Если |
'SampleWithReplacement' | 'on' к выборке с заменой или 'off' к выборке без замены. Если вы пробуете без замены, вам нужно задать 'InBagFraction' в значение, меньшее единицы. По умолчанию это 'on' . |
'OOBPrediction' | 'on' хранить информацию о том, какие наблюдения находятся вне мешка для каждого дерева. Эту информацию можно использовать при помощи oobPrediction вычислить предсказанные вероятности классов для каждого дерева ансамбля. По умолчанию это 'off' . |
'OOBPredictorImportance' | 'on' хранить вне сумки оценки функций в ансамбле. По умолчанию это 'off' . Определение 'on' также устанавливает 'OOBPrediction' значение в 'on' . Если анализ предикторной важности является вашей целью, то также задайте 'PredictorSelection','curvature' или 'PredictorSelection','interaction-curvature' . Для получения дополнительной информации см. fitctree или fitrtree . |
'Method' | Либо 'classification' или 'regression' . Для регрессии требуется числовое Y . |
'NumPredictorsToSample' | Количество переменных для случайного выбора для каждого разделения решения. По умолчанию является квадратным корнем из количества переменных для классификации и одной трети от количества переменных для регрессии. Допустимые значения 'all' или положительное целое число. Установка этого аргумента на любое допустимое значение, но 'all' вызывает случайный лесной алгоритм Бреймана [1]. |
'NumPrint' | Количество циклов обучения (выращенных деревьев), после которого TreeBagger отображает диагностическое сообщение, показывающее процесс обучения. По умолчанию диагностические сообщения отсутствуют. |
'MinLeafSize' | Минимальное количество наблюдений на лист дерева. По умолчанию это 1 для классификации и 5 для регрессии. |
'Options' | Структура, которая задает опции, которые управляют расчетом при выращивании ансамбля деревьев решений. Один из опций запрашивает, чтобы при расчете деревьев решений на нескольких загрузочных ретрансляциях использовалось несколько процессоров, если доступен Parallel Computing Toolbox™. Две опции задают случайные числовые потоки, которые будут использоваться при выборе репликации загрузочного ретранслятора. Можно создать этот аргумент с вызовом
|
'Prior' | Предыдущие вероятности для каждого класса. Задайте как один из:
Если вы задаете значения для обоих Если |
'PredictorNames' | Имена переменных предиктора, заданные как разделенная разделенными запятой парами, состоящая из
|
'CategoricalPredictors' | Категориальный список предикторов, заданный как разделенная разделенными запятой парами, состоящая из
|
'ChunkSize' | Размер порции, заданный как разделенная разделенными запятой парами, состоящая из Примечание Эта опция применяется только при использовании |
В дополнение к необязательным аргументам выше, TreeBagger
принимает эти необязательные fitctree
и fitrtree
аргументы.
Поддерживаемые fitctree аргументы | Поддерживаемые fitrtree аргументы |
---|---|
AlgorithmForCategorical | MaxNumSplits |
MaxNumCategories | MergeLeaves |
MaxNumSplits | PredictorSelection |
MergeLeaves | Prune |
PredictorSelection | PruneCriterion |
Prune | QuadraticErrorTolerance |
PruneCriterion | SplitCriterion |
SplitCriterion | Surrogate |
Surrogate | Weights |
'Weights' |
Избегайте больших оцененных отклонений ошибок вне мешка путем установки более сбалансированной матрицы затрат на неправильную классификацию или менее искаженного предыдущего вектора вероятностей.
The Trees
свойство B
сохраняет массив ячеек B.NumTrees
CompactClassificationTree
или CompactRegressionTree
объекты модели. Для текстового или графического отображения древовидных t
в массиве ячеек введите
view(B.Trees{t})
Стандартная ТЕЛЕЖКА имеет тенденцию выбирать разделенные предикторы, содержащие много различных значений, например, непрерывных переменных, по сравнению с теми, которые содержат несколько различных значений, например, категориальные переменные [4]. Рассмотрите установку критерия кривизны или взаимодействия, если любое из следующих значений верно:
Если существуют предикторы, которые имеют относительно меньше различных значений, чем другие предикторы, например, если набор данных предиктора неоднороден.
Если анализ предикторной важности является вашей целью. TreeBagger
хранит оценки предикторной важности в OOBPermutedPredictorDeltaError
свойство Mdl
.
Для получения дополнительной информации о выборе предиктора смотрите PredictorSelection
для деревьев классификации или PredictorSelection
для деревьев регрессии.
TreeBagger
генерирует выборки в мешке путем избыточной дискретизации классов с большими расходами на неправильную классификацию и классов недостаточной дискретизации с небольшими расходами на неправильную классификацию. Следовательно, выборки вне мешка имеют меньше наблюдений от классов с большими расходами на неправильную классификацию и больше наблюдений от классов с небольшими затратами на неправильную классификацию. Если вы обучаете классификационный ансамбль с помощью небольшого набора данных и сильно искаженной матрицы затрат, то количество наблюдений вне мешка на класс может быть очень низким. Поэтому предполагаемая ошибка вне сумки может иметь большое отклонение и может оказаться трудным для интерпретации. То же явление может произойти и для классов с большими априорными вероятностями.
Для получения дополнительной информации о выборе разделенных предикторов и алгоритмов разделения узлов при выращивании деревьев решений, смотрите Алгоритмы для деревьев классификации и Алгоритмы для деревьев регрессии.
Statistics and Machine Learning Toolbox™ предлагает три объекта для мешков и случайных лесов:
ClassificationBaggedEnsemble
созданный fitcensemble
для классификации
RegressionBaggedEnsemble
созданный fitrensemble
для регрессии
TreeBagger
созданный TreeBagger
для классификации и регрессии
Для получения дополнительной информации о различиях между TreeBagger
и пакетированные ансамбли (ClassificationBaggedEnsemble
и RegressionBaggedEnsemble
), см. Сравнение TreeBagger и Bagged Ensembles.
[1] Breiman, L. «Random Forests». Машинное обучение 45, стр. 5-32, 2001.
[2] Breiman, L., J. Friedman, R. Olshen, and C. Stone. Деревья классификации и регрессии. Бока Ратон, FL: CRC Press, 1984.
[3] Loh, W.Y. «Regression Trees with Unbiased Variable Selection and Interaction Detection». Statistica Sinica, Vol. 12, 2002, pp. 361-386.
[4] Loh, W.Y. and Y.S. Shih. «Разделение методов выбора для деревьев классификации». Statistica Sinica, Vol. 7, 1997, pp. 815-840.
[5] Meinshausen, N. «Quantle Regression Forests». Journal of Машинное Обучение Research, Vol. 7, 2006, pp. 983-999.
compact
| error
| fitctree
| fitrtree
| oobError
| oobPredict
| predict
| statset
| TreeBagger
| view
| view