cvshrink
線形判別の正則化の交差検証
構文
説明
[___] = cvshrink(
では、1 つ以上の名前と値の引数を使用して追加オプションを指定します。たとえば、交差検証用の delta 区間および gamma 区間の数や進捗メッセージの詳細レベルを指定できます。 Mdl
,Name=Value
)
例
多くの予測子をもつデータの正則化
判別分析分類器を正則化し、モデル内の予測子の数と分類精度の間のトレードオフを表示します。
データ ovariancancer
の線形判別分析分類器を作成します。結果のモデルを適度に小さく維持するためにオプション SaveMemory
とオプション FillCoeffs
を設定します。
load ovariancancer obj = fitcdiscr(obs,grp,... 'SaveMemory','on','FillCoeffs','off');
Gamma
の 10 レベルと Delta
の 10 レベルを使用して、適切なパラメーターを検索します。この検索には時間がかかります。進行状況を表示するために Verbose
を 1
に設定します。
rng('default') % for reproducibility [err,gamma,delta,numpred] = cvshrink(obj,... 'NumGamma',9,'NumDelta',9,'Verbose',1);
Done building cross-validated model. Processing Gamma step 1 out of 10. Processing Gamma step 2 out of 10. Processing Gamma step 3 out of 10. Processing Gamma step 4 out of 10. Processing Gamma step 5 out of 10. Processing Gamma step 6 out of 10. Processing Gamma step 7 out of 10. Processing Gamma step 8 out of 10. Processing Gamma step 9 out of 10. Processing Gamma step 10 out of 10.
予測子の数に対して分類誤差率をプロットします。
plot(err,numpred,'k.') xlabel('Error rate'); ylabel('Number of predictors');
入力引数
Mdl
— 学習済みの判別分析分類器
ClassificationDiscriminant
モデル オブジェクト
学習済みの判別分析分類器。fitcdiscr
で学習させた ClassificationDiscriminant
モデル オブジェクトとして指定します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: [err,gamma,delta,numpred] = cvshrink(Mdl,NumGamma=9,NumDelta=9,Verbose=1);
delta
— 交差検証用の Delta 値
0
(既定値) | 数値行ベクトル | 数値行列
交差検証用の Delta 値。数値スカラー、行ベクトル、または行列として指定します。
スカラー
delta
—cvshrink
は、このdelta
の値とgamma
のすべての値を正則化に使用します。行ベクトル
delta
— 各i
およびj
に対して、cvshrink
はdelta(j)
とgamma(i)
を正則化に使用します。行列
delta
—delta
の行数はgamma
に含まれる要素の数と等しくなければなりません。各i
およびj
に対して、cvshrink
はdelta(i,j)
とgamma(i)
を正則化に使用します。
例: delta=[0 .01 .1]
データ型: double
gamma
— 交差検証用の Gamma 値
0:0.1:1
(既定値) | 数値ベクトル
交差検証用の Gamma 値。数値ベクトルとして指定します。
例: gamma=[0 .01 .1]
データ型: double
Verbose
— 詳細レベル
0
(既定値) | 1
| 2
詳細レベル。0
、1
、または 2
を指定します。値が大きいほど進捗メッセージの数が増えます。
例: Verbose=2
データ型: double
出力引数
err
— 誤分類誤差率
数値ベクトル | 数値行列
誤分類誤差率。誤差の数値のベクトルまたは行列として返されます。誤分類誤差率は、すべての分割で誤分類されたデータの平均の比率です。
delta
がスカラー (既定) の場合、err(i)
はgamma(i)
で正則化されたMdl
に対する誤分類誤差率です。delta
がベクトルの場合、err(i,j)
はgamma(i)
とdelta(j)
で正則化されたMdl
に対する誤分類誤差率です。delta
が行列の場合、err(i,j)
はgamma(i)
とdelta(i,j)
で正則化されたMdl
に対する誤分類誤差率です。
gamma
— 正則化に使用された Gamma 値
数値ベクトル
正則化に使用された Gamma 値。数値ベクトルとして返されます。ガンマとデルタを参照してください。
delta
— 正則化に使用された Delta 値
数値ベクトル | 数値行列
正則化に使用された Delta 値。数値ベクトルまたは行列として返されます。ガンマとデルタを参照してください。
名前と値の引数
delta
にスカラーを指定した場合、出力delta
はgamma
と同じサイズで、入力スカラーと等しいエントリをもつ行ベクトルになります。名前と値の引数
delta
に行ベクトルを指定した場合、出力delta
はこの行ベクトルと同じ列数でgamma
の要素の数と等しい行数の行列になります。出力delta(i,j)
は入力delta(j)
と等しくなります。名前と値の引数
delta
に行列を指定した場合、出力delta
はこの入力行列と同じになります。delta
の行数は、gamma
内の要素の数と等しくなければなりません。
numpred
— さまざまな正則化を実行したときのモデル内の予測子の数
数値ベクトル | 数値行列
さまざまな正則化を実行したときのモデル内の予測子の数。数値ベクトルまたは行列として返されます。numpred
は err
と同じサイズです。
delta
がスカラー (既定) の場合、numpred(i)
はgamma(i)
とdelta
で正則化されたMdl
の予測子の数です。delta
がベクトルの場合、numpred(i,j)
はgamma(i)
とdelta(j)
で正則化されたMdl
の予測子の数です。delta
が行列の場合、numpred(i,j)
はgamma(i)
とdelta(i,j)
で正則化されたMdl
の予測子の数です。
詳細
ガンマとデルタ
正則化とは、効果的な予測モデルを生み出す予測子の小さな集合を見つけ出す過程です。線形判別分析には、γ および δ の 2 つのパラメーターがあり、これらは次のように正則化を制御します。cvshrink
は適切なパラメーター値の選択を支援します。
Σ がデータ X の共分散行列を表し、 が中心データ (データ X からクラス別の平均を減算したデータ) であるとします。次のように定義します。
正則化した共分散行列 は次のようになります。
γ ≥ MinGamma
である場合、 は常に正則です。
μk を k クラスの X の要素の平均ベクトルとし、μ0 をグローバル平均ベクトル (X の行の平均) とします。C がデータ X の相関行列、 が正則化された相関行列であるとします。
ここで I が単位行列です。
データ点 x の正則化された判別分析分類器にある線形項は
パラメーター δ は、大かっこ内の最後の項にしきい値としてこの式を入力します。ベクトル の各成分は、大きさがしきい値 δ より小さい場合、ゼロが設定されます。そのため、クラス k に対して、コンポーネント j のしきい値を 0 に設定した場合、x のコンポーネント j は事後確率の評価には入りません。
DeltaPredictor
プロパティは、このしきい値に関係するベクトルです。δ ≥ DeltaPredictor(i)
の場合、すべてのクラス k には次の値があります。
したがって、δ ≥ DeltaPredictor(i)
の場合、正則化された分類器は予測子 i
を使用しません。
ヒント
バージョン履歴
R2012b で導入
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)