ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

fitrtree

回帰に使用される二分決定木

構文

  • tree = fitrtree(x,y)
  • tree = fitrtree(x,y,Name,Value)

説明

tree = fitrtree(x,y) は、入力変数 (予測子、特徴、あるいは属性とも呼ばれます) x および出力 (応答) y に基づいて、回帰木を返します。返される木は二分木で、各分岐ノードは x の列の値に基づいて分割されます。

tree = fitrtree(x,y,Name,Value) は、1 つ以上の名前と値のペアの引数で指定された追加オプションにより木を近似します。たとえば、交差検定木の拡張、検証対象となるデータの部分の提供、観測値の重みの指定ができます。

すべて折りたたむ

分類木の拡大

標本データを使用して分類木を構築します。

ionosphere のデータセットを使用して分類木を構築します。

load ionosphere
tc = fitctree(X,Y)
tc = 

  ClassificationTree
           PredictorNames: {1x34 cell}
             ResponseName: 'Y'
               ClassNames: {'b'  'g'}
           ScoreTransform: 'none'
    CategoricalPredictors: []
          NumObservations: 351


入力引数

すべて折りたたむ

x — 予測子の値スカラー値の行列

予測子の値。スカラー値の行列として指定します。x の各列が 1 つの変数を表し、各行が 1 つの観測値を表します。

fitrtree は、xNaN 値を欠損値として認識します。fitrtree は、すべての欠損値のある観測を x の近似に使用しません。fitrtree は、これらの観測が有効な値をもつ場合に変数の分割を検出するために、一部の欠損値のある観測を x に使用します。

データ型: single | double

y — 応答値スカラー値のベクトル

応答値。x と同じ行数のスカラー値のベクトルとして指定します。y の各エントリは x の対応する行のデータに対する応答です。

fitrtreeyNaN 値を欠損値として認識します。fitrtree は近似において y に欠損値のある観測を使用しません。

データ型: single | double

名前/値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: 'CrossVal','on','MinParentSize',30 は、分岐ノードごとに最低 30 個の観測値をもつ交差検定回帰木を指定します。

'CategoricalPredictors' — カテゴリカル予測子のリスト数値ベクトルまたは論理ベクトル | 文字列のセル配列 | 文字行列 | 'all'

カテゴリカル予測子のリスト。'CategoricalPredictors' と以下のいずれかで構成される、コンマ区切りペアとして指定します。

  • 1 から p までのインデックスを使用する数値ベクトル。p は、x の列数を示します。

  • 長さ p の論理ベクトル。true のエントリは、対応する x の列がカテゴリカル変数であることを示します。

  • 文字列のセル配列。配列の各要素は、予測子変数の名前です。名前は PredictorNames プロパティのエントリと一致してなければなりません。

  • 文字行列。行列の各行は、予測子変数の名前です。文字行列の各行が同じ長さになるように、名前を余分な空白で埋めてください。

  • 'all'、すべての予測子がカテゴリカルであることを示します。

データ型: single | double | logical | char | cell

'CrossVal' — 交差検定フラグ'off' (既定値) | 'on'

交差検定フラグ。'CrossVal' と、'on' または 'off' で構成されるコンマ区切りのペアとして指定します。

'on' の場合は、fitrtree が10 分割交差検定決定木を作成します。'KFold''Holdout''Leaveout' または 'CVPartition' 名前と値のペアの引数のいずれかを使用してこの交差検定の設定をオーバーライドできます。交差検定木の作成時には、これらの引数のうち 1 つしか使用できません。

または、crossval メソッドを使用して、後で tree に交差検定を実施します。

例: 'CrossVal','on'

'CVPartition' — 交差検定木の分割cvpartition オブジェクト

交差検定決定木で使用する分割。'CVPartition' と、cvpartition を使用して作成されるオブジェクトで構成される、コンマ区切りのペアとして指定されます。

'CVPartition' を使用する場合は、'KFold''Holdout' または 'Leaveout' 名前と値のペアの引数のいずれも使用できません。

'Holdout' — ホールドアウト検定のデータの小数部0 (既定値) | [0,1] の範囲のスカラー値

ホールドアウト検定のデータの小数部。'Holdout' と、[0,1] の範囲内のスカラー値で構成されるコンマ区切りのペアとして指定します。ホールドアウト検定は、データの指定された小数部をテストし、データの残りの部分を学習に使用します。

'Holdout' を使用する場合は、'CVPartition''KFold' または 'Leaveout' 名前と値のペアの引数のいずれも使用できません。

例: 'Holdout',0.1

データ型: single | double

'KFold' — 分割の数10 (既定値) | 正の整数値

交差検定木で使用する分割の数。'KFold' と正の整数値で構成されるコンマ区切りのペアとして指定します。

'KFold' を使用する場合は、'CVPartition''Holdout' または 'Leaveout' 名前と値のペアの引数のいずれも使用できません。

例: 'KFold',8

データ型: single | double

'Leaveout' — Leave-one-out 法の交差検定のフラグ'off' (既定値) | 'on'

Leave-one-out 法の交差検定のフラグ。'Leaveout''on' または 'off で構成されるコンマ区切りのペアとして指定します。Leave-one-out 法の交差検定を使用する場合は、'on' を指定します。

'Leaveout' を使用する場合は、'CVPartition''Holdout' または 'KFold' 名前と値のペアの引数のいずれも使用できません。

例: 'Leaveout','on'

'MergeLeaves' — 葉マージ フラグ'on' (既定値) | 'off'

葉マージ フラグ。'MergeLeaves''on' または 'off' のいずれかで構成されるコンマ区切りのペアとして指定します。

MergeLeaves'on' の場合、fitrtree は同じ親ノードから派生した葉をマージし、その親ノードに関連するリスク以上のリスク値の総和を与えます。それ以外の場合、fitrtree は葉をマージしません。

例: 'MergeLeaves','off'

'MinLeafSize' — 葉ノードの観測値の最小数1 (既定値) | 正の整数値

葉ノードの観測値の最小数。'MinLeafSize' と正の整数値で構成されるコンマ区切りのペアとして指定します。各葉には少なくともツリー葉あたり MinLeafSize の観測値があります。MinParentSizeMinLeafSize の両方を指定した場合、fitrtree では葉の数が多くなる方の設定を使用します。MinParentSize = max(MinParentSize,2*MinLeafSize)

例: 'MinLeafSize',3

データ型: single | double

'MinParentSize' — 分岐ノードの観測値の最小数10 (既定値) | 正の整数値

分岐ノードの観測値の最小数。'MinParentSize' と正の整数値で構成されるコンマ区切りのペアとして指定します。ツリーの各分岐ノードには少なくとも MinParentSize の観測値があります。MinParentSizeMinLeafSize の両方を指定した場合、fitrtree では葉の数が多くなる方の設定を使用します。MinParentSize = max(MinParentSize,2*MinLeafSize)

例: 'MinParentSize',8

データ型: single | double

'NumVariablesToSample' — 分割に使用する予測子の数'all' (既定値) | 正の整数値

分割ごとにランダムに選択する予測子の数。'NumVariablesToSample' と正の整数値で構成されるコンマ区切りのペアとして指定します。'all' を指定すると、使用可能なすべての予測子が使用されます。

例: 'NumVariablesToSample',3

データ型: single | double

'PredictorNames' — 予測子変数名{'x1','x2',...} (既定値) | 文字列のセル配列

予測子変数名。'PredictorNames' と、予測子変数名を含む文字列のセル配列で構成される、コンマ区切りのペアとして指定されます。予測子変数名は x と同じ順序で配列されます。

データ型: cell

'Prune' — 枝刈りされた部分木の最適シーケンスを推定するフラグ'on' (既定値) | 'off'

枝刈りされた部分木の最適なシーケンスを推定するフラグ。'Prune''on' または 'off' で構成されるコンマ区切りのペアとして指定します。

Prune'on' の場合、fitrtree は回帰木を作成し、枝刈りされた部分木の最適シーケンスを推定しますが、回帰木を枝刈りしません。それ以外の場合、fitrtree は回帰木を作成しますが、枝刈りされた部分木の最適なシーケンスを推定しません。

学習させた回帰木を枝刈りするには、回帰木を prune に渡します。

例: 'Prune','off'

'PruneCriterion' — 枝刈り条件'mse'

枝刈り条件。'PruneCriterion''mse' で構成されるコンマ区切りのペアとして指定します。

例: 'PruneCriterion','mse'

'QuadraticErrorTolerance' — 二次誤差の許容誤差1e-6 (既定値) | 正のスカラー値

ノードあたりの二次誤差の許容誤差。'QuadraticErrorTolerance' と正のスカラー値で構成されるコンマ区切りのペアとして指定します。ノードあたりの二次誤差が QuadraticErrorTolerance*QED より小さくなるとノード分割を停止します。ここで QED は決定木が成長する前に計算された全データの二次誤差です。

例: 'QuadraticErrorTolerance',1e-4

'ResponseName' — 応答変数名'Y' (既定値) | 文字列

応答変数名。'ResponseName' と、y の応答変数の名前が格納された文字列で構成される、コンマ区切りのペアとして指定します。

例: 'ResponseName','Response'

データ型: char

'ResponseTransform' — 応答変換関数'none' (既定値) | 関数ハンドル

生の応答値を変換するための応答変換関数。'ResponseTransform' と、関数ハンドルまたは 'none' で構成されるコンマ区切りのペアとして指定します。関数ハンドルは、応答値の行列を受け入れ、同じサイズの行列を返さなければなりません。既定の文字列 'none' は、@(x)x または変換なしを表します。

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

tree.ResponseTransform = @function

データ型: function_handle

'SplitCriterion' — 分割条件'MSE'

分割条件。'SplitCriterion''MSE' (二乗平均誤差) で構成されるコンマ区切りのペアとして指定します。

例: 'SplitCriterion','MSE'

'Surrogate' — サロゲート決定分割フラグ'off' | 'on' | 'all' | 正の整数値

サロゲート決定分割フラグ。'Surrogate' と、'on''off''all' または正の整数で構成される、コンマ区切りのペアとして指定します。

  • 'on' のときは、fitrtree は各分岐ノードで最大 10 のサロゲート分割を検出します。

  • 正の整数値に設定すると、fitrtree は各分岐ノードで最大指定された数のサロゲート分割を検出します。

  • 'all' に設定すると、fitrtree は各分岐ノードですべてのサロゲート分割を検出します。'all' に設定すると、処理時間およびメモリ使用量が非常に増加する可能性があります。

サロゲート分割を使用すると、欠損値をもつデータの予測精度が改善されます。また、予測子同士の関連付けの予測測定も計算できます。

例: 'Surrogate','on'

データ型: single | double

'Weights' — 観測値の重みones(size(X,1),1) (既定値) | スカラー値のベクトル

観測値の重み。'Weights' とスカラー値のベクトルで構成されるコンマ区切りのペアとして指定します。Weights の長さは、x の行数です。

データ型: single | double

出力引数

すべて折りたたむ

tree — 回帰木回帰木オブジェクト

回帰木。回帰木オブジェクトとして返します。'Crossval''KFold''Holdout''Leaveout' または 'CVPartition' オプションを使用すると、クラス RegressionPartitionedModel のツリーが生成されます。予測に分割されたツリーは使用できないため、この種類のツリーには predict メソッドがありません。

それ以外の場合、treeRegressionTree クラスです。predict メソッドを使用して予測を行うことができます。

詳細

すべて折りたたむ

ヒント

既定では Prune'on' です。ただし、この仕様は回帰木を枝刈りしません。学習させた回帰木を枝刈りするには、回帰木を prune に渡します。

参照

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

この情報は役に立ちましたか?