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');

Дерево регрессии имеет 16 уровней сокращения.

Сократите дерево регрессии к уровню сокращения 10. Просмотрите сокращенное дерево.

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

Сокращенное дерево имеет шесть уровней сокращения.

В качестве альтернативы можно использовать поле уровня сокращения в средстве просмотра дерева Регрессии, чтобы сократить дерево.

Советы

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

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