Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

RegressionTree クラス

スーパークラス:CompactRegressionTree

説明

バイナリ分割により回帰を行う決定木。クラスRegressionTreeのオブジェクトは、predictメソッドを使用して、新しいデータに対する応答を予測できます。オブジェクトには、学習に使用したデータが格納されているため、再代入予測を計算できます。

構築

RegressionTreeオブジェクトの作成にはfitrtreeを使用します。

プロパティ

BinEdges

数値予測子のビンのエッジ。p 個の数値ベクトルが含まれている cell 配列を指定します。p は予測子の個数です。各ベクトルには、数値予測子のビンのエッジを含めます。カテゴリカル予測子はビン化されないので、カテゴリカル予測子の場合は、この cell 配列の要素を空にします。

数値予測子がビン化されるのは、木学習器を使用してモデルに学習をさせるときに名前と値の引数'NumBins'として正の整数スカラーを指定した場合だけです。'NumBins'の値が空 (既定) である場合、BinEdgesプロパティは空になります。

学習済みモデルmdlBinEdgesプロパティを使用することにより、ビン化された予測子データXbinnedを再現できます。

X = mdl.X; % Predictor data Xbinned = zeros(size(X)); edges = mdl.BinEdges; % Find indices of binned predictors. idxNumeric = find(~cellfun(@isempty,edges)); if iscolumn(idxNumeric) idxNumeric = idxNumeric'; end for j = idxNumeric x = X(:,j); % Convert x to array if x is a table. if istable(x) x = table2array(x); end % Group x into bins by using thediscretizefunction. xbinned = discretize(x,[-inf; edges{j}; inf]); Xbinned(:,j) = xbinned; end
数値予測子の場合、1 からビンの個数までの範囲にあるビンのインデックスがXbinnedに格納されます。カテゴリカル予測子の場合、Xbinnedの値は 0 になります。XNaNが含まれている場合、対応するXbinnedの値はNaNになります。

CategoricalPredictors

カテゴリカル予測子のインデックス。正の整数のベクトルを指定します。CategoricalPredictorsには、カテゴリカル予測子が含まれている予測子データの列に対応するインデックス値を格納します。どの予測子もカテゴリカルではない場合、このプロパティは空 ([]) になります。

CategoricalSplits

n 行 2 列の cell 配列。ここでnは、tree内のカテゴリカル分割の数です。CategoricalSplitsの各行は、カテゴリカル分割用の左と右の値になります。カテゴリカル予測子変数zに基づくカテゴリカル分割をもつ各枝ノードjにおいて、zCategoricalSplits(j,1)にあれば左の子を選択し、zCategoricalSplits(j,2)にあれば右の子を選択します。分割はツリーのノードと同じ順序で行われます。これらの分割用のノードは、cuttypeを実行し'categorical'カットを上から下に選択すれば見つかります。

Children

treeの各ノードの子ノードの数を含む n 行 2 列の配列。ここで、n はノードの数です。葉ノードは子ノード0をもちます。

CutCategories

treeの分岐で使用されたカテゴリを表す n 行 2 列の cell 配列。n はノード数です。カテゴリカル予測子変数xに基づく各枝ノードiに対して、xCutCategories{i,1}内のカテゴリである場合は左側の子が選択され、xCutCategories{i,2}内のカテゴリである場合は右側の子が選択されます。連続予測子に基づく枝ノードと葉ノードに対するCutCategoriesの列は両方とも空です。

CutPointには'continuous'切り取りの切り取り点が含まれ、CutCategoriesにはカテゴリ セットが含まれます。

CutPoint

treeの切り取り点として使用される値を表す要素数 n のベクトル。ここで、n はノード数です。連続予測子変数xに基づく各枝ノードiにおいて、xの場合は左側の子が選択され、x>=CutPoint(i)の場合は右側の子が選択されます。カテゴリカル予測子に基づく枝ノードと葉ノードに対するCutPointNaNです。

CutType

treeの各ノードの切り取りのタイプを示す要素数 n の cell 配列。ここで、n はノード数です。各ノードiに対してCutType{i}は次いずれかです。

  • 'continuous'— 変数xと切り取り点vに対して、切り取りがx < v形式で定義されている場合。

  • 'categorical'— 変数xがカテゴリ セット内の値を受け取るかどうかによって切り取りが定義されている場合。

  • ''iが葉ノードの場合。

CutPointには'continuous'切り取りの切り取り点が含まれ、CutCategoriesにはカテゴリ セットが含まれます。

CutPredictor

treeの各ノードの分岐に使用された変数名を示す要素数 n の cell 配列。n はノード数です。これらの変数は、"切り取り変数"と呼ばれることもあります。葉ノードの場合、CutPredictorには空の文字ベクトルが格納されます。

CutPointには'continuous'切り取りの切り取り点が含まれ、CutCategoriesにはカテゴリ セットが含まれます。

CutPredictorIndex

treeの各ノードで分岐に使用される変数を対象とした、数値インデックスの n 要素配列。n はノード数です。詳細は、CutPredictorを参照してください。

ExpandedPredictorNames

展開された予測子名。文字ベクトルの cell 配列として格納されます。

モデルがカテゴリカル変数用のエンコーディングを使用している場合、ExpandedPredictorNamesには展開された変数を表す名前が格納されます。それ以外の場合、ExpandedPredictorNamesPredictorNamesと同じです。

HyperparameterOptimizationResults

ハイパーパラメーターの交差検証最適化の説明。BayesianOptimizationオブジェクト、またはハイパーパラメーターおよび関連する値が含まれているテーブルとして格納されます。作成時に名前と値のペアOptimizeHyperparametersがではない,は空ません値は作成时の名前ととペアペアペアHyperparameterOptimizationOptionsの設定によって決まります。

  • 'bayesopt'(既定) —BayesianOptimizationクラスのオブジェクト

  • 'gridsearch'または'randomsearch'— 使用したハイパーパラメーター、観測された目的関数の値(交差検証損失)、および最低 (最良) から最高 (最悪) までの観測値の順位が格納されているテーブル

IsBranchNode

n 要素の logical ベクトルibであり、treeの各枝ノードの場合はtrue、各葉ノードの場合はfalseになります。

ModelParameters

treeのパラメーターを保持しているオブジェクト。

NumObservations

学習データの観測値の数を表す数値スカラー。入力データXまたは応答Yに欠損値がある場合、NumObservationsXの行数より少なくなる場合があります。

NodeError

treeに含まれるノードの誤差の n 要素のベクトルe。ここで、n はノード数です。e(i)は、ノードiの平均二乗誤差です。

NodeMean

treeの各平均もつもつもつ要素数値でででででははツリーのノード数NodeMeanの配列のすべての要素は、ノードのすべての観測値に対する真のY値を平均です。

NodeProbability

treeに含まれるノードの確率の n 要素のベクトルp。ここで、n はノード数です。ノードの確率は、ノードの条件を満たす元のデータから、観測の比率として計算されます。

NodeRisk

ツリーに含まれるノードのリスクを表す n 要素のベクトル。ここで、n はノード数です。各ノードのリスクは、ノード確率によって重み付けされたノード誤差です。

NodeSize

treeに含まれるノードのサイズの n 要素のベクトルsizes。,,は数です。ノードはノードの条件条件を満たす満たすツリーツリーををを作成ためにに使用使用さささされるれるデータデータ

NumNodes

treeのノード数n

Parent

treeに含まれる各ノードの親ノードの数を含む n 要素のベクトルp。ここで、n は、ノード数です。ルート ノードの親は0です。

PredictorNames

予測子変数の名前の cell 配列。並びはXに現れる順です。

PruneAlpha

枝刈りレベルごとに 1 つの要素をもつ数値ベクトル。枝刈りレベルの範囲が 0 ~ M の場合、PruneAlphaには昇順に並べ替えられた M + 1 要素が含まれます。PruneAlpha(1)は枝刈りレベル 0 (枝刈りなし) を表し、PruneAlpha(2)は枝刈りレベル 1 を表すというように続いていきます。

PruneList

treeの各ノードの枝刈りレベルをもつ n 要素の数値ベクトル。ここで n はノード数を示します。枝刈りレベルの範囲は 0 (枝刈りなし) から M です。M は最下位の葉からルート ノードまでの距離です。

ResponseName

応答変数 (Y) の名前を指定する文字ベクトル。

ResponseTransform

生の応答値 (平均二乗誤差) を変換するための関数ハンドル。この関数ハンドルでは、応答値の行列を受け入れて同じサイズの行列を返さなければなりません。既定の'none'@(x)x、つまり変換なしを表します。

ドット表記を使用して関数ResponseTransformを追加または変更します。

tree.ResponseTransform = @function

RowsUsed

あてはめに使用した元の予測子データ (X) の行を示す n 要素の logical ベクトル。Xのすべての行を使用した場合、RowsUsedは空の配列 ([]) になります。

SurrogateCutCategories

treeの代理分岐に使用するカテゴリの n 要素の cell 配列。ここで n はtreeのノード数です。各ノードkに対して、SurrogateCutCategories{k}は cell 配列です。SurrogateCutCategories{k}の長さは、このノードに見つかった代理予測子の数に等しくなります。SurrogateCutCategories{k}の各要素は、連続代理予測子の場合は空の文字ベクトル、カテゴリカル代理予測子の場合はカテゴリをもつ 2 要素 cell 配列になります。2 要素 cell 配列の最初の要素には、この代理分岐によって左の子に割り当てられたカテゴリがリストされ、この 2 要素 cell 配列の 2 番目の要素には、この代理分岐によって右の子に割り当てられたカテゴリがリストされます。各ノードにおける代理分岐変数の順序は、SurrogateCutPredictorによって返される変数の順序に一致します。このノードの最適分割変数は現れません。枝ではない (葉) ノードの場合、SurrogateCutCategoriesには空のセルが含まれます。

SurrogateCutFlip

treeの代理分岐に使用する数値切り取り点の n 要素の cell 配列。ここで n はtreeのノード数です。各ノードkに対して、SurrogateCutFlip{k}は数値ベクトルです。SurrogateCutFlip{k}の長さは、このノードに見つかった代理予測子の数に等しくなります。SurrogateCutFlip{k}の各要素はカテゴリカル代理予測子でゼロになるか、連続代理予測子で数値切り取り点の割り当てになります。数値切り取り点の割り当ては、-1 または +1 のいずれかになります。連続予測子変数 Z に基づく数値切り取り C が含まれるすべての代理分岐では、Z < Cであり、その代理分岐の切り取りの割り当てが +1 である場合、またはZ ≥ Cであり、その代理分岐の切り取りの割り当てが -1 である場合、左の子が選択されます。同様に、Z ≥ Cであり、その代理分岐の切り取り点割り当てが +1 である場合、またはZ < Cであり、その代理分岐の切り取り点が -1 である場合、右の子が選択されます。各ノードにおける代理分岐変数の順序は、SurrogateCutPredictorによって返される変数の順序に一致します。このノードの最適分割変数は現れません。枝ではない (葉) ノードの場合、SurrogateCutFlipにはの配列含まれます。

SurrogateCutPoint

treeの代理分岐に使用される数値の n 要素の cell 配列。ここで n はtreeのノード数です。各ノードkに対して、SurrogateCutPoint{k}は数値ベクトルです。SurrogateCutPoint{k}の長さは、このノードに見つかった代理予測子の数に等しくなります。SurrogateCutPoint{k}の各要素は、カテゴリカル代理予測子でNaNになるか、連続代理予測子で数値切り取り点になります。連続予測子変数 Z に基づく数値切り取り C が含まれるすべての代理分岐では、Zであり、その代理分岐のSurrogateCutFlipが +1 である場合、またはZ≥Cであり、その代理分岐のSurrogateCutFlipが -1 である場合、左の子が選択されます。同様に、Z ≥ Cであり、その代理分岐のSurrogateCutFlipが +1 である場合、またはZ < Cであり、その代理分岐のSurrogateCutFlipが -1 である場合、右の子が選択されます。各ノードの代理分岐変数の順序は、SurrCutPredictorによって返される変数の順序に一致します。このノードの最適分割変数は現れません。枝ではない (葉) ノードの場合、SurrogateCutPointには空のセルが含まれます。

SurrogateCutType

treeの各ノードの代理分岐のタイプを示す n 要素の cell 配列。ここで n はtreeのノード数です。各ノードのkで、SurrogateCutType{k}はこのノードの代理分岐変数のタイプをもつ cell 配列です。変数は、最適予測子との結びつきの予測尺度によって降順に並べ替えられており、かつ正の予測尺度をもつ変数のみが含まれています。各ノードにおける代理分岐変数の順序は、SurrogateCutPredictorによって返される変数の順序に一致します。このノードの最適分割変数は現れません。枝ではない (葉) ノードの場合、SurrogateCutTypeには空のセルが含まれます。代理分岐のタイプは、変数Zと切り取り点VについてZ<Vという形式で切り取りが定義される場合は'continuous'、一連のカテゴリの値をZに使用するかどうかによって切り取りが定義される場合は'categorical'にすることができます。

SurrogateCutPredictor

treeの各ノードで代理分岐に使用する変数の名前の n 要素の cell 配列。ここで n はtreeのノード数です。SurrogateCutPredictorの各要素は、このノードの代理分岐変数の名前をもつ cell 配列です。変数は、最適予測子との結びつきの予測尺度によって降順に並べ替えられており、かつ正の予測尺度をもつ変数のみが含まれています。このノードの最適分割変数は現れません。枝ではない (葉) ノードの場合、SurrogateCutPredictorには空のセルが含まれます。

SurrogatePredictorAssociation

treeの代理分岐に使用する関連性予測尺度の n 要素の cell 配列。ここで n はtreeのノード数です。各ノードkに対して、SurrogatePredictorAssociation{k}は数値ベクトルです。SurrogatePredictorAssociation{k}の長さは、このノードに見つかった代理予測子の数に等しくなります。SurrogatePredictorAssociation{k}の各要素は、最適分割とこの代理分岐間の関連性予測尺度を与えます。各ノードの代理分岐変数の順序は、SurrogateCutPredictorに存在する変数の順序になります。このノードの最適分割変数は現れません。枝ではない (葉) ノードの場合、SurrogatePredictorAssociationには空のセルが含まれます。

W

スケールされたweights、長さnのベクトル、Xの行の数。

X

予測子の値の行列または table。Xの各列が 1 つの変数を表し、各行が 1 つの観測値を表します。

Y

Xと同じ行数の数値列ベクトル。Yの各エントリはXの対応する行に対する応答です。

オブジェクト関数

compact コンパクトな回帰木
crossval 交差検証を使用した決定木
cvloss 交差検証による回帰誤差
酸橙 Local Interpretable Model-agnostic Explanations (LIME)
loss 回帰誤差
partialDependence 部分従属の計算
plotPartialDependence 部分依存プロット (PDP) および個別条件付き期待値 (ICE) プロットの作成
predict 回帰木の使用による応答の予測
predictorImportance 回帰木の予測子の重要度の推定
prune 枝刈りによる回帰サブツリーのシーケンスの作成
resubLoss 再代入による回帰誤差
resubPredict ツリーの再代入応答の予測
shapley シャープレイ値
surrogateAssociation 回帰木における代理分岐に対する関連性の平均予測尺度
view 回帰木の表示

コピーのセマンティクス

値。値のクラスがコピー操作に与える影響については、オブジェクトのコピーを参照してください。

すべて折りたたむ

標本データを読み込みます。

loadcarsmall

標本データを使用して回帰木を構築します。応答変数は、ガロンあたりの走行マイル数 (MPG) です。

tree = fitrtree([Weight, Cylinders],MPG,...'CategoricalPredictors',2,'MinParentSize',20,...'PredictorNames',{'W','C'})
tree = recressionTree predivateNames:{'w''c'} wendersEname:'y'分类predictors:2 wenderseTransform:'none'numObservations:94属性,方法,方法

気筒数が 4、6 および 8 で、重さが約 1.8t (4,000 ポンド) の車の燃費を予測します。

MPG4Kpred = predict(tree,[4000 4; 4000 6; 4000 8])
MPG4Kpred =3×119.2778 19.2778 14.3889

参考文献

[1] Breiman, L., J. Friedman, R. Olshen, and C. Stone. Classification and Regression Trees. Boca Raton, FL: CRC Press, 1984.

拡張機能

R2011a で導入