メインコンテンツ

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

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

'linear'

H=[1,X]

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

'pureQuadratic'

H=[1,X,X2],

ここで

X2=[x112x122x1d2x212x222x2d2xn12xn22xnd2].

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

関数ハンドル

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

H=hfcn(X),

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

データ型: char | function_handle

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

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

データ型: double

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

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

データ型: double

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

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

データ型: single | double

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

ハイパーパラメーターの交差検証最適化。SupervisedLearningBayesianOptimization オブジェクト、またはハイパーパラメーターと関連する値の table として返されます。モデルを作成するときに名前と値の引数 OptimizeHyperparameters が空以外であった場合、このプロパティは空以外になります。HyperparameterOptimizationResults の値は、モデル作成時の HyperparameterOptimizationOptions 値の Optimizer オプションの設定に依存します。

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

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

最大化した 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)
ここで、Xmmd 列の行列、Xnnd 列の行列、KmnKmn(i,j) が Xm(i,:) と Xn(j,:) の間のカーネル積である mn 列のカーネル積の行列です。d はカテゴリカル変数のダミー変数が作成された後の予測子変数の数です。ダミー変数の作成の詳細については、CategoricalPredictors を参照してください。
thetakfcn についての制約がない r 行 1 列のパラメーター ベクトルです。

データ型: char | function_handle

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

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

フィールド名説明
Nameカーネル関数の名前。このオプションは KernelFunction プロパティに対応します。
KernelParameters推定されるカーネル パラメーターのベクトル。詳細については、fitrgp の名前と値の引数 KernelParameters を参照してください。
KernelParameterNamesKernelInformationKernelParameters フィールドの要素に関連付けられている名前。GPR モデルで ARD カーネルを使用する場合、KernelParameterNames にリストされる長さスケール パラメーターは ExpandedPredictorNames プロパティにリストされる予測子に対応します。

データ型: 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

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

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

データ型: double | table

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

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

データ型: double

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

予測子変数名。文字ベクトルの cell 配列として返されます。PredictorNames の要素の順序は、予測子名が学習データに現れる順序に対応します。

データ型: cell

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

展開された予測子名。文字ベクトルの cell 配列として返されます。モデルがカテゴリカル変数用のエンコーディングを使用している場合、ExpandedPredictorNames には展開された変数を表す名前が格納されます。それ以外の場合、ExpandedPredictorNamesPredictorNames と同じです。

データ型: cell

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

応答変数名。文字ベクトルとして返されます。

データ型: 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機械学習モデルの交差検証
gatherGPU からの Statistics and Machine Learning Toolbox オブジェクトのプロパティの収集
limeLocal Interpretable Model-agnostic Explanations (LIME)
lossRegression error for Gaussian process regression model
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 で導入

すべて展開する