主要内容gydF4y2Ba

kfoldEdgegydF4y2Ba

交叉验证内核ECOC模型的分类边缘gydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

边缘gydF4y2Ba= kfoldEdge (gydF4y2BaCVMdlgydF4y2Ba)gydF4y2Ba返回gydF4y2Ba分类的优势gydF4y2Ba由交叉验证的内核ECOC模型(gydF4y2BaClassificationPartitionedKernelECOCgydF4y2Ba)gydF4y2BaCVMdlgydF4y2Ba.对于每一次折叠,gydF4y2BakfoldEdgegydF4y2Ba使用训练折叠观测训练的模型计算验证折叠观测的分类边缘。gydF4y2Ba

边缘gydF4y2Ba= kfoldEdge (gydF4y2BaCVMdlgydF4y2Ba,gydF4y2Ba名称,值gydF4y2Ba)gydF4y2Ba返回带有由一个或多个名称-值对参数指定的附加选项的分类边。例如,指定折叠数、解码方案或冗长级别。gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

加载费雪的虹膜数据集。gydF4y2BaXgydF4y2Ba包含花的尺寸,和gydF4y2BaYgydF4y2Ba包含花卉种类的名称。gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2BaX = meas;Y =物种;gydF4y2Ba

交叉验证一个由内核二进制学习器组成的ECOC模型。gydF4y2Ba

CVMdl = fitcecoc(X,Y,gydF4y2Ba“学习者”gydF4y2Ba,gydF4y2Ba“内核”gydF4y2Ba,gydF4y2Ba“CrossVal”gydF4y2Ba,gydF4y2Ba“上”gydF4y2Ba)gydF4y2Ba
CVMdl = ClassificationPartitionedKernelECOC CrossValidatedModel: 'KernelECOC' ResponseName: 'Y' NumObservations: 150 KFold: 10 Partition: [1x1 cvpartition] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none'属性,方法gydF4y2Ba

CVMdlgydF4y2Ba是一个gydF4y2BaClassificationPartitionedKernelECOCgydF4y2Ba模型。默认情况下,该软件实现了10次交叉验证。要指定不同的折叠数,请使用gydF4y2Ba“KFold”gydF4y2Ba名值对参数而不是gydF4y2Ba“Crossval”gydF4y2Ba.gydF4y2Ba

估计交叉验证的分类边缘。gydF4y2Ba

edge = kfoldge (CVMdl)gydF4y2Ba
边= 0.6218gydF4y2Ba

或者,您可以通过指定名称-值对来获取每折叠边gydF4y2Ba“模式”,“个人”gydF4y2Ba在gydF4y2BakfoldEdgegydF4y2Ba.gydF4y2Ba

通过比较进行特征选择gydF4y2BakgydF4y2Ba-从多个模型折叠边缘。仅仅根据这一标准,分类器的最大优势是最好的分类器。gydF4y2Ba

加载费雪的虹膜数据集。gydF4y2BaXgydF4y2Ba包含花的尺寸,和gydF4y2BaYgydF4y2Ba包含花卉种类的名称。gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2BaX = meas;Y =物种;gydF4y2Ba

随机选择一半的预测变量。gydF4y2Ba

rng (1);gydF4y2Ba%用于重现性gydF4y2Bap = size(X,2);gydF4y2Ba%预测数gydF4y2BaidxPart = randsample(p,ceil(0.5*p));gydF4y2Ba

旨在两ECOC模型由内核分类模型:一个使用所有的预测,一个使用预测的一半。gydF4y2Ba

CVMdl = fitcecoc(X,Y,gydF4y2Ba“学习者”gydF4y2Ba,gydF4y2Ba“内核”gydF4y2Ba,gydF4y2Ba“CrossVal”gydF4y2Ba,gydF4y2Ba“上”gydF4y2Ba);PCVMdl = fitcecoc(X(:,idxPart),Y,gydF4y2Ba“学习者”gydF4y2Ba,gydF4y2Ba“内核”gydF4y2Ba,gydF4y2Ba“CrossVal”gydF4y2Ba,gydF4y2Ba“上”gydF4y2Ba);gydF4y2Ba

CVMdlgydF4y2Ba而且gydF4y2BaPCVMdlgydF4y2Ba是gydF4y2BaClassificationPartitionedKernelECOCgydF4y2Ba模型。默认情况下,该软件实现了10次交叉验证。要指定不同的折叠数,请使用gydF4y2Ba“KFold”gydF4y2Ba名值对参数而不是gydF4y2Ba“Crossval”gydF4y2Ba.gydF4y2Ba

估计gydF4y2BakgydF4y2Ba每个分类器的-fold边。gydF4y2Ba

fullEdge = kfoldge (CVMdl)gydF4y2Ba
fullEdge = 0.6137gydF4y2Ba
partEdge = kfoldge (PCVMdl)gydF4y2Ba
partEdge = 0.6242gydF4y2Ba

基于gydF4y2BakgydF4y2Ba-fold边,两个分类器是可比较的。gydF4y2Ba

输入参数gydF4y2Ba

全部折叠gydF4y2Ba

交叉验证的内核ECOC模型,指定为gydF4y2BaClassificationPartitionedKernelECOCgydF4y2Ba模型。您可以创建gydF4y2BaClassificationPartitionedKernelECOCgydF4y2Ba模型通过训练ECOC模型使用gydF4y2BafitcecocgydF4y2Ba并指定这些名称-值对参数:gydF4y2Ba

  • “学习者”gydF4y2Ba—设置为gydF4y2Ba“内核”gydF4y2Ba返回的模板对象gydF4y2BatemplateKernelgydF4y2Ba,或此类模板对象的单元格数组。gydF4y2Ba

  • 其中一个论点是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

例子:gydF4y2BakfoldEdge (CVMdl BinaryLoss,铰链)gydF4y2Ba指定gydF4y2Ba“枢纽”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 日志[1 + exp(-2)]gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba日志(2)])]/ [2gydF4y2Ba
    “指数”gydF4y2Ba 指数gydF4y2Ba (-∞∞)gydF4y2Ba exp (-gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
    “汉明”gydF4y2Ba 汉明gydF4y2Ba [0,1]或(-∞,∞)gydF4y2Ba [1 - sign(gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
    “枢纽”gydF4y2Ba 铰链gydF4y2Ba (-∞∞)gydF4y2Ba 马克斯(0,1 -gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
    “线性”gydF4y2Ba 线性gydF4y2Ba (-∞∞)gydF4y2Ba (1 -gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
    分对数的gydF4y2Ba 物流gydF4y2Ba (-∞∞)gydF4y2Ba 日志[1 + exp(- . LoggydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba日志(2)])]/ [2gydF4y2Ba
    “二次”gydF4y2Ba 二次gydF4y2Ba [0, 1]gydF4y2Ba (1 -gydF4y2BaygydF4y2BajgydF4y2Ba(2gydF4y2Ba年代gydF4y2BajgydF4y2Ba- 1))gydF4y2Ba2gydF4y2Ba/ 2gydF4y2Ba

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

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

    customFunctiongydF4y2Ba有这样的形式:gydF4y2Ba

    bls = customFunction(M,s)gydF4y2Ba

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

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

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

    • KgydF4y2Ba是类的数量。gydF4y2Ba

    • BgydF4y2Ba是二元学习者的数量。gydF4y2Ba

默认情况下,如果所有二进制学习者都是使用支持向量机的核分类模型,则gydF4y2BaBinaryLossgydF4y2Ba是gydF4y2Ba“枢纽”gydF4y2Ba.如果所有的二元学习者都是使用逻辑回归的核分类模型,那么gydF4y2BaBinaryLossgydF4y2Ba是gydF4y2Ba“二次”gydF4y2Ba.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和一个正整数的数字向量。的元素gydF4y2Ba折叠gydF4y2Ba一定在gydF4y2Ba1gydF4y2Ba来gydF4y2BaCVMdl。KFoldgydF4y2Ba.gydF4y2Ba

该软件只使用指定的折叠gydF4y2Ba折叠gydF4y2Ba为预测。gydF4y2Ba

例子:gydF4y2Ba“折叠”,[1 4 10]gydF4y2Ba

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

输出的聚合级别,指定为逗号分隔的对,由gydF4y2Ba“模式”gydF4y2Ba而且gydF4y2Ba“平均”gydF4y2Ba或gydF4y2Ba“个人”gydF4y2Ba.gydF4y2Ba

该表描述了相关值。gydF4y2Ba

价值gydF4y2Ba 描述gydF4y2Ba
“平均”gydF4y2Ba 输出是所有折叠的标量平均值。gydF4y2Ba
“个人”gydF4y2Ba 的输出是一个向量的长度gydF4y2BakgydF4y2Ba包含一个值/褶皱,gydF4y2BakgydF4y2Ba是折叠的次数。gydF4y2Ba

例子:gydF4y2Ba“模式”,“个人”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模式gydF4y2Ba是gydF4y2Ba“平均”gydF4y2Ba,然后gydF4y2Ba边缘gydF4y2Ba是所有折叠的平均分类边。否则,gydF4y2Ba边缘gydF4y2Ba是一个gydF4y2BakgydF4y2Ba-by-1数字列向量,包含每个折叠的分类边,其中gydF4y2BakgydF4y2Ba是折叠的次数。gydF4y2Ba

更多关于gydF4y2Ba

全部折叠gydF4y2Ba

分类的优势gydF4y2Ba

的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 日志[1 + exp(-2)]gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba日志(2)])]/ [2gydF4y2Ba
“指数”gydF4y2Ba 指数gydF4y2Ba (-∞∞)gydF4y2Ba exp (-gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
“汉明”gydF4y2Ba 汉明gydF4y2Ba [0,1]或(-∞,∞)gydF4y2Ba [1 - sign(gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
“枢纽”gydF4y2Ba 铰链gydF4y2Ba (-∞∞)gydF4y2Ba 马克斯(0,1 -gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
“线性”gydF4y2Ba 线性gydF4y2Ba (-∞∞)gydF4y2Ba (1 -gydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba) / 2gydF4y2Ba
“分对数”gydF4y2Ba 物流gydF4y2Ba (-∞∞)gydF4y2Ba 日志[1 + exp(- . LoggydF4y2BaygydF4y2BajgydF4y2Ba年代gydF4y2BajgydF4y2Ba日志(2)])]/ [2gydF4y2Ba
“二次”gydF4y2Ba 二次gydF4y2Ba [0, 1]gydF4y2Ba (1 -gydF4y2BaygydF4y2BajgydF4y2Ba(2gydF4y2Ba年代gydF4y2BajgydF4y2Ba- 1))gydF4y2Ba2gydF4y2Ba/ 2gydF4y2Ba

该软件将二进制损耗归一化,使损耗为0.5gydF4y2BaygydF4y2BajgydF4y2Ba= 0,并使用二元学习者的平均值进行聚合。gydF4y2Ba

请不要将二进制损失与整体分类损失(指定的吗gydF4y2BaLossFungydF4y2Ba名称-值参数的gydF4y2BakfoldLossgydF4y2Ba而且gydF4y2BakfoldPredictgydF4y2Ba对象函数),它度量ECOC分类器作为一个整体的执行情况。gydF4y2Ba

参考文献gydF4y2Ba

[1]奥尔温,E., R.夏皮尔,和Y.辛格。将多类简化为二进制:边距分类器的统一方法。gydF4y2Ba机器学习研究杂志gydF4y2Ba.第1卷,2000,第113-141页。gydF4y2Ba

[2] Escalera, S., O. Pujol和P. Radeva。用于纠错输出码稀疏设计的三元码的可分离性。gydF4y2BaRecog模式。列托人。gydF4y2Ba2009年第3期,第285-297页。gydF4y2Ba

[3] Escalera, S., O. Pujol和P. Radeva。三进制纠错输出码的译码过程。gydF4y2Ba模式分析与机器智能汇刊gydF4y2Ba.2010年第7期第32卷第120-134页。gydF4y2Ba

版本历史gydF4y2Ba

在R2018b中介绍gydF4y2Ba