CompactRegressionTree

Пакет: classreg.learning.regr

Сжатое дерево регрессии

Описание

Компактная версия дерева регрессии (класса RegressionTree). Компактная версия не включает данные для настройки дерева регрессии. Поэтому вы не можете выполнить некоторые задачи с компактным деревом регрессии, таким как перекрестная валидация. Используйте сжатое регрессионное дерево для создания предсказаний (регрессий) новых данных.

Конструкция

ctree = compact(tree) создает компактное дерево решений из полного дерева решений.

Входные параметры

расширить все

Полное, обученное дерево регрессии, заданное как RegressionTree объект, созданный fitrtree.

Свойства

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, левый дочерний элемент выбирается, если CutPoint<v(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.

IsBranchNode

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

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 функция, использующая запись через точку:

ctree.ResponseTransform = @function

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. Порядок суррогатных разделенных переменных в каждом узле согласован с порядком переменных, возвращаемых SurrogateCutVar. Переменная оптимального разделения в этом узле не отображается. Для небранчевых (листовых) узлов, 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 содержит пустую камеру.

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

limeЛокальные интерпретируемые модели-агностические объяснения (LIME)
lossОшибка регрессии
partialDependenceВычисление частичной зависимости
plotPartialDependenceСоздайте график частичной зависимости (PDP) и отдельные графики условного ожидания (ICE)
predictСпрогнозируйте ответы, используя дерево регрессии
predictorImportanceОценки предикторной важности для дерева регрессии
shapleyЗначения Shapley
surrogateAssociationСредняя прогнозирующая мера ассоциации для суррогатных расщеплений в регрессионом дереве
updateОбновите параметры модели для генерации кода
viewПросмотрите дерево регрессии

Копировать семантику

Значение. Чтобы узнать, как классы значений влияют на операции копирования, см. раздел «Копирование объектов».

Примеры

свернуть все

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

load carsmall

Создайте дерево регрессии для выборочных данных.

tree = fitrtree([Weight, Cylinders],MPG,...
    'MinParentSize',20,...
    'PredictorNames',{'W','C'});

Сделайте компактную версию дерева.

ctree = compact(tree);

Сравните размер компактного дерева с размером полного дерева.

t = whos('tree'); % t.bytes = size of tree in bytes
c = whos('ctree'); % c.bytes = size of ctree in bytes
[c.bytes t.bytes]
ans = 1×2

        4311        7558

Компактное дерево меньше, чем полное.

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

.

См. также

| |

Введенный в R2011a