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

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

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

  • '' — Если i является вершиной.

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

CutPredictor

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

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

ExpandedPredictorNames

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

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

IsBranchNode

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

NodeError

n - вектор элемента e ошибок узлов в tree, где n является количеством узлов. e(i) является misclassification вероятностью для узла 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, использующую запись через точку:

ctree.ResponseTransform = @function

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

Методы

потеряОшибка регрессии
предсказатьПредскажите ответы с помощью дерева регрессии
predictorImportanceОценки важности предиктора
surrogateAssociationСледует иметь в виду прогнозирующую меру ассоциации для суррогатных разделений в дереве решений
представлениеДерево представления

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

Значение. Чтобы изучить, как классы значения влияют на операции копии, смотрите Копирование Объектов (MATLAB).

Примеры

свернуть все

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

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

        4060        7307

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

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

Смотрите также

| | |

Введенный в R2011a