prune

Класс: RegressionTree

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

Синтаксис

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'. Если вы планируете сократить дерево многократно вдоль оптимальной последовательности сокращения, более эффективно создать оптимальную последовательность сокращения сначала.

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