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

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

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 -элемент, который true для каждого узла ветви и false для каждого листового узла tree.

NodeClass

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

NodeError

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

NodeProbability

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

NodeRisk

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

NodeSize

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

NumNodes

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

Parent

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

SurrogateCutFlip

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

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

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

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

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

Примеры

свернуть все

Создайте компактное дерево классификации для данных радужной оболочки глаза Фишера.

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

        5097       11762

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

Подробнее о

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

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

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