このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
kfoldPredict
学習で使用しない観測の予測応答
説明
は、予測子データに欠損値がある観測値について予測した応答として YHat
= kfoldPredict(CVMdl
,PredictionForMissingValue=prediction
)prediction
の値を使用します。既定では、kfoldPredict
は学習分割データ内の観測された応答値の中央値を使用します。 (R2023b 以降)
入力引数
CVMdl
— 交差検証済みの線形回帰モデル
RegressionPartitionedLinear
モデル オブジェクト
交差検証済み線形回帰モデル。RegressionPartitionedLinear
モデル オブジェクトとして指定します。RegressionPartitionedLinear
モデルを作成するには、fitrlinear
を使用し、交差検証用の名前と値のペアの引数のいずれか 1 つ (CrossVal
など) を指定します。
推定値を取得するため、kfoldPredict は線形回帰モデルの交差検証に使用したものと同じデータ (X
および Y
) を適用します。
prediction
— 予測子に欠損値がある観測値に使用する予測した応答値
"median"
(既定値) | "mean"
| 数値スカラー
R2023b 以降
予測子に欠損値がある観測値に使用する予測した応答値。"median"
、"mean"
、または数値スカラーとして指定します。
値 | 説明 |
---|---|
"median" | kfoldPredict は、予測子に欠損値がある観測値について予測した応答値として、学習分割データ内の観測された応答値の中央値を使用します。 |
"mean" | kfoldPredict は、予測子に欠損値がある観測値について予測した応答値として、学習分割データ内の観測された応答値の平均値を使用します。 |
数値スカラー | kfoldPredict は、予測子に欠損値がある観測値について予測した応答値として、この値を使用します。 |
例: "mean"
例: NaN
データ型: single
| double
| char
| string
出力引数
YHat
— 交差検証予測応答
数値配列
交差検証予測応答。n 行 L 列の数値配列として返されます。n は CVMdl
を作成した予測子データ (X
を参照) 内の観測値数、L は CVMdl.Trained{1}.Lambda
内の正則化強度の数です。YHat(
は、正則化強度が i
,j
)CVMdl.Trained{1}.Lambda(
である線形回帰モデルを使用して予測された観測値 j
)i
の応答です。
正則化強度が j であるモデルを使用して予測された応答は以下です。
x は予測子データ行列
X
の観測値であり、行列ベクトルです。は推定された係数の列ベクトルです。このベクトルは
Mdl.Beta(:,
に格納されます。j
)は推定されたスカラー バイアスであり、
Mdl.Bias(
に格納されます。j
)
例
交差検証応答の予測
次のモデルにより、10000 個の観測値をシミュレートします。
は、10% の要素が非ゼロ標準正規である 10000 行 1000 列のスパース行列です。
e は、平均が 0、標準偏差が 0.3 のランダムな正規誤差です。
rng(1) % For reproducibility
n = 1e4;
d = 1e3;
nz = 0.1;
X = sprandn(n,d,nz);
Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);
線形回帰モデルを交差検証します。
CVMdl = fitrlinear(X,Y,'CrossVal','on')
CVMdl = RegressionPartitionedLinear CrossValidatedModel: 'Linear' ResponseName: 'Y' NumObservations: 10000 KFold: 10 Partition: [1x1 cvpartition] ResponseTransform: 'none'
Mdl1 = CVMdl.Trained{1}
Mdl1 = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x1 double] Bias: 0.0107 Lambda: 1.1111e-04 Learner: 'svm'
既定の設定では、fitrlinear
は 10 分割の交差検証を実装します。CVMdl
は RegressionPartitionedLinear
モデルです。このモデルに含まれている Trained
プロパティは、学習セットを使用して学習を行った 10 個の RegressionLinear
モデルが格納されている 10 行 1 列の cell 配列です。
fitrlinear
で分割の学習で使用しなかった観測値の応答を予測します。
yHat = kfoldPredict(CVMdl);
Mdl
内の正則化強度は 1 つなので、yHat
は数値ベクトルになります。
複数の正則化強度が含まれているモデルの予測
交差検証応答の予測 で説明されているように 10000 個の観測値をシミュレートします。
rng(1) % For reproducibility
n = 1e4;
d = 1e3;
nz = 0.1;
X = sprandn(n,d,nz);
Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);
~ の範囲で対数間隔で配置された 15 個の正則化強度を作成します。
Lambda = logspace(-5,-1,15);
モデルを交差検証します。実行速度を向上させるため、予測子データを転置し、観測値が列単位であることを指定します。LASSO ペナルティがある最小二乗の使用と、SpaRSA による目的関数の最適化を指定します。
X = X'; CVMdl = fitrlinear(X,Y,'ObservationsIn','columns','KFold',5,'Lambda',Lambda,... 'Learner','leastsquares','Solver','sparsa','Regularization','lasso');
CVMdl
は RegressionPartitionedLinear
モデルです。このモデルに含まれている Trained
プロパティは、それぞれが異なる分割を学習時にホールドアウトした、学習済みの RegressionLinear
モデルが格納されている 5 行 1 列の cell 配列です。fitrlinear
は 15 個の正則化強度を使用して学習を行ったので、各 RegressionLinear
モデルは 15 個のモデルであると考えることができます。
交差検証応答を予測します。
YHat = kfoldPredict(CVMdl); size(YHat)
ans = 1×2
10000 15
YHat(2,:)
ans = 1×15
-1.7338 -1.7332 -1.7319 -1.7299 -1.7266 -1.7239 -1.7135 -1.7210 -1.7324 -1.7063 -1.6397 -1.5112 -1.2631 -0.7841 -0.0096
YHat
は 10000 行 15 列の行列です。YHat(2,:)
は、15 個の正則化値すべてにより正則化されたモデルを使用した、観測値 2 の交差検証応答です。
バージョン履歴
R2016a で導入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)