Класс: 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