ドキュメンテーション

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

resubPredict

クラス: RegressionGP

学習済みガウス過程回帰モデルによる再代入予測

構文

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

説明

ypred = resubPredict(gprMdl) は、学習済みのガウス過程回帰 (GPR) モデル gprMdl について予測した応答 ypred を返します。

[ypred,ysd] = resubPredict(gprMdl) は、gprMdl.X の行に対応する予測応答の推定標準偏差も返します。

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

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

入力引数

すべて展開する

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

名前と値のペアの引数

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

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

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

データ型: single | double

出力引数

すべて展開する

予測した応答の値。n 行 1 列のベクトルとして返されます。n は、学習データに含まれている観測値の数です。

gprMdl.X の行に対応する、予測した応答値の標準偏差。n 行 1 列のベクトルとして返されます。ysd(i) (i = 1, 2, ..., n) には、学習データの i 番目の観測値における、予測子の値に対応する新しい応答の推定標準偏差が格納されます。

gprMdl.X の行に対応する真の応答値の予測区間。n 行 2 列の行列として返されます。n は、学習データに含まれている観測値の数です。yint の 1 列目には予測区間の下限が、2 列目には上限が格納されます。

すべて展開する

この例では、UCI 機械学習アーカイブ[2]の "住宅" データセット[1] (詳細は http://archive.ics.uci.edu/ml/datasets/Housing を参照) を使用します。データをダウンロードし、housing.data という名前のデータ ファイルとして現在のディレクトリに保存します。

このデータセットには、506 個の観測値が含まれています。最初の 13 列には予測子の値が、最後の列には応答値が含まれています。目標は、ボストン郊外地域にある持ち家の数の中央値を 13 個の予測子の関数として予測することです。

データを読み込み、応答ベクトルと予測子行列を定義します。

load('housing.data');
X = housing(:,1:13);
y = housing(:,end);

回帰変数サブセット ('sr') 近似法と Matern 3/2 ('Matern32') カーネル関数を使用して、GPR モデルを学習させます。完全独立条件 ('fic') 法を使用して、予測を行います。

gprMdl = fitrgp(X,y,'KernelFunction','Matern32',...
'FitMethod','sr','PredictMethod','fic');

学習済みの GPR モデルを使用して、応答を予測します。99% の予測区間を計算します。

[ypred,~,yint] = resubPredict(gprMdl,'Alpha',0.01);

実際の応答値を GPR モデルからの予測とともにプロットします。

figure;
h1 = area([yint(:,1) yint(:,2)-yint(:,1)],-8,...
'FaceColor',[0.85,0.85,0.85],'EdgeColor',[0.85,0.85,0.85]);
hold on;
h1(1).FaceColor = 'none'; % remove color from bottom area
h1(1).EdgeColor = 'none';
h2 = plot(y,'r'); % Plot original response values
h3 = plot(ypred,'b--'); % Plot predicted response values
legend([h2 h3 h1(2)],'Actual response','Predicted response',...
'Prediction intervals','Location','South');
axis([0 510 -7 65]);
hold off

灰色の領域は、99% の予測区間を示します。

ヒント

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

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

代替方法

新しいデータについて予測した応答を計算するには、predict を使用します。

参照

[1] Harrison, D. and D.L., Rubinfeld. "Hedonic prices and the demand for clean air." J. Environ. Economics & Management. Vol.5, 1978, pp. 81-102.

[2] Lichman, M. UCI Machine Learning Repository, Irvine, CA: University of California, School of Information and Computer Science, 2013. http://archive.ics.uci.edu/ml.

R2015b で導入