主要内容gydF4y2Ba

CompactClassificationECOCgydF4y2Ba

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

描述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.例如,对于多类学习使用支持向量机学习者,每个元素gydF4y2BaBinaryLearnersgydF4y2Ba是一个gydF4y2BaCompactClassificationSVMgydF4y2Ba分类器。gydF4y2Ba

数据类型:gydF4y2Ba细胞gydF4y2Ba

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

默认的gydF4y2BaBinaryLossgydF4y2Ba值取决于二元学习者返回的分数范围。该表标识了某些默认值gydF4y2BaBinaryLossgydF4y2Ba值是在使用默认得分转换(gydF4y2BaScoreTransformgydF4y2Ba模型的属性为gydF4y2Ba“没有”gydF4y2Ba).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例如,使用点表示法。gydF4y2Ba

  • 对于内置函数,输入此代码并替换gydF4y2Ba函数gydF4y2Ba使用表中的值。gydF4y2Ba

    Mdl。ScoreTransform = 'gydF4y2Ba函数gydF4y2Ba”;gydF4y2Ba

    价值gydF4y2Ba 描述gydF4y2Ba
    “doublelogit”gydF4y2Ba 1 / (1 +gydF4y2BaegydF4y2Ba2gydF4y2BaxgydF4y2Ba)gydF4y2Ba
    “invlogit”gydF4y2Ba 日志(gydF4y2BaxgydF4y2Ba/ (1 -gydF4y2BaxgydF4y2Ba))gydF4y2Ba
    “ismax”gydF4y2Ba 将分数最大的类的分数设置为1,并将所有其他类的分数设置为0gydF4y2Ba
    “分对数”gydF4y2Ba 1 / (1 +gydF4y2BaegydF4y2Ba- - - - - -gydF4y2BaxgydF4y2Ba)gydF4y2Ba
    “没有”gydF4y2Ba或gydF4y2Ba“身份”gydF4y2Ba xgydF4y2Ba(转换)gydF4y2Ba
    “标志”gydF4y2Ba 1gydF4y2BaxgydF4y2Ba< 0gydF4y2Ba
    为0gydF4y2BaxgydF4y2Ba= 0gydF4y2Ba
    1gydF4y2BaxgydF4y2Ba> 0gydF4y2Ba
    “对称”gydF4y2Ba 2gydF4y2BaxgydF4y2Ba- 1gydF4y2Ba
    “symmetricismax”gydF4y2Ba 将分数最大的类的分数设置为1,并将所有其他类的分数设置为-1gydF4y2Ba
    “symmetriclogit”gydF4y2Ba 2 / (1 +gydF4y2BaegydF4y2Ba- - - - - -gydF4y2BaxgydF4y2Ba) - 1gydF4y2Ba

  • 对于一个MATLABgydF4y2Ba®gydF4y2Ba函数或您定义的函数,请输入其函数句柄。gydF4y2Ba

    Mdl。ScoreTransform = @gydF4y2Ba函数gydF4y2Ba;gydF4y2Ba

    函数gydF4y2Ba必须接受一个矩阵(原始分数)并返回一个相同大小的矩阵(转换后的分数)。gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Bafunction_handlegydF4y2Ba

对象的功能gydF4y2Ba

compareHoldoutgydF4y2Ba 使用新数据比较两种分类模型的准确性gydF4y2Ba
discardSupportVectorsgydF4y2Ba 抛弃ECOC模型中线性支持向量机二元学习者的支持向量gydF4y2Ba
边缘gydF4y2Ba 多类纠错输出码(ECOC)模型的分类边缘gydF4y2Ba
收集gydF4y2Ba 收集的属性gydF4y2Ba统计和机器学习工具箱gydF4y2Ba对象从GPUgydF4y2Ba
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 =量;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 =紧凑(Mdl)gydF4y2Ba
CompactMdl = CompactClassificationECOC ResponseName: 'Y' CategoricalPredictors: [] ClassNames: [setosa versicolor virginica] ScoreTransform: 'none' binary学习者:{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 =量;Y =物种;一会=独特(物种(~ strcmp(物种,gydF4y2Ba”gydF4y2Ba)))gydF4y2Ba%删除空类gydF4y2Ba
一会=gydF4y2Ba3 x1细胞gydF4y2Ba{'setosa'} {'versicolor'} {'virginica'}gydF4y2Ba
K =元素个数(类名)gydF4y2Ba类数%gydF4y2Ba
K = 3gydF4y2Ba

您可以使用gydF4y2Ba一会gydF4y2Ba在训练过程中指定类的顺序。gydF4y2Ba

对于一个对所有的编码设计,这个示例具有gydF4y2BaKgydF4y2Ba= 3个二元学习者。为二进制学习器指定模板:gydF4y2Ba

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

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

rng (1);gydF4y2Ba%的再现性gydF4y2BatNB = templateNaiveBayes ();tSVM = templateSVM (gydF4y2Ba“KernelFunction”gydF4y2Ba,gydF4y2Ba“高斯”gydF4y2Ba);tlearner = {tNB tNB tSVM};gydF4y2Ba

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

使用二进制学习器模板和单对全编码设计训练和交叉验证ECOC分类器。指定类的顺序。默认情况下,朴素贝叶斯分类器使用后验概率作为分数,而支持向量机分类器使用到决策边界的距离。因此,要聚合二元学习器,必须指定适合后验概率。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' binarylanguages: {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] SupportVectors: [33x4 double] SupportVectorLabels: [33x1 double] Properties, MethodsgydF4y2Ba

估计泛化误差。gydF4y2Ba

genError = kfoldLoss (CVMdl)gydF4y2Ba
genError = 0.0333gydF4y2Ba

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

更多关于gydF4y2Ba

全部展开gydF4y2Ba

算法gydF4y2Ba

全部展开gydF4y2Ba

参考文献gydF4y2Ba

[1] Furnkranz,约翰。“循环赛分类”。gydF4y2Baj·马赫。学习。Res。gydF4y2Ba2002年,第2卷,第721-747页。gydF4y2Ba

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

扩展功能gydF4y2Ba

版本历史gydF4y2Ba

介绍了R2014bgydF4y2Ba

Baidu
map