主要内容

正则化判别分析分类器

这个例子展示了如何在不影响模型预测能力的情况下,通过移除预测器来创建一个更健壮、更简单的模型。当您的数据中有许多预测因素时,这一点尤其重要。线性判别分析使用两个正则化参数,γ和δ,以识别和去除多余的预测因子。的cvshrink方法有助于确定这些参数的适当设置。

加载数据并创建分类器。

创建一个线性判别分析分类器ovariancancer数据。设置SaveMemoryFillCoeffs名称-值对参数保持结果模型相当小。为了计算方便,本示例使用约三分之一预测器的随机子集来训练分类器。

负载ovariancancerrng (1);%的再现性numPred =大小(奥林匹克广播服务公司,2);奥林匹克广播服务公司=突发交换(:,randsample (numPred装天花板(numPred / 3)));grp Mdl = fitcdiscr(奥林匹克广播服务公司,“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”。)包含(的错误率) ylabel (预测的数量

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

仔细检查图的左下部分。

轴([0 .1 0 1000])

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

在较低的预测数和较低的错误之间有一个明显的权衡。

在模型大小和精度之间选择一个最优的折衷。

多个双γδ值产生相同的最小错误。显示这些对的索引和它们的值。

首先,找出最小误差值。

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

求的下标犯错生产误差最小。

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

从下标转换为线性索引。

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

为了进一步降低预测器的数量,您必须接受更大的错误率。例如,选择γδ在200或更少的预测中出错率最低。

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

您需要173个预测器才能实现0.0185的错误率,这是具有200个或更少预测器的错误率中最低的。

显示γδ实现这个错误/预测数。

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

设置正则化参数。

用这些值设置分类器γδ,使用点符号。

Mdl。γ=γ(r);Mdl。δ=δ(r, s);

热图情节

比较cvshrink郭、哈斯提和蒂布希拉尼都在计算这一点[1],绘制误差和预测数的热图γ和指数δ参数。(δ参数范围取决于γ参数。要得到一个矩形图,用δ索引,而不是参数本身。)

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

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

你会看到最好的分类错误δ很小,但什么时候是最小的预测因素δ很大。

参考文献

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

另请参阅

功能

对象

相关的话题