支持向量机(SVM)和其他分类器的多类模型金宝appgydF4y2Ba
ClassificationECOCgydF4y2Ba
是一个gydF4y2Ba纠错输出码(ECOC)分类器gydF4y2Ba对于多类学习,分类器由多个二进制学习器组成,如支持向量机(SVM)金宝appgydF4y2BaClassificationECOCgydF4y2Ba
分类器存储培训数据,参数值,先前概率和编码矩阵。使用这些分类器执行任务,例如预测新数据的标签或后验概率(参见gydF4y2Ba预测gydF4y2Ba
).gydF4y2Ba
创建一个gydF4y2BaClassificationECOCgydF4y2Ba
对象的使用gydF4y2BafitcecocgydF4y2Ba
.gydF4y2Ba
如果在不指定交叉验证选项的情况下指定线性或内核二进制学习者,则gydF4y2BafitcecocgydF4y2Ba
返回一个gydF4y2BaCompactClassificationECOCgydF4y2Ba
反对者。gydF4y2Ba
在创建gydF4y2BaClassificationECOCgydF4y2Ba
模型对象,您可以使用点符号来访问它的属性。例如,请参见gydF4y2Ba使用支持向量机学习器训练多类模型gydF4y2Ba.gydF4y2Ba
BinaryLearnersgydF4y2Ba
- - - - - -gydF4y2Ba训练有素的二进制学习者gydF4y2Ba培训的二进制学习者,指定为模型对象的单元格向量。二元学习者的数量取决于类的数量gydF4y2BaYgydF4y2Ba
以及编码设计。gydF4y2Ba
软件培训gydF4y2BaBinaryLearner {j}gydF4y2Ba
根据所指定的二进制问题gydF4y2BaCodingMatrixgydF4y2Ba
(:, j)gydF4y2Ba
.例如,对于使用SVM学习者的多字符学习,每个元素gydF4y2BaBinaryLearnersgydF4y2Ba
是一个gydF4y2BaCompactClassificationsVM.gydF4y2Ba
分类器。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损失gydF4y2Ba
.gydF4y2Ba
数据类型:gydF4y2Ba字符gydF4y2Ba
BinaryYgydF4y2Ba
- - - - - -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
- - - - - -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南gydF4y2Ba
S,然后对应的gydF4y2BaXbinnedgydF4y2Ba
值是gydF4y2Ba南gydF4y2Ba
sgydF4y2Ba
数据类型:gydF4y2Ba细胞gydF4y2Ba
CodingMatrixgydF4y2Ba
- - - - - -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
CodingNamegydF4y2Ba
- - - - - -gydF4y2Ba编码设计的名字gydF4y2Ba编码设计名称,指定为字符向量。有关详细信息,请参见gydF4y2Ba编码设计gydF4y2Ba.gydF4y2Ba
数据类型:gydF4y2Ba字符gydF4y2Ba
LearnerWeightsgydF4y2Ba
- - - - - -gydF4y2Ba二进制学习者权重gydF4y2Ba二元学习权值,指定为数字行向量。的长度gydF4y2BaLearnerWeightsgydF4y2Ba
等于二进制学习者的人数(gydF4y2Ba长度(Mdl.BinaryLearners)gydF4y2Ba
).gydF4y2Ba
LearnerWeights (j)gydF4y2Ba
是二元学习器所使用的观察权重之和gydF4y2BajgydF4y2Ba
用于训练它的分类器。gydF4y2Ba
软件使用gydF4y2BaLearnerWeightsgydF4y2Ba
通过最大限度地减少kullback-leibler分歧来适应后验概率。软件忽略了gydF4y2BaLearnerWeightsgydF4y2Ba
采用二次规划方法估计后验概率。gydF4y2Ba
数据类型:gydF4y2Ba双gydF4y2Ba
|gydF4y2Ba仅有一个的gydF4y2Ba
CategoricalPredictorsgydF4y2Ba
- - - - - -gydF4y2Ba分类预测指标gydF4y2Ba[]gydF4y2Ba
分类预测指数,指定为正整数向量。gydF4y2BaCategoricalPredictorsgydF4y2Ba
包含与包含分类预测值的预测值数据列相对应的索引值。如果没有任何预测值是分类的,则此属性为空(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
有gydF4y2BaKgydF4y2Ba行和列,在哪里gydF4y2BaKgydF4y2Ba为类数。gydF4y2Ba
成本(i, j)gydF4y2Ba
是将一个点分类为类的成本gydF4y2BajgydF4y2Ba
如果它的真实课程是gydF4y2Ba我gydF4y2Ba
.行和列的顺序gydF4y2Ba成本gydF4y2Ba
中类的顺序gydF4y2Ba一会gydF4y2Ba
.gydF4y2Ba
fitcecocgydF4y2Ba
在不同类型的二元学习者中,采用不同的误分类成本。gydF4y2Ba
数据类型:gydF4y2Ba双gydF4y2Ba
ExpandedPredictorNames.gydF4y2Ba
- - - - - -gydF4y2Ba扩大了预测的名字gydF4y2Ba扩展的预测器名称,指定为字符向量的单元格数组。gydF4y2Ba
如果模型对分类变量使用编码,那么gydF4y2BaExpandedPredictorNames.gydF4y2Ba
包括描述扩展变量的名称。否则,gydF4y2BaExpandedPredictorNames.gydF4y2Ba
是一样的gydF4y2Ba预测gydF4y2Ba
.gydF4y2Ba
数据类型:gydF4y2Ba细胞gydF4y2Ba
ModelParametersgydF4y2Ba
- - - - - -gydF4y2Ba参数值gydF4y2Ba参数值,例如名称-值对参数值,用于训练作为对象指定的ECOC分类器。gydF4y2BaModelParametersgydF4y2Ba
不包含估计参数。gydF4y2Ba
访问的属性gydF4y2BaModelParametersgydF4y2Ba
使用点符号。例如,通过使用,列出包含二进制学习器参数的模板gydF4y2BaMdl.ModelParameters.BinaryLearnergydF4y2Ba
.gydF4y2Ba
NumObservationsgydF4y2Ba
- - - - - -gydF4y2Ba数量的观察gydF4y2Ba训练数据中的观测数,指定为正数值标量。gydF4y2Ba
数据类型:gydF4y2Ba双gydF4y2Ba
预测gydF4y2Ba
- - - - - -gydF4y2Ba预测的名字gydF4y2Ba预测器名称按其在预测器数据中的出现顺序排列gydF4y2BaXgydF4y2Ba
,指定为字符向量的单元格数组。的长度gydF4y2Ba预测gydF4y2Ba
等于gydF4y2BaXgydF4y2Ba
.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
- - - - - -gydF4y2Ba用于拟合的行gydF4y2Ba[]gydF4y2Ba
(默认)|gydF4y2Ba逻辑向量gydF4y2Ba用于适合的原始培训数据的行gydF4y2BaClassificationECOCgydF4y2Ba
模型,指定为逻辑向量。如果使用所有行,则此属性为空。gydF4y2Ba
数据类型:gydF4y2Ba逻辑gydF4y2Ba
scoretransform.gydF4y2Ba
- - - - - -gydF4y2Ba分数变换函数应用于预测分数gydF4y2Ba“doublelogit”gydF4y2Ba
|gydF4y2Ba“invlogit”gydF4y2Ba
|gydF4y2Ba“ismax”gydF4y2Ba
|gydF4y2Ba分对数的gydF4y2Ba
|gydF4y2Ba“没有”gydF4y2Ba
|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
WgydF4y2Ba
- - - - - -gydF4y2Ba观察权重gydF4y2Ba用于训练Ecoc分类器的观察权重,指定为数字向量。gydF4y2BaWgydF4y2Ba
有gydF4y2BaNumObservationsgydF4y2Ba
元素。gydF4y2Ba
软件将用于训练的权重标准化,这样gydF4y2Basum (W, omitnan)gydF4y2Ba
是gydF4y2Ba1gydF4y2Ba
.gydF4y2Ba
数据类型:gydF4y2Ba仅有一个的gydF4y2Ba
|gydF4y2Ba双gydF4y2Ba
XgydF4y2Ba
- - - - - -gydF4y2Ba解体化的预测仪数据gydF4y2Ba用于训练ECOC分类器的非标准化预测数据,指定为数字矩阵或表。gydF4y2Ba
每一行的gydF4y2BaXgydF4y2Ba
对应一个观察值,每一列对应一个变量。gydF4y2Ba
数据类型:gydF4y2Ba仅有一个的gydF4y2Ba
|gydF4y2Ba双gydF4y2Ba
|gydF4y2Ba表格gydF4y2Ba
YgydF4y2Ba
- - - - - -gydF4y2Ba观察到的类标签gydF4y2Ba观察到的类标签用于训练ECOC分类器,指定为分类或字符数组、逻辑或数字向量,或字符向量的单元数组。gydF4y2BaYgydF4y2Ba
有gydF4y2BaNumObservationsgydF4y2Ba
元素和具有与输入参数相同的数据类型gydF4y2BaYgydF4y2Ba
属于gydF4y2BafitcecocgydF4y2Ba
.gydF4y2Ba(该软件将字符串数组视为字符向量的单元格数组。)gydF4y2Ba
每一行的gydF4y2BaYgydF4y2Ba
表示观察到的相应行分类gydF4y2BaXgydF4y2Ba
.gydF4y2Ba
数据类型:gydF4y2Ba分类gydF4y2Ba
|gydF4y2Ba字符gydF4y2Ba
|gydF4y2Ba逻辑gydF4y2Ba
|gydF4y2Ba仅有一个的gydF4y2Ba
|gydF4y2Ba双gydF4y2Ba
|gydF4y2Ba细胞gydF4y2Ba
HyperparameterOptimizationResultsgydF4y2Ba
- - - - - -gydF4y2Ba超参数的交叉验证优化gydF4y2BaBayesianOptimizationgydF4y2Ba
对象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 |
减小多类纠错输出码(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 |
使用支持向量机(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
你可以通过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纠错输出码(ECOC)模型gydF4y2Ba将具有三个或更多类的分类问题简化为一组二元分类问题。gydF4y2Ba
ECOC分类需要一个编码设计,它决定二进制学习者训练的类,以及一个解码方案,它决定二进制分类器的结果(预测)如何聚合。gydF4y2Ba
假设如下:gydF4y2Ba
分类问题分为三类。gydF4y2Ba
编码设计是一对一的。对于三个类,这个编码设计是gydF4y2Ba
译码方案使用了损耗gydF4y2BaggydF4y2Ba.gydF4y2Ba
学习者是支持向量机。gydF4y2Ba
为了建立这个分类模型,ECOC算法遵循以下步骤。gydF4y2Ba
学习者1在1班或2班进行观察训练,将1班视为积极班,将2班视为消极班。其他学习者也接受类似的训练。gydF4y2Ba
让gydF4y2Ba米gydF4y2Ba是具有元素的编码设计矩阵gydF4y2Ba米gydF4y2Ba吉隆坡gydF4y2Ba和gydF4y2Ba年代gydF4y2BalgydF4y2Ba为学习者积极类的预测分类得分gydF4y2BalgydF4y2Ba.算法将一个新的观测值分配给类(gydF4y2Ba ),使损失的总和最小化gydF4y2BalgydF4y2Ba二元学习者。gydF4y2Ba
与其他多类模型相比,ECOC模型可以提高分类精度gydF4y2Ba[2]gydF4y2Ba.gydF4y2Ba
一个gydF4y2Ba编码设计gydF4y2Ba是一个矩阵,其中元素是由每个二进制学习者训练哪个类的元素,即,多字符问题如何减少到一系列二元问题。gydF4y2Ba
编码设计的每一行对应一个不同的类,每一列对应一个二元学习者。在三元编码设计中,对于特定的列(或二元学习者):gydF4y2Ba
包含1的一行指示二元学习者将对应类中的所有观察结果分组为一个积极类。gydF4y2Ba
包含-1的行指示二元学习者将对应类中的所有观察归为负类。gydF4y2Ba
包含0的行指示二进制学习者忽略对应类中的所有观察值。gydF4y2Ba
基于汉明测度的大、最小、成对行距离的编码设计矩阵是最优的。关于双行距离的详细信息请参见gydF4y2Ba随机编码设计矩阵gydF4y2Ba和gydF4y2Ba[4]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 | 随机的,但大约有10个日志gydF4y2Ba2gydF4y2BaKgydF4y2Ba |
多变的gydF4y2Ba |
稀疏随机gydF4y2Ba | 对于每个二元学习者,软件随机分配班级为正或负,每个班级的概率为0.25,忽略概率为0.5的班级。有关详细信息,请参见gydF4y2Ba随机编码设计矩阵gydF4y2Ba.gydF4y2Ba | 随机的,但大约有15个日志gydF4y2Ba2gydF4y2BaKgydF4y2Ba |
多变的gydF4y2Ba |
此图比较了编码设计的二进制学习器的数量随时间的增加而增加gydF4y2BaKgydF4y2Ba.gydF4y2Ba
对于给定数量的类gydF4y2BaKgydF4y2Ba,该软件产生如下随机编码设计矩阵。gydF4y2Ba
软件生成这些矩阵之一:gydF4y2Ba
稠密随机-软件以相等的概率将1或–1分配给gydF4y2BaKgydF4y2Ba——- - - - - -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[4]gydF4y2Ba)由gydF4y2Ba
在哪里gydF4y2Ba米gydF4y2BakgydF4y2BajgydF4y2BalgydF4y2Ba是编码设计矩阵的一个元素gydF4y2BajgydF4y2Ba.gydF4y2Ba
默认情况下,为了效率,gydF4y2BafitcecocgydF4y2Ba
清空了gydF4y2BaαgydF4y2Ba
,gydF4y2Ba金宝appSupportVectorLabelsgydF4y2Ba
和gydF4y2Ba金宝app支持向量gydF4y2Ba
所有线性SVM二进制学习器的属性。gydF4y2BafitcecocgydF4y2Ba
列表gydF4y2BaβgydF4y2Ba
,而不是gydF4y2BaαgydF4y2Ba
,显示在模型中。gydF4y2Ba
储存gydF4y2BaαgydF4y2Ba
,gydF4y2Ba金宝appSupportVectorLabelsgydF4y2Ba
和gydF4y2Ba金宝app支持向量gydF4y2Ba
,传递一个指定存储支持向量的线性SVM模板金宝appgydF4y2BafitcecocgydF4y2Ba
.例如,输入:gydF4y2Ba
t = templateSVM (gydF4y2Ba“Save金宝appSupportVectors”gydF4y2BaMdl = fitcecoc(X,Y,gydF4y2Ba“学习者”gydF4y2Bat);gydF4y2Ba
您可以通过传递结果来删除支持向量和相关金宝app值gydF4y2BaClassificationECOCgydF4y2Ba
模仿gydF4y2Badiscard金宝appSupportVectorsgydF4y2Ba
.gydF4y2Ba
你可以使用这些替代算法来训练一个多类模型:gydF4y2Ba
分类ensembles-seegydF4y2Ba菲特森布尔gydF4y2Ba
和gydF4y2Ba分类素..gydF4y2Ba
分类树 - 看gydF4y2BafitctreegydF4y2Ba
和gydF4y2BaClassificationTree.gydF4y2Ba
判别分析分类器见gydF4y2BafitcdiscrgydF4y2Ba
和gydF4y2BaClassificationDiscriminantgydF4y2Ba
kgydF4y2Ba最近的邻居classifiers-seegydF4y2Ba菲茨康gydF4y2Ba
和gydF4y2BaClassificationKNNgydF4y2Ba
朴素贝叶斯classifiers-seegydF4y2BafitcnbgydF4y2Ba
和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
的gydF4y2Ba预测gydF4y2Ba
和gydF4y2Ba使现代化gydF4y2Ba
函数支持代码生成。金宝appgydF4y2Ba
当你通过使用gydF4y2BafitcecocgydF4y2Ba
,适用以下限制。gydF4y2Ba
您无法通过使用gydF4y2Ba“FitPosterior”gydF4y2Ba
名称-值对的论点。gydF4y2Ba
所有二进制学习器必须是SVM分类器或线性分类模型gydF4y2Ba“学习者”gydF4y2Ba
名称-值对参数,可以指定:gydF4y2Ba
“支持向量机”gydF4y2Ba
或gydF4y2Ba“线性”gydF4y2Ba
支持向量机模板对象或此类对象的单元格数组(参见gydF4y2BatemplateSVMgydF4y2Ba
)gydF4y2Ba
线性分类模型模板对象或此类对象的单元格数组(参见gydF4y2Ba模板线性gydF4y2Ba
)gydF4y2Ba
使用编码器配置程序生成代码时gydF4y2Ba预测gydF4y2Ba
和gydF4y2Ba使现代化gydF4y2Ba
,以下附加限制适用于二进制学习者。gydF4y2Ba
如果使用支持向量机模板对象的单元格数组,则gydF4y2Ba“标准化”gydF4y2Ba
对于SVM,学习者必须是一致的。例如,如果您指定gydF4y2Ba“标准化”,真的gydF4y2Ba
对于一个SVM学习者,您必须为所有的SVM学习者指定相同的值。gydF4y2Ba
如果你使用一个支持向量机模板对象的单元阵列,并且你使用一个带有线性核的支持向量机学习器(gydF4y2Ba'骨存,'线性'gydF4y2Ba
)另一个具有不同类型的内核函数,那么您必须指定gydF4y2Ba
对于带有线性内核的学习者。gydF4y2Ba“Save金宝appSupportVectors”gydF4y2Ba
,真正的gydF4y2Ba
有关详细信息,请参见gydF4y2Ba分类代码配置器gydF4y2Ba
.有关重新训练模型时不能修改的名称-值对参数的信息,请参见gydF4y2Ba提示gydF4y2Ba.gydF4y2Ba
SVM分类器和线性分类模型的代码生成限制也适用于ECOC分类器,具体取决于二进制学习器的选择。有关更多详细信息,请参阅gydF4y2Ba代码生成gydF4y2Ba的gydF4y2BaCompactClassificationsVM.gydF4y2Ba
类和gydF4y2Ba代码生成gydF4y2Ba的gydF4y2BaClassificationLineargydF4y2Ba
类。gydF4y2Ba
有关更多信息,请参见gydF4y2Ba代码生成简介gydF4y2Ba.gydF4y2Ba
Classificationedecoc.gydF4y2Ba
|gydF4y2BaCompactClassificationECOCgydF4y2Ba
|gydF4y2BafitcecocgydF4y2Ba
|gydF4y2Bafitcsvm.gydF4y2Ba
你点击一个链接对应于这个MATLAB命令:gydF4y2Ba
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝appgydF4y2Ba
你也可以从以下列表中选择一个网站:gydF4y2Ba
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。gydF4y2Ba