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 は n 行 1 列の 1 のベクトルで、n は観測値の数です。 |
'linear' |
X はカテゴリカル変数のダミー変数が作成された後の展開された予測子データです。ダミー変数の作成に関する詳細については、 |
'pureQuadratic' |
ここで
この基底オプションでは、 |
| 関数ハンドル |
ここで、X は n 行 d 列の予測子の行列、d はカテゴリカル変数のダミー変数が作成された後の予測子の数、H は n 行 p 列の基底関数の行列です。 |
データ型: char | function_handle
明示的な基底関数について推定した係数。ベクトルとして格納されます。明示的な基底関数は、fitrgp で名前と値のペアの引数 BasisFunction を使用して定義できます。
データ型: double
GPR モデルの推定ノイズ標準偏差。スカラー値として格納されます。
データ型: double
カテゴリカル予測子のインデックス。正の整数のベクトルとして指定します。CategoricalPredictors には、対応する予測子がカテゴリカルであることを示すインデックス値が格納されます。インデックス値の範囲は 1 ~ p です。p はモデルの学習に使用した予測子の数です。どの予測子もカテゴリカルではない場合、このプロパティは空 ([]) になります。
データ型: single | double
この プロパティ は読み取り専用です。
ハイパーパラメーターの交差検証最適化。ハイパーパラメーターおよび関連する値が含まれている table または BayesianOptimization オブジェクトを指定します。モデルを作成するときに名前と値のペアの引数 'OptimizeHyperparameters' が空以外であった場合、このプロパティは空以外になります。HyperparameterOptimizationResults の値は、モデル作成時の構造体 HyperparameterOptimizationOptions の Optimizer フィールドの設定によって変化します。
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 列の行列、Kmn は Kmn(i,j) が Xm(i,:) と Xn(j,:) の間のカーネル積である m 行 n 列のカーネル積の行列です。d はカテゴリカル変数のダミー変数が作成された後の予測子変数の数です。ダミー変数の作成の詳細については、CategoricalPredictors を参照してください。theta は kfcn についての制約がない r 行 1 列のパラメーター ベクトルです。 |
データ型: char | function_handle
GPR モデルで使用されたカーネル関数のパラメーターに関する情報。次のフィールドをもつ構造体として格納されます。
| フィールド名 | 説明 |
|---|---|
Name | カーネル関数の名前 |
KernelParameters | 推定されるカーネル パラメーターのベクトル |
KernelParameterNames | KernelParameters の要素に関連付けられている名前。 |
データ型: struct
予測
predict が GPR モデルから予測を行うために使用した方式。文字ベクトルとして格納されます。次のいずれかになります。
PredictMethod | 説明 |
|---|---|
'exact' | 厳密なガウス過程回帰 |
'bcd' | ブロック座標降下 |
'sd' | データ点サブセット近似 |
'sr' | 回帰変数サブセット近似 |
'fic' | 完全独立条件近似 |
学習済みの GPR モデルから予測を行うために使用した重み。数値ベクトルとして格納されます。predict は、次の積を使用して新しい予測子行列 Xnew について予測を計算します。
は とアクティブ セット ベクトル A の間のカーネル積の行列、α は重みのベクトルです。
データ型: double
PredictMethod が 'bcd' の場合の、ブロック座標降下 (BCD) に基づく Alpha の計算に関する情報。次のフィールドが含まれている構造体として返されます。
| フィールド名 | 説明 |
|---|---|
Gradient | 収束時の BCD 目的関数の勾配が含まれている n 行 1 列の行列。 |
Objective | 収束時の BCD 目的関数が含まれているスカラー。 |
SelectionCounts | BCD において各点をブロックに選択した回数を示す n 行 1 列の整数ベクトル。 |
Alpha プロパティには、BCD から計算したベクトル Alpha が格納されます。
PredictMethod が 'bcd' ではない場合、BCDInformation は空になります。
データ型: struct
予測された応答に適用する変換。モデルによって予測された応答値の変換方法を表す文字ベクトルとして格納されます。RegressionGP では、ResponseTransform は既定では 'none' です。RegressionGP は予測を行うときに ResponseTransform を使用しません。
アクティブ セットの選択
GPR モデルから予測を行うために使用した学習データのサブセット。行列として格納されます。
predict は、次の積を使用して新しい予測子行列 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 における FitMethod と PredictMethod の選択に応じて、パラメーターの推定または予測で使用されます。
スパースな方式 ('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 には展開された変数を表す名前が含まれます。それ以外の場合、ExpandedPredictorNames は PredictorNames と同じです。
データ型: 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 ベクトルとして指定します。このプロパティは、X と Y にすべての行が格納される場合は空になります。
データ型: logical
オブジェクト関数
compact | 機械学習モデルのサイズの縮小 |
crossval | 機械学習モデルの交差検証 |
lime | Local Interpretable Model-agnostic Explanations (LIME) |
loss | Regression 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

詳細
データ サブセット近似法、回帰変数サブセット近似法または完全独立条件近似法の場合 (FitMethod が 'sd'、'sr' または 'fic' に等しい場合) にアクティブ セット (または誘導入力セット) を指定しないと、fitrgp は一連の反復でアクティブ セットを選択してパラメーター推定を計算します。
1 回目の反復では、ベクトル η0 = [β0,σ0,θ0] の初期パラメーター値を使用して、アクティブ セット A1 を選択します。η0 (初期値) と A1 を使用して GPR の周辺対数尤度または近似を最大化することにより、新しいパラメーター推定 η1 を計算します。次に、η1 と A1 を使用して、新しい対数尤度 L1 を計算します。
2 回目の反復では、η1 のパラメーター値を使用して、アクティブ セット A2 を選択します。次に、η1 (初期値) と A2 を使用して、GPR の周辺対数尤度または近似を最大化し、新しいパラメーター値 η2 を推定します。さらに、η2 と A2 を使用して、新しい対数尤度値 L2 を計算します。
次の表は、各反復とその計算をまとめたものです。
| 反復回数 | アクティブ セット | パラメーター ベクトル | 対数尤度 |
|---|---|---|---|
| 1 | A1 | η1 | L1 |
| 2 | A2 | η2 | L2 |
| 3 | A3 | η3 | L3 |
| … | … | … | … |
指定した回数の繰り返しについて、同様に反復処理が行われます。アクティブ セット選択の反復回数は、名前と値の引数 NumActiveSetRepeats を使用して指定できます。
ヒント
このクラスのプロパティには、ドット表記を使用してアクセスできます。たとえば、
KernelInformationはカーネル パラメーターとその名前が保持される構造体です。したがって、学習済みモデルgprMdlのカーネル関数のパラメーターにアクセスするには、gprMdl.KernelInformation.KernelParametersを使用します。
バージョン履歴
R2015b で導入R2023b 以降では、予測子に欠損値がある学習観測値が X および Y のデータ プロパティに含まれます。RowsUsed プロパティは、学習に使用された観測値ではなく、モデルに格納されている学習観測値を示します。予測子に欠損値がある観測値は、モデルの学習プロセスでは引き続き省略されます。
以前のリリースでは、予測子に欠損値がある学習観測値はモデルのデータ プロパティで省略されていました。
参考
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)