Main Content

predict

回帰木モデルの使用による応答の予測

説明

Yfit = predict(tree,X) は、学習済みの回帰木 tree に基づいて、table または行列 X 内の予測子データに対する予測応答のベクトルを返します。

Yfit = predict(tree,X,Subtrees=subtrees) は、応答を予測する前に、subtrees で指定されたレベルまで tree の枝刈りも行います。

[Yfit,node] = predict(___) は、前の構文の入力引数のいずれかを使用して、応答の予測ノード番号のベクトルも返します。

すべて折りたたむ

carsmall データ セットを読み込みます。DisplacementHorsepower および Weight が応答 MPG の予測子であると考えます。

load carsmall
X = [Displacement Horsepower Weight];

データ セット全体を使用して回帰木を成長させます。

Mdl = fitrtree(X,MPG);

エンジン排気量 200 立方インチ、150 馬力、重量 3000 ポンドの自動車について MPG を予測します。

X0 = [200 150 3000];
MPG0 = predict(Mdl,X0)
MPG0 = 21.9375

回帰木により、自動車の効率が 21.94 mpg と予測されます。

入力引数

すべて折りたたむ

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

応答の予測に使用する予測子データ。数値行列または table として指定します。

X の各行は 1 つの観測値に対応し、各列は 1 つの変数に対応します。

数値行列の場合

  • X の列を構成する変数の順序は、tree の学習に使用した予測子変数の順序と同じでなければなりません。

  • table (たとえば Tbl) を使用して tree に学習させる場合、Tbl に含まれている予測子変数が数値変数のみであれば、X を数値行列にすることができます。学習時に Tbl 内の数値予測子をカテゴリカルとして扱うには、fitrtree の名前と値の引数 CategoricalPredictors を使用してカテゴリカル予測子を指定します。Tbl に種類の異なる予測子変数 (数値と categorical データ型など) が混在し、X が数値行列である場合、predict でエラーが発行されます。

テーブルの場合

  • predict は、文字ベクトルの cell 配列ではない cell 配列や複数列の変数をサポートしません。

  • table (たとえば Tbl) を使用して tree に学習させる場合、X 内のすべての予測子変数の変数名およびデータ型が tree の学習に使用された (tree.PredictorNames に格納されている) 変数と同じでなければなりません。ただし、X の列の順序が Tbl の列の順序に対応する必要はありません。TblX に追加の変数 (応答変数や観測値の重みなど) を含めることができますが、predict はこれらを無視します。

  • 数値行列を使用して tree に学習させる場合、tree.PredictorNames 内の予測子名と X 内の対応する予測子変数名が同じでなければなりません。学習時に予測子の名前を指定するには、fitrtree の名前と値の引数 PredictorNames を使用します。X 内の予測子変数はすべて数値ベクトルでなければなりません。X に追加の変数 (応答変数や観測値の重みなど) を含めることができますが、predict はこれらを無視します。

枝刈りレベル。昇順の非負の整数のベクトルまたは "all" として指定します。

ベクトルを指定する場合、すべての要素が 0 から max(tree.PruneList) の範囲になければなりません。0 は枝刈りしない完全な木を、max(tree.PruneList) は完全に枝刈りした木 (つまり、ルート ノードのみ) を表します。

"all" を指定した場合、predict はすべての部分木 (つまり、枝刈り順序全体) に作用します。これは、0:max(tree.PruneList) を指定することと同じです。

predict では、subtrees で指定された各レベルまで tree の枝刈りを行ってから、対応する出力引数を推定します。subtrees のサイズにより、一部の出力引数のサイズが決まります。

関数で subtrees を呼び出すために、treePruneList プロパティと PruneAlpha プロパティは空以外でなければなりません。言い換えると、fitrtree を使用するときに Prune="on" を設定して tree を成長させるか、prune を使用して tree を枝刈りすることで成長させます。

データ型: single | double | char | string

出力引数

すべて折りたたむ

予測応答値。X と同じ行数の数値列ベクトルとして返されます。Yfit の各行は、X の対応する行に対して回帰モデル tree に基づいて予測した応答を与えます。

予測のノード番号。数値ベクトルとして返されます。各エントリは、X の対応する行に対する tree 内の予測される葉ノードに対応します。

代替機能

Simulink ブロック

Simulink® に回帰木モデルの予測を統合するには、Statistics and Machine Learning Toolbox™ ライブラリにある RegressionTree Predict ブロックを使用するか、MATLAB® Function ブロックを関数 predict と共に使用します。例については、RegressionTree Predict ブロックの使用による応答の予測MATLAB Function ブロックの使用によるクラス ラベルの予測を参照してください。

使用するアプローチを判断する際は、以下を考慮してください。

  • Statistics and Machine Learning Toolbox ライブラリ ブロックを使用する場合、固定小数点ツール (Fixed-Point Designer)を使用して浮動小数点モデルを固定小数点に変換できます。

  • MATLAB Function ブロックを関数 predict と共に使用する場合は、可変サイズの配列に対するサポートを有効にしなければなりません。

  • MATLAB Function ブロックを使用する場合、予測の前処理や後処理のために、同じ MATLAB Function ブロック内で MATLAB 関数を使用することができます。

拡張機能

バージョン履歴

R2011a で導入