このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
kfoldPredict
交差検証済み回帰モデル内の観測値に対する応答の予測
構文
説明
では、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、yFit
= kfoldPredict(CVMdl
,Name,Value
)'IncludeInteractions',true
は、一般化加法モデルの計算に交互作用項を含めるために指定します。
[
は、前の構文におけるいずれかの入力引数の組み合わせを使用して、予測子データ yFit
,ySD
,yInt
] = kfoldPredict(___)CVMdl.X
内の各観測値で評価した応答変数の標準偏差と予測区間も返します。この構文は、CVMdl
の IsStandardDeviationFit
プロパティが true
である一般化加法モデル (GAM) にのみ適用されます。
例
交差検証損失の手動による計算
交差検証済みの回帰モデルを作成する際に、オブジェクト関数 kfoldLoss
を使用して平均二乗誤差 (MSE) を計算できます。あるいは、kfoldPredict
を使用して検証分割観測値の応答を予測し、MSE を手動で計算できます。
carsmall
データ セットを読み込みます。予測子データ X
と応答データ Y
を指定します。
load carsmall
X = [Cylinders Displacement Horsepower Weight];
Y = MPG;
交差検証済みの回帰木モデルの学習を行います。既定では、10 分割交差検証が実行されます。
rng('default') % For reproducibility CVMdl = fitrtree(X,Y,'CrossVal','on');
kfoldLoss
を使用して 10 分割交差検証の MSE を計算します。
L = kfoldLoss(CVMdl)
L = 29.4963
交差検証済みの回帰モデルを使用して、応答 yfit
を予測します。yfit
と真の応答 CVMdl.Y
の間の平均二乗誤差を計算します。計算された MSE は、kfoldLoss
で返された損失値と一致します。
yfit = kfoldPredict(CVMdl); mse = mean((yfit - CVMdl.Y).^2)
mse = 29.4963
入力引数
CVMdl
— 交差検証された分割済みの回帰モデル
RegressionPartitionedModel
オブジェクト | RegressionPartitionedEnsemble
オブジェクト | RegressionPartitionedGAM
オブジェクト | RegressionPartitionedGP
オブジェクト | RegressionPartitionedNeuralNetwork
オブジェクト | RegressionPartitionedSVM
オブジェクト
交差検証された分割済みの回帰モデル。RegressionPartitionedModel
オブジェクト、RegressionPartitionedEnsemble
オブジェクト、RegressionPartitionedGAM
オブジェクト、RegressionPartitionedGP
オブジェクト、RegressionPartitionedNeuralNetwork
オブジェクト、または RegressionPartitionedSVM
オブジェクトとして指定します。オブジェクトは 2 つの方法で作成できます。
次の表に記載されている学習済み回帰モデルをそのオブジェクト関数
crossval
に渡す。次の表に記載されている関数を使用して回帰モデルに学習をさせ、その関数の交差検証に関する名前と値の引数のいずれかを指定する。
回帰モデル | 関数 |
---|---|
RegressionEnsemble | fitrensemble |
RegressionGAM | fitrgam |
RegressionGP | fitrgp |
RegressionNeuralNetwork | fitrnet |
RegressionSVM | fitrsvm |
RegressionTree | fitrtree |
名前と値の引数
オプションの引数のペアを 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)%
と等しくなります。
この引数は、標準偏差当てはめを含む一般化加法モデル オブジェクトの場合のみ有効です。つまり、この引数を指定できるのは、CVMdl
が RegressionPartitionedGAM
であり、かつ CVMdl
の IsStandardDeviationFit
プロパティが true
である場合だけです。
例: 'Alpha',0.01
データ型: single
| double
IncludeInteractions
— 交互作用項を含むというフラグ
true
| false
モデルの交互作用項を含むというフラグ。true
または false
として指定します。この引数は、一般化加法モデル (GAM) の場合のみ有効です。つまり、この引数を指定できるのは、CVMdl
が RegressionPartitionedGAM
である場合だけです。
CVMdl
のモデル (CVMdl.Trained
) に交互作用項が含まれる場合、既定値は true
です。モデルに交互作用項が含まれない場合、値は false
でなければなりません。
データ型: logical
PredictionForMissingValue
— 予測子に欠損値がある観測値に使用する予測した応答値
"median"
| "mean"
| 数値スカラー
R2023b 以降
予測子に欠損値がある観測値に使用する予測した応答値。"median"
、"mean"
、または数値スカラーとして指定します。この引数は、ガウス過程回帰モデル、ニューラル ネットワーク モデル、サポート ベクター マシン モデルに対してのみ有効です。つまり、この引数を指定できるのは、CVMdl
が RegressionPartitionedGP
オブジェクト、RegressionPartitionedNeuralNetwork
オブジェクト、または RegressionPartitionedSVM
オブジェクトである場合だけです。
値 | 説明 |
---|---|
"median" |
この値は、 |
"mean" | kfoldPredict は、予測子に欠損値がある観測値について予測した応答値として、学習分割データ内の観測された応答値の平均値を使用します。 |
数値スカラー | kfoldPredict は、予測子に欠損値がある観測値について予測した応答値として、この値を使用します。 |
例: "PredictionForMissingValue","mean"
例: "PredictionForMissingValue",NaN
データ型: single
| double
| char
| string
出力引数
yFit
— 予測応答
数値ベクトル
予測応答。n 行 1 列の数値ベクトルとして返されます。n は観測値の個数です (観測値が行に含まれる場合、n は size(CVMdl.X,1)
です)。yFit
の各エントリは、CVMdl.X
に対応する行で予測応答と一致します。
ホールドアウト検証の手法を使用して CVMdl
を作成する (つまり、CVMdl.KFold
が 1
である) 場合、yFit
には学習分割観測値について NaN
値が含まれます。
ySD
— 応答変数の標準偏差
列ベクトル
予測子データ
内の各観測値で評価した応答変数の標準偏差。長さが n の列ベクトルとして返されます。n は、予測子データ CVMdl
.X
に含まれている観測値の個数です。CVMdl
.Xi
番目の要素 ySD(i)
に、CVMdl
の学習済みの標準偏差モデルを使用して評価した i
番目の観測値 CVMdl.X(i,:)
に対する i
番目の応答の標準偏差が格納されます。
この引数は、標準偏差当てはめを含む一般化加法モデル オブジェクトの場合のみ有効です。つまり、kfoldPredict
がこの引数を返せるのは、CVMdl
が RegressionPartitionedGAM
であり、かつ CVMdl
の IsStandardDeviationFit
プロパティが true
である場合だけです。
yInt
— 応答変数の予測区間
2 列の行列
予測子データ
内の各観測値で評価した応答変数の予測区間。n 行 2 列の行列として返されます。n は、予測子データ CVMdl
.X
に含まれている観測値の個数です。CVMdl
.Xi
番目の行 yInt(i,:)
に、
を使用している ySD
(i)i
番目の観測値 CVMdl.X(i,:)
に対する i
番目の応答の推定された 100(1 –
の予測区間が格納されます。Alpha
)%Alpha
値は、予測区間に真の応答値 CVMdl.Y(i)
が含まれない確率です。yInt
の 1 列目には予測区間の下限が、2 列目には上限が格納されます。
この引数は、標準偏差当てはめを含む一般化加法モデル オブジェクトの場合のみ有効です。つまり、kfoldPredict
がこの引数を返せるのは、CVMdl
が RegressionPartitionedGAM
であり、かつ CVMdl
の IsStandardDeviationFit
プロパティが true
である場合だけです。
拡張機能
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
使用上の注意事項および制限事項:
この関数は、次のモデルの GPU 配列を完全にサポートします。
fitrtree
を使用するかRegressionTree
オブジェクトをcrossval
に渡すことによって当てはめたRegressionPartitionedModel
オブジェクト
詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2011a で導入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") の計算で省略されていました。
R2023a: RegressionPartitionedSVM
モデルの GPU サポート
R2023a 以降では、kfoldPredict
で RegressionPartitionedSVM
モデルの GPU 配列が完全にサポートされます。
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)