RegressionTree class

Суперклассы: CompactRegressionTree

Описание

Дерево решений с бинарными разделениями для регрессии. Объект класса RegressionTree может предсказать ответы для новых данных с predict метод. Объект содержит данные, используемые для обучения, так может вычислить предсказания перезамены.

Конструкция

Создайте RegressionTree объект при помощи fitrtree.

Свойства

BinEdges

Границы интервала для числовых предикторов в виде массива ячеек p числовые векторы, где p является количеством предикторов. Каждый вектор включает границы интервала для числового предиктора. Элемент в массиве ячеек для категориального предиктора пуст, потому что программное обеспечение не делает интервала категориальные предикторы.

Числовые предикторы интервалов программного обеспечения, только если вы задаете 'NumBins' аргумент значения имени как положительный целочисленный скаляр, когда обучение модель с древовидными учениками. BinEdges свойство пусто если 'NumBins' значение пусто (значение по умолчанию).

Можно воспроизвести сгруппированные данные о предикторе Xbinned при помощи BinEdges свойство обученной модели mdl.

X = mdl.X; % Predictor data
Xbinned = zeros(size(X));
edges = mdl.BinEdges;
% Find indices of binned predictors.
idxNumeric = find(~cellfun(@isempty,edges));
if iscolumn(idxNumeric)
    idxNumeric = idxNumeric';
end
for j = idxNumeric 
    x = X(:,j);
    % Convert x to array if x is a table.
    if istable(x) 
        x = table2array(x);
    end
    % Group x into bins by using the discretize function.
    xbinned = discretize(x,[-inf; edges{j}; inf]); 
    Xbinned(:,j) = xbinned;
end
Xbinned содержит индексы интервала, в пределах от 1 к количеству интервалов, для числовых предикторов. Xbinned значения 0 для категориальных предикторов. Если X содержит NaNs, затем соответствующий Xbinned значениями является NaNs.

CategoricalPredictors

Категориальные индексы предиктора в виде вектора из положительных целых чисел. CategoricalPredictors содержит значения индекса, соответствующие столбцам данных о предикторе, которые содержат категориальные предикторы. Если ни один из предикторов не является категориальным, то это свойство пусто ([]).

CategoricalSplits

n-by-2 массив ячеек, где n количество категориальных разделений в tree. Каждая строка в CategoricalSplits дает левые и правые значения для категориального разделения. Для каждого узла ветви с категориальным разделением j на основе категориального переменного предиктора z, покинутый дочерний элемент выбран если z находится в CategoricalSplits(j,1) и правильный дочерний элемент выбран если z находится в CategoricalSplits(j,2). Разделения находятся в том же порядке как узлы дерева. Узлы для этих разделений могут быть найдены путем выполнения cuttype и выбор 'categorical' сокращения сверху донизу.

Children

n-by-2 массив, содержащий количества дочерних узлов для каждого узла в tree, где n является количеством узлов. Вершины имеют дочерний узел 0.

CutCategories

n-by-2 массив ячеек категорий используется при ветвях в tree, где n является количеством узлов. Для каждого узла ветви i на основе категориального переменного предиктора x, покинутый дочерний элемент выбран если x среди категорий, перечисленных в CutCategories{i,1}, и правильный дочерний элемент выбран если x среди перечисленных в CutCategories{i,2}. Оба столбца CutCategories пусты для узлов ветви на основе непрерывных предикторов и для вершин.

CutPoint содержит точки разделения для 'continuous' сокращения и CutCategories содержит набор категорий.

CutPoint

n - вектор элемента из значений, используемых в качестве точек разделения в tree, где n является количеством узлов. Для каждого узла ветви i на основе непрерывного переменного предиктора x, покинутый дочерний элемент выбран если x<CutPoint(i) и правильный дочерний элемент выбран если x>=CutPoint(i). CutPoint isnan для узлов ветви на основе категориальных предикторов и для вершин.

CutType

n - массив ячеек элемента, указывающий на тип сокращения в каждом узле в tree, где n является количеством узлов. Для каждого узла i, CutType{i} :

  • 'continuous' — Если сокращение задано в форме x < v для переменной x и точка разделения v.

  • 'categorical' — Если сокращение задано ли переменная x принимает значение в наборе категорий.

  • '' — Если i вершина.

CutPoint содержит точки разделения для 'continuous' сокращения и CutCategories содержит набор категорий.

CutPredictor

n - массив ячеек элемента имен переменных используется для ответвления в каждом узле в tree, где n является количеством узлов. Эти переменные иногда известны как переменные сокращения. Для вершин, CutPredictor содержит пустой символьный вектор.

CutPoint содержит точки разделения для 'continuous' сокращения и CutCategories содержит набор категорий.

CutPredictorIndex

n - массив элемента числовых индексов для переменных используется для ответвления в каждом узле в tree, где n является количеством узлов. Для получения дополнительной информации смотрите CutPredictor.

ExpandedPredictorNames

Расширенные имена предиктора, сохраненные как массив ячеек из символьных векторов.

Если кодирование использования модели для категориальных переменных, то ExpandedPredictorNames включает имена, которые описывают расширенные переменные. В противном случае, ExpandedPredictorNames совпадает с PredictorNames.

HyperparameterOptimizationResults

Описание оптимизации перекрестной проверки гиперпараметров, сохраненных как BayesianOptimization возразите или таблица гиперпараметров и присваиваемых значений. Непустой, когда OptimizeHyperparameters пара "имя-значение" непуста при создании. Значение зависит от установки HyperparameterOptimizationOptions пара "имя-значение" при создании:

  • 'bayesopt' (значение по умолчанию) — Объект класса BayesianOptimization

  • 'gridsearch' или 'randomsearch' — Таблица гиперпараметров используемые, наблюдаемые значения целевой функции (потеря перекрестной проверки), и ранг наблюдений от самого низкого (лучше всего) к (худшему) самому высокому

IsBranchNode

n - элемент логический векторный ib это - true для каждого узла ветви и false для каждой вершины tree.

ModelParameters

Объект, содержащий параметры tree.

NumObservations

Количество наблюдений в обучающих данных, числовом скаляре. NumObservations может быть меньше количества строк входных данных X когда существуют отсутствующие значения в X или ответ Y.

NodeError

n - вектор элемента e из ошибок узлов в tree, где n является количеством узлов. e(i) среднеквадратическая ошибка для узла i.

NodeMean

n - числовой массив элемента со средними значениями в каждом узле tree, где n является количеством узлов в дереве. Каждый элемент в NodeMean среднее значение истинного Y значения по всем наблюдениям в узле.

NodeProbability

n - вектор элемента p из вероятностей узлов в tree, где n является количеством узлов. Вероятность узла вычисляется как пропорция наблюдений из исходных данных, которые удовлетворяют условиям для узла.

NodeRisk

n - вектор элемента из риска узлов в дереве, где n является количеством узлов. Риск для каждого узла является ошибкой узла, взвешенной вероятностью узла.

NodeSize

n - вектор элемента sizes из размеров узлов в tree, где n является количеством узлов. Размер узла задан как количество наблюдений из данных, используемых, чтобы создать дерево, которые удовлетворяют условиям для узла.

NumNodes

Количество узлов n в tree.

Parent

n - вектор элемента p содержа количество родительского узла для каждого узла в tree, где n является количеством узлов. Родительским элементом корневого узла является 0.

PredictorNames

Массив ячеек имен для переменных предикторов, в порядке, в котором они появляются в X.

PruneAlpha

Числовой вектор с одним элементом на сокращение уровня. Если уровень сокращения лежит в диапазоне от 0 до M, то PruneAlpha имеет M + 1 элемент, отсортированный в порядке возрастания. PruneAlpha(1) для сокращения уровня 0 (никакое сокращение), PruneAlpha(2) для сокращения уровня 1, и так далее.

PruneList

n - элемент числовой вектор с уровнями сокращения в каждом узле tree, где n является количеством узлов. Уровни сокращения лежат в диапазоне от 0 (никакое сокращение) к M, где M является расстоянием между самым глубоким листом и корневым узлом.

ResponseName

Вектор символов, который задает имя переменной отклика (Y).

ResponseTransform

Указатель на функцию для преобразования необработанных значений отклика (среднеквадратическая ошибка). Указатель на функцию должен принять матрицу значений отклика и возвратить матрицу, одного размера. 'none' по умолчанию средние значения @(x)x, или никакое преобразование.

Добавьте или измените ResponseTransform функция с помощью записи через точку:

tree.ResponseTransform = @function

RowsUsed

n - элемент логический вектор, указывающий, который строки исходных данных о предикторе (X) использовались в подборе кривой. Если программное обеспечение использует все строки X, затем RowsUsed пустой массив ([]).

SurrogateCutCategories

n - массив ячеек элемента категорий используется для суррогатных разделений в tree, где n является количеством узлов в tree. Для каждого узла k, SurrogateCutCategories{k} массив ячеек. Длина SurrogateCutCategories{k} равно количеству суррогатных предикторов, найденных в этом узле. Каждый элемент SurrogateCutCategories{k} или пустой символьный вектор для непрерывного суррогатного предиктора или двухэлементный массив ячеек с категориями для категориального суррогатного предиктора. Первый элемент этого двухэлементного массива ячеек перечисляет категории, присвоенные покинутому дочернему элементу этим суррогатным разделением, и второй элемент этого двухэлементного массива ячеек перечисляет категории, присвоенные правильному дочернему элементу этим суррогатным разделением. Порядок суррогатных переменных разделения в каждом узле является соответствующим к порядку переменных в SurrogateCutPredictor. Переменная оптимального разделения в этом узле не появляется. Для неветви (лист) узлы, SurrogateCutCategories содержит пустую ячейку.

SurrogateCutFlip

n - массив ячеек элемента числовых присвоений сокращения используется для суррогатных разделений в tree, где n является количеством узлов в tree. Для каждого узла k, SurrogateCutFlip{k} числовой вектор. Длина SurrogateCutFlip{k} равно количеству суррогатных предикторов, найденных в этом узле. Каждый элемент SurrogateCutFlip{k} или нуль для категориального суррогатного предиктора или числовое присвоение сокращения для непрерывного суррогатного предиктора. Числовое присвоение сокращения может быть или –1 или +1. Для каждого суррогатного разделения с числовым сокращением C на основе непрерывного переменного предиктора Z выбран покинутый дочерний элемент, если Z < C и присвоение сокращения для этого суррогатного разделения +1, или если Z ≥ C и присвоение сокращения для этого суррогатного разделения –1. Точно так же правильный дочерний элемент выбран, если Z ≥ C и присвоение сокращения для этого суррогатного разделения +1, или если Z < C и присвоение сокращения для этого суррогатного разделения –1. Порядок суррогатных переменных разделения в каждом узле является соответствующим к порядку переменных в SurrogateCutPredictor. Переменная оптимального разделения в этом узле не появляется. Для неветви (лист) узлы, SurrogateCutFlip содержит пустой массив.

SurrogateCutPoint

n - массив ячеек элемента числовых значений используется для суррогатных разделений в tree, где n является количеством узлов в tree. Для каждого узла k, SurrogateCutPoint{k} числовой вектор. Длина SurrogateCutPoint{k} равно количеству суррогатных предикторов, найденных в этом узле. Каждый элемент SurrogateCutPoint{k} любой NaN для категориального суррогатного предиктора или числового сокращения для непрерывного суррогатного предиктора. Для каждого суррогатного разделения с числовым сокращением C на основе непрерывного переменного предиктора Z покинутый дочерний элемент выбран если Z <C и SurrogateCutFlip поскольку это суррогатное разделение +1, или если ZC и SurrogateCutFlip поскольку это суррогатное разделение –1. Точно так же правильный дочерний элемент выбран если Z ≥ C и SurrogateCutFlip поскольку это суррогатное разделение +1, или если Z < C и SurrogateCutFlip поскольку это суррогатное разделение –1. Порядок суррогатных переменных разделения в каждом узле является соответствующим к порядку переменных, возвращенных SurrCutPredictor. Переменная оптимального разделения в этом узле не появляется. Для неветви (лист) узлы, SurrogateCutPoint содержит пустую ячейку.

SurrogateCutType

n - типы указания массива ячеек элемента суррогатных разделений в каждом узле в tree, где n является количеством узлов в tree. Для каждого узла k, SurrogateCutType{k} массив ячеек с типами суррогатных переменных разделения в этом узле. Переменные сортируются по прогнозирующей мере связи с оптимальным предиктором в порядке убывания, и только переменные с положительной прогнозирующей мерой включены. Порядок суррогатных переменных разделения в каждом узле является соответствующим к порядку переменных в SurrogateCutPredictor. Переменная оптимального разделения в этом узле не появляется. Для неветви (лист) узлы, SurrogateCutType содержит пустую ячейку. Суррогатным типом разделения может быть любой 'continuous' если сокращение задано в форме Z < V для переменной Z и точка разделения V или 'categorical' если сокращение задано ли Z принимает значение в наборе категорий.

SurrogateCutPredictor

n - массив ячеек элемента имен переменных используется для суррогатных разделений в каждом узле в tree, где n является количеством узлов в tree. Каждый элемент SurrogateCutPredictor массив ячеек с именами суррогатных переменных разделения в этом узле. Переменные сортируются по прогнозирующей мере связи с оптимальным предиктором в порядке убывания, и только переменные с положительной прогнозирующей мерой включены. Переменная оптимального разделения в этом узле не появляется. Для неветви (лист) узлы, SurrogateCutPredictor содержит пустую ячейку.

SurrogatePredictorAssociation

n - массив ячеек элемента прогнозирующих мер ассоциации для суррогатных разделений в tree, где n является количеством узлов в tree. Для каждого узла k, SurrogatePredictorAssociation{k} числовой вектор. Длина SurrogatePredictorAssociation{k} равно количеству суррогатных предикторов, найденных в этом узле. Каждый элемент SurrogatePredictorAssociation{k} дает прогнозирующую меру ассоциации между оптимальным разделением и этим суррогатным разделением. Порядок суррогатных переменных разделения в каждом узле является порядком переменных в SurrogateCutPredictor. Переменная оптимального разделения в этом узле не появляется. Для неветви (лист) узлы, SurrogatePredictorAssociation содержит пустую ячейку.

W

Масштабированный weights, вектор с длиной n, количество строк в X.

X

Матрица A или таблица значений предиктора. Каждый столбец X представляет одну переменную, и каждая строка представляет одно наблюдение.

Y

Числовой вектор-столбец с одинаковым числом строк как X. Каждая запись в Y ответ на данные в соответствующей строке X.

Функции объекта

compactКомпактное дерево регрессии
crossvalПерекрестное подтвержденное дерево решений
cvlossОшибка регрессии перекрестной проверкой
limeЛокальные поддающиеся толкованию объяснения модели агностические (LIME)
lossОшибка регрессии
partialDependenceВычислите частичную зависимость
plotPartialDependenceСоздайте графики отдельного условного ожидания (ICE) и частичный график зависимости (PDP)
predictПредскажите ответы с помощью дерева регрессии
predictorImportanceОценки важности предиктора для дерева регрессии
pruneПроизведите последовательность поддеревьев регрессии путем сокращения
resubLossОшибка регрессии перезаменой
resubPredictПредскажите ответ перезамены дерева
shapleyШепли оценивает
surrogateAssociationОзначайте прогнозирующую меру ассоциации для суррогатных разделений в дереве регрессии
viewПросмотрите дерево регрессии

Примеры

свернуть все

Загрузите выборочные данные.

load carsmall

Создайте дерево регрессии использование выборочных данных. Переменная отклика является милями на галлон, MPG.

tree = fitrtree([Weight, Cylinders],MPG,...
                'CategoricalPredictors',2,'MinParentSize',20,...
                'PredictorNames',{'W','C'})
tree = 
  RegressionTree
           PredictorNames: {'W'  'C'}
             ResponseName: 'Y'
    CategoricalPredictors: 2
        ResponseTransform: 'none'
          NumObservations: 94


  Properties, Methods

Предскажите пробег автомобилей за 4 000 фунтов с 4, 6, и 8 цилиндров.

MPG4Kpred = predict(tree,[4000 4; 4000 6; 4000 8])
MPG4Kpred = 3×1

   19.2778
   19.2778
   14.3889

Ссылки

[1] Бреимен, L., Дж. Фридман, Р. Олшен и К. Стоун. Классификация и деревья регрессии. Бока-Ратон, FL: нажатие CRC, 1984.

Расширенные возможности

Введенный в R2011a