RegressionGP
ガウス過程回帰モデル
説明
RegressionGP
は、ガウス過程回帰 (GPR) モデルです。GPR モデルを学習させるには、fitrgp
を使用します。学習済みのモデルを使用して次を行えます。
resubPredict
を使用した学習データの応答の予測、またはpredict
を使用した新しい予測子データの応答の予測。予測区間を計算することもできます。resubLoss
を使用した学習データの回帰損失の計算、またはloss
を使用した新しいデータの回帰損失の計算。
作成
RegressionGP
オブジェクトの作成には fitrgp
を使用します。
プロパティ
近似
FitMethod
— パラメーター推定に使用された方式
'none'
| 'exact'
| 'sd'
| 'sr'
| 'fic'
GPR モデルの基底関数係数 β、ノイズ標準偏差 σ およびカーネル パラメーター θ の推定に使用された方式。文字ベクトルとして格納されます。次のいずれかになります。
近似方式 | 説明 |
---|---|
'none' | 推定を行いません。fitrgp はパラメーター値として初期パラメーター値を使用します。 |
'exact' | 厳密なガウス過程回帰。 |
'sd' | データ点サブセット近似。 |
'sr' | 回帰変数サブセット近似。 |
'fic' | 完全独立条件近似。 |
BasisFunction
— 明示的な基底関数
'none'
| 'constant'
| 'linear'
| 'pureQuadratic'
| 関数ハンドル
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
Beta
— 推定された係数
ベクトル
明示的な基底関数について推定した係数。ベクトルとして格納されます。明示的な基底関数は、fitrgp
で名前と値のペアの引数 BasisFunction
を使用して定義できます。
データ型: double
Sigma
— 推定されたノイズ標準偏差
スカラー値
GPR モデルの推定ノイズ標準偏差。スカラー値として格納されます。
データ型: double
CategoricalPredictors
— カテゴリカル予測子のインデックス
正の整数のベクトル | []
カテゴリカル予測子のインデックス。正の整数のベクトルとして指定します。CategoricalPredictors
には、対応する予測子がカテゴリカルであることを示すインデックス値が格納されます。インデックス値の範囲は 1 ~ p
です。p
はモデルの学習に使用した予測子の数です。どの予測子もカテゴリカルではない場合、このプロパティは空 ([]
) になります。
データ型: single
| double
HyperparameterOptimizationResults
— ハイパーパラメーターの交差検証最適化
BayesianOptimization
オブジェクト | テーブル
この プロパティ は読み取り専用です。
ハイパーパラメーターの交差検証最適化。ハイパーパラメーターおよび関連する値が含まれているテーブルまたは BayesianOptimization
オブジェクトを指定します。モデルを作成するときに名前と値のペアの引数 'OptimizeHyperparameters'
が空以外であった場合、このプロパティは空以外になります。HyperparameterOptimizationResults
の値は、モデル作成時の構造体 HyperparameterOptimizationOptions
の Optimizer
フィールドの設定によって変化します。
Optimizer フィールドの値 | HyperparameterOptimizationResults の値 |
---|---|
'bayesopt' (既定の設定) | BayesianOptimization クラスのオブジェクト |
'gridsearch' または 'randomsearch' | 使用したハイパーパラメーター、観測された目的関数の値 (交差検証損失)、および最低 (最良) から最高 (最悪) までの観測値の順位が格納されているテーブル |
LogLikelihood
— 最大化した周辺対数尤度
スカラー値 | []
最大化した GPR モデルの周辺対数尤度。FitMethod
が 'none'
以外の場合、スカラー値として格納されます。FitMethod
が 'none'
の場合、LogLikelihood
は空になります。
FitMethod
が 'sd'
、'sr'
または 'fic'
の場合、LogLikelihood
は GPR モデルの周辺対数尤度を最大化した近似値になります。
データ型: double
ModelParameters
— 学習に使用されたパラメーター
GPParams
オブジェクト
GPR モデルの学習に使用されたパラメーター。GPParams
オブジェクトとして格納されます。
カーネル関数
KernelFunction
— 共分散関数の形式
'squaredExponential'
| 'matern32'
| 'matern52'
| 'ardsquaredexponential'
| 'ardmatern32'
| 'ardmatern52'
| 関数ハンドル
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
KernelInformation
— カーネル関数のパラメーターに関する情報
構造体
GPR モデルで使用されたカーネル関数のパラメーターに関する情報。次のフィールドをもつ構造体として格納されます。
フィールド名 | 説明 |
---|---|
Name | カーネル関数の名前 |
KernelParameters | 推定されるカーネル パラメーターのベクトル |
KernelParameterNames | KernelParameters の要素に関連付けられている名前。 |
データ型: struct
予測
PredictMethod
— 予測を行うための方式
'exact'
| 'bcd'
| 'sd'
| 'sr'
| 'fic'
predict
が GPR モデルから予測を行うために使用した方式。文字ベクトルとして格納されます。次のいずれかになります。
PredictMethod | 説明 |
---|---|
'exact' | 厳密なガウス過程回帰 |
'bcd' | ブロック座標降下 |
'sd' | データ点サブセット近似 |
'sr' | 回帰変数サブセット近似 |
'fic' | 完全独立条件近似 |
Alpha
— 重み
数値ベクトル
学習済みの GPR モデルから予測を行うために使用した重み。数値ベクトルとして格納されます。predict
は、次の積を使用して新しい予測子行列 Xnew
について予測を計算します。
は とアクティブ セット ベクトル A の間のカーネル積の行列、α は重みのベクトルです。
データ型: double
BCDInformation
— BCD に基づく Alpha
の計算に関する情報
構造体 | []
PredictMethod
が 'bcd'
の場合の、ブロック座標降下 (BCD) に基づく Alpha
の計算に関する情報。次のフィールドが含まれている構造体として返されます。
フィールド名 | 説明 |
---|---|
Gradient | 収束時の BCD 目的関数の勾配が含まれている n 行 1 列の行列。 |
Objective | 収束時の BCD 目的関数が含まれているスカラー。 |
SelectionCounts | BCD において各点をブロックに選択した回数を示す n 行 1 列の整数ベクトル。 |
Alpha
プロパティには、BCD から計算したベクトル Alpha
が格納されます。
PredictMethod
が 'bcd'
ではない場合、BCDInformation
は空になります。
データ型: struct
ResponseTransform
— 予測応答に適用する変換
'none'
(既定値)
予測された応答に適用する変換。モデルによって予測された応答値の変換方法を表す文字ベクトルとして格納されます。RegressionGP
では、ResponseTransform
は既定では 'none'
です。RegressionGP
は予測を行うときに ResponseTransform
を使用しません。
アクティブ セットの選択
ActiveSetVectors
— 学習データのサブセット
行列
GPR モデルから予測を行うために使用した学習データのサブセット。行列として格納されます。
predict
は、次の積を使用して新しい予測子行列 Xnew
について予測を計算します。
は とアクティブ セット ベクトル A の間のカーネル積の行列、α は重みのベクトルです。
ActiveSetVectors
は、厳密な GPR 近似の場合の学習データ X
およびスパースな GPR 法の場合の学習データ X
のサブセットと等しくなります。カテゴリカル予測子がモデルに含まれている場合、対応する予測子についてのダミー変数が ActiveSetVectors
に含まれます。
データ型: double
ActiveSetHistory
— アクティブ セット選択とパラメーター推定の履歴
構造体
FitMethod
が 'sd'
、'sr'
または 'fic'
に等しい場合のインターリーブ方式によるアクティブ セット選択とパラメーター推定の履歴。次のフィールドをもつ構造体として格納されます。
フィールド名 | 説明 |
---|---|
ParameterVector | 基底関数の係数 β、カーネル関数のパラメーター θ およびノイズ標準偏差 σ というパラメーター ベクトルが含まれている cell 配列。 |
ActiveSetIndices | アクティブ セットのインデックスが含まれている cell 配列。 |
Loglikelihood | 最大化した対数尤度が含まれているベクトル。 |
CriterionProfile | アクティブ セットのサイズが 0 から最終的なサイズに増加する場合のアクティブ セット選択基準値を含む cell 配列。 |
データ型: struct
ActiveSetMethod
— アクティブ セットの選択に使用された方式
'sgma'
| 'entropy'
| 'likelihood'
| 'random'
スパースな方式 ('sd'
、'sr'
または 'fic'
) の場合にアクティブ セットの選択に使用された方式。文字ベクトルとして格納されます。次のいずれかになります。
ActiveSetMethod | 説明 |
---|---|
'sgma' | スパース グリーディ行列近似 |
'entropy' | 微分エントロピーに基づく選択 |
'likelihood' | 回帰変数サブセットの対数尤度に基づく選択 |
'random' | 無作為選択 |
選択したアクティブ セットは、fitrgp
における FitMethod
と PredictMethod
の選択に応じて、パラメーターの推定または予測で使用されます。
ActiveSetSize
— アクティブ セットのサイズ
整数値
スパースな方式 ('sd'
、'sr'
または 'fic'
) の場合のアクティブ セットのサイズ。整数値として格納されます。
データ型: double
IsActiveSetVector
— アクティブ セットを選択するためのインジケーター
logical ベクトル
学習済み GPR モデルから予測を行うためにアクティブ セットを選択するためのインジケーター。logical ベクトルとして格納されます。これらのインジケーターは、fitrgp
がアクティブ セットとして選択する学習データのサブセットを示します。たとえば、X
が元の学習データである場合、ActiveSetVectors = X(IsActiveSetVector,:)
になります。
データ型: logical
学習データ
NumObservations
— 学習データに含まれている観測値の数
スカラー値
学習データに含まれている観測値の数。スカラー値として格納されます。
データ型: double
X
— 学習データ
n 行 d 列のテーブル | n 行 d 列の行列
学習データ。n 行 d 列のテーブルまたは行列として格納されます。n は学習データに含まれている観測値の数、d は予測子変数 (列) の数です。テーブルに対して GPR モデルを学習させた場合、X
はテーブルになります。それ以外の場合、X
は行列になります。
データ型: double
| table
Y
— 観測された応答値
n 行 1 列のベクトル
GPR モデルを学習させるために使用した、観測された応答値。n 行 1 列のベクトルとして格納されます。n は観測値の数です。
データ型: double
PredictorNames
— 予測子の名前
文字ベクトルの cell 配列
GPR モデルで使用した予測子の名前。文字ベクトルの cell 配列として格納されます。それぞれの名前 (セル) は、X
の列に対応します。
データ型: cell
ExpandedPredictorNames
— 展開された予測子の名前
文字ベクトルの cell 配列
GPR モデルの展開された予測子の名前。文字ベクトルの cell 配列として格納されます。それぞれの名前 (セル) は、ActiveSetVectors
の列に対応します。
モデルでカテゴリカル変数用にダミー変数を使用している場合、ExpandedPredictorNames
には展開された変数を表す名前が含まれます。それ以外の場合、ExpandedPredictorNames
は PredictorNames
と同じです。
データ型: cell
ResponseName
— 応答変数の名前
文字ベクトル
GPR モデルにおける応答変数の名前。文字ベクトルとして格納されます。
データ型: char
PredictorLocation
— 予測子の平均
1 行 d 列のベクトル | []
学習データを標準化した場合に GPR モデルを学習させるために使用した予測子の平均。1 行 d 列のベクトルとして格納されます。学習データを標準化しなかった場合、PredictorLocation
は空になります。
PredictorLocation
が空ではない場合、predict
メソッドは X
のすべての列から PredictorLocation
の対応する要素を減算することにより、予測子の値をセンタリングします。
カテゴリカル予測子がある場合、そのような予測子に対応する各ダミー変数について PredictorLocation
の要素は 0 になります。ダミー変数は、センタリングもスケーリングもされません。
データ型: double
PredictorScale
— 予測子の標準偏差
1 行 d 列のベクトル | []
学習データを標準化した場合に GPR モデルを学習させるために使用した予測子の標準偏差。1 行 d 列のベクトルとして格納されます。学習データを標準化しなかった場合、PredictorScale
は空になります。
PredictorScale
が空ではない場合、predict
メソッドは (PredictorLocation
を使用してセンタリングした後で) X
のすべての列を PredictorScale
の対応する要素で除算することにより、予測子をスケーリングします。
カテゴリカル予測子がある場合、そのような予測子に対応する各ダミー変数について PredictorLocation
の要素は 1 になります。ダミー変数は、センタリングもスケーリングもされません。
データ型: double
RowsUsed
— 格納されている元の学習データの行
logical ベクトル | []
モデルに格納されている元の学習データの行。logical ベクトルとして指定します。このプロパティは、X
と Y
にすべての行が格納される場合は空になります。
データ型: logical
オブジェクト関数
compact | 機械学習モデルのサイズの縮小 |
crossval | 機械学習モデルの交差検証 |
lime | Local Interpretable Model-agnostic Explanations (LIME) |
loss | ガウス過程回帰モデルの回帰誤差 |
partialDependence | 部分依存の計算 |
plotPartialDependence | 部分依存プロット (PDP) および個別条件付き期待値 (ICE) プロットの作成 |
postFitStatistics | 厳密ガウス過程回帰モデルの当てはめ統計量の計算 |
predict | ガウス過程回帰モデルの予測応答 |
resubLoss | 再代入回帰損失 |
resubPredict | 学習済み回帰モデルを使用した学習データについての応答の予測 |
shapley | シャープレイ値 |
例
GPR モデルの学習と予測のプロット
標本データを生成します。
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: 予測子に欠損値がある観測値をモデルに格納
R2023b 以降では、予測子に欠損値がある学習観測値が X
および Y
のデータ プロパティに含まれます。RowsUsed
プロパティは、学習に使用された観測値ではなく、モデルに格納されている学習観測値を示します。予測子に欠損値がある観測値は、モデルの学習プロセスでは引き続き省略されます。
以前のリリースでは、予測子に欠損値がある学習観測値はモデルのデータ プロパティで省略されていました。
参考
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)