メインコンテンツ

prune

回帰木の枝刈りによる回帰部分木のシーケンスの生成

説明

tree1 = prune(tree,) は、最適な枝刈り順序を含む回帰木 tree のコピーを返します。

tree1 = prune(tree,Name=Value) は、名前と値の引数を使用して追加のオプションを 1 つ指定します。たとえば、tree を特定のレベルまで枝刈りするように指定できます。

すべて折りたたむ

carsmall データ セットを読み込みます。HorsepowerWeight は予測子変数であるとします。

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 object and other objects of type uimenu, uicontrol. The axes object contains 60 objects of type line, text. One or more of the lines displays its values using only markers

この回帰木には 16 個の枝刈りレベルがあります。

枝刈りレベル 10 まで回帰木を枝刈りします。枝刈りした木を表示します。

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

Figure Regression tree viewer contains an axes object and other objects of type uimenu, uicontrol. The axes object contains 24 objects of type line, text. One or more of the lines displays its values using only markers

枝刈りされた木には 6 つの枝刈りレベルがあります。

入力引数

すべて折りたたむ

回帰木モデル。fitrtree で学習させた RegressionTree モデル オブジェクトとして指定します。

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: prune(tree,Level=3) は、tree を 3 番目のレベルまで枝刈りするように指定します。

枝刈りコスト。0 (枝刈りなし) から 1 (1 ノードまで枝刈り) までの数値スカラーとして指定します。関数 prune は、木を枝刈りして、(葉ノード数の Alpha 倍) とコスト (平均二乗誤差) の和を最小にします。

Alpha を指定する場合、LevelNodes は指定できません。

例: Alpha=0.1

データ型: single | double

枝刈りレベル。0 (枝刈りなし) から木の最大枝刈りレベル max(tree.PruneList) までの数値スカラーとして指定します。prune 関数は、指定したレベルまで枝刈りされた木を返します。

Level を指定する場合、AlphaNodes は指定できません。

例: Level=3

データ型: single | double

葉ノードになる枝ノード。1 から tree.NumNodes までの要素をもつ数値ベクトルとして指定します。Nodes に列挙された tree 枝ノードは、親ノードも枝刈りしない限り、すべて tree1 の葉ノードになります。

Nodes を指定する場合、AlphaLevel は指定できません。

例: Nodes=[1,3,5]

データ型: single | double

出力引数

すべて折りたたむ

tree の更新されたバージョン。RegressionTree モデル オブジェクトとして返されます。

prune にいずれかの名前と値の引数を指定する場合、tree1 は最適な枝刈り順序を使用して tree から作成される枝刈りした木になります。

prune にいずれの名前と値の引数も指定しない場合、tree1 は枝刈りしていない完全な tree になりますが、最適な枝刈り情報が追加されています。この情報は、tree を別の木を枝刈りして作成する場合や、関数 fitrtreePrune="off",MergeLeaves="off" を指定して作成する場合に便利です。最適な枝刈り順序を使用して木を複数回枝刈りする場合は、fitrtreetree を作成するときに Prune="on" を指定します。

拡張機能

すべて展開する

バージョン履歴

R2011a で導入