Класс: TreeBagger
Создание пакета деревьев решений
Отдельные деревья принятия решений имеют тенденцию к перевыполнению. Загрузочно-агрегированные (пакетированные) деревья решений объединяют результаты многих деревьев решений, что уменьшает эффекты переоборудования и улучшает обобщение. TreeBagger выращивает деревья решений в ансамбле с помощью загрузочных образцов данных. Также, 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' | Структура, задающая опции, которые управляют вычислениями при выращивании ансамбля деревьев решений. Один из вариантов требует, чтобы при вычислении деревьев решений на нескольких репликациях начальной загрузки использовалось несколько процессоров, если доступен 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' |
Избегайте больших предполагаемых отклонений ошибок вне пакета, устанавливая более сбалансированную матрицу затрат на неправильную классификацию или менее искаженный предыдущий вектор вероятности.
Trees имущество B сохраняет массив ячеек B.NumTrees
CompactClassificationTree или CompactRegressionTree объекты модели. Для текстового или графического отображения дерева t в массиве ячеек введите
view(B.Trees{t})Стандартная CART имеет тенденцию выбирать разделенные предикторы, содержащие много различных значений, например непрерывных переменных, по сравнению с теми, которые содержат несколько различных значений, например категориальных переменных [4]. Рекомендуется задать проверку кривизны или взаимодействия, если выполняются следующие условия:
Если существуют предикторы, которые имеют относительно меньше отличных значений, чем другие предикторы, например, если набор данных предиктора неоднороден.
Если анализ важности предиктора является вашей целью. TreeBagger сохраняет оценки важности предиктора в OOBPermutedPredictorDeltaError имущество Mdl.
Дополнительные сведения о выборе предиктора см. в разделе PredictorSelection для классификационных деревьев или PredictorSelection для регрессионных деревьев.
TreeBagger генерирует образцы в мешке путем избыточной выборки классов с большими затратами на неправильную классификацию и недостаточной выборки классов с небольшими затратами на неправильную классификацию. Следовательно, образцы вне мешка имеют меньше наблюдений из классов с большими затратами на неправильную классификацию и больше наблюдений из классов с небольшими затратами на неправильную классификацию. Если вы обучаете классификационный ансамбль, используя небольшой набор данных и сильно искаженную матрицу затрат, то количество наблюдений вне пакета на класс может быть очень низким. Следовательно, предполагаемая ошибка вне пакета может иметь большую дисперсию и может быть трудно интерпретировать. Такое же явление может иметь место для классов с большими предшествующими вероятностями.
Дополнительные сведения о выборе предикторов разделения и алгоритмов разделения узлов при выращивании деревьев решений см. в разделах Алгоритмы для деревьев классификации и Алгоритмы для деревьев регрессии.
Toolbox™ статистики и машинного обучения предлагает три объекта для фасовки в мешки и случайного леса:
ClassificationBaggedEnsemble создано fitcensemble для классификации
RegressionBaggedEnsemble создано fitrensemble для регрессии
TreeBagger создано TreeBagger для классификации и регрессии
Для получения подробной информации о различиях между TreeBagger и фасованные ансамбли (ClassificationBaggedEnsemble и RegressionBaggedEnsemble), см. Сравнение ансамблей TreeBagger и Bagged.
[1] Брейман, Л. «Случайные леса». Машинное обучение 45, стр. 5-32, 2001.
[2] Брейман, Л., Дж. Фридман, Р. Ольшен и К. Стоун. Деревья классификации и регрессии. Бока Ратон, FL: CRC Press, 1984.
[3] Loh, W.Y. «Регрессионные деревья с несмещенным выбором переменных и обнаружением взаимодействия». Statistica Sinica, Vol. 12, 2002, pp. 361-386.
[4] Ло, У.Я. и Ю.С. Ших. «Разбить методы выбора для деревьев классификации». Statistica Sinica, том 7, 1997, стр. 815-840.
[5] Мейнсхаузен, Н. «Квантильные регрессионные леса». Журнал исследований машинного обучения, том 7, 2006, стр. 983-999.
compact | error | fitctree | fitrtree | oobError | oobPredict | predict | statset | TreeBagger | view | view