Main Content

prune

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

説明

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

___ = prune(tree,Alpha=alpha) は、tree を枝刈りコスト alpha まで枝刈りするように指定します。

___ = prune(tree,Level=level) は、tree をレベル level まで枝刈りするように指定します。

___ = prune(tree,Nodes=nodes) は、nodes に列挙された枝ノードが 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


view(Mdl,Mode="graph");

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

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

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

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

入力引数

すべて折りたたむ

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

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

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

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

出力引数

すべて折りたたむ

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

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

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

拡張機能

バージョン履歴

R2011a で導入