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
Properties, Methods
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) を使用して、学習データ セットについて応答を予測します。応答を予測する際に交互作用項を含めるかどうかを指定します。
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
入力引数
回帰機械学習モデル。完全な回帰モデル オブジェクトとして指定します。サポートされるモデルは次の表に記載されています。
| モデル | 回帰モデル オブジェクト |
|---|---|
| ガウス過程回帰モデル | RegressionGP |
| 一般化加法モデル (GAM) | RegressionGAM |
| ニューラル ネットワーク モデル | RegressionNeuralNetwork |
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。
例: Alpha=0.01,IncludeInteractions=false は信頼水準を 99% として指定し、一般化加法モデルの計算から交互作用項を除外します。
予測区間 yInt の信頼水準の有意水準。範囲 [0,1] の数値スカラーとして指定します。yInt の信頼水準は 100(1 – Alpha)% と等しくなります。
この引数は、標準偏差当てはめを含む一般化加法モデル オブジェクトの場合、または予測にブロック座標降下法を使用しないガウス過程回帰モデルの場合のみ有効です。つまり、この引数を指定できるのは、次のいずれかの状況のみです。
MdlがRegressionGAMであり、MdlのプロパティIsStandardDeviationFitがtrueである。MdlがRegressionGPであり、MdlのプロパティPredictMethodが'bcd'でない。
例: Alpha=0.01
データ型: single | double
モデルの交互作用項を含むというフラグ。true または false として指定します。この引数は、一般化加法モデルの場合のみ有効です。つまり、この引数を指定できるのは、Mdl が RegressionGAM である場合だけです。
Mdl に交互作用項が含まれる場合、既定値は true です。モデルに交互作用項が含まれない場合、値は false でなければなりません。
データ型: logical
R2024b 以降
予測応答 yFit の出力タイプ。"matrix" または "table" として指定します。この引数は、複数の応答変数をもつニューラル ネットワーク モデルに対してのみ有効です。つまり、この引数を指定できるのは、Mdl が RegressionNeuralNetwork オブジェクトで、Mdl.Y に複数の応答変数のデータが含まれている場合だけです。
例: OutputType="table"
データ型: char | string
R2023b 以降
予測子に欠損値がある観測値に使用する予測した応答値。"median"、"mean"、または数値スカラーとして指定します。この引数は、ガウス過程回帰モデルまたはニューラル ネットワーク モデルに対してのみ有効です。つまり、この引数を指定できるのは、Mdl が RegressionGP オブジェクトまたは RegressionNeuralNetwork オブジェクトである場合だけです。
| 値 | 説明 |
|---|---|
"median" |
この値は、 |
"mean" | resubPredict は、予測子に欠損値がある観測値について予測した応答値として、学習データ内の観測された応答値の平均値を使用します。 |
| 数値スカラー | resubPredict は、予測子に欠損値がある観測値について予測した応答値として、この値を使用します。 |
例: PredictionForMissingValue="mean"
例: PredictionForMissingValue=NaN
データ型: single | double | char | string
出力引数
予測応答。数値のベクトル、行列、または table として返されます。
yFitがベクトルの場合、その長さは n になります。ここで、n は予測子データ (Mdl.X) の観測値の数です。yFitが行列または table の場合、その行数は n になります。ここで、n は予測子データの観測値の数です。yFitが行列または table になるのは、Mdlが多重応答回帰ニューラル ネットワーク モデルの場合だけです。
予測子データ 内の各観測値で評価した応答変数の標準偏差。長さが 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'でない。
予測子データ 内の各観測値で評価した応答変数の予測区間。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 を使用します。
拡張機能
この関数は、RegressionGP モデル オブジェクトと RegressionNeuralNetwork モデル オブジェクトの GPU 配列を完全にサポートします。詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2015b で導入resubPredict で RegressionGP モデル オブジェクトの GPU 配列が完全にサポートされます。
fitrnet 関数を使用して、複数の応答変数をもつニューラル ネットワーク回帰モデルを作成できます。応答変数の数にかかわらず、関数は RegressionNeuralNetwork オブジェクトを返します。resubPredict オブジェクト関数を使用して学習データに対する応答を予測できます。
resubPredict を呼び出すときに、名前と値の引数 OutputType を使用して、予測応答値を行列または table として返すかどうかを指定できます。
resubPredict で RegressionNeuralNetwork モデル オブジェクトの GPU 配列が完全にサポートされます。
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 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)