比较两种分类模型的预测精度
testcholdout
统计评估两个分类模型的准确度。该函数首先将其预测标签与真实标签进行比较,然后检测误分类率之间的差异是否具有统计意义。
您可以评估分类模型的精度是否不同,或者一个分类模型的性能是否优于另一个。testcholdout
可以进行一些
通过执行中-返回测试决定H
=testcholdout(YHat1
,YHat2
,Y
)YHat1
和YHat2
有相同的准确性预测真正的类标签Y
。另一种假设是,标签的准确性不同。
H
=1.
表示在5%显著性水平上拒绝原假设。H
=0
表示不拒绝在5%的水平零假设。
返回带有由一个或多个指定的附加选项的假设测试结果H
=testcholdout(YHat1
,YHat2
,Y
,名称,值
)名称,值
对参数。例如,您可以指定可选假设的类型,指定测试的类型,或者提供一个成本矩阵。
[
返回H
,P
,e1
,e2
] = testcholdout(P
)和相应的e1
和e2
),使用前面语法中的任何输入参数。
使用不同的算法训练两个分类模型。进行统计测试,比较两个模型在保留集上的误分类率。
加载电离层
数据集。
负载电离层
创建一个分区,将数据平均分割为训练集和测试集。
rng (1);%为了再现性CVP=CVP(Y, “坚持”, 0.5);idxTrain =培训(CVP); %训练集指数idxTest =测试(CVP); %测试集索引
本量利
是指定训练和测试集的交叉验证分区对象。
训练一个支持向量机模型和100棵袋装分类树的集合。对于支持向量机模型,指定使用径向基函数核和启发式程序来确定核尺度。
MdlSVM = fitcsvm (X (idxTrain:), Y (idxTrain),“标准化”,真的, ...'KernelFunction', “RBF”, “内核尺度”, “自动”);t=模板树( “复制”,真的); %对于随机预测选择的重现MdlBag=fitcessemble(X(idxTrain,:),Y(idxTrain), “方法”, “包”, “学习者”t);
MdlSVM
是一个培训ClassificationSVM
模型。MdlBag
是一个培训分类BaggedAssemble
模型。
使用经过训练的模型标记测试集观察值。
YhatSVM=predict(MdlSVM,X(idxTest,:);YhatBag=predict(MdlBag,X(idxTest,:);
YhatSVM
和YhatBag
是继续各个模型的预测类标签的向量。
测试的两款车型是否具有相同的预测精度。
H = testcholdout(YhatSVM,YhatBag,Y(idxTest))
h =必然的0
h=0
表示不拒绝零假设,这两个车型具有相同的预测精度。
使用相同的算法训练两个分类模型,但调整超参数使算法更加复杂。进行统计检验,以评估简单的模型是否比复杂的模型在保留数据中有更好的准确性。
加载电离层
数据集。
负载电离层;
创建一个分区,将数据平均分割为训练集和测试集。
rng (1);%为了再现性CVP=CVP(Y, “坚持”, 0.5);idxTrain =培训(CVP); %训练集指数idxTest =测试(CVP); %测试集索引
本量利
是指定训练和测试集的交叉验证分区对象。
训练两个SVM模型:一个使用线性核(默认的二元分类),另一个使用径向基函数核。使用默认的内核规模1。
MdlLinear=fitcsvm(X(idxTrain,:),Y(idxTrain),“标准化”,真的);MdlRBF = fitcsvm(X(idxTrain,:),Y(idxTrain), “标准化”,真的, ...'KernelFunction', “RBF”);
梅德林
和MdlRBF
受过训练ClassificationSVM
楷模。
使用经过训练的模型标记测试集观察值。
YhatLinear =预测(MdlLinear X (idxTest:));YhatRBF =预测(MdlRBF X (idxTest:));
YhatLinear
和YhatRBF
是继续各个模型的预测类标签的向量。
测试零假设简单的模型(梅德林
)至多为准确的更复杂的模型(MdlRBF
)。由于测试集尺寸较大,进行渐进麦克尼马尔测试,并与中期比较结果
Asymp = 0 (4,1);%预分配MidP=0(4,1);[Asymp(1),Asymp(2),Asymp(3),Asymp(4)]=testcholdout(YhatLinear,yhatbf,Y(idxTest), ...“替代”, “更大的”, “测试”, 渐近的);[MIDP(1),MIDP(2),MIDP(3),MIDP(4)] = testcholdout(YhatLinear,YhatRBF,Y(idxTest), ...“替代”, “更大的”);表(ASEMP、MidP、, “RowNames”{ “h”“p”“e1”“e2”})
ans=4×2表Asymp MidP __________ __________ h 1 1 p 7.2801e-09 2.7649e-10 e1 0.13714 0.13714 e2 0.33143 0.33143
这个testcholdout
为两个模型返回相同类型的错误分类度量。
对于数据集不平衡类的表示,或者假阳性和假阴性成本不平衡,可以通过统计包括在分析价值矩阵比较两个分类模型的预测性能。
加载心律失常
数据集。确定数据中的类表示。
负载心律失常;Y =分类(Y);汇总(Y);
价值计数百分比124554.20%2449.73%3153.32%4153.32%5132.88%6255.53%730.66%820.44%991.99%1050111.06%1440.88%1551.11%16224.87%
共有16个类别,但有些类别未在数据集中表示(例如,类别13)。大多数观察结果被归类为无心律失常(类别1)。数据集高度离散,类别不平衡。
将所有心律失常的观察(第2至15类)合并为一类。从数据集中删除那些未知心律失常状态(第16类)的观察。
idx = (Y ~=“16”);Y = Y(IDX);X = X(IDX,:);Y(Y〜= '1')= “心律失常”;Y(Y)== '1')= “无心律失常”;Y = removecats (Y);
创建一个分区,将数据均匀地分割为训练集和测试集。
rng (1);%为了再现性CVP=CVP(Y, “坚持”, 0.5);idxTrain =培训(CVP); %训练集指数idxTest =测试(CVP); %测试集索引
本量利
是指定训练和测试集的交叉验证分区对象。
创建一个成本矩阵,使将心律失常患者误分类为“无心律失常”类别的后果比将无心律失常患者误分类为“心律失常”类别的后果严重5倍。正确分类不会产生任何成本。行表示真正的类,列表示预测的类。在进行成本敏感分析时,一个好的实践是指定类的顺序。
成本=[01;50];类名={“无心律失常”, “心律失常”};
列车50个分类树,一个使用AdaBoostM1,另一个使用LogitBoost 2个提升合奏。因为有数据集中的缺失值,指定要使用替代拆分。列车采用成本矩阵模型。
T = templateTree(“代孕”, “开”); numTrees=50;MdlAda=fitcessemble(X(idxTrain,:),Y(idxTrain), “方法”, “AdaBoostM1”, ...“NumLearningCycles”numTrees, “学习者”T ...“成本”、成本、 “类名”类名);MdlLogit = fitcensemble(X(idxTrain,:),Y(idxTrain), “方法”, “LogitBoost”, ...“NumLearningCycles”numTrees, “学习者”T ...“成本”、成本、 “类名”类名);
MdlAda
和MdlLogit
受过训练分类符号
楷模。
使用经过训练的模型标记测试集观察值。
YhatAda =预测(MdlAda X (idxTest:));YhatLogit =预测(MdlLogit X (idxTest:));
YhatLinear
和YhatRBF
是包含各自模型的预测类标签的向量。
测试AdaBoostM1集成是否(MdlAda
)和LogitBoost合奏(MdlLogit
)具有同等的预测精度。提供成本矩阵。进行渐进、似然比、成本敏感测试(通过成本矩阵时的默认值)。请求返回
[H,P,E1,E2] = testcholdout(YhatAda,YhatLogit,Y(idxTest),“成本”、成本)
h =必然的0
p=0.2795
E1 = 0.5581
E2 = 0.4744
h=0
表示不拒绝零假设,这两个车型具有相同的预测精度。
YHat1
—第一个分类模型的预测类标签,指定为类别、字符或字符串数组、逻辑或数字向量,或字符向量的单元数组。
如果YHat1
是字符数组,则每个元素必须与数组的一行相对应。
YHat1
,YHat2
, 和Y
长度必须相等。
这是一个最佳实践YHat1
,YHat2
, 和Y
共享相同的数据类型。
数据类型:明确的
|烧焦
|字符串
|必然的
|单
|双重的
|细胞
YHat2
—第二个分类模型的预测类标签,指定为类别、字符或字符串数组、逻辑或数字向量,或字符向量的单元数组。
如果YHat2
是字符数组,则每个元素必须与数组的一行相对应。
YHat1
,YHat2
, 和Y
长度必须相等。
这是一个最佳实践YHat1
,YHat2
, 和Y
共享相同的数据类型。
数据类型:明确的
|烧焦
|字符串
|必然的
|单
|双重的
|细胞
Y
—True类标签,指定为类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。
如果Y
是字符数组,则每个元素必须与数组的一行相对应。
YHat1
,YHat2
, 和Y
长度必须相等。
这是一个最佳实践YHat1
,YHat2
, 和Y
共享相同的数据类型。
数据类型:明确的
|烧焦
|字符串
|必然的
|单
|双重的
|细胞
指定可选的逗号分隔的对名称,值
论据。的名字
参数名和价值
是相应的价值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
'替代', '更大', '测试', '渐近', '费用',[0 2 1 0]
指定检验第一组预测类标签是否比第二组更准确,进行渐近McNemar检验,惩罚使用真标签的误分类观察一会{1}
两倍与真正的标签误分类意见一会{2}
.
α
—0.05
(默认)|假设检验显著性水平,指定为逗号分隔对,包括'Α'
以及区间(0,1)中的标量值。
例子:'阿尔法',0.1
数据类型:单
|双重的
可供替代的
—“不平等”
(默认)|“更大的”
“少”
要评估的替代假设,指定为逗号分隔对,由“替代”
和表中列出的值之一。
价值 | 替代假说 |
---|---|
“不平等” (默认) |
用于预测Y ,YHat1 和YHat2 有不平等的精度。 |
“更大的” |
用于预测Y ,YHat1 比YHat2 . |
“少” |
用于预测Y ,YHat1 不如YHat2 . |
例子:“另类”、“更大”
类名
—类名,指定为逗号分隔的一对组成的“类名”
以及分类、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。必须设置类名
使用Y
.
如果类名
是字符数组,则每个元素必须与数组的一行相对应。
使用类名
:
指定任何输入参数尺寸量级对应于类的顺序。例如,使用类名
指定尺寸标注的顺序的步骤成本
.
选择用于测试的类的子集。例如,假设集合中所有不同的类名Y
是{'a','b','c'}
.使用来自类的观察来训练和测试模型“一个”
和“c”
只是,指定“类名”,{' a ', ' c '}
.
默认值是集合中的所有不同的类名Y
.
例子:'ClassNames',{'b','g'}
数据类型:单
|双重的
|必然的
|烧焦
|字符串
|细胞
|明确的
成本
—误分类代价,指定为逗号分隔对组成“成本”
方阵或结构数组。
如果指定平方矩阵成本
然后成本(i, j)
将一个点分类的成本是多少J
如果它的真实类别是我
.也就是说,行对应于真类和列对应于所预测的类。要为相应的行和列指定类订单成本
,另外指定类名
名称-值对参数。
如果你指定了结构s
然后s
必须有两个字段:
S.ClassNames
,它将类名包含为与类相同数据类型的变量Y
.可以使用此字段指定类的顺序。
S.ClassificationCosts
,其中包含成本矩阵,行和列按S.ClassNames
.
如果您指定成本
然后testcholdout
不能进行片面、准确或中间的“替代”、“不平等”,“测试”、“渐近”
。有关对成本敏感的测试选项,请参阅成本测试
名称-值对参数。
最佳实践是提供与训练分类模型相同的成本矩阵。
默认值是成本(i, j) = 1
如果i~=j
, 和成本(i, j) = 0
如果i=j
.
例子:“成本”[0112;1022;2200]
数据类型:单
|双重的
|结构体
成本测试
—“可能性”
(默认)|“卡方”
开销敏感测试类型,指定为逗号分隔的对,由“成本测试”
和“卡方”
或者“可能性”
.除非您使用指定价值矩阵成本
名称-值对参数,testcholdout
忽视成本测试
.
该表总结了对成本敏感的测试的可用选项。
价值 | 渐近检验型 | 要求 |
---|---|---|
“卡方” |
卡方检验 | 优化工具箱许可证实施quadprog (优化工具箱) |
“可能性” |
似然比检验 | 没有一个 |
有关详细信息,请参见
例子:“成本测试”,“chisquare”
测验
—渐近的
|'精确的'
midp的
要进行的测试,指定为逗号分隔的对,由“测试”
和渐近的
,'精确的'
, 和midp的
.此表总结了成本不敏感的测试可用的选项。
价值 | 描述 |
---|---|
渐近的 |
渐近McNemar检验法检验 |
'精确的' |
精确条件McNemar检验 |
midp的 (默认) |
中段- |
有关详细信息,请参见
对于成本敏感测试,测验
必须是渐近的
.当你指定成本
名称 - 值对的参数,并使用选择一个价格敏感的测试成本测试
名称-值对参数,渐近的
是默认值。
例子:“测试”、“渐近的
笔记
南
S,<定义>
值,空字符向量(”
),空字符串(""
),< >失踪
值表示丢失的数据值。testcholdout
:
处理中缺少的值YHat1
和YHat2
作为错误分类的观察。
删除中缺少的值Y
以及相应的YHat1
和YHat2
H
-假设检验结果1.
|0
假设检验结果,作为逻辑值返回。
h=1
表示在测试时拒绝了无效假设α
显著性水平。
h=0
表示在测试时拒绝无效假设失败α
显著性水平。
数据类型:必然的
P
—P-测试的值,作为区间[0,1]中的标量返回。P
是在零假设成立的情况下,随机检验统计量至少与观察到的检验统计量一样极端的概率。
testcholdout
估计P
使用测试统计量的分布,它随测试类型而变化。有关从McNemar测试的可用变体导出的测试统计信息的详细信息,请参见
e1
——分类损失分类损失总结了第一组类标签的准确性(YHat1
)预测真正的类标签(Y
),作为标量返回。
对于价格不敏感的测试,e1
为误分类率。也就是说,e1
为误分类观测的比例,为区间[0,1]内的标量。
对于成本敏感测试,e1
是错误分类的成本,也就是,e1
是误分类成本,其中,所述权重是错误分类观测的相应估计的比例的加权平均。
e2
——分类损失分类损失这总结了第二组类标签的准确性(YHat2
)预测真正的类标签(Y
),作为标量返回。
对于价格不敏感的测试,e2
为误分类率。也就是说,e2
为误分类观测的比例,为区间[0,1]内的标量。
对于成本敏感测试,e2
是错误分类的成本,也就是,e2
是误分类成本的加权平均值,其中权重为误分类观测值的各自估计比例。
行为
如果错误分类的成本不平衡,那么错误分类率往往是一种表现不佳的分类损失。使用错误分类成本来比较分类模型。
错误分类成本在应用中常常是不平衡的。例如,考虑将一组预测者根据健康和病症分为两类:错误地分类病态的健康对患者的生命是危险的。然而,将健康对象错误分类为疾病通常会造成一些不便,但是Not会造成严重的危险。在这种情况下,您会分配错误分类成本,因此将患病受试者错误分类为健康受试者比将健康受试者错误分类为疾病受试者的成本更高。
以下定义总结了成本敏感测试。在定义中:
Nijk和
Cij是分配标签的相对成本
所有下标接受从1到整数值
两种分类模型的误分类成本预期差异为
假设检验是
可用的成本敏感测试适用于双尾测试。
可用的解决不平衡成本的渐近测试是
卡方检验-卡方检验统计量是基于皮尔逊和内曼卡方检验统计量,但有一个拉普拉斯校正因子来解释
如果
通过最小化
是个
似然比检验:似然比检验是基于
检验统计量为
如果
不受限制的MLE是
MLE是否在零假设下:
是个
麦克内马尔试验是比较两个总体比例的假设检验,同时解决两个依赖的、配对的样本所产生的问题。
比较两种分类模型预测精度的一种方法是:
将数据划分为训练集和测试集。
使用训练集训练两个分类模型。
使用测试集预测类标签。
将结果汇总到类似下图的2乘2表格中。
N2是一致性对的数量,即两个模型以相同方式分类的观测数据的数量(正确或错误)。
模型1和模型2的误分类率为
零假设表明总体呈现边际同质性,这使得零假设为
这些事实是可用的McNemar测试变体的基础:
渐近-渐近麦克尼马尔检验统计量和拒绝区域(对于显著性水平
对于单侧检验,检验统计量为
如果
对于双边检验,检验统计量为
如果
渐近检验需要大样本理论,特别是二项分布的高斯近似。
不和谐对的总数,
一般来说,渐近测试不能保证名义覆盖率。观察到的错误拒绝原假设的概率可以超过
精确条件-精确条件McNemar检验统计数据和拒绝区域(用于显著性水平
对于单侧检验,检验统计量为
如果
对于双边检验,检验统计量为
如果
精确条件测试总是获得名义上的覆盖率。仿真研究
中段-
对于单侧检验,检验统计量为
如果
对于双边检验,检验统计量为
如果
年代中期
分类损失指示分类模型或预测标签集的准确性。两种分类损失是误分类率和成本。
testcholdout
返回分类损失(见e1
和e2
)备择假设下(即,无限制分类损失)。
这个
第二类分类模型的误分类率(
当误分类率增加到1时,分类精度降低。
这个
在哪里
通常,对于一个固定的成本矩阵,分类精度误分类成本增加而降低。
这是一个很好的做法任何训练的分类模型和新的预测数据传递到以获得预测的类标签预测
方法。例如,有关SVM模型的预测标签,请参阅预测
.
成本敏感测试执行数值优化,这需要额外的计算资源。似然比测试通过在区间内找到拉格朗日乘数的根间接进行数值优化。对于某些数据集,如果根靠近区间边界,则该方法可能失败。因此,如果您有优化工具箱许可证,请考虑进行成本敏感卡方检验。成本测试
和
[1] Agresti,A.
[2] Fagerlan,M.W.,S. Lydersen和P. Laake。“McNemar检验二进制匹配,双数据:中秋节p和渐近更好比精确条件。”
[3] Lancaster, H.O. <离散分布的显著性检验>
[4] 有关相关比例或百分比之间差异的抽样误差的注释
莫斯特勒,《主观药物反应测量中的一些统计问题》。
哈HECHO CLIC恩未缠绕阙corresponde一个埃斯特COMANDO德MATLAB:
我们将在MATLAB公司的产品介绍中介绍我们的产品。navegadores网站不欣赏MATLAB的comandos。
您还可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区站点不适合您所在位置的访问。