kfoldPredict
交差検証済み線形回帰モデル内の観測値に対する応答の予測
説明
は、予測子データに欠損値がある観測値について予測した応答として YHat = kfoldPredict(CVMdl,PredictionForMissingValue=prediction)prediction の値を使用します。既定では、kfoldPredict は学習分割データ内の観測された応答値の中央値を使用します。 (R2023b 以降)
例
次のモデルにより、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: [1×1 cvpartition]
ResponseTransform: 'none'
Properties, Methods
Mdl1 = CVMdl.Trained{1}Mdl1 =
RegressionLinear
ResponseName: 'Y'
ResponseTransform: 'none'
Beta: [1000×1 double]
Bias: 0.0107
Lambda: 1.1111e-04
Learner: 'svm'
Properties, Methods
既定の設定では、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 の交差検証応答です。
入力引数
交差検証済み線形回帰モデル。RegressionPartitionedLinear モデル オブジェクトとして指定します。RegressionPartitionedLinear モデルを作成するには、fitrlinear を使用し、交差検証用の名前と値のペアの引数のいずれか 1 つ (CrossVal など) を指定します。
推定値を取得するため、kfoldPredict は線形回帰モデルの交差検証に使用したものと同じデータ (X および Y) を適用します。
R2023b 以降
予測子に欠損値がある観測値に使用する予測した応答値。"median"、"mean"、または数値スカラーとして指定します。
| 値 | 説明 |
|---|---|
"median" | kfoldPredict は、予測子に欠損値がある観測値について予測した応答値として、学習分割データ内の観測された応答値の中央値を使用します。 |
"mean" | kfoldPredict は、予測子に欠損値がある観測値について予測した応答値として、学習分割データ内の観測された応答値の平均値を使用します。 |
| 数値スカラー | kfoldPredict は、予測子に欠損値がある観測値について予測した応答値として、この値を使用します。 |
例: "mean"
例: NaN
データ型: single | double | char | string
出力引数
交差検証予測応答。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)
拡張機能
この関数は、GPU 配列を完全にサポートします。詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2016a で導入kfoldPredict は 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)