exponenta event banner

чернослив

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

Создание последовательности поддеревьев регрессии путем обрезки

Синтаксис

tree1 = prune(tree)
tree1 = prune(tree,Name,Value)

Описание

tree1 = prune(tree) создает копию дерева регрессии tree с заполненной оптимальной последовательностью обрезки.

tree1 = prune(tree,Name,Value) создает обрезанное дерево с дополнительными опциями, заданными одним Name,Value парный аргумент. Можно указать несколько аргументов пары имя-значение в любом порядке как Name1,Value1,…,NameN,ValueN.

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

tree

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

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

Необязательная пара, разделенная запятыми Name,Value аргументы, где Name является именем аргумента и Value - соответствующее значение. Name должно отображаться внутри отдельных кавычек (''). Можно указать только один аргумент пары имя-значение.

'Alpha'

Числовой скаляр из 0 (без обрезки) 1 (обрезать до одного узла). Обрезка для минимизации суммы (Alpha умножает число конечных узлов) и стоимость (среднеквадратичная ошибка).

'Level'

Числовой скаляр из 0 (без обрезки) до самого большого уровня обрезки этого дерева max(tree.PruneList). prune возвращает дерево, отсеченное до этого уровня.

'Nodes'

Числовой вектор с элементами из 1 кому tree.NumNodes. Любой tree узлы ветвей, перечисленные в Nodes стать конечными узлами в tree1, если только их родительские узлы также не обрезаны.

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

tree1

Регрессионное дерево.

Примеры

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

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

load carsmall;
X = [Weight Horsepower];
varNames = {'Weight' 'Horsepower'};

Создайте дерево регрессии, используя весь набор данных. Просмотрите дерево.

Mdl = fitrtree(X,MPG,'PredictorNames',varNames)
Mdl = 
  RegressionTree
           PredictorNames: {'Weight'  'Horsepower'}
             ResponseName: 'Y'
    CategoricalPredictors: []
        ResponseTransform: 'none'
          NumObservations: 94


  Properties, Methods

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

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

Регрессионное дерево имеет 16 уровней обрезки.

Выполните обрезку регрессионного дерева до уровня отсечения 10. Просмотр обрезанного дерева.

MdlPruned = prune(Mdl,'Level',10);
view(MdlPruned,'Mode','graph');

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

Обрезанное дерево имеет шесть уровней обрезки.

Можно также использовать поле уровня отсечения в средстве просмотра дерева регрессии для отсечения дерева.

Совет

  • tree1 = prune(tree) возвращает дерево решений tree1 это полный, неперерезанный tree, но с добавлением оптимальной информации об обрезке. Это полезно только при создании tree путем обрезки другого дерева или с помощью fitrtree с набором обрезки 'off'. Если планируется обрезать дерево несколько раз вдоль оптимальной последовательности обрезки, более эффективно сначала создать оптимальную последовательность обрезки.

См. также