resubPredict

Класс: RegressionTree

Предскажите ответ перезамены дерева

Синтаксис

Yfit = resubPredict(tree)
[Yfit,node] = resubPredict(tree)
[Yfit,node] = resubPredict(tree,Name,Value)

Описание

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

[Yfit,node] = resubPredict(tree) возвращает количества узла tree для повторно подставленных данных.

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

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

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

tree

Дерево регрессии, созданное с помощью fitrtree.

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

Задайте дополнительные разделенные запятой пары 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 mustBeNonempty. Другими словами, вырастите tree установкой 'Prune','on', или путем сокращения tree использование prune.

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

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

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

Yfit

Ответ tree предсказывает для обучающих данных.

Если Subtrees аргумент значения имени является скаляром или отсутствует, label совпадающий тип данных как учебные данные об ответе tree.Y.

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

node

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

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

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

Примеры

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

Загрузите carsmall набор данных. Рассмотрите Displacement, Horsepower, и Weight как предикторы ответа MPG.

load carsmall
X = [Displacement Horsepower Weight];

Вырастите дерево регрессии, использующее все наблюдения.

Mdl = fitrtree(X,MPG);

Вычислите перезамену MSE.

Yfit = resubPredict(Mdl);
mean((Yfit - Mdl.Y).^2)
ans = 4.8952

Можно получить тот же результат с помощью resubLoss.

resubLoss(Mdl)
ans = 4.8952

Загрузите carsmall набор данных. Рассмотрите Weight как предиктор ответа MPG.

load carsmall
idxNaN = isnan(MPG + Weight);
X = Weight(~idxNaN);
Y = MPG(~idxNaN);
n = numel(X);

Вырастите дерево регрессии, использующее все наблюдения.

Mdl = fitrtree(X,Y);

Вычислите адаптированные значения перезамены для поддеревьев на нескольких уровнях сокращения.

m = max(Mdl.PruneList);
pruneLevels = 1:4:m; % Pruning levels to consider
z = numel(pruneLevels);
Yfit = resubPredict(Mdl,'SubTrees',pruneLevels);

Yfit n- z матрица приспособленных значений, в которых строки соответствуют наблюдениям и столбцам, соответствует поддереву.

Постройте несколько столбцов Yfit и Y против X.

figure;
sortDat = sortrows([X Y Yfit],1); % Sort all data with respect to X
plot(repmat(sortDat(:,1),1,size(Yfit,2) + 1),sortDat(:,2:end))...
    % Vectorize for efficiency
lev = cellstr(num2str((pruneLevels)','Level %d MPG'));
legend(['Observed MPG'; lev])
title 'In-Sample Fitted Responses'
xlabel 'Weight (lbs)';
ylabel 'MPG';
h = findobj(gcf);
set(h(4:end),'LineWidth',3) % Widen all lines

Значения Yfit для более низкого сокращения уровни имеют тенденцию следовать за данными более тесно, чем более высокие уровни. Выше сокращающие уровни имеют тенденцию быть плоскими для большого X интервалы.

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

| |