メインコンテンツ

predict

アンサンブル回帰モデルを使用した応答の予測

説明

Yfit = predict(ens,X) は、アンサンブル回帰モデル ens に基づいて、table または行列 X 内の予測子データに対する予測応答を返します。

Yfit = predict(ens,X,Name=Value) は、1 つ以上の名前と値の引数を使用して追加オプションを指定します。たとえば、予測に使用される弱学習器のインデックスを指定したり、計算を並列に実行するかどうかを指定したりできます。

すべて折りたたむ

carsmall のデータで学習させたアンサンブル回帰に基づいて自動車の予測燃費を求めます。

carsmall データ セットを読み込み、気筒数、エンジン排気量、馬力、および車両重量を予測子として選択します。

load carsmall
X = [Cylinders Displacement Horsepower Weight];

回帰木のアンサンブルに学習させ、エンジン排気量 200 立方インチ、150 馬力、重量 3000 ポンドの 4 気筒車について MPG を予測します。

rens = fitrensemble(X,MPG);
Mileage = predict(rens,[4 200 150 3000])
Mileage = 
25.6467

入力引数

すべて折りたたむ

アンサンブル回帰モデル。fitrensemble で学習させた RegressionEnsemble または RegressionBaggedEnsemble モデル オブジェクト、または compact で作成した CompactRegressionEnsemble モデル オブジェクトとして指定します。

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

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

数値行列の場合

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

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

table の場合

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

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

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

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

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

例: predict(ens,X,Learners=[1 2 3 5],UseParallel=true) は、アンサンブル ens 内の 1 番目、2 番目、3 番目、および 5 番目の学習器を使用し、計算を並列に実行するように指定します。

predict で使用するアンサンブル内の弱学習器のインデックス。範囲 [1:ens.NumTrained] の正の整数のベクトルとして指定します。既定では、この関数はすべての学習器を使用します。

例: Learners=[1 2 4]

データ型: single | double

学習器の観測値を使用するオプション。NT 列のサイズの logical 行列として指定します。

  • NX の行の数です。

  • T は、ens に存在する弱学習器の数です。

UseObsForLearner(i,j)true (既定) の場合、学習器 jX の行 i の応答の予測に使用されます。

例: UseObsForLearner=logical([1 1; 0 1; 1 0])

データ型: logical matrix

並列実行のフラグ。数値または logical の 1 (true) または 0 (false) として指定します。UseParallel=true を指定した場合、関数 predictparfor を使用して for ループの反復を実行します。Parallel Computing Toolbox™ がある場合、ループが並列に実行されます。

例: UseParallel=true

データ型: logical

出力引数

すべて折りたたむ

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

代替機能

Simulink ブロック

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

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

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

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

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

拡張機能

すべて展開する

バージョン履歴

R2011a で導入