Main Content

RegressionGP

ガウス過程回帰モデル

説明

RegressionGP は、ガウス過程回帰 (GPR) モデルです。GPR モデルを学習させるには、fitrgp を使用します。学習済みのモデルを使用して次を行えます。

  • resubPredict を使用した学習データの応答の予測、または predict を使用した新しい予測子データの応答の予測。予測区間を計算することもできます。

  • resubLoss を使用した学習データの回帰損失の計算、または loss を使用した新しいデータの回帰損失の計算。

作成

RegressionGP オブジェクトの作成には fitrgp を使用します。

プロパティ

すべて展開する

近似

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].

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

関数ハンドル

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

H=hfcn(X),

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

データ型: char | function_handle

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

データ型: double

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

データ型: double

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

データ型: single | double

この プロパティ は読み取り専用です。

ハイパーパラメーターの交差検証最適化。ハイパーパラメーターおよび関連する値が含まれているテーブルまたは BayesianOptimization オブジェクトを指定します。モデルを作成するときに名前と値のペアの引数 'OptimizeHyperparameters' が空以外であった場合、このプロパティは空以外になります。HyperparameterOptimizationResults の値は、モデル作成時の構造体 HyperparameterOptimizationOptionsOptimizer フィールドの設定によって変化します。

Optimizer フィールドの値HyperparameterOptimizationResults の値
'bayesopt' (既定の設定)BayesianOptimization クラスのオブジェクト
'gridsearch' または 'randomsearch'使用したハイパーパラメーター、観測された目的関数の値 (交差検証損失)、および最低 (最良) から最高 (最悪) までの観測値の順位が格納されているテーブル

最大化した GPR モデルの周辺対数尤度。FitMethod'none' 以外の場合、スカラー値として格納されます。FitMethod'none' の場合、LogLikelihood は空になります。

FitMethod'sd''sr' または 'fic' の場合、LogLikelihood は 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

PredictMethod'bcd' の場合の、ブロック座標降下 (BCD) に基づく Alpha の計算に関する情報。次のフィールドが含まれている構造体として返されます。

フィールド名説明
Gradient収束時の BCD 目的関数の勾配が含まれている n 行 1 列の行列。
Objective収束時の BCD 目的関数が含まれているスカラー。
SelectionCountsBCD において各点をブロックに選択した回数を示す n 行 1 列の整数ベクトル。

Alpha プロパティには、BCD から計算したベクトル Alpha が格納されます。

PredictMethod'bcd' ではない場合、BCDInformation は空になります。

データ型: struct

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

アクティブ セットの選択

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

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

K(Xnew,A)*α.

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

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

データ型: double

FitMethod'sd''sr' または 'fic' に等しい場合のインターリーブ方式によるアクティブ セット選択とパラメーター推定の履歴。次のフィールドをもつ構造体として格納されます。

フィールド名説明
ParameterVector基底関数の係数 β、カーネル関数のパラメーター θ およびノイズ標準偏差 σ というパラメーター ベクトルが含まれている cell 配列。
ActiveSetIndicesアクティブ セットのインデックスが含まれている cell 配列。
Loglikelihood最大化した対数尤度が含まれているベクトル。
CriterionProfileアクティブ セットのサイズが 0 から最終的なサイズに増加する場合のアクティブ セット選択基準値を含む cell 配列。

データ型: struct

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

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

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

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

データ型: double

学習済み GPR モデルから予測を行うためにアクティブ セットを選択するためのインジケーター。logical ベクトルとして格納されます。これらのインジケーターは、fitrgp がアクティブ セットとして選択する学習データのサブセットを示します。たとえば、X が元の学習データである場合、ActiveSetVectors = X(IsActiveSetVector,:) になります。

データ型: logical

学習データ

学習データに含まれている観測値の数。スカラー値として格納されます。

データ型: double

学習データ。n 行 d 列のテーブルまたは行列として格納されます。n は学習データに含まれている観測値の数、d は予測子変数 (列) の数です。テーブルに対して GPR モデルを学習させた場合、X はテーブルになります。それ以外の場合、X は行列になります。

データ型: double | table

GPR モデルを学習させるために使用した、観測された応答値。n 行 1 列のベクトルとして格納されます。n は観測値の数です。

データ型: double

GPR モデルで使用した予測子の名前。文字ベクトルの cell 配列として格納されます。それぞれの名前 (セル) は、X の列に対応します。

データ型: cell

GPR モデルの展開された予測子の名前。文字ベクトルの cell 配列として格納されます。それぞれの名前 (セル) は、ActiveSetVectors の列に対応します。

モデルでカテゴリカル変数用にダミー変数を使用している場合、ExpandedPredictorNames には展開された変数を表す名前が含まれます。それ以外の場合、ExpandedPredictorNamesPredictorNames と同じです。

データ型: cell

GPR モデルにおける応答変数の名前。文字ベクトルとして格納されます。

データ型: char

学習データを標準化した場合に GPR モデルを学習させるために使用した予測子の平均。1 行 d 列のベクトルとして格納されます。学習データを標準化しなかった場合、PredictorLocation は空になります。

PredictorLocation が空ではない場合、predict メソッドは X のすべての列から PredictorLocation の対応する要素を減算することにより、予測子の値をセンタリングします。

カテゴリカル予測子がある場合、そのような予測子に対応する各ダミー変数について PredictorLocation の要素は 0 になります。ダミー変数は、センタリングもスケーリングもされません。

データ型: double

学習データを標準化した場合に GPR モデルを学習させるために使用した予測子の標準偏差。1 行 d 列のベクトルとして格納されます。学習データを標準化しなかった場合、PredictorScale は空になります。

PredictorScale が空ではない場合、predict メソッドは (PredictorLocation を使用してセンタリングした後で) X のすべての列を PredictorScale の対応する要素で除算することにより、予測子をスケーリングします。

カテゴリカル予測子がある場合、そのような予測子に対応する各ダミー変数について PredictorLocation の要素は 1 になります。ダミー変数は、センタリングもスケーリングもされません。

データ型: double

モデルに格納されている元の学習データの行。logical ベクトルとして指定します。このプロパティは、XY にすべての行が格納される場合は空になります。

データ型: logical

オブジェクト関数

compact機械学習モデルのサイズの縮小
crossval機械学習モデルの交差検証
limeLocal Interpretable Model-agnostic Explanations (LIME)
lossガウス過程回帰モデルの回帰誤差
partialDependence部分依存の計算
plotPartialDependence部分依存プロット (PDP) および個別条件付き期待値 (ICE) プロットの作成
postFitStatistics厳密ガウス過程回帰モデルの当てはめ統計量の計算
predictガウス過程回帰モデルの予測応答
resubLoss再代入回帰損失
resubPredict学習済み回帰モデルを使用した学習データについての応答の予測
shapleyシャープレイ値

すべて折りたたむ

標本データを生成します。

rng(0,'twister'); % For reproducibility
n = 1000;
x = linspace(-10,10,n)';
y = 1 + x*5e-2 + sin(x)./x + 0.2*randn(n,1);

パラメーターの推定に線形基底関数と厳密近似法を使用して、GPR モデルを当てはめます。厳密予測法も使用します。

gprMdl = fitrgp(x,y,'Basis','linear',...
      'FitMethod','exact','PredictMethod','exact');

学習済みのモデルを使用して、x の行に対応する応答を予測します (再代入予測)。

ypred = resubPredict(gprMdl);

真の応答と予測値をプロットします。

plot(x,y,'b.');
hold on;
plot(x,ypred,'r','LineWidth',1.5);
xlabel('x');
ylabel('y');
legend('Data','GPR predictions');
hold off

Figure contains an axes object. The axes object with xlabel x, ylabel y contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent Data, GPR predictions.

詳細

すべて展開する

ヒント

  • このクラスのプロパティには、ドット表記を使用してアクセスできます。たとえば、KernelInformation はカーネル パラメーターとその名前が保持される構造体です。したがって、学習済みモデル gprMdl のカーネル関数のパラメーターにアクセスするには、gprMdl.KernelInformation.KernelParameters を使用します。

拡張機能

バージョン履歴

R2015b で導入

すべて展開する