このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
kfoldPredict
学習で使用しない観測の予測応答
説明
入力引数
CVMdl
— 交差検証済みの線形回帰モデル
RegressionPartitionedLinear
モデル オブジェクト
交差検証済み線形回帰モデル。RegressionPartitionedLinear
モデル オブジェクトとして指定します。RegressionPartitionedLinear
モデルを作成するには、fitrlinear
を使用し、交差検証用の名前と値のペアの引数のいずれか 1 つ (CrossVal
など) を指定します。
推定値を取得するため、kfoldPredict は線形回帰モデルの交差検証に使用したものと同じデータ (X
および Y
) を適用します。
出力引数
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' Properties, Methods
Mdl1 = CVMdl.Trained{1}
Mdl1 = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x1 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 の交差検証応答です。
バージョン履歴
R2016a で導入
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)