Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

prune

枝刈りによる回帰サブツリーのシーケンスの作成

説明

tree1 = prune(tree) は、入力された最適な枝刈り順序を使用して、回帰木 tree のコピーを作成します。

tree1 = prune(tree,Name=Value) は、単一の名前と値の引数で指定された追加オプションを使用して、枝刈りされた木を作成します。

すべて折りたたむ

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

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 は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。

例: tree1 = prune(tree,Level=10) は、木をレベル 10 まで枝刈りします。

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

例: tree1 = prune(tree,"Level",10) は、木をレベル 10 まで枝刈りします。

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

3 つの名前と値の引数 AlphaLevel または Nodes のいずれか 1 つだけを使用できます。

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

3 つの名前と値の引数 AlphaLevel または Nodes のいずれか 1 つだけを使用できます。

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

3 つの名前と値の引数 AlphaLevel または Nodes のいずれか 1 つだけを使用できます。

出力引数

すべて折りたたむ

枝刈りされた回帰木。RegressionTree オブジェクトとして返されます。

ヒント

  • tree1 = prune(tree) は決定木 tree1 を返します。これは完全で枝刈りされていない tree ですが、最適な枝刈り情報が追加されています。これが有益なのは、別の木を枝刈りして tree を作成した場合、または枝刈りを "off" に設定して fitrtree を使用した場合のみです。最適な枝刈りをした列に沿ってツリーを複数回枝刈りする場合は、まず最適な枝刈りをした列を作成する方が効率的です。

拡張機能

バージョン履歴

R2011a で導入

参考