主要内容

CompactClassificationECOC

用于支持向量机(SVM)和其他分类器的紧凑型多键模型万博1manbetx

描述

CompactClassificationECOC是多款纠错输出代码(ECOC)模型的紧凑版本。紧凑型分类器不包括用于培训多种单度ECOC模型的数据。因此,您无法使用Compact Classifier执行诸如交叉验证的某些任务。使用Compact Multiclass Ecoc模型进行任务,例如分类新数据(预测).

创建

你可以创建一个CompactClassificationECOC模型以两种方式:

特性

展开全部

创建一个后CompactClassificationECOC模型对象,可以使用点表示法来访问其属性。例如,看到训练和交叉验证ECOC分类器

ECOC属性

培训的二进制学习者,指定为模型对象的单元格向量。二元学习者的数量取决于类的数量Y以及编码设计。

软件列车binarylearner {j}根据指定的二进制问题CodingMatrix(:,j).例如,对于使用SVM学习者的多字符学习,每个元素二进制书是A.CompactClassificationsVM.分类器。

数据类型:细胞

二进制学习者丢失函数,指定为表示丢失函数名称的字符矢量。

如果您使用使用不同丢失功能的二进制学习者训练,则软件集BinaryLoss“汉明”.为了潜在地提高准确性,通过使用使用的预测或损耗计算期间,指定除默认之外的二进制损耗功能'二元乐'名称 - 值对参数预测要么损失

数据类型:char

二进制学习者的类分配代码,指定为数字矩阵。CodingMatrix是A.K-经过-l矩阵,其中K班级的数量是多少l是二元学习者的数量。

元素CodingMatrix-10, 要么1,值对应于二分法类分配。这张表描述了学习者的方式j在课堂上分配观察对对应于价值的二分法类CodingMatrix (i, j)

价值 二分法班级任务
-1 学习者j在课堂上分配观察到一个负面的课程。
0 在培训之前,学习者j在课堂上删除观察从数据集。
1 学习者j在课堂上分配观察积极的课程。

数据类型:双倍的|单身的|INT8.|int16|INT32.|INT64.

二进制学习者权重,指定为数字行向量。长度LearnerWeights等于二元学习者的数量(长度(mdl.binarylearners)).

学习者重量(J)是二进制学习者的观察权重的总和j用于训练它的分类器。

软件使用LearnerWeights通过最大限度地减少kullback-leibler分歧来适应后验概率。软件忽略了LearnerWeights当它使用二次编程方法估算后验概率。

数据类型:双倍的|单身的

其他分类属性

分类预测索引指定为正整数的向量。假设预测器数据包含行中的观察,分类预测器包含与包含分类预测器的预测器数据列对应的索引值。如果没有预测器都是分类的,则此属性是空的([]).

数据类型:单身的|双倍的

在培训中使用的唯一类标签,指定为分类或字符阵列,逻辑或数字矢量或字符向量的单元格数组。一会具有与类标签相同的数据类型Y(该软件将字符串数组视为字符向量的单元格数组。)一会还确定了类顺序。

数据类型:分类|char|逻辑|单身的|双倍的|细胞

此属性是只读的。

错误分类成本,指定为方形数字矩阵。成本拥有K行和列,在哪里K为类数。

成本(i,j)是将一个点分类为课程的成本j如果它的真实课程是.行和列的顺序成本中类的顺序一会

fitcecoc.在不同类型的二元学习者中,采用不同的误分类成本。

数据类型:双倍的

预测器名称按照它们在预测器数据中的出现顺序,指定为字符向量的单元格数组。长度预测等于培训数据中的变量数X要么TBL.用作预测变量。

数据类型:细胞

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

如果模型对分类变量使用编码,那么ExpandedPredictorNames.包括描述扩展变量的名称。否则,ExpandedPredictorNames.是相同的预测

数据类型:细胞

此属性是只读的。

先前的概率,指定为数字矢量。事先的具有与类的数量一样多的元素一会,元素的顺序对应于类的顺序一会

fitcecoc.在不同类型的二元学习者中,采用不同的误分类成本。

数据类型:双倍的

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

数据类型:char

用于预测分数的分数转换函数,指定为函数名或函数句柄。

更改分数转换功能功能例如,使用点表示法。

  • 对于内置功能,请输入此代码并替换功能在表中的一个值。

    mdl.scoretransform ='功能”;

    价值 描述
    'doublelogit' 1 /(1 +e-2x
    'invlogit' 日志(x/(1 -x))
    'ismax' 将具有最大分数的类设置为1的分数,并将所有其他类的分数设置为0
    分对数的 1 /(1 +e- - - - - -x
    “没有”要么'身份' x(没有转型)
    '符号' -1 for.x<0
    0x= 0
    1x> 0
    '对称' 2x- 1
    'ymmetricismax' 将具有最大分数为1的类设置分数,并将所有其他类的分数设置为-1
    'symmetriclogit' 2 /(1 +e- - - - - -x) - 1

  • 对于matlab.®函数或您定义的函数,输入其函数句柄。

    mdl.scoretransform = @功能

    功能必须接受矩阵(原始分数)并返回相同大小的矩阵(转换的分数)。

数据类型:char|function_handle

对象的功能

CompareHoldout. 使用新数据比较两个分类模型的精度
discard万博1manbetxSupportVectors 丢弃ecoc模型万博1manbetx中线性SVM二元学习者的支持向量
边缘 多种误差校正输出代码(ECOC)模型的分类边
酸橙 局部可解释的模型不可知解释(LIME)
损失 多种误差输出代码(ECOC)模型的分类损失
利润 用于多款纠错输出代码(ECOC)模型的分类边缘
partialDependence 计算部分依赖
绘图竞争依赖性 创建部分依赖图(PDP)和个人条件期望图(ICE)
预测 使用多款纠错输出代码(ECOC)模型进行分类观察
沙普利 福利价值观
选择墨西哥 选择由二进制文件组成的多种子常规模型的子集分类线性学习者
更新 更新代码生成的模型参数

例子

全部折叠

通过删除培训数据来减少全ecoc模型的大小。全经ecoc模型(ClassificationECOC模型)持有培训数据。提高效率,使用较小的分类器。

装载Fisher的Iris数据集。指定预测器数据X,响应数据Y,以及课程的顺序Y

负载渔民X =量;Y =分类(物种);classOrder =唯一(y);

使用SVM二进制分类器列车ecoc模型。使用SVM模板标准化预测器数据t,并指定类的顺序。在培训期间,软件使用默认值为空选项t

t = templatesvm('标准化',真的);mdl = fitcecoc(x,y,“学习者”,t,'classnames',classorder);

MDL.是A.ClassificationECOC模型。

减少ECOC模型的大小。

CompactMDL = Compact(MDL)
CompactMDL = CompactClassificationCoc Chractory:'Y'类分类:[] ClassNames:[Setosa Versicolor Virginica] ScorEtransform:'无'BinaryLearners:{3x1 Cell} CodingMatrix:[3x3 Double]属性,方法

CompactMdl是A.CompactClassificationECOC模型。CompactMdl不存储所有属性MDL.商店。特别是,它不存储培训数据。

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

谁('compactmdl''mdl'
名称大小字节类属性CompactMdl 1x1 15116 classreg.learning. Class . compactclassificationecoc Mdl 1x1 28357 ClassificationECOC

全ecoc模型(MDL.)大约是紧凑型ecoc模型的大小(CompactMdl).

有效地标记新观察,可以删除MDL.从MATLAB®工作区,然后通过CompactMdl和新的预测值值预测

使用不同的二进制学习者和唯一的所有编码设计列车和交叉验证ECOC分类器。

装载Fisher的Iris数据集。指定预测器数据X和响应数据Y.确定类名称和类的数量。

负载渔民X =量;Y =物种;一会=独特(物种(~ strcmp(物种,''))))删除空类
一会=3x1细胞{'setosa'} {'versicolor'} {'virginica'}
k = numel(classnames)%类数
k = 3.

您可以使用一会在培训期间指定类的顺序。

对于一个单一的编码设计,这个例子K= 3个二进制学习者。为二元学习者指定模板,使:

  • 二进制学习者1和2是朴素的贝叶斯分类器。默认情况下,每个预测器是有条件的,通常在其标签上分布。

  • 二进制学习者3是SVM分类器。指定使用高斯内核。

RNG(1);重复性的%TNB = TemplateAniveBayes();tsvm = templatesvm('骨箱''高斯');Tlearners = {TNB TNB TSVM};

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

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

cvmdl = fitcecoc(x,y,'classnames',classnames,“CrossVal”“上”......“学习者”,tlearners,“FitPosterior”,真的);

cvmdl.是A.Classificationedecoc.交叉验证模型。默认情况下,软件实现10倍交叉验证。二进制学习者的分数具有相同的形式(即,它们是后验概率),因此软件可以正确地聚合二进制分类的结果。

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

cvmdl.tromed {1}
ans = compactClassificyecoc racitchAme:'y'pationoricalpricictors:[] classnames:{'setosa''versicolor''virginica'} scoreTransform:'none'binarylearners:{3x1 cell} codingmatrix:[3x3 double]属性,方法

每个折叠都是一个CompactClassificationECOC模型训练了90%的数据。

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

cvmdl.tromed {1} .binarylearners {3}
ans = CompactClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: [-1 1] ScoreTransform: '@(S)sigmoid(S,-4.016735e+00,-3.243061e-01)' Alpha: [33x1 double] Bias: -0.1345 KernelParameters: [1x1 struct] 万博1manbetxSupportVectors: [33x4 double] SupportVectorLabels: [33x1 double]属性,方法

估计泛化误差。

generror = kfoldloss(cvmdl)
generror = 0.0333.

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

算法

展开全部

参考

[1] Furnkranz,约翰。“循环赛分类”。机器学习研究杂志, 2002年第2卷,721-747页。

[2] Escalera,S.,O. pujol和P. Radeva。“用于纠错输出代码稀疏设计的三元代码的可分离。”模式识别字母,卷。30,第3,2009号,第285-297页。

扩展能力

在R2014B中介绍