exponenta event banner

resubPredict

Класс: ClassificationTree

Прогнозирование меток повторного замещения дерева классификации

Синтаксис

label = resubPredict(tree)
[label,posterior] = resubPredict(tree)
[label,posterior,node] = resubPredict(tree)
[label,posterior,node,cnum] = resubPredict(tree)
[label,...] = resubPredict(tree,Name,Value)

Описание

label = resubPredict(tree) возвращает метки tree прогнозы для данных tree.X. label является предсказаниями tree о данных, которые fitctree используется для создания tree.

[label,posterior] = resubPredict(tree) возвращает апостериорные вероятности классов для прогнозов.

[label,posterior,node] = resubPredict(tree) возвращает номера узлов tree для повторно замещенных данных.

[label,posterior,node,cnum] = resubPredict(tree) возвращает предсказанные номера классов для прогнозов.

[label,...] = resubPredict(tree,Name,Value) возвращает прогнозы восстановления с дополнительными опциями, указанными одним или несколькими Name,Value аргументы пары.

Входные аргументы

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

tree

Дерево классификации, созданное fitctree.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Уровень отсечения, заданный как разделенная запятыми пара, состоящая из 'Subtrees' и вектор неотрицательных целых чисел в порядке возрастания или 'all'.

Если задан вектор, то все элементы должны быть по крайней мере 0 и не более max(tree.PruneList). 0 указывает полное, неотрезанное дерево и max(tree.PruneList) указывает полностью отсеченное дерево (т.е. только корневой узел).

При указании 'all', то resubPredict оперирует всеми поддеревьями (т.е. всей последовательностью отсечения). Эта спецификация эквивалентна использованию 0:max(tree.PruneList).

resubPredict чернослив tree к каждому уровню, указанному в Subtrees, а затем оценивает соответствующие выходные аргументы. Размер Subtrees определяет размер некоторых выходных аргументов.

Призвать Subtrees, свойства PruneList и PruneAlpha из tree должен быть непустым. Другими словами, расти tree путем установки 'Prune','on'или путем обрезки tree использование prune.

Пример: 'Subtrees','all'

Типы данных: single | double | char | string

Выходные аргументы

label

Ответ tree прогнозирует данные обучения. label является тем же типом данных, что и данные ответа на обучение tree.Y.

Если Subtrees аргумент «имя-значение» содержит m>1 записи, label имеет m столбцы, каждый из которых представляет предсказания соответствующего поддерева. В противном случае label является вектором.

posterior

Матрица или массив задних вероятностей для классов tree предсказывает.

Если Subtrees аргумент «имя-значение» является скаляром или отсутствует, posterior является nоколо-k матрица, где n - количество строк в данных обучения tree.X, и k - количество классов.

Если Subtrees содержит m>1 записи, posterior является nоколо-kоколо-m массив, где матрица для каждого m даёт задние вероятности для соответствующего поддерева.

node

Номера узлов tree где каждая строка данных разрешается.

Если Subtrees аргумент «имя-значение» является скаляром или отсутствует, node - числовой вектор столбца с n строки, то же количество строк, что и tree.X.

Если Subtrees содержит m>1 записи, node является nоколо-m матрица. Каждый столбец представляет предсказания узлов соответствующего поддерева.

cnum

Номера классов, которые tree прогнозирует для повторно замещенных данных.

Если Subtrees аргумент «имя-значение» является скаляром или отсутствует, cnum - числовой вектор столбца с n строки, то же количество строк, что и tree.X.

Если Subtrees содержит m>1 записи, cnum является nоколо-m матрица. Каждый столбец представляет предсказания классов соответствующего поддерева.

Примеры

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

Найдите общее число ошибочных классификаций данных радужки Фишера для дерева классификации.

load fisheriris
tree = fitctree(meas,species);
Ypredict = resubPredict(tree);    % The predictions
Ysame = strcmp(Ypredict,species); % True when ==
sum(~Ysame) % How many are different?
ans = 3

Загрузите набор данных радужки Фишера. Разделение данных на обучение (50%)

load fisheriris

Вырастите классификационное дерево с помощью всех измерений лепестков.

Mdl = fitctree(meas(:,3:4),species);
n = size(meas,1); % Sample size
K = numel(Mdl.ClassNames); % Number of classes

Просмотр дерева классификации.

view(Mdl,'Mode','graph');

Figure Classification tree viewer contains an axes and other objects of type uimenu, uicontrol. The axes contains 18 objects of type line, text.

Дерево классификации имеет четыре уровня обрезки. Уровень 0 - это полное дерево без обрезки (как показано). Уровень 4 - это только корневой узел (т.е. без разбиений).

Оцените апостериорные вероятности для каждого класса, используя поддеревы, отсеченные до уровней 1 и 3.

[~,Posterior] = resubPredict(Mdl,'SubTrees',[1 3]);

Posterior является nоколо- K-by- 2 массив задних вероятностей. Ряды Posterior соответствуют наблюдениям, столбцы соответствуют классам с порядком Mdl.ClassNamesи страницы соответствуют уровню отсечения.

Отображение апостериорных вероятностей класса для радужки 125 с использованием каждого поддерева.

Posterior(125,:,:)
ans = 
ans(:,:,1) =

         0    0.0217    0.9783


ans(:,:,2) =

         0    0.5000    0.5000

Пень решения (стр. 2 Posterior) имеет проблемы с предсказанием, является ли радужка 125 versicolor или virginica.

Подробнее

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