使用新数据比较两个分类模型的准确性
CompareHoldout.
统计评估两个分类模型的准确性。该功能首先将其预测的标签与真标进行比较,然后检测错误分类率之间的差异是统计上显着的。
您可以确定分类模型的准确性是否有所不同或者一个模型是否比另一个更好地执行。CompareHoldout.
可以进行一些
从测试训练的分类模型中返回测试决定H
= CompareHoltout(C1
,C2
,T1
,T2
,ResponseVarName
)C1
和C2
在预测ResponseVarName
变量。替代假设是标签具有不等的准确性。
第一类模型C1
使用中的预测器数据T1
,第二种分类模型C2
使用中的预测器数据T2
.桌子T1
和T2
必须包含相同的响应变量,但可以包含不同的预测器集。缺省情况下,由软件进行中间处理
H
=1.
表示拒绝5%显著性水平的无效假设。H
=0
表示没有在5%的水平上拒绝零假设。
以下是您可以进行的测试示例:
通过传递相同的预测数据集(即,T1
=T2
)。
使用两个可能不同的预测器比较两个可能不同模型的精度。
执行各种类型的主成分分析
和sequentialfs
)。
从测试训练的分类模型中返回测试决定H
= CompareHoltout(C1
,C2
,T1
,T2
,Y
)C1
和C2
有相同的准确性预测真正的类标签Y
.替代假设是标签具有不等的准确性。
第一类模型C1
使用预测数据T1
,第二种分类模型C2
使用预测数据T2
.缺省情况下,由软件进行中间处理
火车二
加载Carsmall.
数据集。
加载Carsmall.
创建两个输入数据表,其中第二个表不包括预测值加速
.指定model_year.
作为响应变量。
T1=表(加速度、排量、马力、MPG、车型年份);T2=T1(:,2:结束);
创建将数据拆分为培训和测试集的分区。保留30%的测试数据进行测试。
rng(1)重复性的%CVP=CVP分区(车型年, “坚持”,0.3);idxTrain=培训(CVP); %训练集索引idxTest=试验(CVP); %测试集指数
CVP
是一个交叉验证分区对象,指定培训和测试集。
培训ClassificationKNN
模型使用T1
和T2
数据。
c1 = fitcknn(t1(idxtrain,:),'model_year');c2 = fitcknn(t2(idxtrain,:), 'model_year');
C1
和C2
受过训练ClassificationKNN
楷模。
测试两个模型在测试集上是否具有相同的预测精度。
h = compareHoldout (C1, C2, T1 (idxTest:), T2 (idxTest:)'model_year')
h =符合逻辑的0
H = 0.
表示不拒绝两个模型具有相同预测精度的原假设。
使用不同的算法列车两种分类模型。进行统计测试比较测试集上两种模型的错误分类率。
加载电离层
数据集。
加载电离层
创建一个分区,将数据平均分割为训练集和测试集。
rng(1)重复性的%cvp = cvpartition(y, “坚持”,0.5);Idxtrain =培训(CVP); %训练集索引idxTest=试验(CVP); %测试集指数
CVP
是一个交叉验证分区对象,指定培训和测试集。
训练一个SVM模型和100棵袋装分类树的集合。对于SVM模型,指定使用径向基函数核和启发式程序来确定核尺度。
C1=fitcsvm(X(idxTrain,:),Y(idxTrain),'标准化'是的, ...'骨箱', 'rbf', “KernelScale”, “自动”);t=模板树( “复制”,真正的); %随机预测选择的再现性C2=fitcensemble(X(idxTrain,:),Y(idxTrain), “方法”, “包”, ...“学习者”,t);
C1
是一个培训分类VM.
模型。C2
是一个培训ClassificationBaggedEnsemble
模型。
测试两个模型的预测精度是否相等。对每个模型使用相同的测试集预测数据。
H = CompareHoldout(C1,C2,x(iDxtest,:),x(iDxtest,:),y(iDxtest))
h =符合逻辑的0
H = 0.
表示不拒绝两个模型具有相同预测精度的原假设。
使用相同的算法列车两种分类模型,但调整一个超级计数器,使算法更复杂。进行统计测试以评估更简单的模型是否具有比测试数据更好的准确性,而不是更复杂的模型。
加载电离层
数据集。
加载电离层;
创建一个分区,将数据平均分割为训练集和测试集。
rng (1);重复性的%cvp = cvpartition(y, “坚持”,0.5);Idxtrain =培训(CVP); %训练集索引idxTest=试验(CVP); %测试集指数
CVP
是一个交叉验证分区对象,指定培训和测试集。
火车两个SVM型号:使用线性内核的模型(二进制分类默认)和使用径向基函数内核的型号。使用默认的内核比例为1。
C1=fitcsvm(X(idxTrain,:),Y(idxTrain),'标准化',真);C2=fitcsvm(X(idxTrain,:),Y(idxTrain), '标准化'是的, ...'骨箱', 'rbf');
C1
和C2
受过训练分类VM.
楷模。
测试纯粹的假设,即更简单的型号(C1
)最多与更复杂的模型一样精确(C2
)。因为测试设定的尺寸大,进行渐近麦克马尔测试,并将结果与中期进行比较
Asymp=零(4,1);%预分配MidP = 0 (4,1);[Asymp (1) Asymp (2), Asymp (3), Asymp (4)] = compareHoldout (C1, C2, ...X (idxTest:) X (idxTest:), Y (idxTest), '选择', “更大的”, ...“测试”, '渐近');[MIDP(1),MIDP(2),MIDP(3),MIDP(4)] = POMPARESTUTOUT(C1,C2, ...X (idxTest:) X (idxTest:), 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
这个CompareHoldout.
返回两种模型的相同类型的错误分类度量。
对于具有不平衡类表示的数据集,或者对于具有不平衡的假阳性和假成本的数据集,您可以通过在分析中包括成本矩阵来统计比较两个分类模型的预测性能。
加载心律失常
数据集。确定数据中的类表示。
加载心律失常;Y =分类(Y);汇总(Y);
值计数百分比1 245 54.20% 2 44 9.73% 3 15 3.32% 4 15 3.32% 5 13 2.88% 6 25 5.53% 73 0.66% 8 2 0.44% 99 1.99% 10 50 11.06% 14 4 0.88% 15 5 1.11% 16 22 4.87%
有16个类,但是有些类没有在数据集中表示(例如,类13)。大多数观察被归类为没有心律失常(第1类)。数据集是高度离散的,分类不平衡。
将所有观察结果与心律失常(2到15级)结合在一起。从数据集中删除具有未知心律失常状态(16类)的观察结果。
idx=(Y)~='16'); Y=Y(idx);X=X(idx,:);Y(Y)~= '1') = 'hyarrhalythmia';Y(Y)== '1') = “NoArrhythmia”;y = removecats(y);
创建一个分区,将数据平均分割为训练集和测试集。
rng (1);重复性的%cvp = cvpartition(y, “坚持”,0.5);Idxtrain =培训(CVP); %训练集索引idxTest=试验(CVP); %测试集指数
CVP
是一个交叉验证分区对象,指定培训和测试集。
创建成本矩阵,以便将心律失常患者错误分类为“无心律失常”类别比将没有心律失常的患者错误分类为心律失常类别要糟糕五倍。正确分类不会产生任何成本。行表示真实类别,列表示预测类别。进行成本敏感分析时,一个好的做法是指定类别的顺序。
成本=[01;50];类名={“NoArrhythmia”, 'hyarrhalythmia'};
培训两种分类树的两个升压合奏,它使用adaboostm1和另一个使用logitboost的分类树。由于数据集包含缺失值,因此指定使用代理分割。使用成本矩阵列车模型。
t = templatetree('代理', “开”);numTrees=50;C1=fitcessemble(X(idxTrain,:),Y(idxTrain), “方法”, 'adaboostm1', ...“NumLearningCycles”,numtrees, “学习者”t ...'成本',成本, “类名”,类名);C2=fitcensemble(X(idxTrain,:),Y(idxTrain), “方法”, 'logitboost', ...“NumLearningCycles”,numtrees, “学习者”t ...'成本',成本, “类名”,ClassNames);
C1
和C2
受过训练ClassificationEnsemble
楷模。
测试是否adaboostm1合奏(C1
)还有罗技Boost乐队(C2
)具有相同的预测准确性。提供成本矩阵。进行渐近,似然比,成本敏感的测试(当您通过成本矩阵时的默认值)。要求退货
[h,p,e1,e2]=比较隐藏(C1,C2,X(idxTest,:),X(idxTest,:),Y(idxTest),...'成本',成本)
h =符合逻辑的0
p=0.3334
E1 = 0.5581.
E2 = 0.4698.
H = 0.
表示不拒绝两个模型具有相同预测精度的原假设。
通过从更大的集合中选择预测变量(特征)的子集来降低分类模型的复杂性。然后统计比较两种模型的样本外精度。
加载电离层
数据集。
加载电离层;
创建一个分区,将数据平均分割为训练集和测试集。
rng (1);重复性的%cvp = cvpartition(y, “坚持”,0.5);Idxtrain =培训(CVP); %训练集索引idxTest=试验(CVP); %测试集指数
CVP
是一个交叉验证分区对象,指定培训和测试集。
使用Adaboostm1和整套预测器培训100个提升分类树的集合。检查每个预测器的重要性措施。
t = templatetree('maxnumsplits',1); %弱学习模板树对象C2=fitcensemble(X(idxTrain,:),Y(idxTrain), “方法”, 'adaboostm1', ...“学习者”,t);predimp = predictorimportance(c2);数字;酒吧(预测);H = GCA;H.xtick = 1:2:H.xlim(2)
h = axis with properties: XLim: [-0.2000 35.2000] YLim: [0 0.0090] XScale: 'linear' YScale: 'linear' GridLineStyle: '-' Position: [0.1300 0.1100 0.7750 0.8150] Units: 'normalized'显示所有属性
标题('预测重要性');Xlabel( '预测器');伊莱贝尔( “重要性度量”);
根据重要性确定前五位预测因素。
[〜,idxsort] = sort(predimp,“下”);idx5=idxSort(1:5);
使用Adaboostm1和最重要的五个预测因子培训另一种100个提升的分类树的集合。
c1 = fitcensemble(x(idxtrain,idx5),y(idxtrain),“方法”, 'adaboostm1', ...“学习者”,t);
测试两种型号是否具有相同的预测精度。指定减少的测试集预测值数据C1
和完整的测试集预测数据C2
.
(h p e1, e2) = compareHoldout (C1, C2, X (idxTest idx5) X (idxTest:), Y (idxTest))
h =符合逻辑的0
p = 0.7744.
E1 = 0.0914.
e2=0.0857
H = 0.
表示不拒绝两个模型具有相同预测精度的原假设。这个结果有利于更简单的集合,C1
.
C1
—首次培训的分类模型,指定为此表中描述的任何培训的分类模型对象或紧凑型分类模型对象。
训练的模型类型 | 模型对象 | 返回的 |
---|---|---|
分类树 | ClassificationTree |
菲茨特里 |
判别分析 | ClassificationDiscriminant |
fitcdiscr. |
袋装分类模型的集合 | ClassificationBaggedEnsemble |
菲特森布尔 |
分类模型集合 | ClassificationEnsemble |
菲特森布尔 |
多款,纠错输出代码(ECOC) | Classifiedecoc. |
fitcecoc. |
广义添加剂模型(GAM) | Classificationgam. |
菲特加姆 |
KNN. | ClassificationKNN |
菲茨康 |
朴素贝叶斯 | 分类朴素贝叶斯 |
Fitcnb. |
神经网络 | ClassificationneuralKetwork. (以行为单位进行观察) |
菲茨内特 |
金宝app支持向量机(SVM) | 分类VM. |
fitcsvm |
紧凑判别分析 | CompactClassificationDiscriminant. |
袖珍的 |
紧凑的ecoc | CompactClassificeCoc. |
袖珍的 |
分类模型的紧凑集成 | CompactClassificationEnsemble |
袖珍的 |
紧凑型GAM. | 紧分类 |
袖珍的 |
紧朴素贝叶斯 | 紧分类朴素贝叶斯 |
袖珍的 |
紧凑神经网络 | CompactClassificationneAuralKetwork. |
袖珍的 |
紧致支持向量机 | CompactClassificationSVM |
袖珍的 |
紧凑型分类树 | CompactClassificationTree. |
袖珍的 |
C2
—第二次培训的分类模型,指定为任何培训的分类模型对象或紧凑型分类模型对象,这是一个有效的选择C1
.
T1
—第一个分类模型的测试集预测数据,C1
,指定为表。每一排T1
对应一个观察值,每一列对应一个预测变量。可选地,T1
可以包含响应变量的附加列。T1
必须包含所有用于训练的预测因子吗C1
.不允许使用除了字符向量的单元格阵列之外的多色变量和单元阵列。
T1
和T2
必须具有相同的行数和相同的响应值。如果T1
和T2
包含用于训练的响应变量C1
和C2
,那么你不需要指定ResponseVarName
或Y
.
数据类型:桌子
T2
—第二分类模型的测试集预测数据,C2
,指定为表。每一排T2
对应一个观察值,每一列对应一个预测变量。可选地,T2
可以包含响应变量的附加列。T2
必须包含所有用于训练的预测因子吗C2
.不允许使用除了字符向量的单元格阵列之外的多色变量和单元阵列。
T1
和T2
必须具有相同的行数和相同的响应值。如果T1
和T2
包含用于训练的响应变量C1
和C2
,那么你不需要指定ResponseVarName
或Y
.
数据类型:桌子
X1
—第一个分类模型的测试集预测数据,C1
,指定为数字矩阵。
每一排X1
对应于一个观察(也称为实例或示例),每一列对应于一个变量(也称为预测器或特性)。用来训练的变量C1
必须撰写X1
.
行数X1
和X2
必须等于中的行数Y
.
数据类型:双
|单一的
X2
—第二分类模型的测试集预测数据,C2
,指定为数字矩阵。
每一排X2
对应于一个观察(也称为实例或示例),每一列对应于一个变量(也称为预测器或特性)。用来训练的变量C2
必须撰写X2
.
行数X2
和X1
必须等于中的行数Y
.
数据类型:双
|单一的
ResponseVarName
—T1
和T2
响应变量名称,指定为变量的名称T1
和T2
.如果T1
和T2
包含用于训练的响应变量C1
和C2
,那么你不需要指定ResponseVarName
.
您必须指定ResponseVarName
作为字符矢量或字符串标量。例如,如果存储为响应变量T1.回应
,则指定为“回应”
.否则,软件将对所有列进行处理T1
和T2
,包括响应
作为预测因素。
响应变量必须是分类,字符或字符串阵列,逻辑或数字矢量或字符向量的单元格数组。如果响应变量是字符数组,则每个元素必须对应于数组的一行。
数据类型:char
|字符串
Y
—真正的类标签,指定为分类,字符或字符串阵列,逻辑或数字矢量或字符向量的单元格数组。
当你指定Y
,CompareHoldout.
处理矩阵中的所有变量X1
和X2
或表T1
和T2
作为预测变量。
如果Y
是字符数组,则每个元素必须对应于数组的一行。
预测器数据中的行数必须等于预测器数据中的行数Y
.
数据类型:分类
|char
|字符串
|符合逻辑的
|单一的
|双
|细胞
笔记
楠
s<未定义>
值,空字符向量(''
),空字符串(“
), 和< >失踪
值表示缺失值。CompareHoldout.
删除Y
以及相应的X1
和X2
.另外,,CompareHoldout.
预测班级是否X1
和X2
失踪的观察。
指定可选的逗号分隔的字符对名称、值
参数。名称
是参数名称和价值
是对应的值。名称
必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家
.
CompareHoldoutout(C1,C2,X1,X2,Y,'替代','更大','测试','渐近','成本',[0 2; 1 0])
测试第一组预测类标签是否比第二组更准确,进行渐近McNemar测试,并惩罚与真实标签的错误分类观察一会{1}
两倍于使用真实标签对观察结果进行错误分类一会{2}
.
'Α'
—0.05
(默认)|假设检验的显著性水平,指定为逗号分隔对组成'Α'
和间隔(0,1)中的标量值。
例子:“阿尔法”,0.1
数据类型:单一的
|双
'选择'
—“不平等”
(默认)|“更大的”
'较少的'
评估的替代假设,指定为逗号分隔的配对组成'选择'
和此表中列出的其中一个值。
价值 | 替代假设 |
---|---|
“不平等” (默认) |
预测Y ,由C1 应用于X1 和C2 应用于X2 精度不相等。 |
“更大的” |
预测Y ,由C1 应用于X1 比C2 应用于X2 . |
'较少的' |
预测Y ,由C1 应用于X1 比C2 应用于X2 . |
例子:'替代','更大'
“类名”
—类名称,指定为逗号分隔对组成“类名”
以及类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。必须设置类名
使用Y
.
如果类名
是字符数组,则每个元素必须对应于数组的一行。
用类名
致:
指定与类顺序对应的任何输入参数维度的顺序。例如,使用类名
指定尺寸的顺序成本
.
选择用于测试的类的子集。例如,假设集合中所有不同的类名Y
是{'a','b','c'}
.使用课程的观测训练和测试模型“a”
和“c”
仅限,指定'ClassNames',{'a','c'}
.
默认值是中所有不同类名的集合Y
.
例子:'ClassNames',{'b','g'}
数据类型:分类
|char
|字符串
|符合逻辑的
|单一的
|双
|细胞
'成本'
—误分类代价,指定为逗号分隔对组成'成本'
方阵或结构数组。
如果你指定了方阵成本
, 然后成本(i,j)
是将一个点分类为类的成本J
如果它真正的阶级是我
。即,行对应于真实类,列对应于预测类。指定成本
,另外指定类名
名称-值对参数。
如果你指定了结构s
, 然后s
必须有两个字段:
S.Classnames.
,它将类名包含为与类相同数据类型的变量Y
.可以使用此字段指定类的顺序。
S.Classificycosts.
,其中包含成本矩阵,行和列按S.Classnames.
.
如果您指定成本
, 然后CompareHoldout.
不能进行单面,准确或中期'替代','不平等','test','渐近'
.有关成本敏感的测试选项,请参阅肋骨增强
名称-值对参数。
最佳实践是提供用于培训分类模型的相同成本矩阵。
默认值是成本(i,j)= 1
如果我〜= j
,及成本(i,j)= 0
如果我= J.
.
例子:“成本”[0112;1022;2200]
数据类型:单一的
|双
|结构
'costtest'
—“可能性”
(默认)|“chisquare”
成本敏感的测试类型,指定为逗号分隔对组成'costtest'
和“chisquare”
或“可能性”
。如果您没有使用成本
名称-值对参数,CompareHoldout.
忽略肋骨增强
.
此表总结了可用的成本敏感测试选项。
价值 | 渐近测试类型 | 要求 |
---|---|---|
“chisquare” |
Chi-Square测试 | 要实现的优化工具箱Quadprog. (优化工具箱) |
“可能性” |
似然比检验 | 没有任何 |
有关详细信息,请参见
例子:'costtest','chisquare'
“测试”
—'渐近'
|'精确的'
midp的
要进行的测试,指定为逗号分隔的对,由“测试”
和'渐近'
,'精确的'
或midp的
.
此表总结了成本不敏感测试的可用选项。
价值 | 描述 |
---|---|
'渐近' |
渐近麦克马尔测试 |
'精确的' |
精确条件McNemar检验 |
midp的 (默认) |
中期 |
有关详细信息,请参见
对于成本敏感测试,试验
必须是'渐近'
.当您指定时成本
命名值对参数,并使用肋骨增强
名称-值对参数,'渐近'
是默认的。
例子:“检验”,“渐近”
H
-假设检验结果1.
|0
假设测试结果,作为逻辑值返回。
H = 1
表示null假设在α
意义水平。
H = 0.
表示在测试时拒绝无效假设失败α
意义水平。
数据类型:符合逻辑的
P
—P-测试值,作为间隔[0,1]中的标量返回。P
假设零假设为真,则随机检验统计量至少与观察到的检验统计量一样极端的概率。
CompareHoldout.
估计P
使用测试统计的分布,随着测试类型而变化。有关从McNemar测试的可用变体派生的测试统计信息的详细信息,请参阅
数据类型:双
E1.
-分类损失分类丢失,作为数字标量返回。E1.
总结第一组类标签预测真实类标签的准确性(Y
)。CompareHoldout.
适用第一个测试集预测值数据(X1
)到第一个分类模型(C1
)估计第一组类标签。然后,该函数将估计的标签与Y
以获得分类损失。
对于成本不敏感的测试,E1.
为误分类率。也就是说,E1.
是错误分类观测的比例,这是间隔中的标量[0,1]。
对于成本敏感测试,E1.
为误分类成本。也就是说,E1.
是错误分类成本的加权平均值,其中重量是错误分类观察的各自的估计比例。
有关更多信息,请参见
数据类型:双
E2.
-分类损失分类丢失,作为数字标量返回。E2.
总结第二组类标签预测真实类标签的准确性(Y
)。CompareHoldout.
应用第二个测试设置的预测器数据(X2
)到第二分类模型(C2
)来估计第二组类标签。然后,该函数将估计的标签与Y
以获得分类损失。
对于成本不敏感的测试,E2.
为误分类率。也就是说,E2.
是错误分类观测的比例,这是间隔中的标量[0,1]。
对于成本敏感测试,E2.
为误分类成本。也就是说,E2.
是错误分类成本的加权平均值,其中重量是错误分类观察的各自的估计比例。
有关更多信息,请参见
数据类型:双
CompareHoldout.
不会比较由线性或内核分类模型组成的ECOC模型(即,分类线性
或分类核
模型对象)。比较Classifiedecoc.
模型由线性或内核分类模型组成,使用testcholdout
反而。
相似地,CompareHoldout.
不可比分类线性
或分类核
模型对象。要比较这些模型,请使用testcholdout
反而。
行为
如果错误分类的成本不平衡,那么错误分类率往往是一种表现不佳的分类损失。使用错误分类成本来比较分类模型。
分类错误的成本在应用中往往是不平衡的。例如,考虑根据一组预测因素将受试者分为两类:健康和疾病。把一个生病的人错分类为健康的人会对这个人的生命造成危险。然而,将健康的对象错误地归类为疾病通常会造成一些不便,但不会造成重大危险。在这种情况下,您分配了错误分类成本,例如将一个生病的主题错误分类为健康的比将健康的主题错误分类为疾病的成本更高。
下面的定义总结了对成本敏感的测试。的定义:
Nijk和
CIJ.是分配标签的相对成本
所有下标接受从1到整数值
两种分类模型的误分类成本预期差异为
假设测试是
可用的成本敏感测试适用于双尾测试。
可用的解决不平衡成本的渐近测试是
Chi-Square Test - Chi-Square测试统计是基于Pearson和Neyman Chi-Square测试统计数据,但是通过拉普拉斯校正因子来解释任何
如果
通过最小化
是
似然比测试-似然比测试基于
检验统计量为
如果
不受限制的MLE是
零假设下的MLE是吗
是
麦克马尔测试是一种假设检验,用于比较两个总体比例,同时解决由两个相依配对样本产生的问题。
比较两种分类模型预测精度的一种方法是:
将数据划分为训练集和测试集。
使用培训集列车两种分类模型。
使用测试集预测类标签。
将结果总结在类似于该图的两倍逐个表中。
NII是一致对的数量,即两个模型以相同方式(正确或错误)分类的观测数量。
模型1和模型2的误分类率为
零假设表明,人口表现出边际均匀性,这减少了零假设
这些事实是可用的McNemar测试变体的基础:
渐近-渐近McNemar检验统计和拒绝区域(对于显著性水平
对于单边检验,检验统计量为
如果
对于双边测试,测试统计为
如果
渐近检验需要大样本理论,特别是二项分布的高斯近似。
不和谐对的总数,
一般来说,渐近试验不保证标称覆盖范围。观察到的错误拒绝零假设可能超过
确切条件 - 确切条件的McNemar测试统计和拒绝区域(用于显着水平
对于单边检验,检验统计量为
如果
对于双边测试,测试统计为
如果
精确条件测试总是获得名义上的覆盖率。仿真研究
中期
对于单边检验,检验统计量为
如果
对于双边测试,测试统计为
如果
中间
分类损失指示分类模型或预测标签集的准确性。两种分类损失是误分类率和成本。
CompareHoldout.
返回分类损失(见E1.
和E2.
)在替代假设下(即无限制分类损失)。
这个
第二类分类模型的误分类率(
分类精度随着误分类率增加到1而降低。
这个
在哪里
通常,对于固定成本矩阵,分类精度随着误分类成本的增加而降低。
执行不区分成本的功能选择的一种方法是:
训练第一分类模型(C1
)使用完整的预测集。
训练第二分类模型(C2
)使用简化的预测集。
指定X1
作为完整的测试集预测数据和X2
作为减少的测试设置预测值数据。
输入比较隐藏(C1、C2、X1、X2、Y、'Alternative'、'less')
.如果CompareHoldout.
返回1.
然后,有足够的证据表明,使用更少的预测器的分类模型比使用完整预测器集的模型更好地执行。
或者,您可以评估两个模型的精度之间是否存在显著差异。要执行此评估,请删除'替代','少'
步骤4中的说明。CompareHoldout.
进行双面测试,并且H = 0.
表示没有足够的证据表明两种模型的准确性差异。
成本敏感测试执行数值优化,这需要额外的计算资源。似然比检验通过在区间内寻找拉格朗日乘子的根来间接进行数值优化。对于某些数据集,如果根靠近区间的边界,则该方法可能会失败。因此,如果您有一个Optimization Toolbox许可证,可以考虑执行成本敏感卡方测试。有关详细信息,请参见肋骨增强
和
直接比较两组类标签在预测一组真正的类标签中的准确性,使用testcholdout
.
[1] Attesti,A。
[2] Fagerlan,M.W.,S. Lydersen和P. Laake。“二进制匹配对数据的McNemar测试:中期和渐近性优于精确的条件。”
[3]兰开斯特,H.O.“在离散分布中的意义测试。”
[4] McNemar, Q.《关于相关比例或百分比差异的抽样误差的注释》。
[5]罗斯勒,F。“测量药物主观反应的一些统计问题”。
使用注意事项及限制:
该功能完全支持指定为的训练分类模型的GP金宝appU阵列ClassificationKNN
,分类VM.
或CompactClassificationSVM
目的。
此功能支持金宝appClassificationKNN
,分类VM.
,及CompactClassificationSVM
对象安装了GPU数组输入参数。
CompareHoldout.
仅在以下情况下在GPU上执行:
输入参数中的一个或两个X1
和X2
是GPU阵列。
输入参数中的一个或两个T1
和T2
包含gpuArray
元素。
输入参数中的一个或两个C1
和C2
拟合GPU阵列输入参数。
有关更多信息,请参见
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。