ドキュメンテーション

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

compact

クラス: RegressionGP

コンパクトなガウス過程回帰モデルの作成

構文

cgprMdl = compact(gprMdl)

説明

cgprMdl = compact(gprMdl) は、コンパクトなバージョンの学習済みガウス過程回帰 (GPR) モデル gprMdl を返します。

入力引数

すべて展開する

ガウス過程回帰モデル。RegressionGP オブジェクトとして指定します。

出力引数

すべて展開する

コンパクトなガウス過程回帰モデル。CompactRegressionGP オブジェクトとして返されます。

すべて展開する

学習データのサンプルを生成します。

rng(1) % For reproducibility
n = 100000;
X = linspace(0,1,n)';
X = [X,X.^2];
y = 1 + X*[1;2] + sin(20*X*[1;-2]) + 0.2*randn(n,1);

回帰変数のサブセット ('sr') による近似法を使用して GPR モデルに学習をさせ、データ サブセット ('sd') 法を使用して予測を行います。アクティブ セットに含まれている 50 個の点を使用します。アクティブ セットの選択には、スパース グリーディ行列近似 ('sgma') 法を使用します。1 番目の予測子と 2 番目の予測子ではスケールが異なるので、データを標準化します。

gprMdl = fitrgp(X,y,'KernelFunction','squaredExponential','FitMethod',...
'sr','PredictMethod','sd','Basis','none','ActiveSetSize',50,...
'ActiveSetMethod','sgma','Standardize',1,'KernelParameters',[1;1]);

fitrgpは、近似法、予測法およびアクティブ セット選択法についてどのような組み合わせでも受け入れます。予測した応答の標準偏差を計算できないために予測区間を計算できない場合があります。ヒントを参照してください。また、学習データのサイズのため、厳密法を使用すると計算コストが高くなる場合もあります。

コンパクトな GPR オブジェクトを作成します。

cgprMdl = compact(gprMdl);

テスト データを生成します。

n = 4000;
Xnew = linspace(0,1,n)';
Xnew = [Xnew,Xnew.^2];
ynew = 1 + Xnew*[1;2] + sin(20*Xnew*[1;-2]) + 0.2*randn(n,1);

コンパクトなオブジェクトを使用して、テスト データの応答と予測区間を予測します。

[ypred,~,yci] = predict(cgprMdl,Xnew);

真の応答、予測した応答および予測区間をプロットします。

figure;
plot(ynew,'r');
hold on;
plot(ypred,'b')
plot(yci(:,1),'k--');
plot(yci(:,2),'k--');
legend('Data','Pred','Lower 95%','Upper 95%','Location','Best');
xlabel('x');
ylabel('y');
hold off

学習済みの GPR モデルを使用して、テスト データの二乗平均誤差損失を計算します。

L = loss(cgprMdl,Xnew,ynew)
L = 0.0497

ヒント

  • コンパクトなオブジェクトには、GPR モデル gprMdl を学習させるときに fitrgp で使用した学習データは含まれていません。

  • コンパクトなオブジェクトは、予測の実行 (predict を参照) または回帰誤差の計算 (loss を参照) に使用できます。

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

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

R2015b で導入