resubPredict
学習済み回帰モデルを使用した学習データについての応答の予測
説明
では、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、yFit
= resubPredict(Mdl
,Name,Value
)'IncludeInteractions',true
は、一般化加法モデルの計算に交互作用項を含めるために指定します。
[
は、前の構文におけるいずれかの入力引数の組み合わせを使用して、予測子データ yFit
,ySD
,yInt
] = resubPredict(___)Mdl.X
内の各観測値で評価した応答変数の標準偏差と予測区間も返します。この構文は、IsStandardDeviationFit
が true
である一般化加法モデルに、および PredictMethod
が 'bcd'
でないガウス過程回帰モデルにのみ適用されます。
例
再代入予測
一般化加法モデル (GAM) に学習させてから、学習データについて応答を予測します。
patients
データ セットを読み込みます。
load patients
予測子変数 (Age
、Diastolic
、Smoker
、Weight
、Gender
、SelfAssessedHealthStatus
) と応答変数 (Systolic
) を格納する table を作成します。
tbl = table(Age,Diastolic,Smoker,Weight,Gender,SelfAssessedHealthStatus,Systolic);
tbl
内の予測子の線形項が格納されている一変量の GAM に学習させます。
Mdl = fitrgam(tbl,"Systolic")
Mdl = RegressionGAM PredictorNames: {'Age' 'Diastolic' 'Smoker' 'Weight' 'Gender' 'SelfAssessedHealthStatus'} ResponseName: 'Systolic' CategoricalPredictors: [3 5 6] ResponseTransform: 'none' Intercept: 122.7800 IsStandardDeviationFit: 0 NumObservations: 100
Mdl
は RegressionGAM
モデル オブジェクトです。
学習セットについて応答を予測します。
yFit = resubPredict(Mdl);
観測応答値と予測応答値を格納する table を作成します。table の最初の 8 行を表示します。
t = table(tbl.Systolic,yFit, ... 'VariableNames',{'Observed Value','Predicted Value'}); head(t)
Observed Value Predicted Value ______________ _______________ 124 124.75 109 109.48 125 122.89 117 115.87 122 121.61 121 122.02 130 126.39 115 115.95
予測区間の計算
関数 fitrgp
を使用してガウス過程回帰 (GPR) モデルを学習させます。次に、関数 resubPredict
を使用して、学習データについて応答を予測し、学習データの各観測値における応答の予測区間を推定します。
学習データ セットを生成します。
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);
二乗指数カーネル関数を使用して、GPR モデルに学習させます。回帰変数のサブセット ('sr'
) による近似法を使用してパラメーターを推定し、データ サブセット ('sd'
) 法を使用して予測を行います。アクティブ セットに含まれている 50 個の点を使用し、アクティブ セットの選択には、'sgma'
(スパース グリーディ行列近似) 法を指定します。1 番目の予測子と 2 番目の予測子ではスケールが異なるので、データ セットを標準化します。
gprMdl = fitrgp(X,y,'KernelFunction','squaredExponential', ... 'FitMethod','sr','PredictMethod','sd', ... 'ActiveSetSize',50,'ActiveSetMethod','sgma','Standardize',true);
fitrgp
は、近似法、予測法およびアクティブ セット選択法についてどのような組み合わせでも受け入れます。ただし、ブロック座標降下予測法 ('PredictMethod','bcd'
) を使用してモデルに学習させた場合、このモデルを使用しても予測応答の標準偏差は計算できません。そのため、このモデルは予測区間の計算にも使用できません。詳細については、ヒントを参照してください。
学習済みのモデルを使用して、学習データの応答を予測し、予測した応答の予測区間を推定します。
[ypred,~,yci] = resubPredict(gprMdl);
真の応答、予測した応答および予測区間をプロットします。
figure plot(y,'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
学習済みの GPR モデルを使用して、学習データの平均二乗誤差損失を計算します。
L = resubLoss(gprMdl)
L = 0.0523
再代入予測の検査による GAM の比較
予測子の線形項と交互作用項の両方が格納されている一般化加法モデル (GAM) を使用して、学習データ セットについて応答を予測します。応答を予測する際に交互作用項を含めるかどうかを指定します。
carbig
データ セットを読み込みます。このデータ セットには、1970 年代と 1980 年代初期に製造された自動車の測定値が格納されています。
load carbig
予測子変数 (X
) として Acceleration
、Displacement
、Horsepower
および Weight
を、応答変数 (Y
) として MPG
を指定します。
X = [Acceleration,Displacement,Horsepower,Weight]; Y = MPG;
X
内の使用可能なすべての線形項と交互作用項が格納されている一般化加法モデルに学習させます。
Mdl = fitrgam(X,Y,'Interactions','all');
Mdl
は RegressionGAM
モデル オブジェクトです。
線形項と交互作用項の両方を使用して応答を予測してから、線形項のみを使用して応答を予測します。交互作用項を除外するには、'IncludeInteractions',false
を指定します。
yFit = resubPredict(Mdl);
yFit_nointeraction = resubPredict(Mdl,'IncludeInteractions',false);
観測応答値と予測応答値を格納する table を作成します。table の最初の 8 行を表示します。
t = table(Mdl.Y,yFit,yFit_nointeraction, ... 'VariableNames',{'Observed Response', ... 'Predicted Response','Predicted Response Without Interactions'}); head(t)
Observed Response Predicted Response Predicted Response Without Interactions _________________ __________________ _______________________________________ 18 18.026 17.22 15 15.003 15.791 18 17.663 16.18 16 16.178 15.536 17 17.107 17.361 15 14.943 14.424 14 14.119 14.981 14 13.864 13.498
入力引数
Mdl
— 回帰機械学習モデル
完全な回帰モデル オブジェクト
回帰機械学習モデル。完全な回帰モデル オブジェクトとして指定します。サポートされるモデルは次の表に記載されています。
モデル | 回帰モデル オブジェクト |
---|---|
ガウス過程回帰モデル | RegressionGP |
一般化加法モデル (GAM) | RegressionGAM |
ニューラル ネットワーク モデル | RegressionNeuralNetwork |
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: 'Alpha',0.01,'IncludeInteractions',false
は信頼水準を 99% として指定し、一般化加法モデルの計算から交互作用項を除外します。
Alpha
— 有意水準
0.05 (既定値) | [0,1]
の数値スカラー
予測区間 yInt
の信頼水準の有意水準。範囲 [0,1]
の数値スカラーとして指定します。yInt
の信頼水準は 100(1 – Alpha)%
と等しくなります。
この引数は、標準偏差当てはめを含む一般化加法モデル オブジェクトの場合、または予測にブロック座標降下法を使用しないガウス過程回帰モデルの場合のみ有効です。つまり、この引数を指定できるのは、次のいずれかの状況のみです。
Mdl
がRegressionGAM
であり、Mdl
のプロパティIsStandardDeviationFit
がtrue
である。Mdl
がRegressionGP
であり、Mdl
のプロパティPredictMethod
が'bcd'
でない。
例: 'Alpha',0.01
データ型: single
| double
IncludeInteractions
— 交互作用項を含むというフラグ
true
| false
モデルの交互作用項を含むというフラグ。true
または false
として指定します。この引数は、一般化加法モデルの場合のみ有効です。つまり、この引数を指定できるのは、Mdl
が RegressionGAM
である場合だけです。
Mdl
に交互作用項が含まれる場合、既定値は true
です。モデルに交互作用項が含まれない場合、値は false
でなければなりません。
データ型: logical
PredictionForMissingValue
— 予測子に欠損値がある観測値に使用する予測した応答値
"median"
| "mean"
| 数値スカラー
R2023b 以降
予測子に欠損値がある観測値に使用する予測した応答値。"median"
、"mean"
、または数値スカラーとして指定します。この引数は、ガウス過程回帰モデルまたはニューラル ネットワーク モデルに対してのみ有効です。つまり、この引数を指定できるのは、Mdl
が RegressionGP
オブジェクトまたは RegressionNeuralNetwork
オブジェクトである場合だけです。
値 | 説明 |
---|---|
"median" |
この値は、 |
"mean" | resubPredict は、予測子に欠損値がある観測値について予測した応答値として、学習データ内の観測された応答値の平均値を使用します。 |
数値スカラー | resubPredict は、予測子に欠損値がある観測値について予測した応答値として、この値を使用します。 |
例: "PredictionForMissingValue","mean"
例: "PredictionForMissingValue",NaN
データ型: single
| double
| char
| string
出力引数
yFit
— 予測応答
ベクトル
予測応答。長さが n のベクトルとして返されます。n は、予測子データ (Mdl.X
) に含まれている観測値の個数です。
ySD
— 応答変数の標準偏差
列ベクトル
予測子データ
内の各観測値で評価した応答変数の標準偏差。長さが n の列ベクトルとして返されます。n は、予測子データ Mdl
.X
に含まれている観測値の個数です。Mdl
.Xi
番目の要素 ySD(i)
に、Mdl
の学習済みの標準偏差モデルを使用して評価した i
番目の観測値 Mdl.X(i,:)
に対する i
番目の応答の標準偏差が格納されます。
この引数は、標準偏差当てはめを含む一般化加法モデル オブジェクトの場合、または予測にブロック座標降下法を使用しないガウス過程回帰モデルの場合のみ有効です。つまり、resubPredict
がこの引数を返すのは、次のいずれかの状況のみです。
Mdl
がRegressionGAM
であり、Mdl
のプロパティIsStandardDeviationFit
がtrue
である。Mdl
がRegressionGP
であり、Mdl
のプロパティPredictMethod
が'bcd'
でない。
yInt
— 応答変数の予測区間
2 列の行列
予測子データ
内の各観測値で評価した応答変数の予測区間。n 行 2 列の行列として返されます。n は、予測子データ Mdl
.X
に含まれている観測値の個数です。Mdl
.Xi
番目の行 yInt(i,:)
に、i
番目の観測値 Mdl.X(i,:)
に対する i
番目の応答の 100(1 –
の予測区間が格納されます。Alpha
)%Alpha
値は、予測区間に真の応答値 Mdl.Y(i)
が含まれない確率です。yInt
の 1 列目には予測区間の下限が、2 列目には上限が格納されます。
この引数は、標準偏差当てはめを含む一般化加法モデル オブジェクトの場合、または予測にブロック座標降下法を使用しないガウス過程回帰モデルの場合のみ有効です。つまり、resubPredict
がこの引数を返すのは、次のいずれかの状況のみです。
Mdl
がRegressionGAM
であり、Mdl
のプロパティIsStandardDeviationFit
がtrue
である。Mdl
がRegressionGP
であり、Mdl
のプロパティPredictMethod
が'bcd'
でない。
アルゴリズム
resubPredict
は、オブジェクト (Mdl
) の対応する関数 predict
に従って応答を予測します。モデル固有の説明については、次の表に示す関数 predict
のリファレンス ページを参照してください。
モデル | 回帰モデル オブジェクト (Mdl ) | オブジェクト関数 predict |
---|---|---|
ガウス過程回帰モデル | RegressionGP | predict |
一般化加法モデル | RegressionGAM | predict |
ニューラル ネットワーク モデル | RegressionNeuralNetwork | predict |
代替機能
新しい予測子データの予測応答を計算するには、オブジェクト (Mdl
) の対応する関数 predict
を使用します。
バージョン履歴
R2015b で導入R2023b: 予測子に欠損値がある観測値に使用する予測した応答値の指定
R2023b 以降で損失を予測または計算する際、一部の回帰モデルでは、予測子に欠損値がある観測値について予測した応答値を指定できます。名前と値の引数 PredictionForMissingValue
を指定して、予測値として数値スカラー、学習セットの中央値、または学習セットの平均値を使用します。損失を計算するときに、予測子に欠損値がある観測値を省略するように指定することもできます。
次の表は、名前と値の引数 PredictionForMissingValue
をサポートするオブジェクト関数の一覧です。既定では、これらの関数は、予測子に欠損値がある観測値について予測した応答値として、学習セットの中央値を使用します。
モデル タイプ | モデル オブジェクト | オブジェクト関数 |
---|---|---|
ガウス過程回帰 (GPR) モデル | RegressionGP , CompactRegressionGP | loss , predict , resubLoss , resubPredict |
RegressionPartitionedGP | kfoldLoss , kfoldPredict | |
ガウス カーネル回帰モデル | RegressionKernel | loss , predict |
RegressionPartitionedKernel | kfoldLoss , kfoldPredict | |
線形回帰モデル | RegressionLinear | loss , predict |
RegressionPartitionedLinear | kfoldLoss , kfoldPredict | |
ニューラル ネットワーク回帰モデル | RegressionNeuralNetwork , CompactRegressionNeuralNetwork | loss , predict , resubLoss , resubPredict |
RegressionPartitionedNeuralNetwork | kfoldLoss , kfoldPredict | |
サポート ベクター マシン (SVM) 回帰モデル | RegressionSVM , CompactRegressionSVM | loss , predict , resubLoss , resubPredict |
RegressionPartitionedSVM | kfoldLoss , kfoldPredict |
以前のリリースでは、上記の回帰モデル関数 loss
および predict
は、予測子に欠損値がある観測値について予測した応答値として NaN
を使用していました。予測子に欠損値がある観測値は、予測と損失の再代入 ("resub") と交差検証 ("kfold") の計算で省略されていました。
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)