CompactClassificationTree

Пакет: classreg.learning.classif

Компактное дерево классификации

Описание

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

Конструкция

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

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

tree

Дерево решений, созданное с помощью fitctree.

Свойства

CategoricalPredictors

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

CategoricalSplits

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

Children

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

ClassCount

n-by-k массив класса значит узлы в tree, где n является количеством узлов, и k является количеством классов. Для любого номера узла i, класс считает ClassCount(i,:) количества наблюдений (из данных, используемых в подборе кривой дереву) от каждого класса, удовлетворяющего условиям для узла i.

ClassNames

Список элементов в Y с удаленными копиями. ClassNames может быть числовой вектор, вектор категориальных переменных, логический вектор, символьный массив или массив ячеек из символьных векторов. ClassNames имеет совпадающий тип данных как данные в аргументе Y. (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)

Если значение свойства имеет по крайней мере одну размерность длины k, то ClassNames указывает на порядок элементов по тому измерению (например, Cost и Prior).

ClassProbability

n-by-k массив вероятностей класса для узлов в tree, где n является количеством узлов, и k является количеством классов. Для любого номера узла i, вероятности класса ClassProbability(i,:) предполагаемые вероятности для каждого класса для точки, удовлетворяющей условиям для узла i.

Cost

Квадратная матрица, где Cost(i,j) стоимость классификации точки в класс j если его истинным классом является i (строки соответствуют истинному классу, и столбцы соответствуют предсказанному классу). Порядок строк и столбцов Cost соответствует порядку классов в ClassNames. Количество строк и столбцов в Cost количество уникальных классов в ответе. Это свойство доступно только для чтения.

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

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

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.

IsBranchNode

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

NodeClass

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

NodeError

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

NodeProbability

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

NodeRisk

n - вектор элемента риска узлов в дереве, где n является количеством узлов. Риск для каждого узла является мерой примеси (индекс Gini или отклонение) для этого узла, взвешенного вероятностью узла. Если дерево выращено twoing, риск для каждого узла является нулем.

NodeSize

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

NumNodes

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

Parent

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

PredictorNames

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

Prior

Числовой вектор априорных вероятностей для каждого класса. Порядок элементов Prior соответствует порядку классов в ClassNames. Число элементов Prior количество уникальных классов в ответе. Это свойство доступно только для чтения.

PruneAlpha

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

PruneList

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

ResponseName

Вектор символов, описывающий переменную отклика Y.

ScoreTransform

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

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

ctree.ScoreTransform = 'function'
or
ctree.ScoreTransform = @function

SurrogateCutCategories

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

SurrogateCutFlip

n - массив ячеек элемента числовых присвоений сокращения используется в суррогатных разделениях в tree, где n является количеством узлов в tree. Для каждого узла k, SurrSurrogateCutFlip{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. Порядок суррогатных переменных разделения в каждом узле является соответствующим к порядку переменных, возвращенных SurrogateCutPredictor. Переменная оптимального разделения в этом узле не появляется. Для неветви (лист) узлы, 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 fisheriris
tree = fitctree(meas,species);
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

        5105       11794

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

Больше о

развернуть все

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

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

| | |

Введенный в R2011a