RegressionTree class

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

Описание

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

Конструкция

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

Свойства

BinEdges

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

Программное обеспечение помещает числовые предикторы только, если вы задаете 'NumBins' аргумент имя-значение как положительный целочисленный скаляр при обучении модели с учениками дерева. The 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 значения NaNс.

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 является NaN для узлов ветви, основанных на категориальных предикторах, и для узлов листа.

CutType

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

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

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

  • '' - Если i является листовым узлом.

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

CutPredictor

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

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

CutPredictorIndex

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

ExpandedPredictorNames

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

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

HyperparameterOptimizationResults

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

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

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

IsBranchNode

Логический вектор n -element ib то есть true для каждого узла ветви и false для каждого листового узла tree.

ModelParameters

Параметры хранения объектов tree.

NumObservations

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

NodeError

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

NodeMean

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

NodeProbability

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

NodeRisk

Вектор n-element риска узлов в дереве, где n количество узлов. Риск для каждого узла является ошибкой узла, взвешенной по вероятности узла.

NodeSize

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

NumNodes

Число узлов n в tree.

Parent

Вектор n -element 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-element, указывающий, какие строки исходных данных предиктора (X) использовались в подборе кривой. Если программное обеспечение использует все строки X, затем RowsUsed - пустой массив ([]).

SurrogateCutCategories

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

SurrogateCutFlip

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

SurrogateCutType

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

SurrogateCutPredictor

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

SurrogatePredictorAssociation

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

W

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

X

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

Y

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

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

compactСжатое дерево регрессии
crossvalПерекрестная проверка дерева решений
cvlossОшибка регрессии путем перекрестной валидации
limeЛокальные интерпретируемые модели-агностические объяснения (LIME)
lossОшибка регрессии
partialDependenceВычисление частичной зависимости
plotPartialDependenceСоздайте график частичной зависимости (PDP) и отдельные графики условного ожидания (ICE)
predictСпрогнозируйте ответы, используя дерево регрессии
predictorImportanceОценки предикторной важности для дерева регрессии
pruneПроизведите последовательность регрессионных подтеревов путем обрезки
resubLossРегрессионная ошибка путем реституции
resubPredictПредсказать ответ реституции дерева
shapleyЗначения 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

Спрогнозируйте пробег 4000-фунтовых автомобилей с 4, 6 и 8 цилиндрами.

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

   19.2778
   19.2778
   14.3889

Ссылки

[1] Breiman, L., J. Friedman, R. Olshen, and C. Stone. Деревья классификации и регрессии. Бока Ратон, FL: CRC Press, 1984.

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

.
Введенный в R2011a