主要内容gydF4y2Ba

kfoldMargingydF4y2Ba

交叉验证ECOC模型的分类边际gydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

保证金gydF4y2Ba= kfoldMargin (gydF4y2BaCVMdlgydF4y2Ba)gydF4y2Ba返回gydF4y2Ba分类的利润率gydF4y2Ba由交叉验证的ECOC模型(gydF4y2BaClassificationPartitionedECOCgydF4y2Ba)gydF4y2BaCVMdlgydF4y2Ba.对于每一次折叠,gydF4y2BakfoldMargingydF4y2Ba使用在训练折叠观测上训练的ECOC模型计算验证折叠观测的分类边际。gydF4y2BaCVMdl。XgydF4y2Ba包含两组观察结果。gydF4y2Ba

例子gydF4y2Ba

保证金gydF4y2Ba= kfoldMargin (gydF4y2BaCVMdlgydF4y2Ba,gydF4y2Ba名称,值gydF4y2Ba)gydF4y2Ba返回带有由一个或多个名-值对参数指定的附加选项的分类边距。例如,指定二进制学习器损失函数、解码方案或冗长级别。gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

加载费雪的虹膜数据集。指定预测器数据gydF4y2BaXgydF4y2Ba,响应数据gydF4y2BaYgydF4y2Ba的课程顺序gydF4y2BaYgydF4y2Ba.gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2BaX = meas;Y =分类(物种);classOrder =唯一的(Y);rng (1);gydF4y2Ba%用于再现性gydF4y2Ba

使用支持向量机(SVM)二进制分类器训练和交叉验证ECOC模型。金宝app使用SVM模板标准化预测器数据,并指定类顺序。gydF4y2Ba

t = templateSVM(gydF4y2Ba“标准化”gydF4y2Ba1);CVMdl = fitcecoc(X,Y,gydF4y2Ba“CrossVal”gydF4y2Ba,gydF4y2Ba“上”gydF4y2Ba,gydF4y2Ba“学习者”gydF4y2BatgydF4y2Ba“类名”gydF4y2Ba, classOrder);gydF4y2Ba

CVMdlgydF4y2Ba是一个gydF4y2BaClassificationPartitionedECOCgydF4y2Ba模型。默认情况下,该软件实现了10次交叉验证。属性可以指定不同的折叠数gydF4y2Ba“KFold”gydF4y2Ba名称-值对参数。gydF4y2Ba

估计验证倍观测值的裕度。使用箱线图显示页边距的分布。gydF4y2Ba

margin = kfoldMargin(CVMdl);箱线图(保证金)标题(gydF4y2Ba“保证金分配”gydF4y2Ba)gydF4y2Ba

图中包含一个轴对象。标题为Distribution of edges的axes对象包含7个类型为line的对象。gydF4y2Ba

执行特征选择的一种方法是比较来自多个模型的交叉验证裕度。仅根据这个标准,边界最大的分类器就是最好的分类器。gydF4y2Ba

加载费雪的虹膜数据集。指定预测器数据gydF4y2BaXgydF4y2Ba,响应数据gydF4y2BaYgydF4y2Ba的课程顺序gydF4y2BaYgydF4y2Ba.gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2BaX = meas;Y =分类(物种);classOrder =唯一的(Y);gydF4y2Ba%等级订单gydF4y2Barng (1);gydF4y2Ba%用于再现性gydF4y2Ba

定义以下两个数据集。gydF4y2Ba

  • fullXgydF4y2Ba包含所有预测符。gydF4y2Ba

  • partXgydF4y2Ba包含花瓣尺寸。gydF4y2Ba

fullX = X;partX = X(:,3:4);gydF4y2Ba

对于每个预测器集,使用支持向量机二进制分类器训练和交叉验证ECOC模型。使用SVM模板标准化预测器,并指定类顺序。gydF4y2Ba

t = templateSVM(gydF4y2Ba“标准化”gydF4y2Ba1);CVMdl = fitcecoc(fullX,Y,gydF4y2Ba“CrossVal”gydF4y2Ba,gydF4y2Ba“上”gydF4y2Ba,gydF4y2Ba“学习者”gydF4y2BatgydF4y2Ba...gydF4y2Ba“类名”gydF4y2Ba, classOrder);PCVMdl = fitcecoc(partX,Y,gydF4y2Ba“CrossVal”gydF4y2Ba,gydF4y2Ba“上”gydF4y2Ba,gydF4y2Ba“学习者”gydF4y2BatgydF4y2Ba...gydF4y2Ba“类名”gydF4y2Ba, classOrder);gydF4y2Ba

CVMdlgydF4y2Ba而且gydF4y2BaPCVMdlgydF4y2Ba是gydF4y2BaClassificationPartitionedECOCgydF4y2Ba模型。默认情况下,该软件实现了10次交叉验证。gydF4y2Ba

估计每个分类器的裕度。使用基于损失的解码来聚合二元学习器结果。对于每个模型,使用箱线图显示边缘的分布。gydF4y2Ba

fullmargin = kfoldMargin(CVMdl,gydF4y2Ba“解码”gydF4y2Ba,gydF4y2Ba“lossbased”gydF4y2Ba);partmargin = kfoldMargin(PCVMdl,gydF4y2Ba“解码”gydF4y2Ba,gydF4y2Ba“lossbased”gydF4y2Ba);箱线图([fullMargins partMargins),gydF4y2Ba“标签”gydF4y2Ba,{gydF4y2Ba“所有预测”gydF4y2Ba,gydF4y2Ba“两个预测”gydF4y2Ba})标题(gydF4y2Ba“保证金分配”gydF4y2Ba)gydF4y2Ba

图中包含一个轴对象。标题为distributionofmargin的axes对象包含14个类型为line的对象。gydF4y2Ba

边际分布大致相同。gydF4y2Ba

输入参数gydF4y2Ba

全部折叠gydF4y2Ba

交叉验证ECOC模型,指定为gydF4y2BaClassificationPartitionedECOCgydF4y2Ba模型。您可以创建gydF4y2BaClassificationPartitionedECOCgydF4y2Ba建模方法有两种:gydF4y2Ba

  • 传递一个经过训练的ECOC模型(gydF4y2BaClassificationECOCgydF4y2Ba)gydF4y2BacrossvalgydF4y2Ba.gydF4y2Ba

  • 训练ECOC模型使用gydF4y2BafitcecocgydF4y2Ba并指定这些交叉验证名称-值对参数中的任意一个:gydF4y2Ba“CrossVal”gydF4y2Ba,gydF4y2Ba“CVPartition”gydF4y2Ba,gydF4y2Ba“坚持”gydF4y2Ba,gydF4y2Ba“KFold”gydF4y2Ba,或gydF4y2Ba“Leaveout”gydF4y2Ba.gydF4y2Ba

名称-值参数gydF4y2Ba

指定可选参数对为gydF4y2BaName1 = Value1,…,以=家gydF4y2Ba,在那里gydF4y2Ba的名字gydF4y2Ba参数名称和gydF4y2Ba价值gydF4y2Ba对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。gydF4y2Ba

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来gydF4y2Ba的名字gydF4y2Ba在报价。gydF4y2Ba

例子:gydF4y2BakfoldMargin (CVMdl‘详细’,1)gydF4y2Ba指定在命令窗口中显示诊断消息。gydF4y2Ba

二元学习器损失函数,指定为逗号分隔的对,由gydF4y2Ba“BinaryLoss”gydF4y2Ba和内置的损失函数名或函数句柄。gydF4y2Ba

  • 该表描述了内置函数,其中gydF4y2BaygydF4y2BajgydF4y2Ba是特定二元学习器的类标签(在集合{- 1,1,0}中),gydF4y2Ba年代gydF4y2BajgydF4y2Ba这是观察分数吗gydF4y2BajgydF4y2Ba,gydF4y2BaggydF4y2Ba(gydF4y2BaygydF4y2BajgydF4y2Ba,gydF4y2Ba年代gydF4y2BajgydF4y2Ba)为二值损失公式。gydF4y2Ba

    价值gydF4y2Ba 描述gydF4y2Ba 分数域gydF4y2Ba ggydF4y2Ba(gydF4y2BaygydF4y2BajgydF4y2Ba,gydF4y2Ba年代gydF4y2BajgydF4y2Ba)gydF4y2Ba
    “binodeviance”gydF4y2Ba 二项异常gydF4y2Ba (-∞∞)gydF4y2Ba Log [1 + exp(-2gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba日志(2)])]/ [2gydF4y2Ba
    “指数”gydF4y2Ba 指数gydF4y2Ba (-∞∞)gydF4y2Ba exp (-gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
    “汉明”gydF4y2Ba 汉明gydF4y2Ba [0,1]或(-∞,∞)gydF4y2Ba [1 -符号(gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
    “枢纽”gydF4y2Ba 铰链gydF4y2Ba (-∞∞)gydF4y2Ba 马克斯(0,1 -gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
    “线性”gydF4y2Ba 线性gydF4y2Ba (-∞∞)gydF4y2Ba (1 -gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
    分对数的gydF4y2Ba 物流gydF4y2Ba (-∞∞)gydF4y2Ba Log [1 + exp(-gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba日志(2)])]/ [2gydF4y2Ba
    “二次”gydF4y2Ba 二次gydF4y2Ba [0, 1]gydF4y2Ba (1 -gydF4y2BaygydF4y2BajgydF4y2Ba(2gydF4y2Ba年代gydF4y2BajgydF4y2Ba- 1))gydF4y2Ba2gydF4y2Ba/ 2gydF4y2Ba

    该软件规范化二进制损耗,使损耗为0.5时gydF4y2BaygydF4y2BajgydF4y2Ba= 0。此外,该软件还计算每个类的平均二进制损失。gydF4y2Ba

  • 例如,对于自定义的二进制损失函数gydF4y2BacustomFunctiongydF4y2Ba,指定它的函数句柄gydF4y2BaBinaryLoss, @customFunctiongydF4y2Ba.gydF4y2Ba

    customFunctiongydF4y2Ba有这样的形式:gydF4y2Ba

    bLoss = customFunction(M,s)gydF4y2Ba

    • 米gydF4y2Ba是gydF4y2BaKgydF4y2Ba——- - - - - -gydF4y2BaBgydF4y2Ba存储在gydF4y2BaMdl。CodingMatrixgydF4y2Ba.gydF4y2Ba

    • 年代gydF4y2Ba是1 × -吗gydF4y2BaBgydF4y2Ba分类分数行向量。gydF4y2Ba

    • 布劳斯gydF4y2Ba是分类损失。这个标量聚合了特定类中每个学习者的二进制损失。例如,您可以使用平均二元损失来聚合每个类的学习器损失。gydF4y2Ba

    • KgydF4y2Ba是类的数量。gydF4y2Ba

    • BgydF4y2Ba是二元学习器的数目。gydF4y2Ba

    有关传递自定义二进制损失函数的示例,请参见gydF4y2Ba利用自定义二元损失函数预测ECOC模型的测试样本标签gydF4y2Ba.gydF4y2Ba

默认的gydF4y2BaBinaryLossgydF4y2Ba值取决于二进制学习器返回的分数范围。该表标识了一些默认值gydF4y2BaBinaryLossgydF4y2Ba当您使用默认分数转换(gydF4y2BaScoreTransformgydF4y2Ba模型的属性为gydF4y2Ba“没有”gydF4y2Ba).gydF4y2Ba

假设gydF4y2Ba 默认值gydF4y2Ba

所有二元学习器都是以下任意一个:gydF4y2Ba

  • 分类决策树gydF4y2Ba

  • 判别分析模型gydF4y2Ba

  • kgydF4y2Ba-最近邻模型gydF4y2Ba

  • 朴素贝叶斯模型gydF4y2Ba

“二次”gydF4y2Ba
所有二元学习器都是支持向量机。gydF4y2Ba “枢纽”gydF4y2Ba
所有二元学习器都是由gydF4y2BaAdaboostM1gydF4y2Ba或gydF4y2BaGentleBoostgydF4y2Ba.gydF4y2Ba “指数”gydF4y2Ba
所有二元学习器都是由gydF4y2BaLogitBoostgydF4y2Ba.gydF4y2Ba “binodeviance”gydF4y2Ba
您指定通过设置来预测类后验概率gydF4y2Ba“FitPosterior”,真的gydF4y2Ba在gydF4y2BafitcecocgydF4y2Ba.gydF4y2Ba “二次”gydF4y2Ba
二元学习器是异构的,使用不同的损失函数。gydF4y2Ba “汉明”gydF4y2Ba

若要检查默认值,请使用点表示法显示gydF4y2BaBinaryLossgydF4y2Ba属性。gydF4y2Ba

例子:gydF4y2Ba“BinaryLoss”、“binodeviance”gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba|gydF4y2Bafunction_handlegydF4y2Ba

聚合二进制损耗的解码方案,指定为由逗号分隔的对组成gydF4y2Ba“解码”gydF4y2Ba而且gydF4y2Ba“lossweighted”gydF4y2Ba或gydF4y2Ba“lossbased”gydF4y2Ba.有关更多信息,请参见gydF4y2Ba二元损失gydF4y2Ba.gydF4y2Ba

例子:gydF4y2Ba“解码”、“lossbased”gydF4y2Ba

估计选项,指定为逗号分隔的对,由gydF4y2Ba“选项”gydF4y2Ba和返回的结构数组gydF4y2BastatsetgydF4y2Ba.gydF4y2Ba

调用并行计算:gydF4y2Ba

  • 您需要并行计算工具箱™许可证。gydF4y2Ba

  • 指定gydF4y2Ba“选项”,statset (UseParallel,真的)gydF4y2Ba.gydF4y2Ba

详细级别,指定为逗号分隔的对,由gydF4y2Ba“详细”gydF4y2Ba而且gydF4y2Ba0gydF4y2Ba或gydF4y2Ba1gydF4y2Ba.gydF4y2Ba详细的gydF4y2Ba控制软件在命令窗口中显示的诊断消息的数量。gydF4y2Ba

如果gydF4y2Ba详细的gydF4y2Ba是gydF4y2Ba0gydF4y2Ba,则软件不显示诊断信息。否则,软件将显示诊断信息。gydF4y2Ba

例子:gydF4y2Ba“详细”,1gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

输出参数gydF4y2Ba

全部折叠gydF4y2Ba

分类的利润率gydF4y2Ba,作为数字向量返回。gydF4y2Ba保证金gydF4y2Ba是一个gydF4y2BangydF4y2Ba-by-1向量,其中每一行都是对应观测值和的裕度gydF4y2BangydF4y2Ba为观测数(gydF4y2Ba尺寸(CVMdl.X, 1)gydF4y2Ba).gydF4y2Ba

更多关于gydF4y2Ba

全部折叠gydF4y2Ba

分类保证金gydF4y2Ba

的gydF4y2Ba分类保证金gydF4y2Ba是,对于每个观测值,真类的负损失与假类的最大负损失之间的差值。如果边际在同一个尺度上,那么它们可以作为分类置信度的衡量标准。在多个分类器中,利润率更高的分类器更好。gydF4y2Ba

二元损失gydF4y2Ba

的gydF4y2Ba二元损失gydF4y2Ba是类和分类分数的函数,它决定二元学习者如何将观察结果分类到类中。gydF4y2Ba

假设如下:gydF4y2Ba

  • 米gydF4y2BakjgydF4y2Ba是元素(gydF4y2BakgydF4y2Ba,gydF4y2BajgydF4y2Ba)的编码设计矩阵gydF4y2Ba米gydF4y2Ba-即类对应的代码gydF4y2BakgydF4y2Ba二元学习者gydF4y2BajgydF4y2Ba.gydF4y2Ba米gydF4y2Ba是一个gydF4y2BaKgydF4y2Ba——- - - - - -gydF4y2BaBgydF4y2Ba矩阵,gydF4y2BaKgydF4y2Ba是班级的数量,和gydF4y2BaBgydF4y2Ba是二元学习器的数目。gydF4y2Ba

  • 年代gydF4y2BajgydF4y2Ba二元学习者的分数是多少gydF4y2BajgydF4y2Ba观察一下。gydF4y2Ba

  • ggydF4y2Ba是二值损失函数。gydF4y2Ba

  • kgydF4y2Ba ^gydF4y2Ba 是观测的预测类别。gydF4y2Ba

ECOC模型的解码方案规定了软件如何聚合二进制损失并确定每个观测的预测类别。软件支持两种解码方案:金宝appgydF4y2Ba

  • 通过解码gydF4y2Ba[2]gydF4y2Ba(gydF4y2Ba解码gydF4y2Ba是gydF4y2Ba“lossbased”gydF4y2Ba) -观测的预测类对应于产生所有二元学习器的二进制损失的最小平均值的类。gydF4y2Ba

    kgydF4y2Ba ^gydF4y2Ba =gydF4y2Ba argmingydF4y2Ba kgydF4y2Ba 1gydF4y2Ba BgydF4y2Ba ∑gydF4y2Ba jgydF4y2Ba =gydF4y2Ba 1gydF4y2Ba BgydF4y2Ba |gydF4y2Ba 米gydF4y2Ba kgydF4y2Ba jgydF4y2Ba |gydF4y2Ba ggydF4y2Ba (gydF4y2Ba 米gydF4y2Ba kgydF4y2Ba jgydF4y2Ba ,gydF4y2Ba 年代gydF4y2Ba jgydF4y2Ba )gydF4y2Ba .gydF4y2Ba

  • Loss-weighted解码gydF4y2Ba[3]gydF4y2Ba(gydF4y2Ba解码gydF4y2Ba是gydF4y2Ba“lossweighted”gydF4y2Ba) -观测的预测类对应于产生对应类的二元学习器的二进制损失的最小平均值的类。gydF4y2Ba

    kgydF4y2Ba ^gydF4y2Ba =gydF4y2Ba argmingydF4y2Ba kgydF4y2Ba ∑gydF4y2Ba jgydF4y2Ba =gydF4y2Ba 1gydF4y2Ba BgydF4y2Ba |gydF4y2Ba 米gydF4y2Ba kgydF4y2Ba jgydF4y2Ba |gydF4y2Ba ggydF4y2Ba (gydF4y2Ba 米gydF4y2Ba kgydF4y2Ba jgydF4y2Ba ,gydF4y2Ba 年代gydF4y2Ba jgydF4y2Ba )gydF4y2Ba ∑gydF4y2Ba jgydF4y2Ba =gydF4y2Ba 1gydF4y2Ba BgydF4y2Ba |gydF4y2Ba 米gydF4y2Ba kgydF4y2Ba jgydF4y2Ba |gydF4y2Ba .gydF4y2Ba

    分母对应于类的二元学习器的数量gydF4y2BakgydF4y2Ba.gydF4y2Ba[1]gydF4y2Ba建议损失加权解码通过保持所有类的损失值在相同的动态范围内来提高分类精度。gydF4y2Ba

的gydF4y2Ba预测gydF4y2Ba,gydF4y2BaresubPredictgydF4y2Ba,gydF4y2BakfoldPredictgydF4y2Ba函数返回的是目标函数的负值gydF4y2BaargmingydF4y2Ba作为第二个输出参数(gydF4y2BaNegLossgydF4y2Ba)进行观察及上课。gydF4y2Ba

下表总结了支持的二进制损失函数,其中金宝appgydF4y2BaygydF4y2BajgydF4y2Ba是特定二元学习器的类标签(在集合{- 1,1,0}中),gydF4y2Ba年代gydF4y2BajgydF4y2Ba这是观察分数吗gydF4y2BajgydF4y2Ba,gydF4y2BaggydF4y2Ba(gydF4y2BaygydF4y2BajgydF4y2Ba,gydF4y2Ba年代gydF4y2BajgydF4y2Ba)为二值损失函数。gydF4y2Ba

价值gydF4y2Ba 描述gydF4y2Ba 分数域gydF4y2Ba ggydF4y2Ba(gydF4y2BaygydF4y2BajgydF4y2Ba,gydF4y2Ba年代gydF4y2BajgydF4y2Ba)gydF4y2Ba
“binodeviance”gydF4y2Ba 二项异常gydF4y2Ba (-∞∞)gydF4y2Ba Log [1 + exp(-2gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba日志(2)])]/ [2gydF4y2Ba
“指数”gydF4y2Ba 指数gydF4y2Ba (-∞∞)gydF4y2Ba exp (-gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
“汉明”gydF4y2Ba 汉明gydF4y2Ba [0,1]或(-∞,∞)gydF4y2Ba [1 -符号(gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
“枢纽”gydF4y2Ba 铰链gydF4y2Ba (-∞∞)gydF4y2Ba 马克斯(0,1 -gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
“线性”gydF4y2Ba 线性gydF4y2Ba (-∞∞)gydF4y2Ba (1 -gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
“分对数”gydF4y2Ba 物流gydF4y2Ba (-∞∞)gydF4y2Ba Log [1 + exp(-gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba日志(2)])]/ [2gydF4y2Ba
“二次”gydF4y2Ba 二次gydF4y2Ba [0, 1]gydF4y2Ba (1 -gydF4y2BaygydF4y2BajgydF4y2Ba(2gydF4y2Ba年代gydF4y2BajgydF4y2Ba- 1))gydF4y2Ba2gydF4y2Ba/ 2gydF4y2Ba

该软件规范化二进制损耗,使损耗为0.5时gydF4y2BaygydF4y2BajgydF4y2Ba= 0,并使用二元学习器的平均值进行聚合。gydF4y2Ba

不要将二进制损失与总体分类损失(由gydF4y2BaLossFungydF4y2Ba的名称-值参数gydF4y2BakfoldLossgydF4y2Ba而且gydF4y2BakfoldPredictgydF4y2Ba对象函数),它衡量ECOC分类器作为一个整体执行的好坏。gydF4y2Ba

参考文献gydF4y2Ba

[1]奥尔温,E., R. Schapire, Y. Singer。将多类简化为二进制:边距分类器的统一方法。gydF4y2Ba机器学习研究杂志gydF4y2Ba.Vol. 1, 2000, pp. 113-141。gydF4y2Ba

[2] Escalera, S., O. Pujol, P. Radeva。纠错输出码的稀疏设计的三进制码的可分性。gydF4y2BaRecog模式。列托人。gydF4y2Ba, 2009年第3期,第30卷,页285-297。gydF4y2Ba

[3] Escalera, S., O. Pujol, P. Radeva。三进制纠错输出码的解码过程。gydF4y2Ba模式分析与机器智能汇刊gydF4y2Ba.Vol. 32, Issue 7, 2010, pp. 120-134。gydF4y2Ba

扩展功能gydF4y2Ba

版本历史gydF4y2Ba

在R2014b中引入gydF4y2Ba