主要内容

判別分析分類器の正則化

この例では,モデルの予測力を損なわずに予測子の削除を試行して,よりロバストで簡潔なモデルを作成する方法を示します。これは,デ,タに多数の予測子が含まれる場合に特に重要です。線形判別分析では,2 (ガンマとデルタ)を使用して冗長な予測子を特定および削除します。cvshrinkメソッドはこれらのパラメ,タ,の適切な設定の識別に役立,ます。

デ,タを読み込み,分類器を作成する。

デタovariancancerの線形判別分析分類器を作成します。結果のモデルを適度に小さく維持するためにSaveMemoryFillCoeffs名前と値のペアの引数を設定します。計算を容易にするため,この例では予測子の約1/3が含まれている無作為なサブセットを使用して分類器に学習させています。

负载ovariancancerrng (1);%用于再现性numPred = size(obs,2);obs = obs(:,randsample(numPred,ceil(numPred/3)));Mdl = fitcdiscr(obs,grp,“SaveMemory”“上”“FillCoeffs”“关闭”);

分類器の交差検証を実行する。

γの25レベルとδの25レベルを使用して,適切なパラメ,タ,を検索します。この検索には時間がかかります。進行状況を表示するために详细的1に設定します。

[err,gamma,delta,numpred] = cvshrink(Mdl,...“NumGamma”, 24岁,“NumDelta”, 24岁,“详细”1);
完成交叉验证模型的构建。在25个步骤中处理第1步。在25个步骤中处理Gamma步骤2。在25个步骤中处理第3步。在25个步骤中处理第4步。处理25步中的第5步。处理25步中的第6步。在25个步骤中处理第7步。处理25步中的第8步。处理25步中的第9步。 Processing Gamma step 10 out of 25. Processing Gamma step 11 out of 25. Processing Gamma step 12 out of 25. Processing Gamma step 13 out of 25. Processing Gamma step 14 out of 25. Processing Gamma step 15 out of 25. Processing Gamma step 16 out of 25. Processing Gamma step 17 out of 25. Processing Gamma step 18 out of 25. Processing Gamma step 19 out of 25. Processing Gamma step 20 out of 25. Processing Gamma step 21 out of 25. Processing Gamma step 22 out of 25. Processing Gamma step 23 out of 25. Processing Gamma step 24 out of 25. Processing Gamma step 25 out of 25.

正則化分類器の品質を調べる。

誤差に対する予測子の数をプロットします。

情节(呃,numpred“k”。)包含(的错误率) ylabel (“预测因子的数量”

图中包含一个轴对象。axis对象包含25个line类型的对象。

プロットの左下の部分をより詳しく調べます。

轴([0.1 0 1000])

图中包含一个轴对象。axis对象包含25个line类型的对象。

予測子の数が少ないことと誤差が少ないことは明らかにトレ,ドオフの関係にあります。

モデルのサ▪▪ズと精度の間の最適なトレ▪▪ドオフを選択する。

γおよびδの値のペアには,ほぼ同じ最小誤差になるものが複数あります。このようなペアの@ @ンデックスと値を表示します。

まず,最小誤差値を見けます。

miner = min(min(err))
米勒= 0.0139

最小誤差を生成する犯错の添字を見けます。

[p,q] = find(err < miner + 1e-4);

添字から線形@ @ンデックスに変換します。

Idx = sub2ind(size(delta),p,q);

γδの値を表示します。

(γδ(idx) (p))
ans =4×20.7202 0.1145 0.7602 0.1131 0.8001 0.1128 0.8001 0.1410

このような点は,非ゼロの係数がモデルに含まれている予測子全体の29%しかありません。

numpred (idx) /装天花板(numpred / 3) * 100
ans =4×139.8051 38.9805 36.8066 28.7856

予測子の数をさらに減らすには,より大きな誤差率を受け入れなければなりません。たとえば,予測子の数が200以下で誤差率が最小となるγおよびδを選択するには,次のようにします。

Low200 = min(min(err(numpred <= 200)));Lownum = min(min(numpred(err == low200)));[low200 lownum]
ans =1×20.0185 - 173.0000

0.0185の誤差率を得るには,173の予測子が必要ですが,これは200以下の予測子をもつ誤差率の中で最小です。

この誤差/予測子数になるγδを表示します。

(r, s) =找到((呃= = low200) & (numpred = = lownum));(γ(r);δ(r, s)]
ans =2×10.6403 - 0.2399

正則化パラメ,タ,を設定する。

γおよびδのこれらの値をも分類器を設定するには,ドット表記を使用します。

Mdl。Gamma = Gamma (r);Mdl。= (r,s);

ヒ,トマップのプロット

cvshrinkの計算を郭、哈斯蒂および蒂布谢拉尼の計算[1]と比較するには,γδパラメーターのインデックスに対して,誤り率と予測子の数のヒートマップをプロットします(パラメーターδの範囲はパラメタγの値によって異なります。長方形のプロットを描画するには、パラメ、タ、自体ではなく、ンデックスδを使用します)。

创建增量索引矩阵Indx = repmat(1:size(delta,2),size(delta,1),1);图subplot(1,2,1) imagesc(err) colorbar colormap(“喷气机”)标题(分类错误的)包含(“三角洲指数”) ylabel (“伽马指数”) subplot(1,2,2) imagesc(numpred) colorbar title(“模型中预测因子的数量”)包含(“三角洲指数”) ylabel (“伽马指数”

图中包含2个轴对象。分类错误包含一个图像类型的对象。模型中预测器数量的坐标轴对象2包含一个image类型的对象。

分類誤差はδが小さい場合に最適になりますが,予測子の数はδが大きいときが最も少なくなります。

参照

[1]郭,Y., T.哈斯蒂,R.蒂布谢拉尼。正则化判别分析及其在微阵列中的应用《生物统计学》第8卷第1期,第86-100页,2007。

参考

関数

オブジェクト

関連するトピック