Main Content

CompactRegressionGP

名前空間: classreg.learning.regr

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

説明

CompactRegressionGP は、コンパクトなガウス過程回帰 (GPR) モデルです。コンパクト モデルには GPR モデルの学習に使用したデータが含まれていないため、完全なモデルよりもメモリ消費量が少なくなります。

コンパクト モデルには学習データが含まれていないので、コンパクト モデルを使用しても交差検証など一部のタスクは実行できません。しかし、コンパクト モデルは、新しいデータの予測や回帰損失の計算には使用できます (predictloss を使用)。

構築

CompactRegressionGP オブジェクトは、compact を使用して完全な RegressionGP モデル オブジェクトから作成します。

プロパティ

すべて展開する

近似

GPR モデルの基底関数係数 β、ノイズ標準偏差 σ およびカーネル パラメーター θ の推定に使用された方式。文字ベクトルとして格納されます。次のいずれかになります。

近似方式説明
'none'推定を行いません。fitrgp はパラメーター値として初期パラメーター値を使用します。
'exact'厳密なガウス過程回帰。
'sd'データ点サブセット近似。
'sr'回帰変数サブセット近似。
'fic'完全独立条件近似。

GPR モデルで使用される明示的な基底関数。文字ベクトルまたは関数ハンドルとして格納されます。次のいずれかになります。観測値の数が n の場合、基底関数は H*β という項をモデルに追加します。ここで、H は基底行列、β は p 行 1 列の基底係数のベクトルです。

明示的な基底関数基底行列
'none'空の行列。
'constant'

H=1

H は n 行 1 列の 1 のベクトルで、n は観測値の数です。

'linear'

H=[1,X]

X はカテゴリカル変数のダミー変数が作成された後の展開された予測子データです。ダミー変数の作成に関する詳細については、CategoricalPredictors を参照してください。

'pureQuadratic'

H=[1,X,X2],

ここで

X2=[x112x122x1d2x212x222x2d2xn12xn22xnd2].

この基底オプションでは、CompactRegressionGP はカテゴリカル予測子をもつ X をサポートしていません。

関数ハンドル

fitrgp で次のように呼び出す関数ハンドル hfcn

H=hfcn(X),

ここで、X は n 行 d 列の予測子の行列、d はカテゴリカル変数のダミー変数が作成された後の予測子の数、H は n 行 p 列の基底関数の行列です。

データ型: char | function_handle

カテゴリカル予測子のインデックス。正の整数のベクトルとして指定します。CategoricalPredictors には、対応する予測子がカテゴリカルであることを示すインデックス値が格納されます。インデックス値の範囲は 1 ~ p です。p はモデルの学習に使用した予測子の数です。どの予測子もカテゴリカルではない場合、このプロパティは空 ([]) になります。

データ型: single | double

明示的な基底関数について推定した係数。ベクトルとして格納されます。明示的な基底関数は、fitrgp で名前と値のペアの引数 BasisFunction を使用して定義できます。

データ型: double

GPR モデルの推定ノイズ標準偏差。スカラー値として格納されます。

データ型: double

GPR モデルの学習に使用されたパラメーター。GPParams オブジェクトとして格納されます。

カーネル関数

GPR モデルで使用した共分散関数の形式。組み込み共分散関数の名前が含まれる文字ベクトルまたは関数ハンドルとして格納されます。次のいずれかになります。

関数説明
'squaredexponential'二乗指数カーネル。
'matern32'パラメーターが 3/2 の Matern カーネル。
'matern52'パラメーターが 5/2 の Matern カーネル。
'ardsquaredexponential'予測子ごとに長さスケールが異なる二乗指数カーネル。
'ardmatern32'パラメーターが 3/2 で予測子ごとに長さスケールが異なる Matern カーネル。
'ardmatern52'パラメーターが 5/2 で予測子ごとに長さスケールが異なる Matern カーネル。
関数ハンドルfitrgp で次のように呼び出すことができる関数ハンドル。
Kmn = kfcn(Xm,Xn,theta)
ここで、Xm は m 行 d 列の行列、Xn は n 行 d 列の行列、KmnKmn(i,j) が Xm(i,:) と Xn(j,:) の間のカーネル積である m 行 n 列のカーネル積の行列です。d はカテゴリカル変数のダミー変数が作成された後の予測子変数の数です。ダミー変数の作成の詳細については、CategoricalPredictors を参照してください。
thetakfcn についての制約がない r 行 1 列のパラメーター ベクトルです。

データ型: char | function_handle

GPR モデルで使用されたカーネル関数のパラメーターに関する情報。次のフィールドをもつ構造体として格納されます。

フィールド名説明
Nameカーネル関数の名前
KernelParameters推定されるカーネル パラメーターのベクトル
KernelParameterNamesKernelParameters の要素に関連付けられている名前。

データ型: struct

予測

predict が GPR モデルから予測を行うために使用した方式。文字ベクトルとして格納されます。次のいずれかになります。

PredictMethod説明
'exact'厳密なガウス過程回帰
'bcd'ブロック座標降下
'sd'データ点サブセット近似
'sr'回帰変数サブセット近似
'fic'完全独立条件近似

学習済みの GPR モデルから予測を行うために使用した重み。数値ベクトルとして格納されます。predict は、次の積を使用して新しい予測子行列 Xnew について予測を計算します。

K(Xnew,A)*α.

K(Xnew,A)Xnew とアクティブ セット ベクトル A の間のカーネル積の行列、α は重みのベクトルです。

データ型: double

予測された応答に適用する変換。モデルによって予測された応答値の変換方法を表す文字ベクトルとして格納されます。RegressionGP では、ResponseTransform は既定では 'none' です。RegressionGP は予測を行うときに ResponseTransform を使用しません。

アクティブ セットの選択

GPR モデルから予測を行うために使用した学習データのサブセット。行列として格納されます。

predict は、次の積を使用して新しい予測子行列 Xnew について予測を計算します。

K(Xnew,A)*α.

K(Xnew,A)Xnew とアクティブ セット ベクトル A の間のカーネル積の行列、α は重みのベクトルです。

ActiveSetVectors は、厳密な GPR 近似の場合の学習データ X およびスパースな GPR 法の場合の学習データ X のサブセットと等しくなります。カテゴリカル予測子がモデルに含まれている場合、対応する予測子についてのダミー変数が ActiveSetVectors に含まれます。

データ型: double

スパースな方式 ('sd''sr' または 'fic') の場合にアクティブ セットの選択に使用された方式。文字ベクトルとして格納されます。次のいずれかになります。

ActiveSetMethod説明
'sgma'スパース グリーディ行列近似
'entropy'微分エントロピーに基づく選択
'likelihood'回帰変数サブセットの対数尤度に基づく選択
'random'無作為選択

選択したアクティブ セットは、fitrgp における FitMethodPredictMethod の選択に応じて、パラメーターの推定または予測で使用されます。

スパースな方式 ('sd''sr' または 'fic') の場合のアクティブ セットのサイズ。整数値として格納されます。

データ型: double

オブジェクト関数

limeLocal Interpretable Model-agnostic Explanations (LIME)
lossガウス過程回帰モデルの回帰誤差
partialDependence部分依存の計算
plotPartialDependence部分依存プロット (PDP) および個別条件付き期待値 (ICE) プロットの作成
predictガウス過程回帰モデルの予測応答
shapleyシャープレイ値

すべて折りたたむ

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

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('True responses','GPR predictions','95% prediction limits','Location','Best')
xlabel('x')
ylabel('y')
hold off

Figure contains an axes object. The axes object with xlabel x, ylabel y contains 4 objects of type line. These objects represent True responses, GPR predictions, 95% prediction limits.

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

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

コピーのセマンティクス

値。値のクラスがコピー操作に与える影響については、オブジェクトのコピーを参照してください。

拡張機能

バージョン履歴

R2015b で導入