主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

判別分析分類器の正則化

この例では,モデルの予測力を損なわずに予測子の削除を試行して,よりロバストで簡潔なモデルを作成する方法を示します。これは,データに多数の予測子が含まれる場合に特に重要です。線形判別分析では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に設定します。

(呃,γδ,numpred) = cvshrink (Mdl,...“NumGamma”, 24岁,'numdelta', 24岁,“详细”1);
完成交叉验证模型的构建。处理Gamma步骤1 25。处理Gamma步骤2 25。处理Gamma步骤3 25。处理Gamma步骤4 25。处理Gamma步骤5 25。处理Gamma步骤6 25。处理Gamma步骤7 25。处理25步中的第8步。处理Gamma 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。')Xlabel('错误率')ylabel(预测的数量

图中包含一个坐标轴。轴包含25个线型对象。

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

轴([0 .1 0 1000])

图中包含一个坐标轴。轴包含25个线型对象。

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

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

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

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

minerr = min (min (err))
minerr = 0.0139

生成する犯错の添字を見つけます。

[p,q] =查找(错误
              

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

idx = sub2ind(大小(δ),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

予测子の数号さらにには,より大厦误差率受け入れなければません。たとえば,予测子のがんたとえばばのがんたとえば以でで误差率がが最と伽玛およびδを選択するには,次のようにします。

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。γ=γ(r);Mdl。δ=δ(r, s);

ヒートマップのプロット

cvshrinkの計算を郭,HastieおよびTibshiraniの計算[1]と比較するには,伽玛δパラメーターのインデックスに対して,误り误り率と子の数のヒートマップをします(パラメーターδの範囲はパラメーター伽玛の値によって异なります。长方形のプロットを描画には,パラメーター自体ではなくインデックスδを使用します)。

%创建Delta索引矩阵indx = repmat(1:大小(δ2),大小(三角洲,1),1);图subplot(1,2,1) imagesc(err) colorbar colormap(“喷气机”)标题('分类错误')Xlabel(“三角洲指数”)ylabel(“伽马指数”) subplot(1,2,2) imagesc(numpred) colorbar title(“模型中预测因子的数量”)Xlabel(“三角洲指数”)ylabel(“伽马指数”

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

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

参照

[1] Guo Y., T. Hastie, R. Tibshirani。“正则化判别分析及其在芯片中的应用”。生物统计学,Vol. 8, No. 1, pp. 86 - 100,2007。

参考

関数

オブジェクト

関連するトピック