Main Content

predict

ガウス カーネル回帰モデルの応答を予測

説明

YFit = predict(Mdl,X) は、バイナリ ガウス カーネル回帰モデル Mdl に基づいて、行列またはテーブル X 内の予測子データに対する予測応答のベクトルを返します。

YFit = predict(Mdl,X,PredictionForMissingValue=prediction) は、予測子データ X に欠損値がある観測値について予測した応答として prediction の値を使用します。既定では、predict は学習データ内の観測された応答値の中央値を使用します。 (R2023b 以降)

すべて折りたたむ

carbig データ セットについてガウス カーネル回帰モデルを使用して、テスト セットの応答を予測します。

carbig データ セットを読み込みます。

load carbig

予測子変数 (X) と応答変数 (Y) を指定します。

X = [Weight,Cylinders,Horsepower,Model_Year];
Y = MPG;

配列 X および Y から、それぞれの配列で NaN 値が含まれている行を削除します。NaN 値が含まれている行を削除してからデータを fitrkernel に渡すと、学習が高速化され、メモリ使用量が少なくなります。

R = rmmissing([X Y]); 
X = R(:,1:4); 
Y = R(:,end); 

観測値の 10% をホールドアウト標本として予約します。学習インデックスとテスト インデックスを分割の定義から抽出します。

rng(10)  % For reproducibility 
N = length(Y); 
cvp = cvpartition(N,'Holdout',0.1);
idxTrn = training(cvp); % Training set indices
idxTest = test(cvp);    % Test set indices

カーネル回帰モデルに学習させます。学習データを標準化します。

Xtrain = X(idxTrn,:);
Ytrain = Y(idxTrn);
Mdl = fitrkernel(Xtrain,Ytrain,'Standardize',true)
Mdl = 
  RegressionKernel
              ResponseName: 'Y'
                   Learner: 'svm'
    NumExpansionDimensions: 128
               KernelScale: 1
                    Lambda: 0.0028
             BoxConstraint: 1
                   Epsilon: 0.8617


MdlRegressionKernel モデルです。

テスト セットの応答を予測します。

Xtest = X(idxTest,:);
Ytest = Y(idxTest);

YFit = predict(Mdl,Xtest);

最初の 10 個の観測された応答値と予測された応答値が格納されているテーブルを作成します。

table(Ytest(1:10),YFit(1:10),'VariableNames', ...
    {'ObservedValue','PredictedValue'})
ans=10×2 table
    ObservedValue    PredictedValue
    _____________    ______________

         18              17.616    
         14              25.799    
         24              24.141    
         25              25.018    
         14              13.637    
         14              14.557    
         18              18.584    
         27              26.096    
         21              25.031    
         13              13.324    

平均二乗誤差損失関数を使用して、テスト セットの回帰損失を推定します。

L = loss(Mdl,Xtest,Ytest)
L = 9.2664

入力引数

すべて折りたたむ

カーネル回帰モデル。RegressionKernel モデル オブジェクトを指定します。RegressionKernel モデル オブジェクトは、fitrkernel を使用して作成できます。

応答の生成に使用する予測子データ。数値行列またはテーブルを指定します。

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

  • 数値行列の場合

    • X の列に含まれている変数の順序は、Mdl に学習させた予測子変数の順序と同じでなければなりません。

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

  • テーブルの場合

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

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

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

データ型: double | single | table

R2023b 以降

予測子に欠損値がある観測値に使用する予測した応答値。"median""mean"、または数値スカラーとして指定します。

説明
"median"predict は、予測子に欠損値がある観測値について予測した応答値として、学習データ内の観測された応答値の中央値を使用します。
"mean"predict は、予測子に欠損値がある観測値について予測した応答値として、学習データ内の観測された応答値の平均値を使用します。
数値スカラーpredict は、予測子に欠損値がある観測値について予測した応答値として、この値を使用します。

例: "mean"

例: NaN

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

出力引数

すべて折りたたむ

予測された応答。数値ベクトルとして返されます。

YFit は、Mdl の学習に使用した応答データ (Y) と同じデータ型をもつ n 行 1 列のベクトルです。n は X 内の観測値の個数です。

拡張機能

バージョン履歴

R2018a で導入

すべて展開する