ドキュメンテーション

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

predict

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

構文

ypred = predict(gprMdl,Xnew)
[ypred,ysd] = predict(gprMdl,Xnew)
[ypred,ysd,yint] = predict(gprMdl,Xnew)
[ypred,ysd,yint] = predict(gprMdl,Xnew,Name,Value)

説明

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

[ypred,ysd] = predict(gprMdl,Xnew) は、学習済み GPR モデルから、Xnew に含まれている予測子の値における新しい応答の推定標準偏差も返します。

[ypred,ysd,yint] = predict(gprMdl,Xnew) は、Xnew の各行に対応する真の応答について 95% の予測区間 yint も返します。

[ypred,ysd,yint] = predict(gprMdl,Xnew,Name,Value) は、1 つ以上の Name,Value ペア引数で指定された追加オプションを使用して、予測区間も返します。たとえば、予測区間の信頼度を指定できます。

入力引数

すべて展開する

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

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

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

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

データ型: single | double | テーブル

名前と値のペアの引数

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

予測区間の有意水準。'Alpha' と 0 から 1 の範囲にあるスカラー値から構成されるコンマ区切りのペアとして指定します。

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

データ型: single | double

出力引数

すべて展開する

予測した応答の値。n 行 1 列のベクトルとして返されます。

新しい応答値の推定標準偏差。n 行 1 列のベクトルとして返されます。ysd(i) には、学習済み GPR モデルから推定した、Xnew の i 番目の行にある予測子の値に対応する新しい応答の推定標準偏差が格納されます (i = 1, 2, ..., n)。

Xnew の各行に対応する真の応答値の予測区間。n 行 2 列の行列として返されます。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);
plot(x,yci(:,1),'k--');
plot(x,yci(:,2),'k--');
xlabel('x');
ylabel('y');

標本データを読み込んで 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');

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

load(fullfile(matlabroot,'examples','stats','gprdata.mat'));

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

特性長スケールが各予測子について異なる二乗指数カーネル関数を使用して、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

ヒント

  • 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 で導入