主要内容gydF4y2Ba

CompactClassificationECOCgydF4y2Ba

支持向量机(svm)和其他分类器的紧凑多类模型万博1manbetxgydF4y2Ba

描述gydF4y2Ba

CompactClassificationECOCgydF4y2Ba是多类纠错输出码(ECOC)模型的精简版本。紧凑分类器不包括用于训练多类ECOC模型的数据。因此,您不能使用紧凑分类器执行某些任务,例如交叉验证。使用紧凑的多类ECOC模型完成分类新数据等任务(gydF4y2Ba预测gydF4y2Ba).gydF4y2Ba

创建gydF4y2Ba

您可以创建gydF4y2BaCompactClassificationECOCgydF4y2Ba建模方法有两种:gydF4y2Ba

属性gydF4y2Ba

全部展开gydF4y2Ba

在创建一个gydF4y2BaCompactClassificationECOCgydF4y2Ba模型对象,您可以使用点符号来访问它的属性。有关示例,请参见gydF4y2Ba训练和交叉验证ECOC分类器gydF4y2Ba.gydF4y2Ba

ECOC属性gydF4y2Ba

训练过的二进制学习器,指定为模型对象的单元向量。二元学习器的数量取决于类的数量gydF4y2BaYgydF4y2Ba以及编码设计。gydF4y2Ba

软件训练gydF4y2BaBinaryLearner {j}gydF4y2Ba根据所指定的二进制问题gydF4y2BaCodingMatrixgydF4y2Ba(:, j)gydF4y2Ba.例如,对于使用SVM学习器的多类学习,中的每个元素gydF4y2BaBinaryLearnersgydF4y2Ba是一个gydF4y2BaCompactClassificationSVMgydF4y2Ba分类器。gydF4y2Ba

数据类型:gydF4y2Ba细胞gydF4y2Ba

二元学习器损失函数,指定为表示损失函数名称的字符向量。gydF4y2Ba

该表标识默认值gydF4y2BaBinaryLossgydF4y2Ba值,该值取决于二进制学习器返回的分数范围。gydF4y2Ba

假设gydF4y2Ba 默认值gydF4y2Ba

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

  • 分类决策树gydF4y2Ba

  • 判别分析模型gydF4y2Ba

  • kgydF4y2Ba-最近邻模型gydF4y2Ba

  • 逻辑回归学习器的线性或核分类模型gydF4y2Ba

  • 朴素贝叶斯模型gydF4y2Ba

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

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

方法在预测或损失计算过程中指定一个二进制损失函数,以潜在地提高精度gydF4y2BaBinaryLossgydF4y2Ba的名称-值参数gydF4y2Ba预测gydF4y2Ba或gydF4y2Ba损失gydF4y2Ba.有关更多信息,请参见gydF4y2Ba二元损失gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba

二进制学习器的类赋值代码,指定为数值矩阵。gydF4y2BaCodingMatrixgydF4y2Ba是一个gydF4y2BaKgydF4y2Ba——- - - - - -gydF4y2BalgydF4y2Ba矩阵,gydF4y2BaKgydF4y2Ba是班级的数量和gydF4y2BalgydF4y2Ba是二元学习器的数目。gydF4y2Ba

的要素gydF4y2BaCodingMatrixgydF4y2Ba是gydF4y2Ba1gydF4y2Ba,gydF4y2Ba0gydF4y2Ba,gydF4y2Ba1gydF4y2Ba,这些值对应于二分法的课程分配。该表描述了如何学习gydF4y2BajgydF4y2Ba在课堂上布置观察gydF4y2Ba我gydF4y2Ba的值对应于的二分类类gydF4y2BaCodingMatrix (i, j)gydF4y2Ba.gydF4y2Ba

价值gydF4y2Ba 二分类分配gydF4y2Ba
1gydF4y2Ba 学习者gydF4y2BajgydF4y2Ba在课堂上布置观察gydF4y2Ba我gydF4y2Ba到一个消极的班级。gydF4y2Ba
0gydF4y2Ba 培训前,学习者gydF4y2BajgydF4y2Ba删除类中的观察值gydF4y2Ba我gydF4y2Ba从数据集中。gydF4y2Ba
1gydF4y2Ba 学习者gydF4y2BajgydF4y2Ba在课堂上布置观察gydF4y2Ba我gydF4y2Ba去上积极向上的课。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba|gydF4y2Baint8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba

二进制学习器权重,指定为数值行向量。的长度gydF4y2BaLearnerWeightsgydF4y2Ba等于二元学习器的数目(gydF4y2Ba长度(Mdl.BinaryLearners)gydF4y2Ba).gydF4y2Ba

LearnerWeights (j)gydF4y2Ba观察权重的和是二元学习者吗gydF4y2BajgydF4y2Ba用于训练其分类器。gydF4y2Ba

软件使用gydF4y2BaLearnerWeightsgydF4y2Ba通过最小化Kullback-Leibler散度来拟合后验概率。软件忽略了gydF4y2BaLearnerWeightsgydF4y2Ba当它使用二次规划方法估计后验概率时。gydF4y2Ba

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

其他分类属性gydF4y2Ba

分类预测指标,指定为正整数向量。gydF4y2BaCategoricalPredictorsgydF4y2Ba包含指示相应预测符是分类的索引值。索引值在1和之间gydF4y2BapgydF4y2Ba,在那里gydF4y2BapgydF4y2Ba用于训练模型的预测器的数量。如果没有一个预测符是分类的,则此属性为空(gydF4y2Ba[]gydF4y2Ba).gydF4y2Ba

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

训练中使用的唯一类标签,指定为类别或字符数组、逻辑或数字向量或字符向量的单元格数组。gydF4y2Ba一会gydF4y2Ba与类标签具有相同的数据类型gydF4y2BaYgydF4y2Ba.gydF4y2Ba(该软件将字符串数组视为字符向量的单元格数组。)gydF4y2Ba一会gydF4y2Ba也决定了类的顺序。gydF4y2Ba

数据类型:gydF4y2Ba分类gydF4y2Ba|gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba逻辑gydF4y2Ba|gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba

此属性是只读的。gydF4y2Ba

错误分类代价,指定为方阵数字矩阵。gydF4y2Ba成本gydF4y2Ba有gydF4y2BaKgydF4y2Ba行和列,其中gydF4y2BaKgydF4y2Ba是类的数量。gydF4y2Ba

成本(i, j)gydF4y2Ba将一个点分类的成本是多少gydF4y2BajgydF4y2Ba如果它真正的阶级是gydF4y2Ba我gydF4y2Ba.的行和列的顺序gydF4y2Ba成本gydF4y2Ba中类的顺序对应gydF4y2Ba一会gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

预测器名称按其在预测器数据中的出现顺序排列,作为字符向量的单元格数组指定。的长度gydF4y2BaPredictorNamesgydF4y2Ba等于训练数据中变量的数量gydF4y2BaXgydF4y2Ba或gydF4y2Ba资源描述gydF4y2Ba用作预测变量。gydF4y2Ba

数据类型:gydF4y2Ba细胞gydF4y2Ba

扩展的预测器名称,指定为字符向量的单元格数组。gydF4y2Ba

如果模型对分类变量使用编码,则gydF4y2BaExpandedPredictorNamesgydF4y2Ba包括描述展开变量的名称。否则,gydF4y2BaExpandedPredictorNamesgydF4y2Ba和gydF4y2BaPredictorNamesgydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba细胞gydF4y2Ba

此属性是只读的。gydF4y2Ba

优先类概率,指定为数值向量。gydF4y2Ba之前gydF4y2Ba元素的数量和类的数量一样多gydF4y2Ba一会gydF4y2Ba,元素的顺序对应于类的顺序gydF4y2Ba一会gydF4y2Ba.gydF4y2Ba

fitcecocgydF4y2Ba结合了不同类型二元学习器的错误分类代价。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

响应变量名,指定为字符向量。gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba

此属性是只读的。gydF4y2Ba

分数转换函数应用于预测分数,指定为gydF4y2Ba“没有”gydF4y2Ba.ECOC模型不支持分数转换。万博1manbetxgydF4y2Ba

对象的功能gydF4y2Ba

compareHoldoutgydF4y2Ba 比较使用新数据的两种分类模型的准确性gydF4y2Ba
discard万博1manbetxSupportVectorsgydF4y2Ba ECOC模型舍弃万博1manbetx线性SVM二元学习器的支持向量gydF4y2Ba
边缘gydF4y2Ba 多类纠错输出码(ECOC)模型的分类边gydF4y2Ba
收集gydF4y2Ba 收集属性gydF4y2Ba统计和机器学习工具箱gydF4y2Ba来自GPU的对象gydF4y2Ba
incrementalLearnergydF4y2Ba 将多类纠错输出码(ECOC)模型转换为增量学习器gydF4y2Ba
石灰gydF4y2Ba 局部可解释模型不可知解释(LIME)gydF4y2Ba
损失gydF4y2Ba 多类纠错输出码(ECOC)模型的分类损失gydF4y2Ba
保证金gydF4y2Ba 多类纠错输出码(ECOC)模型的分类裕度gydF4y2Ba
partialDependencegydF4y2Ba 计算部分依赖关系gydF4y2Ba
plotPartialDependencegydF4y2Ba 创建部分依赖图(PDP)和个别条件期望图(ICE)gydF4y2Ba
预测gydF4y2Ba 利用多类纠错输出码(ECOC)模型对观测数据进行分类gydF4y2Ba
沙普利gydF4y2Ba 沙普利值gydF4y2Ba
selectModelsgydF4y2Ba 选择由二进制组成的多类ECOC模型子集gydF4y2BaClassificationLineargydF4y2Ba学习者gydF4y2Ba
更新gydF4y2Ba 更新用于代码生成的模型参数gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

通过删除训练数据来减小完整ECOC模型的大小。完整的ECOC模型(gydF4y2BaClassificationECOCgydF4y2Ba模型)保存训练数据。为了提高效率,可以使用较小的分类器。gydF4y2Ba

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

负载gydF4y2BafisheririsgydF4y2BaX = meas;Y =分类(物种);classOrder =唯一的(Y);gydF4y2Ba

使用支持向量机二进制分类器训练ECOC模型。使用支持向量机模板标准化预测器数据gydF4y2BatgydF4y2Ba,并指定类的顺序。在训练过程中,软件对空选项使用默认值gydF4y2BatgydF4y2Ba.gydF4y2Ba

t = templateSVM(gydF4y2Ba“标准化”gydF4y2Ba,真正的);Mdl = fitcecoc(X,Y,gydF4y2Ba“学习者”gydF4y2BatgydF4y2Ba“类名”gydF4y2Ba, classOrder);gydF4y2Ba

MdlgydF4y2Ba是一个gydF4y2BaClassificationECOCgydF4y2Ba模型。gydF4y2Ba

减小ECOC模型的大小。gydF4y2Ba

CompactMdl = compact(Mdl)gydF4y2Ba
CompactMdl = CompactClassificationECOC ResponseName: 'Y' CategoricalPredictors: [] ClassNames: [setosa versicolor virginica] ScoreTransform: 'none' BinaryLearners: {3x1 cell} CodingMatrix: [3x3 double]属性,方法gydF4y2Ba

CompactMdlgydF4y2Ba是一个gydF4y2BaCompactClassificationECOCgydF4y2Ba模型。gydF4y2BaCompactMdlgydF4y2Ba不存储所有的属性吗gydF4y2BaMdlgydF4y2Ba商店。特别地,它不存储训练数据。gydF4y2Ba

显示每个分类器使用的内存量。gydF4y2Ba

谁(gydF4y2Ba“CompactMdl”gydF4y2Ba,gydF4y2Ba“Mdl”gydF4y2Ba)gydF4y2Ba
名称大小字节类属性CompactMdl 1x1 15116 classreg.learning.classif.CompactClassificationECOC Mdl 1x1 28357 ClassificationECOCgydF4y2Ba

完整的ECOC模型(gydF4y2BaMdlgydF4y2Ba)的尺寸约为小型ECOC模型(gydF4y2BaCompactMdlgydF4y2Ba).gydF4y2Ba

为了有效地标记新的观察结果,您可以删除gydF4y2BaMdlgydF4y2Ba从MATLAB®工作区,然后传递gydF4y2BaCompactMdlgydF4y2Ba和新的预测值gydF4y2Ba预测gydF4y2Ba.gydF4y2Ba

训练和交叉验证一个ECOC分类器使用不同的二进制学习器和一个对所有编码设计。gydF4y2Ba

加载费雪的虹膜数据集。指定预测器数据gydF4y2BaXgydF4y2Ba以及响应数据gydF4y2BaYgydF4y2Ba.确定类名和类的数量。gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2BaX = meas;Y =物种;classNames =唯一的(物种(~strcmp(物种,gydF4y2Ba”gydF4y2Ba)))gydF4y2Ba删除空类gydF4y2Ba
一会=gydF4y2Ba3 x1细胞gydF4y2Ba{'setosa'} {'versicolor'} {'virginica'}gydF4y2Ba
K = number (classNames)gydF4y2Ba%类数gydF4y2Ba
K = 3gydF4y2Ba

你可以使用gydF4y2Ba一会gydF4y2Ba在培训期间指定课程的顺序。gydF4y2Ba

对于一个单一对所有的编码设计,本例具有gydF4y2BaKgydF4y2Ba= 3个二元学习器。为二元学习器指定模板如下:gydF4y2Ba

  • 二元学习器1和2是朴素贝叶斯分类器。默认情况下,每个预测器都是有条件的正态分布。gydF4y2Ba

  • 二元学习器3是支持向量机分类器。指定使用高斯核。gydF4y2Ba

rng (1);gydF4y2Ba%用于再现性gydF4y2BatNB = templateNaiveBayes();tSVM =模板vm (gydF4y2Ba“KernelFunction”gydF4y2Ba,gydF4y2Ba“高斯”gydF4y2Ba);tLearners = {tNB tNB tSVM};gydF4y2Ba

tNBgydF4y2Ba而且gydF4y2BatSVMgydF4y2Ba分别为朴素贝叶斯和支持向量机学习的模板对象。对象指示在训练期间使用哪些选项。除了由名称-值对参数指定的属性外,它们的大多数属性都是空的。在训练期间,软件用默认值填充空属性。gydF4y2Ba

使用二元学习器模板和一对全编码设计训练和交叉验证ECOC分类器。指定类的顺序。默认情况下,朴素贝叶斯分类器使用后验概率作为分数,而SVM分类器使用到决策边界的距离。因此,要聚合二元学习器,必须指定拟合后验概率。gydF4y2Ba

CVMdl = fitcecoc(X,Y,gydF4y2Ba“类名”gydF4y2Ba一会,gydF4y2Ba“CrossVal”gydF4y2Ba,gydF4y2Ba“上”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“学习者”gydF4y2BatLearners,gydF4y2Ba“FitPosterior”gydF4y2Ba,真正的);gydF4y2Ba

CVMdlgydF4y2Ba是一个gydF4y2BaClassificationPartitionedECOCgydF4y2Ba旨在模型。默认情况下,该软件实现了10次交叉验证。二元学习器的分数具有相同的形式(即,它们是后验概率),因此该软件可以适当地聚合二元分类的结果。gydF4y2Ba

使用点符号检查一个训练好的折叠。gydF4y2Ba

CVMdl。训练有素的{1}gydF4y2Ba
ans = CompactClassificationECOC ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' BinaryLearners: {3x1 cell} CodingMatrix: [3x3 double]属性,方法gydF4y2Ba

每条折线都是gydF4y2BaCompactClassificationECOCgydF4y2Ba模型在90%的数据上进行训练。gydF4y2Ba

您可以使用点表示法和单元格索引访问二进制学习器的结果。在第一叠中显示训练好的SVM分类器(第三个二元学习器)。gydF4y2Ba

CVMdl.Trained {1} .BinaryLearners {3}gydF4y2Ba
ans = CompactClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: [-1 1] ScoreTransform: '@(S)sigmoid(S,-4.016619e+00,-3.243499e-01)' Alpha: [33x1 double] Bias: -0.1345 KernelParameters: [1x1 struct] 万博1manbetxSupportVectors: [33x4 double] SupportVectorLabels: [33x1 double] Properties, MethodsgydF4y2Ba

估计泛化误差。gydF4y2Ba

genError = kfoldLoss(cvdl)gydF4y2Ba
genError = 0.0333gydF4y2Ba

平均而言,泛化误差约为3%。gydF4y2Ba

更多关于gydF4y2Ba

全部展开gydF4y2Ba

算法gydF4y2Ba

全部展开gydF4y2Ba

参考文献gydF4y2Ba

[1] Fürnkranz,约翰内斯。“循环式分类。”gydF4y2Baj·马赫。学习。Res。gydF4y2Ba, Vol. 2, 2002, pp. 721-747。gydF4y2Ba

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

扩展功能gydF4y2Ba

版本历史gydF4y2Ba

在R2014b中引入gydF4y2Ba