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

См. также