Main Content

predict

ガウス過程回帰モデルの予測応答

構文

ypred = predict(gprMdl,Xnew)
[ypred,ysd,yint] = predict(gprMdl,Xnew)
[ypred,ysd,yint] = predict(gprMdl,Xnew,'Alpha',alpha)

説明

ypred = predict(gprMdl,Xnew) は、ガウス過程回帰 (GPR) モデル gprMdlXnew 内の予測子の値について予測した応答 ypred を返します。

[ypred,ysd,yint] = predict(gprMdl,Xnew) は、学習済みの GPR モデルを使用して Xnew 内の各観測値で評価した応答変数の標準偏差 ysd と 95% の予測区間 yint も返します。

[ypred,ysd,yint] = predict(gprMdl,Xnew,'Alpha',alpha) は、予測区間 yint の信頼度の有意水準を指定します。yint の信頼度は 100(1 – Alpha)% と等しくなります。

入力引数

すべて展開する

ガウス過程回帰モデル。RegressionGP (完全) または CompactRegressionGP (コンパクト) オブジェクトとして指定します。

fitrgp で GPR モデルを学習させるために使用する予測子の新しい値。table または m 行 d 列の行列として指定します。m は観測値の数、d は学習データに含まれている予測子変数の数です。

table に対して gprMdl を学習させた場合、XnewgprMdl を学習させるために使用した予測子変数がすべて含まれている table でなければなりません。

行列に対して gprMdl を学習させた場合、Xnew は d 列の数値行列でなければなりません。

データ型: single | double | table

予測区間 yint の信頼度の有意水準。範囲 [0,1] の数値スカラーとして指定します。yint の信頼度は 100(1 – Alpha)% と等しくなります。

例: 'Alpha',0.01 は、99% の予測区間を返すように指定します。

データ型: single | double

出力引数

すべて展開する

予測応答。長さが n の列ベクトルとして返されます。n は、予測子データ Xnew に含まれている観測値の個数です。

予測子データ Xnew 内の各観測値で評価した応答変数の標準偏差。長さが n の列ベクトルとして返されます。n は、予測子データ Xnew に含まれている観測値の個数です。i 番目の要素 ysd(i) に、学習済みの GPR モデル gprMdl を使用して評価した i 番目の観測値 Xnew(i,:) に対する i 番目の応答の標準偏差が格納されます。

予測子データ Xnew 内の各観測値で評価した応答変数の予測区間。n 行 2 列の行列として返されます。n は、予測子データ Xnew に含まれている観測値の個数です。i 番目の行 yint(i,:) に、i 番目の観測値 Xnew(i,:) に対する i 番目の応答の 100(1 – Alpha)% の予測区間が格納されます。Alpha 値は、予測区間に Xnew(i,:) に対する真の応答値が含まれない確率です。yint の 1 列目には予測区間の下限が、2 列目には上限が格納されます。

すべて展開する

標本データを生成します。

n = 10000;
rng(1) % For reproducibility
x = linspace(0.5,2.5,n)';
y = sin(10*pi.*x) ./ (2.*x)+(x-1).^4 + 1.5*rand(n,1);

特性長スケールが各予測子について異なる Matern 3/2 カーネル関数を使用し、アクティブ セットのサイズを 100 にして、GPR モデルを近似させます。パラメーター推定には回帰変数サブセット近似法を、予測には完全独立条件法を使用します。

gprMdl = fitrgp(x,y,'KernelFunction','ardmatern32', ...
    'ActiveSetSize',100,'FitMethod','sr','PredictMethod','fic');

予測を計算します。

[ypred,~,yci] = predict(gprMdl,x);

データを予測および予測区間とともにプロットします。

plot(x,y,'r.')
hold on
plot(x,ypred,'b-')
plot(x,yci(:,1),'k--')
plot(x,yci(:,2),'k--')
xlabel('x')
ylabel('y')
legend('True responses','GPR predictions', ...
    'Prediction interval limits','Location','best')

Figure contains an axes object. The axes object contains 4 objects of type line. These objects represent True responses, GPR predictions, Prediction interval limits.

標本データを読み込んで table に格納します。

load fisheriris
tbl = table(meas(:,1),meas(:,2),meas(:,3),meas(:,4),species,...
'VariableNames',{'meas1','meas2','meas3','meas4','species'});

1 番目の測定値を応答として、他の変数を予測子として使用して、GPR モデルを近似させます。

mdl = fitrgp(tbl,'meas1');

予測と 99% の信頼区間を計算します。

[ypred,~,yci] = predict(mdl,tbl,'Alpha',0.01);

真の応答と予測を予測区間とともにプロットします。

figure();
plot(mdl.Y,'r.');
hold on;
plot(ypred);
plot(yci(:,1),'k:');
plot(yci(:,2),'k:');
legend('True response','GPR predictions',...
'Lower prediction limit','Upper prediction limit',...
'Location','Best');

Figure contains an axes object. The axes object contains 4 objects of type line. These objects represent True response, GPR predictions, Lower prediction limit, Upper prediction limit.

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

load('gprdata.mat');

データには、学習データと検定データが含まれています。学習データには 500 個、検定データには 100 個の観測値があります。データには 6 つの予測子変数があります。このデータは、シミュレーションされたものです。

特性長スケールが各予測子について異なる二乗指数カーネル関数を使用して、GPR モデルを近似させます。学習データの予測子を標準化します。厳密な近似法および予測法を使用します。

gprMdl = fitrgp(Xtrain,ytrain,'Basis','constant',...
'FitMethod','exact','PredictMethod','exact',...
'KernelFunction','ardsquaredexponential','Standardize',1);

検定データの応答を予測します。

[ytestpred,~,ytestci] = predict(gprMdl,Xtest);

検定の応答と予測をプロットします。

figure;
plot(ytest,'r');
hold on;
plot(ytestpred,'b');
plot(ytestci(:,1),'k:');
plot(ytestci(:,2),'k:');
legend('Actual response','GPR predictions',...
'95% lower','95% upper','Location','Best');
hold off

Figure contains an axes object. The axes object contains 4 objects of type line. These objects represent Actual response, GPR predictions, 95% lower, 95% upper.

ヒント

  • fitrgp で名前と値のペアの引数 PredictMethod を使用すると、GPR モデルを学習させるときの予測方法を選択できます。既定の予測方法は、n ≤ 10000 の場合は 'exact'、それ以外の場合は 'bcd' (ブロック座標降下) です。n は、学習データに含まれている観測値の数です。

  • PredictMethod'bcd' の場合、標準偏差 ysd と予測区間 yint の計算はサポートされません。

  • gprMdlCompactRegressionGP オブジェクトの場合、PredictMethod'sr' または 'fic' に等しいと、標準偏差 ysd と予測区間 yint を計算できません。PredictMethod'sr' または 'fic' に等しい場合に ysdyint を計算するには、完全な回帰オブジェクト (RegressionGP) を使用します。

代替方法

resubPredict を使用すると、学習データに含まれている観測値における学習済み GPR モデルの予測応答を計算できます。

拡張機能

バージョン履歴

R2015b で導入