exponenta event banner

Класс RegingTree

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

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 - среднее значение true 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, или если Z≥C и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

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

Y

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

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

compactКомпактное дерево регрессии
crossvalДерево решений с перекрестной проверкой
cvlossОшибка регрессии при перекрестной проверке
limeЛокальные интерпретируемые модели-агностические объяснения (LIME)
lossОшибка регрессии
partialDependenceВычислить частичную зависимость
plotPartialDependenceСоздание графиков частичной зависимости (PDP) и индивидуального условного ожидания (ICE)
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

Предсказать пробег 4000-килограммовых автомобилей с 4, 6 и 8 баллонами.

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

   19.2778
   19.2778
   14.3889

Ссылки

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

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

.
Представлен в R2011a