CompactClassificationECOCgydF4y2Ba
支持向量机(svm)和其他分类器的紧凑多类模型万博1manbetxgydF4y2Ba
描述gydF4y2Ba
CompactClassificationECOCgydF4y2Ba
是多类纠错输出码(ECOC)模型的精简版本。紧凑分类器不包括用于训练多类ECOC模型的数据。因此,您不能使用紧凑分类器执行某些任务,例如交叉验证。使用紧凑的多类ECOC模型完成分类新数据等任务(gydF4y2Ba预测gydF4y2Ba
).gydF4y2Ba
创建gydF4y2Ba
您可以创建gydF4y2BaCompactClassificationECOCgydF4y2Ba
建模方法有两种:gydF4y2Ba
创建一个紧凑的ECOC模型从训练gydF4y2Ba
ClassificationECOCgydF4y2Ba
通过使用gydF4y2Ba紧凑的gydF4y2Ba
对象的功能。gydF4y2Ba方法创建紧凑的ECOC模型gydF4y2Ba
fitcecocgydF4y2Ba
函数,并指定gydF4y2Ba“学习者”gydF4y2Ba
名-值对参数为gydF4y2Ba“线性”gydF4y2Ba
,gydF4y2Ba“内核”gydF4y2Ba
,一个gydF4y2BatemplateLineargydF4y2Ba
或gydF4y2BatemplateKernelgydF4y2Ba
对象或此类对象的单元格数组。gydF4y2Ba
属性gydF4y2Ba
在创建一个gydF4y2BaCompactClassificationECOCgydF4y2Ba
模型对象,您可以使用点符号来访问它的属性。有关示例,请参见gydF4y2Ba训练和交叉验证ECOC分类器gydF4y2Ba.gydF4y2Ba
ECOC属性gydF4y2Ba
BinaryLearnersgydF4y2Ba
- - - - - -gydF4y2Ba训练有素的二元学习者gydF4y2Ba
模型对象的单元格向量gydF4y2Ba
训练过的二进制学习器,指定为模型对象的单元向量。二元学习器的数量取决于类的数量gydF4y2BaYgydF4y2Ba
以及编码设计。gydF4y2Ba
软件训练gydF4y2BaBinaryLearner {j}gydF4y2Ba
根据所指定的二进制问题gydF4y2BaCodingMatrixgydF4y2Ba
(:, j)gydF4y2Ba
.例如,对于使用SVM学习器的多类学习,中的每个元素gydF4y2BaBinaryLearnersgydF4y2Ba
是一个gydF4y2BaCompactClassificationSVMgydF4y2Ba
分类器。gydF4y2Ba
数据类型:gydF4y2Ba细胞gydF4y2Ba
BinaryLossgydF4y2Ba
- - - - - -gydF4y2Ba二元学习器损失函数gydF4y2Ba
“binodeviance”gydF4y2Ba
|gydF4y2Ba“指数”gydF4y2Ba
|gydF4y2Ba“汉明”gydF4y2Ba
|gydF4y2Ba“枢纽”gydF4y2Ba
|gydF4y2Ba“线性”gydF4y2Ba
|gydF4y2Ba分对数的gydF4y2Ba
|gydF4y2Ba“二次”gydF4y2Ba
二元学习器损失函数,指定为表示损失函数名称的字符向量。gydF4y2Ba
该表标识默认值gydF4y2BaBinaryLossgydF4y2Ba
值,该值取决于二进制学习器返回的分数范围。gydF4y2Ba
假设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
CodingMatrixgydF4y2Ba
- - - - - -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
LearnerWeightsgydF4y2Ba
- - - - - -gydF4y2Ba二元学习器权重gydF4y2Ba
数字行向量gydF4y2Ba
二进制学习器权重,指定为数值行向量。的长度gydF4y2BaLearnerWeightsgydF4y2Ba
等于二元学习器的数目(gydF4y2Ba长度(Mdl.BinaryLearners)gydF4y2Ba
).gydF4y2Ba
LearnerWeights (j)gydF4y2Ba
观察权重的和是二元学习者吗gydF4y2BajgydF4y2Ba
用于训练其分类器。gydF4y2Ba
软件使用gydF4y2BaLearnerWeightsgydF4y2Ba
通过最小化Kullback-Leibler散度来拟合后验概率。软件忽略了gydF4y2BaLearnerWeightsgydF4y2Ba
当它使用二次规划方法估计后验概率时。gydF4y2Ba
数据类型:gydF4y2Ba双gydF4y2Ba
|gydF4y2Ba单gydF4y2Ba
其他分类属性gydF4y2Ba
CategoricalPredictorsgydF4y2Ba
- - - - - -gydF4y2Ba分类预测指标gydF4y2Ba
正整数向量gydF4y2Ba|gydF4y2Ba[]gydF4y2Ba
分类预测指标,指定为正整数向量。gydF4y2BaCategoricalPredictorsgydF4y2Ba
包含指示相应预测符是分类的索引值。索引值在1和之间gydF4y2BapgydF4y2Ba
,在那里gydF4y2BapgydF4y2Ba
用于训练模型的预测器的数量。如果没有一个预测符是分类的,则此属性为空(gydF4y2Ba[]gydF4y2Ba
).gydF4y2Ba
数据类型:gydF4y2Ba单gydF4y2Ba
|gydF4y2Ba双gydF4y2Ba
一会gydF4y2Ba
- - - - - -gydF4y2Ba唯一的类标签gydF4y2Ba
分类数组gydF4y2Ba|gydF4y2Ba字符数组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
方形数值矩阵gydF4y2Ba
此属性是只读的。gydF4y2Ba
错误分类代价,指定为方阵数字矩阵。gydF4y2Ba成本gydF4y2Ba
有gydF4y2BaKgydF4y2Ba行和列,其中gydF4y2BaKgydF4y2Ba是类的数量。gydF4y2Ba
成本(i, j)gydF4y2Ba
将一个点分类的成本是多少gydF4y2BajgydF4y2Ba
如果它真正的阶级是gydF4y2Ba我gydF4y2Ba
.的行和列的顺序gydF4y2Ba成本gydF4y2Ba
中类的顺序对应gydF4y2Ba一会gydF4y2Ba
.gydF4y2Ba
数据类型:gydF4y2Ba双gydF4y2Ba
PredictorNamesgydF4y2Ba
- - - - - -gydF4y2Ba预测的名字gydF4y2Ba
字符向量的单元格数组gydF4y2Ba
预测器名称按其在预测器数据中的出现顺序排列,作为字符向量的单元格数组指定。的长度gydF4y2BaPredictorNamesgydF4y2Ba
等于训练数据中变量的数量gydF4y2BaXgydF4y2Ba
或gydF4y2Ba资源描述gydF4y2Ba
用作预测变量。gydF4y2Ba
数据类型:gydF4y2Ba细胞gydF4y2Ba
ExpandedPredictorNamesgydF4y2Ba
- - - - - -gydF4y2Ba扩展的预测器名称gydF4y2Ba
字符向量的单元格数组gydF4y2Ba
扩展的预测器名称,指定为字符向量的单元格数组。gydF4y2Ba
如果模型对分类变量使用编码,则gydF4y2BaExpandedPredictorNamesgydF4y2Ba
包括描述展开变量的名称。否则,gydF4y2BaExpandedPredictorNamesgydF4y2Ba
和gydF4y2BaPredictorNamesgydF4y2Ba
.gydF4y2Ba
数据类型:gydF4y2Ba细胞gydF4y2Ba
之前gydF4y2Ba
- - - - - -gydF4y2Ba先验类概率gydF4y2Ba
数值向量gydF4y2Ba
此属性是只读的。gydF4y2Ba
优先类概率,指定为数值向量。gydF4y2Ba之前gydF4y2Ba
元素的数量和类的数量一样多gydF4y2Ba一会gydF4y2Ba
,元素的顺序对应于类的顺序gydF4y2Ba一会gydF4y2Ba
.gydF4y2Ba
fitcecocgydF4y2Ba
结合了不同类型二元学习器的错误分类代价。gydF4y2Ba
数据类型:gydF4y2Ba双gydF4y2Ba
ResponseNamegydF4y2Ba
- - - - - -gydF4y2Ba响应变量名gydF4y2Ba
特征向量gydF4y2Ba
响应变量名,指定为字符向量。gydF4y2Ba
数据类型:gydF4y2Ba字符gydF4y2Ba
ScoreTransformgydF4y2Ba
- - - - - -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
减小完整ECOC模型的尺寸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
训练和交叉验证一个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纠错输出码(ECOC)模型gydF4y2Ba将三个或更多类的分类问题简化为一组二元分类问题。gydF4y2Ba
ECOC分类需要一个编码设计,它决定了二进制学习者训练的类,以及一个解码方案,它决定了二进制分类器的结果(预测)如何聚合。gydF4y2Ba
假设:gydF4y2Ba
分类问题有三类。gydF4y2Ba
编码设计是一对一的。对于三个类,此编码设计为gydF4y2Ba
属性可以指定不同的编码设计gydF4y2Ba
编码gydF4y2Ba
创建分类模型时的名称-值参数。gydF4y2Ba该模型采用带二进制损失函数的损失加权译码方案确定预测类别gydF4y2BaggydF4y2Ba.该软件还支持基于损失的解码方案。万博1manbetx方法指定解码方案和二进制损耗函数gydF4y2Ba
解码gydF4y2Ba
而且gydF4y2BaBinaryLossgydF4y2Ba
在调用对象函数时,分别调用名称-值参数,例如gydF4y2Ba预测gydF4y2Ba
,gydF4y2Ba损失gydF4y2Ba
,gydF4y2Ba保证金gydF4y2Ba
,gydF4y2Ba边缘gydF4y2Ba
等等。gydF4y2Ba
ECOC算法遵循以下步骤。gydF4y2Ba
学习者1根据第1班或第2班的观察结果进行训练,并将第1班视为积极的班级,将第2班视为消极的班级。其他学习者也接受类似的训练。gydF4y2Ba
让gydF4y2Ba米gydF4y2Ba以元素为编码设计矩阵gydF4y2Ba米gydF4y2Ba吉隆坡gydF4y2Ba,gydF4y2Ba年代gydF4y2BalgydF4y2Ba为积极类学习者的预测分类分数gydF4y2BalgydF4y2Ba.算法将一个新的观测值赋给类(gydF4y2Ba ),以尽量减少损失的总和gydF4y2BaBgydF4y2Ba二进制的学习者。gydF4y2Ba
与其他多类模型相比,ECOC模型可以提高分类精度gydF4y2Ba[1]gydF4y2Ba.gydF4y2Ba
编码设计gydF4y2Ba
的gydF4y2Ba编码设计gydF4y2Ba是一个矩阵,它的元素指导每个二元学习器训练哪些类,即如何将多类问题简化为一系列二元问题。gydF4y2Ba
编码设计的每行对应一个不同的类,每列对应一个二元学习器。在三元编码设计中,对于一个特定的列(或二元学习器):gydF4y2Ba
包含1的行指示二元学习器将对应类中的所有观察数据分组为正类。gydF4y2Ba
包含-1的行指示二元学习器将对应类中的所有观察数据分组为负类。gydF4y2Ba
包含0的行指示二元学习器忽略对应类中的所有观察值。gydF4y2Ba
编码设计矩阵与大,最小,成对行距离基于汉明测度是最优的。有关成对行距离的详细信息,请参见gydF4y2Ba随机编码设计矩阵gydF4y2Ba而且gydF4y2Ba[2]gydF4y2Ba.gydF4y2Ba
该表描述了流行的编码设计。gydF4y2Ba
编码设计gydF4y2Ba | 描述gydF4y2Ba | 学习人数gydF4y2Ba | 最小成对行距离gydF4y2Ba |
---|---|---|---|
one-versus-all(卵子)gydF4y2Ba | 对于每个二元学习者,一个类是正的,其余的是负的。这种设计用尽了所有积极的课堂作业组合。gydF4y2Ba | KgydF4y2Ba | 2gydF4y2Ba |
one-versus-one(蛋)gydF4y2Ba | 对于每个二元学习器,一个类是正的,一个类是负的,其余的被忽略。这种设计耗尽了类对赋值的所有组合。gydF4y2Ba | KgydF4y2Ba(gydF4y2BaKgydF4y2Ba- 1) / 2gydF4y2Ba |
1gydF4y2Ba |
二进制文件完成gydF4y2Ba | 这种设计将类划分为所有的二进制组合,并且不忽略任何类。也就是说,所有的课堂作业都是gydF4y2Ba |
2gydF4y2BaKgydF4y2Ba- 1gydF4y2Ba- 1gydF4y2Ba | 2gydF4y2BaKgydF4y2Ba- 2gydF4y2Ba |
三元完成gydF4y2Ba | 这种设计将类划分为所有三元组合。也就是说,所有的课堂作业都是gydF4y2Ba |
(3gydF4y2BaKgydF4y2Ba- 2gydF4y2BaKgydF4y2Ba+ 1gydF4y2Ba+ 1) / 2gydF4y2Ba |
3.gydF4y2BaKgydF4y2Ba- 2gydF4y2Ba |
序数gydF4y2Ba | 对于第一个二元学习者,第一堂课是负的,其余的都是正的。对于第二个二元学习者,前两类为负,其余为正,依此类推。gydF4y2Ba | KgydF4y2Ba- 1gydF4y2Ba | 1gydF4y2Ba |
密集的随机gydF4y2Ba | 对于每个二元学习者,软件随机将班级分为正类或负类,每种类型至少有一个。详情请参见gydF4y2Ba随机编码设计矩阵gydF4y2Ba.gydF4y2Ba | 随机的,但大约是10loggydF4y2Ba2gydF4y2BaKgydF4y2Ba |
变量gydF4y2Ba |
稀疏随机gydF4y2Ba | 对于每个二元学习器,软件随机地将类别分配为正或负,每个类别的概率为0.25,并忽略概率为0.5的类别。详情请参见gydF4y2Ba随机编码设计矩阵gydF4y2Ba.gydF4y2Ba | 随机的,但大约是15loggydF4y2Ba2gydF4y2BaKgydF4y2Ba |
变量gydF4y2Ba |
该图比较了编码设计的二进制学习器的数量与类数量的增加(gydF4y2BaKgydF4y2Ba).gydF4y2Ba
算法gydF4y2Ba
随机编码设计矩阵gydF4y2Ba
对于给定数量的类gydF4y2BaKgydF4y2Ba,软件生成随机编码设计矩阵如下所示。gydF4y2Ba
软件生成以下矩阵之一:gydF4y2Ba
密集随机-软件以相等的概率为每个元素分配1或- 1gydF4y2BaKgydF4y2Ba——- - - - - -gydF4y2BalgydF4y2BadgydF4y2Ba编码设计矩阵,其中gydF4y2Ba .gydF4y2Ba
稀疏随机-软件为元素的每个元素赋值1gydF4y2BaKgydF4y2Ba——- - - - - -gydF4y2BalgydF4y2Ba年代gydF4y2Ba编码设计矩阵的概率为0.25,-1的概率为0.25,0的概率为0.5,其中gydF4y2Ba .gydF4y2Ba
如果一列不包含至少一个1和一个-1,那么软件将删除该列。gydF4y2Ba
对于不同的列gydF4y2BaugydF4y2Ba而且gydF4y2BavgydF4y2Ba,如果gydF4y2BaugydF4y2Ba=gydF4y2BavgydF4y2Ba或gydF4y2BaugydF4y2Ba= -gydF4y2BavgydF4y2Ba,然后软件删除gydF4y2BavgydF4y2Ba从编码设计矩阵。gydF4y2Ba
软件默认随机生成10,000个矩阵,并根据汉明测度(gydF4y2Ba[2]gydF4y2Ba)由gydF4y2Ba
在哪里gydF4y2Ba米gydF4y2BakgydF4y2BajgydF4y2BalgydF4y2Ba编码是设计矩阵的一个元素吗gydF4y2BajgydF4y2Ba.gydF4y2Ba
万博1manbetx支持向量存储gydF4y2Ba
默认情况下,为了提高效率,gydF4y2BafitcecocgydF4y2Ba
清空了gydF4y2BaαgydF4y2Ba
,gydF4y2Ba万博1manbetxSupportVectorLabelsgydF4y2Ba
,gydF4y2Ba万博1manbetxSupportVectorsgydF4y2Ba
所有线性支持向量机二元学习器的特性。gydF4y2BafitcecocgydF4y2Ba
列表gydF4y2BaβgydF4y2Ba
,而不是gydF4y2BaαgydF4y2Ba
,在模型中显示。gydF4y2Ba
来存储gydF4y2BaαgydF4y2Ba
,gydF4y2Ba万博1manbetxSupportVectorLabelsgydF4y2Ba
,gydF4y2Ba万博1manbetxSupportVectorsgydF4y2Ba
,将指定存储支持向量的线性SVM模板传递给万博1manbetxgydF4y2BafitcecocgydF4y2Ba
.例如,输入:gydF4y2Ba
t = templateSVM(gydF4y2Ba“Save万博1manbetxSupportVectors”gydF4y2Ba,true) Mdl = fitcecoc(X,Y,gydF4y2Ba“学习者”gydF4y2Bat);gydF4y2Ba
您可以通过传递结果来删除支持向量和相关万博1manbetx值gydF4y2BaClassificationECOCgydF4y2Ba
模型gydF4y2Badiscard万博1manbetxSupportVectorsgydF4y2Ba
.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
C/ c++代码生成gydF4y2Ba
使用MATLAB®Coder™生成C和c++代码。gydF4y2Ba
使用注意事项和限制:gydF4y2Ba
的gydF4y2Ba
预测gydF4y2Ba
而且gydF4y2Ba更新gydF4y2Ba
函数支持代码生成。万博1manbetxgydF4y2Ba当你训练ECOC模型时使用gydF4y2Ba
fitcecocgydF4y2Ba
,则适用以下限制。gydF4y2Ba所有二元学习器必须是支持向量机分类器或线性分类模型。为gydF4y2Ba
学习者gydF4y2Ba
参数,您可以指定:gydF4y2Ba“支持向量机”gydF4y2Ba
或gydF4y2Ba“线性”gydF4y2Ba
SVM模板对象或此类对象的单元格数组(参见gydF4y2Ba
templateSVMgydF4y2Ba
)gydF4y2Ba线性分类模型模板对象或此类对象的单元格数组(参见gydF4y2Ba
templateLineargydF4y2Ba
)gydF4y2Ba
ECOC分类器中使用的二进制学习器的代码生成限制也适用于ECOC分类器。对于线性分类模型,只能指定一种正则化强度-gydF4y2Ba
“汽车”gydF4y2Ba
或者一个非负标量gydF4y2BaλgydF4y2Ba
名称-值参数。gydF4y2Ba对于使用编码器配置程序的代码生成,适用以下附加限制。gydF4y2Ba
如果使用SVM模板对象的单元格数组,则gydF4y2Ba
标准化gydF4y2Ba
对于SVM学习器必须是一致的。例如,如果您指定gydF4y2Ba“标准化”,真的gydF4y2Ba
对于一个SVM学习器,必须为所有SVM学习器指定相同的值。gydF4y2Ba如果使用SVM模板对象的单元格数组,并且使用一个具有线性核的SVM学习器(gydF4y2Ba
“KernelFunction”、“线性”gydF4y2Ba
)和另一个不同类型的内核函数,则必须指定gydF4y2Ba
对于线性核的学习器。gydF4y2Ba“Save万博1manbetxSupportVectors”gydF4y2Ba
,真正的gydF4y2Ba分类预测符(gydF4y2Ba
逻辑gydF4y2Ba
,gydF4y2Ba分类gydF4y2Ba
,gydF4y2Ba字符gydF4y2Ba
,gydF4y2Ba字符串gydF4y2Ba
,或gydF4y2Ba细胞gydF4y2Ba
)不受支持。万博1manbetx您不能使用gydF4y2BaCategoricalPredictorsgydF4y2Ba
名称-值参数。gydF4y2Ba若要在模型中包含分类预测器,请使用gydF4y2BadummyvargydF4y2Ba
在拟合模型之前。gydF4y2Ba类标记,使用gydF4y2Ba
分类gydF4y2Ba
不支持数据类型。万博1manbetx训练数据中的类标签值(gydF4y2Ba资源描述gydF4y2Ba
或gydF4y2BaYgydF4y2Ba
的值gydF4y2Ba一会gydF4y2Ba
名称-值参数不能是具有gydF4y2Ba分类gydF4y2Ba
数据类型。gydF4y2Ba详情请参见gydF4y2Ba
ClassificationECOCCoderConfigurergydF4y2Ba
.有关在重新训练模型时不能修改的名称-值参数的信息,请参见gydF4y2Ba提示gydF4y2Ba.gydF4y2Ba
有关更多信息,请参见gydF4y2Ba代码生成简介gydF4y2Ba.gydF4y2Ba
GPU数组gydF4y2Ba
通过使用并行计算工具箱™在图形处理单元(GPU)上运行来加速代码。gydF4y2Ba
使用注意事项和限制:gydF4y2Ba
以下对象函数完全支持GPU阵列:万博1manbetxgydF4y2Ba
以下对象函数对GPU阵列提供有限的支持:万博1manbetxgydF4y2Ba
如果满足以下条件之一,对象函数将在GPU上执行:gydF4y2Ba
该模型采用GPU阵列进行拟合。gydF4y2Ba
传递给对象函数的预测器数据是一个GPU数组。gydF4y2Ba
有关更多信息,请参见gydF4y2Ba在图形处理器上运行MATLAB函数gydF4y2Ba(并行计算工具箱)gydF4y2Ba.gydF4y2Ba
版本历史gydF4y2Ba
在R2014b中引入gydF4y2Ba
另请参阅gydF4y2Ba
ClassificationECOCgydF4y2Ba
|gydF4y2BafitcecocgydF4y2Ba
|gydF4y2Ba紧凑的gydF4y2Ba
|gydF4y2BaClassificationPartitionedLinearECOCgydF4y2Ba
|gydF4y2BaClassificationPartitionedKernelECOCgydF4y2Ba
|gydF4y2BaClassificationPartitionedECOCgydF4y2Ba
MATLAB命令gydF4y2Ba
你点击了一个对应于这个MATLAB命令的链接:gydF4y2Ba
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetxgydF4y2Ba
选择网站gydF4y2Ba
选择一个网站,在可用的地方获得翻译的内容,并查看当地的活动和优惠。根据您所在的位置,我们建议您选择:gydF4y2Ba.gydF4y2Ba
您也可以从以下列表中选择一个网站:gydF4y2Ba
如何获得最佳的网站性能gydF4y2Ba
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。gydF4y2Ba
美洲gydF4y2Ba
- 美国拉丁gydF4y2Ba(西班牙语)gydF4y2Ba
- 加拿大gydF4y2Ba(英语)gydF4y2Ba
- 美国gydF4y2Ba(英语)gydF4y2Ba
欧洲gydF4y2Ba
- 比利时gydF4y2Ba(英语)gydF4y2Ba
- 丹麦gydF4y2Ba(英语)gydF4y2Ba
- 德国gydF4y2Ba(德语)gydF4y2Ba
- 西班牙gydF4y2Ba(西班牙语)gydF4y2Ba
- 芬兰gydF4y2Ba(英语)gydF4y2Ba
- 法国gydF4y2Ba(法语)gydF4y2Ba
- 爱尔兰gydF4y2Ba(英语)gydF4y2Ba
- 意大利gydF4y2Ba(意大利语)gydF4y2Ba
- 卢森堡gydF4y2Ba(英语)gydF4y2Ba
- 荷兰gydF4y2Ba(英语)gydF4y2Ba
- 挪威gydF4y2Ba(英语)gydF4y2Ba
- 奥地利gydF4y2Ba(德语)gydF4y2Ba
- 葡萄牙gydF4y2Ba(英语)gydF4y2Ba
- 瑞典gydF4y2Ba(英语)gydF4y2Ba
- 瑞士gydF4y2Ba
- 联合王国gydF4y2Ba(英语)gydF4y2Ba
亚太地区gydF4y2Ba
- 澳大利亚gydF4y2Ba(英语)gydF4y2Ba
- 印度gydF4y2Ba(英语)gydF4y2Ba
- 新西兰gydF4y2Ba(英语)gydF4y2Ba
- 中国gydF4y2Ba
- 日本gydF4y2Ba(日本語)gydF4y2Ba
- 한국gydF4y2Ba(한국어)gydF4y2Ba