exponenta event banner

resubPredict

Класс: Дерево правил

Прогнозирование ответа дерева на повторное замещение

Синтаксис

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 должен быть непустым. Другими словами, расти 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

Figure contains an axes. The axes with title In-Sample Fitted Responses contains 5 objects of type line. These objects represent Observed MPG, Level 1 MPG, Level 5 MPG, Level 9 MPG, Level 13 MPG.

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

См. также

| |