主要内容gydF4y2Ba

ClassificationECOCgydF4y2Ba

支持向量机(SVM)和其他分类器的多类模型金宝appgydF4y2Ba

描述gydF4y2Ba

ClassificationECOCgydF4y2Ba是一个gydF4y2Ba纠错输出码(ECOC)分类器gydF4y2Ba对于多类学习,分类器由多个二进制学习器组成,如支持向量机(SVM)金宝appgydF4y2BaClassificationECOCgydF4y2Ba分类器存储培训数据,参数值,先前概率和编码矩阵。使用这些分类器执行任务,例如预测新数据的标签或后验概率(参见gydF4y2Ba预测gydF4y2Ba).gydF4y2Ba

创建gydF4y2Ba

创建一个gydF4y2BaClassificationECOCgydF4y2Ba对象的使用gydF4y2BafitcecocgydF4y2Ba.gydF4y2Ba

如果在不指定交叉验证选项的情况下指定线性或内核二进制学习者,则gydF4y2BafitcecocgydF4y2Ba返回一个gydF4y2BaCompactClassificationECOCgydF4y2Ba反对者。gydF4y2Ba

性质gydF4y2Ba

展开全部gydF4y2Ba

在创建gydF4y2BaClassificationECOCgydF4y2Ba模型对象,您可以使用点符号来访问它的属性。例如,请参见gydF4y2Ba使用支持向量机学习器训练多类模型gydF4y2Ba.gydF4y2Ba

ECOC属性gydF4y2Ba

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

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

数据类型:gydF4y2Ba细胞gydF4y2Ba

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

如果你使用使用不同损失函数的二进制学习器进行训练,那么软件就会设置gydF4y2BaBinaryLossgydF4y2Ba到gydF4y2Ba“汉明”gydF4y2Ba。若要潜在地提高精度,请使用gydF4y2Ba'二元乐'gydF4y2Ba的名称-值对参数gydF4y2Ba预测gydF4y2Ba或gydF4y2Ba损失gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba

二进制学习者类标签,指定为一个数字矩阵。gydF4y2BaBinaryYgydF4y2Ba是一个gydF4y2BaNumObservationsgydF4y2Ba——- - - - - -gydF4y2BalgydF4y2Ba矩阵,gydF4y2BalgydF4y2Ba为二元学习者的人数(gydF4y2Ba长度(Mdl.BinaryLearners)gydF4y2Ba).gydF4y2Ba

元素gydF4y2BaBinaryYgydF4y2Ba是gydF4y2Ba1gydF4y2Ba,gydF4y2Ba0gydF4y2Ba或gydF4y2Ba1gydF4y2Ba,该值对应于二分类赋值。这个表描述了如何学习gydF4y2BajgydF4y2Ba分配的观察gydF4y2BakgydF4y2Ba对对应于价值的二分法类gydF4y2BaBinaryY (k, j)gydF4y2Ba.gydF4y2Ba

价值gydF4y2Ba 两个类的任务gydF4y2Ba
1gydF4y2Ba 学习者gydF4y2BajgydF4y2Ba分配的观察gydF4y2BakgydF4y2Ba给一个否定的类。gydF4y2Ba
0gydF4y2Ba 在培训之前,学习者gydF4y2BajgydF4y2Ba消除观察gydF4y2BakgydF4y2Ba从数据集。gydF4y2Ba
1gydF4y2Ba 学习者gydF4y2BajgydF4y2Ba分配的观察gydF4y2BakgydF4y2Ba给一个积极的班级。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

此属性是只读的。gydF4y2Ba

的单元格数组指定为数值预测器的Bin边gydF4y2BapgydF4y2Ba数字向量,其中gydF4y2BapgydF4y2Ba是预测器的数量。每个向量包括一个数字预测器的箱边。用于分类预测器的单元格数组中的元素为空,因为软件没有将分类预测器存储在存储单元中。gydF4y2Ba

只有当您指定gydF4y2Ba“NumBins”gydF4y2Ba使用树学习器训练模型时,将值参数命名为正整数标量gydF4y2Ba毕业生gydF4y2Ba属性为空gydF4y2Ba“NumBins”gydF4y2Ba值为空(默认)。gydF4y2Ba

您可以重新生成装箱预测数据gydF4y2BaXbinnedgydF4y2Ba通过使用gydF4y2Ba毕业生gydF4y2Ba培训模型的财产gydF4y2BamdlgydF4y2Ba.gydF4y2Ba

X=mdl.X;%Predictor data Xbinned=zero(size(X));edges=mdl.BinEdges;%Find binned预测器的索引。idxNumeric=Find(~cellfun(@isempty,edges));if iscolumn(idxNumeric)idxNumeric=idxNumeric';end for j=idxNumeric X=X(:,j);%X转换为数组,如果X是表。if istable(X)X=table2array(X);使用gydF4y2Ba离散化gydF4y2Ba函数。xbinned =离散化(x,[无穷;边缘{};正]);Xbinned (:, j) = Xbinned;结束gydF4y2Ba
XbinnedgydF4y2Ba包含单位,范围为1到箱数,用于数字预测器。gydF4y2BaXbinnedgydF4y2Ba对于分类预测器,值为0。如果gydF4y2BaXgydF4y2Ba包含gydF4y2Ba南gydF4y2BaS,然后对应的gydF4y2BaXbinnedgydF4y2Ba值是gydF4y2Ba南gydF4y2BasgydF4y2Ba

数据类型: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

编码设计名称,指定为字符向量。有关详细信息,请参见gydF4y2Ba编码设计gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba

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

LearnerWeights (j)gydF4y2Ba是二元学习器所使用的观察权重之和gydF4y2BajgydF4y2Ba用于训练它的分类器。gydF4y2Ba

软件使用gydF4y2BaLearnerWeightsgydF4y2Ba通过最大限度地减少kullback-leibler分歧来适应后验概率。软件忽略了gydF4y2BaLearnerWeightsgydF4y2Ba采用二次规划方法估计后验概率。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba仅有一个的gydF4y2Ba

其他分类属性gydF4y2Ba

分类预测指数,指定为正整数向量。gydF4y2BaCategoricalPredictorsgydF4y2Ba包含与包含分类预测值的预测值数据列相对应的索引值。如果没有任何预测值是分类的,则此属性为空(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

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

数据类型:gydF4y2Ba双gydF4y2Ba

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

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

数据类型:gydF4y2Ba细胞gydF4y2Ba

参数值,例如名称-值对参数值,用于训练作为对象指定的ECOC分类器。gydF4y2BaModelParametersgydF4y2Ba不包含估计参数。gydF4y2Ba

访问的属性gydF4y2BaModelParametersgydF4y2Ba使用点符号。例如,通过使用,列出包含二进制学习器参数的模板gydF4y2BaMdl.ModelParameters.BinaryLearnergydF4y2Ba.gydF4y2Ba

训练数据中的观测数,指定为正数值标量。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

预测器名称按其在预测器数据中的出现顺序排列gydF4y2BaXgydF4y2Ba,指定为字符向量的单元格数组。的长度gydF4y2Ba预测gydF4y2Ba等于gydF4y2BaXgydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba细胞gydF4y2Ba

此属性是只读的。gydF4y2Ba

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

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

数据类型:gydF4y2Ba双gydF4y2Ba

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

数据类型:gydF4y2Ba字符gydF4y2Ba

用于适合的原始培训数据的行gydF4y2BaClassificationECOCgydF4y2Ba模型,指定为逻辑向量。如果使用所有行,则此属性为空。gydF4y2Ba

数据类型:gydF4y2Ba逻辑gydF4y2Ba

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

将分数转换函数改为gydF4y2Ba函数gydF4y2Ba,例如,使用点符号。gydF4y2Ba

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

    Mdl.ScoreTransformgydF4y2Ba函数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

用于训练Ecoc分类器的观察权重,指定为数字向量。gydF4y2BaWgydF4y2Ba有gydF4y2BaNumObservationsgydF4y2Ba元素。gydF4y2Ba

软件将用于训练的权重标准化,这样gydF4y2Basum (W, omitnan)gydF4y2Ba是gydF4y2Ba1gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba仅有一个的gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

用于训练ECOC分类器的非标准化预测数据,指定为数字矩阵或表。gydF4y2Ba

每一行的gydF4y2BaXgydF4y2Ba对应一个观察值,每一列对应一个变量。gydF4y2Ba

数据类型:gydF4y2Ba仅有一个的gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba表格gydF4y2Ba

观察到的类标签用于训练ECOC分类器,指定为分类或字符数组、逻辑或数字向量,或字符向量的单元数组。gydF4y2BaYgydF4y2Ba有gydF4y2BaNumObservationsgydF4y2Ba元素和具有与输入参数相同的数据类型gydF4y2BaYgydF4y2Ba属于gydF4y2BafitcecocgydF4y2Ba.gydF4y2Ba(该软件将字符串数组视为字符向量的单元格数组。)gydF4y2Ba

每一行的gydF4y2BaYgydF4y2Ba表示观察到的相应行分类gydF4y2BaXgydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba分类gydF4y2Ba|gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba逻辑gydF4y2Ba|gydF4y2Ba仅有一个的gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba

超参数优化性质gydF4y2Ba

此属性是只读的。gydF4y2Ba

超参数的交叉验证优化,指定为gydF4y2BaBayesianOptimizationgydF4y2Ba对象或包含超参数和关联值的表。该属性是非空的gydF4y2Ba“OptimizeHyperparameters”gydF4y2Ba创建模型时,名称-值对参数为非空。价值gydF4y2BaHyperparameterOptimizationResultsgydF4y2Ba取决于设置的gydF4y2Ba优化器gydF4y2Ba字段gydF4y2BaHyperparameterOptimizationOptionsgydF4y2Ba结构,当您创建模型时。gydF4y2Ba

的价值gydF4y2Ba优化器gydF4y2Ba场gydF4y2Ba 的价值gydF4y2BaHyperparameterOptimizationResultsgydF4y2Ba
“bayesopt”gydF4y2Ba(默认)gydF4y2Ba 对象的类gydF4y2BaBayesianOptimizationgydF4y2Ba
“gridsearch”gydF4y2Ba或gydF4y2Ba“randomsearch”gydF4y2Ba 使用的超参数表,观察到的客观函数值(交叉验证丢失),以及从最低(最佳)到最高(最差)的观测等级gydF4y2Ba

对象的功能gydF4y2Ba

紧凑的gydF4y2Ba 减小多类纠错输出码(ECOC)模型的尺寸gydF4y2Ba
compareHoldoutgydF4y2Ba 使用新数据比较两个分类模型的精度gydF4y2Ba
crossvalgydF4y2Ba 交叉验证多类纠错输出码(ECOC)模型gydF4y2Ba
discard金宝appSupportVectorsgydF4y2Ba 丢弃ECOC模型金宝app中线性支持向量机二进制学习器的支持向量gydF4y2Ba
边gydF4y2Ba 多类纠错输出码(ECOC)模型的分类边缘gydF4y2Ba
损失gydF4y2Ba 多类纠错输出码(ECOC)模型的分类损失gydF4y2Ba
保证金gydF4y2Ba 多类纠错输出码(ECOC)模型的分类裕度gydF4y2Ba
partialDependencegydF4y2Ba 计算部分相关性gydF4y2Ba
plotPartialDependencegydF4y2Ba 创建部分依赖图(PDP)和个人条件期望图(ICE)gydF4y2Ba
预测gydF4y2Ba 使用多类纠错输出码(ECOC)模型对观测进行分类gydF4y2Ba
resubEdgegydF4y2Ba 多类纠错输出码(ECOC)模型的再替代分类边缘gydF4y2Ba
酸橙gydF4y2Ba 局部可解释的模型不可知解释(LIME)gydF4y2Ba
resubLossgydF4y2Ba 多类纠错输出码(ECOC)模型的再替换分类损失gydF4y2Ba
重新提交gydF4y2Ba 多类纠错输出码(ECOC)模型的再替换分类裕度gydF4y2Ba
resubPredictgydF4y2Ba 用多类纠错输出码(ECOC)模型对观测进行分类gydF4y2Ba
沙普利gydF4y2Ba 夏普利值gydF4y2Ba
testckfoldgydF4y2Ba 通过重复交叉验证比较两种分类模型的准确率gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

使用支持向量机(SVM)二进制学习器训练多类纠错输出码(ECOC)模型。金宝appgydF4y2Ba

加载Fisher's iris数据集。指定预测器数据gydF4y2BaXgydF4y2Ba以及响应数据gydF4y2BaYgydF4y2Ba.gydF4y2Ba

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

使用默认选项训练多类ECOC模型。gydF4y2Ba

Mdl=fitcecoc(X,Y)gydF4y2Ba
Mdl = ClassificationECOC ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' BinaryLearners: {3x1 cell} CodingName: 'onevsone'属性,方法gydF4y2Ba

MdlgydF4y2Ba是一个gydF4y2BaClassificationECOCgydF4y2Ba默认情况下,gydF4y2BafitcecocgydF4y2Ba使用支持向量机二进制学习器和一对一编码设计。您可以访问gydF4y2BaMdlgydF4y2Ba使用点表示法的属性。gydF4y2Ba

显示类名和编码设计矩阵。gydF4y2Ba

Mdl。一会gydF4y2Ba
ans =gydF4y2Ba3 x1细胞gydF4y2Ba{'setosa'} {'versicolor'} {'virginica'}gydF4y2Ba
CodingMat=Mdl.CodingMatrixgydF4y2Ba
CodingMat =gydF4y2Ba3×3gydF4y2Ba1 1 0 1 0 1 1gydF4y2Ba

针对三个班级的一对一编码设计产生了三个二元学习者。的列gydF4y2BaCodingMatgydF4y2Ba对应于学习者,行对应于类。类顺序与中的顺序相同gydF4y2BaMdl。一会gydF4y2Ba.例如,gydF4y2BaCodingMat (: 1)gydF4y2Ba是gydF4y2Ba(1;1;0]gydF4y2Ba表示该软件使用分类为的所有观测值训练第一个支持向量机二值学习器gydF4y2Ba“setosa”gydF4y2Ba和gydF4y2Ba“多色的”gydF4y2Ba.因为gydF4y2Ba“setosa”gydF4y2Ba对应于gydF4y2Ba1gydF4y2Ba,这是积极的课程;gydF4y2Ba“多色的”gydF4y2Ba对应于gydF4y2Ba1gydF4y2Ba,所以它是负类。gydF4y2Ba

您可以使用单元格索引和点表示法访问每个二进制学习器。gydF4y2Ba

Mdl。BinaryLearners {1}gydF4y2Ba第一个二元学习者gydF4y2Ba
ANS = CompactClassificationsVM RecordingAme:'Y'类分类:[] ClassNames:[-1 1] ScorEtransform:'none'Beta:[4x1 Double]偏置:1.4492内核参数:[1x1结构]属性,方法gydF4y2Ba

计算重新替换分类错误。gydF4y2Ba

错误= resubLoss (Mdl)gydF4y2Ba
错误=0.0067gydF4y2Ba

训练数据的分类误差很小,但分类器可能是一个过拟合模型。您可以使用交叉验证分类器gydF4y2BacrossvalgydF4y2Ba然后计算交叉验证分类误差。gydF4y2Ba

使用支持向量机二进制学习器训练ECOC分类器。然后,使用点表示法访问二进制学习器的属性,如估计参数。gydF4y2Ba

装载Fisher的Iris数据集。将花瓣尺寸指定为预测器和物种名称作为响应。gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2BaX =量(:,3:4);Y =物种;gydF4y2Ba

使用支持向量机二进制学习器和默认编码设计(一对一)训练ECOC分类器。标准化预测器并保存支持向量。金宝appgydF4y2Ba

t = templateSVM (gydF4y2Ba“标准化”gydF4y2Ba符合事实的gydF4y2Ba“Save金宝appSupportVectors”gydF4y2Ba,真的);predictornames = {gydF4y2Ba“拍长”gydF4y2Ba,gydF4y2Ba“petalWidth”gydF4y2Ba};responseName =gydF4y2Ba“irisSpecies”gydF4y2Ba;一会= {gydF4y2Ba“setosa”gydF4y2Ba,gydF4y2Ba“多色的”gydF4y2Ba,gydF4y2Ba“virginica”gydF4y2Ba};gydF4y2Ba%指定类订单gydF4y2BaMdl=FITCECOCC(X,Y,gydF4y2Ba“学习者”gydF4y2BatgydF4y2Ba“ResponseName”gydF4y2Ba,ractorybeame,gydF4y2Ba...gydF4y2Ba“PredictorNames”gydF4y2BapredictorNames,gydF4y2Ba'classnames'gydF4y2Ba,类名)gydF4y2Ba
Mdl = ClassificationECOC PredictorNames: {'petalLength' 'petalWidth'} ResponseName: 'irisSpecies' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' BinaryLearners: {3x1 cell} CodingName: 'onevsone'属性,方法gydF4y2Ba

tgydF4y2Ba是包含支持向量机分类选项的模板对象。这个函数gydF4y2BafitcecocgydF4y2Ba使用空的(gydF4y2Ba[]gydF4y2Ba)财产。gydF4y2BaMdlgydF4y2Ba是一个gydF4y2BaClassificationECOCgydF4y2Ba分类器。的属性gydF4y2BaMdlgydF4y2Ba使用点符号。gydF4y2Ba

显示类名和编码设计矩阵。gydF4y2Ba

Mdl。一会gydF4y2Ba
ans =gydF4y2Ba3 x1细胞gydF4y2Ba{'setosa'} {'versicolor'} {'virginica'}gydF4y2Ba
Mdl。CodingMatrixgydF4y2Ba
ans =gydF4y2Ba3×3gydF4y2Ba1 1 0 1 0 1 1gydF4y2Ba

列对应支持向量机二进制学习器,行对应不同的类。行顺序与。中的顺序相同gydF4y2Ba一会gydF4y2Ba的属性gydF4y2BaMdlgydF4y2Ba.每一列:gydF4y2Ba

  • 1gydF4y2Ba表明gydF4y2BafitcecocgydF4y2Ba使用对应类的观测值作为正组成员训练支持向量机。gydF4y2Ba

  • 1gydF4y2Ba表明gydF4y2BafitcecocgydF4y2Ba使用对应类的观测值作为阴性组的成员训练支持向量机。gydF4y2Ba

  • 0gydF4y2Ba表示SVM不使用对应类中的观测值。gydF4y2Ba

例如,在第一个支持向量机中,gydF4y2BafitcecocgydF4y2Ba分配所有观察gydF4y2Ba“setosa”gydF4y2Ba或gydF4y2Ba“多色的”gydF4y2Ba,但不gydF4y2Ba“virginica”gydF4y2Ba.gydF4y2Ba

使用单元格下标和点符号访问支持向量机的属性。存储每个支持向量机的标准化支持向量。金宝app对支持向量进行标准化。金宝appgydF4y2Ba

l =大小(mdl.codingmatrix,2);gydF4y2Ba%支持向量机个数gydF4y2Basv =细胞(L, 1);gydF4y2Ba%预分配支持向量索引金宝appgydF4y2Ba为gydF4y2Baj = 1:L SVM = Mdl.BinaryLearners{j};sv {j} = SVM金宝app.SupportVectors;sv {j} = sv {j}。* SVM。σ+ SVM.Mu;gydF4y2Ba结束gydF4y2Ba

svgydF4y2Ba是包含用于SVM的非标准化支持载体的基质阵列。金宝appgydF4y2Ba

绘制数据,并确定支持向量。金宝appgydF4y2Ba

图gscatter (X (: 1), (:, 2), Y);持有gydF4y2Ba在…上gydF4y2Ba标记= {gydF4y2Ba“柯”gydF4y2Ba,gydF4y2Ba“罗”gydF4y2Ba,gydF4y2Ba'博'gydF4y2Ba};gydF4y2Ba%的长度为LgydF4y2Ba为gydF4y2Baj = 1:L svs = sv{j};情节(sv (: 1), sv(:, 2),标记{j},gydF4y2Ba...gydF4y2Ba“MarkerSize”gydF4y2Ba,10 +(J  -  1)* 3);gydF4y2Ba结束gydF4y2Ba标题(gydF4y2Ba'fisher'的虹膜 -  ecoc支持vec金宝apptors'gydF4y2Ba) xlabel(predictorNames{1}) ylabel(predictorNames{2}) legend([classNames,{gydF4y2Ba支金宝app持向量机1gydF4y2Ba,gydF4y2Ba...gydF4y2Ba支金宝app持向量机2gydF4y2Ba,gydF4y2Ba支金宝app持向量机3gydF4y2Ba}],gydF4y2Ba...gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“最佳”gydF4y2Ba)举行gydF4y2Ba从gydF4y2Ba

图中包含一个坐标轴。标题为Fisher's Iris - ECOC支持向量的轴包含6个类型为line的对金宝app象。这些对象代表setosa, versicolor, virginica,支持向量- SVM 1,支持向量- S金宝appVM 2,支持向量- SVM 3。gydF4y2Ba

你可以通过gydF4y2BaMdlgydF4y2Ba这些函数:gydF4y2Ba

  • 预测gydF4y2Ba,对新的观察结果进行分类gydF4y2Ba

  • resubLossgydF4y2Ba,以估计训练数据上的分类误差gydF4y2Ba

  • crossvalgydF4y2Ba,进行10倍交叉验证gydF4y2Ba

用支持向量机二值学习器交叉验证ECOC分类器,估计广义分类误差。gydF4y2Ba

加载Fisher's iris数据集。指定预测器数据gydF4y2BaXgydF4y2Ba以及响应数据gydF4y2BaYgydF4y2Ba.gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2BaX =量;Y =物种;rng (1);gydF4y2Ba%的再现性gydF4y2Ba

创建一个支持向量机模板,并标准化预测器。gydF4y2Ba

t = templateSVM (gydF4y2Ba“标准化”gydF4y2Ba,对)gydF4y2Ba
t =适合分类支持向量机的模板。α:[0 x1双]BoxConstraint: [] CacheSize: [] CachingMethod:“ClipAlphas: [] DeltaGradientTolerance:[]ε:[]GapTolerance: [] KKTTolerance: [] IterationLimit: [] KernelFunction:“KernelScale: [] KernelOffset: [] KernelPolynomialOrder: [] NumPrint:[]ν:[]OutlierFraction: [] RemoveDuplicates: [] ShrinkagePeriod:[]解算器:"标准化数据:1 SaveSupportVector金宝apps: [] VerbosityLevel:[]版本:2方法:'SVM'类型:'分类'gydF4y2Ba

tgydF4y2Ba是一个支持向量机模板。大多数模板对象属性都是空的。在训练ECOC分类器时,软件将适用属性设置为默认值。gydF4y2Ba

训练ECOC分类器,并指定类顺序。gydF4y2Ba

Mdl=FITCECOCC(X,Y,gydF4y2Ba“学习者”gydF4y2BatgydF4y2Ba...gydF4y2Ba'classnames'gydF4y2Ba,{gydF4y2Ba“setosa”gydF4y2Ba,gydF4y2Ba“多色的”gydF4y2Ba,gydF4y2Ba“virginica”gydF4y2Ba});gydF4y2Ba

MdlgydF4y2Ba是一个gydF4y2BaClassificationECOCgydF4y2Ba您可以使用点表示法访问其属性。gydF4y2Ba

旨在gydF4y2BaMdlgydF4y2Ba使用10倍交叉验证。gydF4y2Ba

CVMdl = crossval (Mdl);gydF4y2Ba

cvmdl.gydF4y2Ba是一个gydF4y2BaClassificationedecoc.gydF4y2Ba交叉验证的ECOC分类器。gydF4y2Ba

估计广义分类错误。gydF4y2Ba

genError = kfoldLoss (CVMdl)gydF4y2Ba
genError = 0.0400gydF4y2Ba

广义分类误差为4%,表明ECOC分类器具有较好的泛化能力。gydF4y2Ba

更多关于gydF4y2Ba

展开全部gydF4y2Ba

算法gydF4y2Ba

展开全部gydF4y2Ba

选择功能gydF4y2Ba

你可以使用这些替代算法来训练一个多类模型:gydF4y2Ba

参考gydF4y2Ba

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

Pujol, S. Escalera, S. O. Pujol, P. Radeva。用于纠错输出码稀疏设计的三元码的可分性。gydF4y2Ba模式识别的字母gydF4y2Ba,卷。30,第3,2009号,第285-297页。gydF4y2Ba

扩展能力gydF4y2Ba

介绍了R2014bgydF4y2Ba