ドキュメンテーション

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

resubLoss

クラス: RegressionGP

学習済みガウス過程回帰モデルの再代入損失

構文

L = resubLoss(gprMdl)
L = resubLoss(gprMdl,Name,Value)

説明

L = resubLoss(gprMdl) は、ガウス過程回帰 (GPR) モデル gprMdl の再代入平均二乗誤差を返します。

L = resubLoss(gprMdl,Name,Value) は、1 つ以上の Name,Value ペア引数で指定された追加オプションを使用して、GPR モデル gprMdl の再代入損失を返します。たとえば、カスタムな損失関数や観測値の重みを指定できます。

入力引数

すべて展開する

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

名前と値のペアの引数

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

GPR モデルの損失関数。'mse' または関数ハンドルを指定します。'mse' は、平均二乗誤差を意味します。

関数ハンドル (たとえば fun) を渡した場合、resubLoss はこれを fun(Y,Ypred,W) という形式で呼び出します。YYpred および W は、長さが n の数値ベクトル、n は、学習データに含まれている観測値の数です。Y は観測された応答、Ypred は予測した応答、W は観測値の重みです。

例: 'lossfun',Fct は、損失関数 Fct を呼び出します。

データ型: char | string | 関数ハンドル

観測値の重み。n 行 1 列のベクトルとして指定します。n は、学習データに含まれている観測値の数です。既定の設定では、各観測値の重みは 1 です。

データ型: double | single

出力引数

すべて展開する

GPR モデルの再代入誤差。スカラー値として返されます。

すべて展開する

この例では、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');

再代入予測を計算します。

ypred = resubPredict(gprMdl);

予測した応答値を実際の応答値とともにプロットします。

plot(y,'r'); % Plot original response values
hold on;
plot(ypred,'b--'); % Plot predicted response values
ylabel('y');
legend('Actual response','Predicted response','Location','SouthWest');
axis([0 510 -10 55]);
hold off

再代入損失を計算します。

L = resubLoss(gprMdl)
L =

    4.8478

回帰損失を手動で計算します。

n = length(y);
L = (y-ypred)'*(y-ypred)/n
L =

    4.8478

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

学習済みのモデルを使用して、応答を予測します。

ypred = predict(mdl,tbl);

平均絶対誤差を計算します。

n = height(tbl);
y = tbl.meas1;
fun = @(y,ypred,w) sum(abs(y-ypred))/n;
L = resubLoss(mdl,'lossfun',fun)
L = 0.2345

代替方法

新しいデータの回帰誤差を計算するには、loss を使用します。

参照

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