文档gydF4y2Ba

ClassificationECOC类gydF4y2Ba

超类:gydF4y2BaCompactClassificationECOCgydF4y2Ba

支持向量机或其他分类器的多类模型万博1manbetxgydF4y2Ba

描述gydF4y2Ba

ClassificationECOCgydF4y2Ba是一个gydF4y2Ba纠错输出代码gydF4y2Ba(ECOC)分类器用于多类学习,通过简化为多个二进制分类器,如支持向量机(svm)。万博1manbetx训练gydF4y2BaClassificationECOCgydF4y2Ba分类器使用gydF4y2BafitcecocgydF4y2Ba还有训练数据。gydF4y2Ba

训练有素的gydF4y2BaClassificationECOCgydF4y2Ba分类器存储训练数据、参数值、先验概率和编码矩阵。你可以使用这些分类器:gydF4y2Ba

  • 估计再替代预测。详细信息请参见gydF4y2BaresubPredictgydF4y2Ba。gydF4y2Ba

  • 预测新数据的标签或后验概率。详细信息请参见gydF4y2Ba预测gydF4y2Ba。gydF4y2Ba

建设gydF4y2Ba

MdlgydF4y2Ba= fitcecoc (gydF4y2Ba资源描述gydF4y2Ba,gydF4y2BaResponseVarNamegydF4y2Ba)gydF4y2Ba返回一个完整的、经过训练的多类gydF4y2Ba纠错输出码(ECOC)模型gydF4y2Ba使用表中的预测器gydF4y2Ba资源描述gydF4y2Ba类标签在里面gydF4y2Ba资源描述。ResponseVarNamegydF4y2Ba。默认情况下,gydF4y2BafitcecocgydF4y2Ba使用gydF4y2BaKgydF4y2Ba(gydF4y2BaKgydF4y2Ba- 1)/2二进制支持向量机万博1manbetx(SVM)模型采用一对一gydF4y2Ba编码设计gydF4y2Ba,在那里gydF4y2BaKgydF4y2Ba是唯一类标签(级别)的数量。gydF4y2BaMdlgydF4y2Ba是一个gydF4y2BaClassificationECOCgydF4y2Ba模型。gydF4y2Ba

MdlgydF4y2Ba= fitcecoc (gydF4y2Ba资源描述gydF4y2Ba,gydF4y2Ba公式gydF4y2Ba)gydF4y2Ba使用表中的预测器数据和类标签返回ECOC模型gydF4y2Ba资源描述gydF4y2Ba。gydF4y2Ba公式gydF4y2Ba是否有响应的解释模型和预测变量的子集gydF4y2Ba资源描述gydF4y2Ba用于训练。gydF4y2Ba

MdlgydF4y2Ba= fitcecoc (gydF4y2Ba资源描述gydF4y2Ba,gydF4y2BaYgydF4y2Ba)gydF4y2Ba使用表中的预测器返回一个ECOC模型gydF4y2Ba资源描述gydF4y2Ba类的标签是向量gydF4y2BaYgydF4y2Ba。gydF4y2Ba

MdlgydF4y2Ba= fitcecoc (gydF4y2BaXgydF4y2Ba,gydF4y2BaYgydF4y2Ba)gydF4y2Ba返回使用预测器的完整训练ECOC模型gydF4y2BaXgydF4y2Ba还有类别标签gydF4y2BaYgydF4y2Ba。gydF4y2Ba

MdlgydF4y2Ba= fitcecoc (gydF4y2Ba___gydF4y2Ba,gydF4y2Ba名称,值gydF4y2Ba)gydF4y2Ba返回一个ECOC模型,其中包含一个或多个指定的附加选项gydF4y2Ba名称,值gydF4y2Ba对参数,使用前面的任何语法。例如,指定不同的二进制学习器、不同的编码设计或交叉验证。方法进行交叉验证是一种良好的实践gydF4y2BaKfoldgydF4y2Ba名称,值gydF4y2Ba对参数。交叉验证结果决定了ECOC分类器的泛化效果。gydF4y2Ba

如果指定以下五个选项之一,则gydF4y2BaMdlgydF4y2Ba是一个gydF4y2BaClassificationPartitionedECOCgydF4y2Ba模型:gydF4y2Ba“CrossVal”gydF4y2Ba,gydF4y2Ba“CVPartition”gydF4y2Ba,gydF4y2Ba“坚持”gydF4y2Ba,gydF4y2Ba“KFold”gydF4y2Ba,或gydF4y2Ba“Leaveout”gydF4y2Ba。否则,gydF4y2BaMdlgydF4y2Ba是一个gydF4y2BaClassificationECOCgydF4y2Ba分类器。gydF4y2Ba

输入参数gydF4y2Ba

全部展开gydF4y2Ba

示例数据,指定为表。每行gydF4y2Ba资源描述gydF4y2Ba对应一个观测值,每一列对应一个预测值。可选地,gydF4y2Ba资源描述gydF4y2Ba可以为响应变量包含一个额外的列。不接受多列变量和字符向量单元格数组以外的单元格数组。gydF4y2Ba

如果gydF4y2Ba资源描述gydF4y2Ba包含响应变量,您希望在中使用所有剩余变量gydF4y2Ba资源描述gydF4y2Ba作为预测器,然后使用指定响应变量gydF4y2BaResponseVarNamegydF4y2Ba。gydF4y2Ba

如果gydF4y2Ba资源描述gydF4y2Ba包含响应变量,并且您希望仅在中使用其余变量的子集gydF4y2Ba资源描述gydF4y2Ba作为预测器,指定使用的公式gydF4y2Ba公式gydF4y2Ba。gydF4y2Ba

如果gydF4y2Ba资源描述gydF4y2Ba不包含响应变量,指定响应变量使用gydF4y2BaYgydF4y2Ba。响应变量的长度和个数gydF4y2Ba资源描述gydF4y2Ba行必须相等。gydF4y2Ba

请注意gydF4y2Ba

为了训练线性分类模型,gydF4y2BafitcecocgydF4y2Ba不支持表。万博1manbetx也就是说,如果gydF4y2Ba学习者gydF4y2Ba是gydF4y2Ba“线性”gydF4y2Ba或包含线性分类模型学习器模板(参见gydF4y2BatemplateLineargydF4y2Ba),你不能供应gydF4y2Ba资源描述gydF4y2Ba,gydF4y2BaResponseVarNamegydF4y2Ba,或gydF4y2Ba公式gydF4y2Ba。提供预测数据矩阵(gydF4y2BaXgydF4y2Ba)和一个响应数组(gydF4y2BaYgydF4y2Ba)。gydF4y2Ba

数据类型:gydF4y2Ba表格gydF4y2Ba

响应变量名,指定为中的变量名gydF4y2Ba资源描述gydF4y2Ba。gydF4y2Ba

您必须指定gydF4y2BaResponseVarNamegydF4y2Ba作为一个字符向量。例如,如果响应变量gydF4y2BaYgydF4y2Ba存储为gydF4y2Ba资源描述。YgydF4y2Ba,然后指定为gydF4y2Ba“Y”gydF4y2Ba。否则,软件处理的所有列gydF4y2Ba资源描述gydF4y2Ba,包括gydF4y2BaYgydF4y2Ba,作为训练模型时的预测因子。gydF4y2Ba

响应变量必须是类别数组或字符数组、逻辑向量或数字向量或字符向量的单元格数组。如果gydF4y2BaYgydF4y2Ba是字符数组,则响应变量的每个元素必须对应于数组中的一行。gydF4y2Ba

类指定类的顺序是一个很好的实践gydF4y2Ba一会gydF4y2Ba名称-值对参数。gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba

解释模型的响应和预测变量的子集,以特征向量的形式指定gydF4y2Ba“Y ~ X1 + X2 + X3”gydF4y2Ba。在这种形式下,gydF4y2BaYgydF4y2Ba表示响应变量,和gydF4y2BaX1gydF4y2Ba,gydF4y2BaX2gydF4y2Ba,gydF4y2BaX3gydF4y2Ba表示预测变量。变量名称必须为gydF4y2Ba资源描述gydF4y2Ba(gydF4y2BaTbl.Properties.VariableNamesgydF4y2Ba).gydF4y2Ba

中指定变量的子集gydF4y2Ba资源描述gydF4y2Ba使用公式作为训练模型的预测因子。如果您指定了一个公式,那么该软件不使用任何变量gydF4y2Ba资源描述gydF4y2Ba没有出现在gydF4y2Ba公式gydF4y2Ba。gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba

ECOC模型训练到的类标签,指定为类别或字符数组、逻辑或数字向量或字符向量的单元格数组。gydF4y2Ba

如果gydF4y2BaYgydF4y2Ba是字符数组,则每个元素必须对应数组中的一行。gydF4y2Ba

的长度gydF4y2BaYgydF4y2Ba的行数gydF4y2Ba资源描述gydF4y2Ba或gydF4y2BaXgydF4y2Ba必须是相等的。gydF4y2Ba

类指定类顺序是一种良好的实践gydF4y2Ba一会gydF4y2Ba名称-值对参数。gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba细胞gydF4y2Ba|gydF4y2Ba分类gydF4y2Ba|gydF4y2Ba逻辑gydF4y2Ba|gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

ECOC分类器训练的预测器数据,指定为数值矩阵。gydF4y2Ba

  • 如果gydF4y2Ba学习者gydF4y2Ba是gydF4y2Ba“线性”gydF4y2Ba或包含线性分类模型学习器模板(参见gydF4y2BatemplateLineargydF4y2Ba),一排排的gydF4y2BaXgydF4y2Ba必须对应于预测器(特征)变量,列必须对应于观察结果(实例或示例)。这个方向增强了高维数据的内存分配管理。gydF4y2Ba

  • 否则,每一行gydF4y2BaXgydF4y2Ba对应于一个观察结果(也称为实例或示例),每一列对应于一个变量(也称为特征)。gydF4y2Ba

每行gydF4y2BaXgydF4y2Ba对应一个观察结果(也称为实例或示例),每一列对应一个预测器。gydF4y2Ba

的长度gydF4y2BaYgydF4y2Ba的行数gydF4y2BaXgydF4y2Ba必须是相等的。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba

请注意gydF4y2Ba

软件处理gydF4y2Ba南gydF4y2Ba,空字符向量(gydF4y2Ba”gydF4y2Ba),gydF4y2Ba<定义>gydF4y2Ba元素作为缺失的数据。该软件删除行gydF4y2BaXgydF4y2Ba中的缺失值对应gydF4y2BaYgydF4y2Ba。中缺失值的处理gydF4y2BaXgydF4y2Ba在二元学习器中有所不同。有关详细信息,请参阅二元学习器的训练函数:gydF4y2BafitcdiscrgydF4y2Ba,gydF4y2BafitcknngydF4y2Ba,gydF4y2BafitclineargydF4y2Ba,gydF4y2BafitcnbgydF4y2Ba,gydF4y2BafitcsvmgydF4y2Ba,gydF4y2BafitctreegydF4y2Ba,或gydF4y2BafitcensemblegydF4y2Ba。删除观察值会降低有效训练或交叉验证样本量。gydF4y2Ba

属性gydF4y2Ba

全部展开gydF4y2Ba

训练过的二进制学习器,指定为模型对象的单元向量。gydF4y2BaBinaryLearnersgydF4y2Ba与类一样多的元素gydF4y2BaYgydF4y2Ba。gydF4y2Ba

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

数据类型:gydF4y2Ba细胞gydF4y2Ba

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

如果你使用使用不同损失函数的二元学习器进行训练,那么软件就会设置gydF4y2BaBinaryLossgydF4y2Ba来gydF4y2Ba“汉明”gydF4y2Ba。属性在预测或损失计算过程中设置与此默认值不同的二进制损失函数,可潜在地提高精度gydF4y2BaBinaryLossgydF4y2Ba的名称-值对参数gydF4y2Ba预测gydF4y2Ba或gydF4y2Ba损失gydF4y2Ba。gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba

二进制学习器类标签,指定为数值矩阵。gydF4y2BaBinaryYgydF4y2Ba是一个gydF4y2BaNumObservationsgydF4y2Ba——- - - - - -gydF4y2BalgydF4y2Ba矩阵,gydF4y2BalgydF4y2Ba是二元学习器的数目(gydF4y2Ba大小(CodingMatrix, 2)gydF4y2Ba).gydF4y2Ba

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

价值gydF4y2Ba 二分类分配gydF4y2Ba
1gydF4y2Ba 负类gydF4y2Ba
0gydF4y2Ba 培训前,学习者gydF4y2BajgydF4y2Ba删除类中的观察值gydF4y2Ba我gydF4y2Ba从数据集中。gydF4y2Ba
1gydF4y2Ba 积极的课堂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

二进制学习器的类赋值代码,指定为数值矩阵。gydF4y2BaCodingMatrixgydF4y2Ba是一个gydF4y2BaKgydF4y2Ba——- - - - - -gydF4y2BalgydF4y2Ba矩阵,gydF4y2BaKgydF4y2Ba是班级的数量和gydF4y2BalgydF4y2Ba是二元学习器的数目。gydF4y2Ba

的元素gydF4y2BaCodingMatrixgydF4y2Ba是gydF4y2Ba1gydF4y2Ba,gydF4y2Ba0gydF4y2Ba,或gydF4y2Ba1gydF4y2Ba,该值对应于二分类的类赋值。的含义gydF4y2BaCodingMatrix (i, j)gydF4y2Ba即班即学习者gydF4y2BajgydF4y2Ba分配给课堂上的观察gydF4y2Ba我gydF4y2Ba。gydF4y2Ba

价值gydF4y2Ba 二分类分配gydF4y2Ba
1gydF4y2Ba 负类gydF4y2Ba
0gydF4y2Ba 培训前,学习者gydF4y2BajgydF4y2Ba删除类中的观察值gydF4y2Ba我gydF4y2Ba从数据集中。gydF4y2Ba
1gydF4y2Ba 积极的课堂gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba|gydF4y2Baint8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba

编码设计名称,指定为字符向量。详情请参见gydF4y2Ba编码设计gydF4y2Ba。gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba

此属性是只读的。gydF4y2Ba

错误分类代价,指定为方阵数字矩阵。gydF4y2Ba成本gydF4y2Ba有gydF4y2BaKgydF4y2Ba行和列,其中gydF4y2BaKgydF4y2Ba是类的数量。gydF4y2Ba

成本(gydF4y2Ba我gydF4y2Ba,gydF4y2BajgydF4y2Ba)gydF4y2Ba将一个点分类的成本是多少gydF4y2BajgydF4y2Ba如果它真正的阶级是gydF4y2Ba我gydF4y2Ba。的行和列的顺序gydF4y2Ba成本gydF4y2Ba中类的顺序对应gydF4y2Ba一会gydF4y2Ba。gydF4y2Ba

fitcecocgydF4y2Ba结合了不同类型二元学习器的错误分类代价。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba

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

如果模型对分类变量使用编码,则gydF4y2BaExpandedPredictorNamesgydF4y2Ba包括描述展开变量的名称。否则,gydF4y2BaExpandedPredictorNamesgydF4y2Ba和gydF4y2BaPredictorNamesgydF4y2Ba。gydF4y2Ba

超参数的交叉验证优化的描述,存储为gydF4y2BaBayesianOptimizationgydF4y2Ba对象或超参数及相关值的表。当gydF4y2BaOptimizeHyperparametersgydF4y2Ba名称-值对在创建时是非空的。属性的设置gydF4y2BaHyperparameterOptimizationOptionsgydF4y2Ba创建时的名称-值对:gydF4y2Ba

  • “bayesopt”gydF4y2Ba(默认)-类的对象gydF4y2BaBayesianOptimizationgydF4y2Ba

  • “gridsearch”gydF4y2Ba或gydF4y2Ba“randomsearch”gydF4y2Ba-使用的超参数表,观察到的目标函数值(交叉验证损失),以及从最低(最好)到最高(最差)的观察值排序gydF4y2Ba

数据类型:gydF4y2Ba表格gydF4y2Ba

二进制学习器权重,指定为数值行向量。gydF4y2BaLeanerWeightsgydF4y2Ba长度等于二元学习器的数量(gydF4y2Ba大小(CodingMatrix, 2)gydF4y2Ba).gydF4y2Ba

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

软件使用gydF4y2BaLearnerWeightsgydF4y2Ba通过最小化Kullback-Leibler散度来拟合后验概率。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba

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

访问属性gydF4y2BaModelParametersgydF4y2Ba使用点表示法。例如,列出包含二元学习器使用的参数的模板gydF4y2BaMdl.ModelParameters.BinaryLearnergydF4y2Ba。gydF4y2Ba

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

数据类型:gydF4y2Ba双gydF4y2Ba

预测器名称按其在预测器数据中出现的顺序排列(gydF4y2BaXgydF4y2Ba),指定为字符向量的单元格数组。的长度gydF4y2BaPredictorNamesgydF4y2Ba等于里面的列数gydF4y2BaXgydF4y2Ba。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 将得分最大的类的得分设置为gydF4y2Ba1gydF4y2Ba,并将所有其他类的分数设置为gydF4y2Ba0gydF4y2Ba
    分对数的gydF4y2Ba 1 / (1 +gydF4y2BaegydF4y2Ba- - - - - -gydF4y2BaxgydF4y2Ba)gydF4y2Ba
    “没有”gydF4y2Ba或gydF4y2Ba“身份”gydF4y2Ba xgydF4y2Ba(转换)gydF4y2Ba
    “标志”gydF4y2Ba 1gydF4y2BaxgydF4y2Ba< 0gydF4y2Ba
    为0gydF4y2BaxgydF4y2Ba= 0gydF4y2Ba
    1gydF4y2BaxgydF4y2Ba> 0gydF4y2Ba
    “对称”gydF4y2Ba 2gydF4y2BaxgydF4y2Ba- 1gydF4y2Ba
    “symmetricismax”gydF4y2Ba 将得分最大的类的得分设置为gydF4y2Ba1gydF4y2Ba,并将所有其他类的分数设置为gydF4y2Ba1gydF4y2Ba
    “symmetriclogit”gydF4y2Ba 2 / (1 +gydF4y2BaegydF4y2Ba- - - - - -gydF4y2BaxgydF4y2Ba) - 1gydF4y2Ba

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

    Mdl。ScoreTransform = @gydF4y2Ba函数gydF4y2Ba;gydF4y2Ba

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

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Bafunction_handlegydF4y2Ba

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

该软件将用于训练的权重规范化,以便gydF4y2Banansum (W)gydF4y2Ba是gydF4y2Ba1gydF4y2Ba。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

用于训练分类器的非标准化预测器数据,指定为数值矩阵。gydF4y2BaXgydF4y2Ba是一个gydF4y2BaNumObservationsgydF4y2Ba——- - - - - -gydF4y2BapgydF4y2Ba矩阵,gydF4y2BapgydF4y2Ba是预测因子的数量。gydF4y2Ba

每行gydF4y2BaXgydF4y2Ba对应一个观察结果,每一列对应一个变量。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

用于训练分类器的观察类标签,指定为类别或字符数组、逻辑或数字向量或字符向量的单元格数组。gydF4y2BaYgydF4y2Ba有gydF4y2BaNumObservationsgydF4y2Ba元素,并且是与输入参数相同的数据类型gydF4y2BaYgydF4y2Ba的gydF4y2BafitcecocgydF4y2Ba。gydF4y2Ba

每行gydF4y2BaYgydF4y2Ba的对应行所观察的分类gydF4y2Ba资源描述gydF4y2Ba或gydF4y2BaXgydF4y2Ba。gydF4y2Ba

方法gydF4y2Ba

紧凑的gydF4y2Ba 紧凑的多类,纠错输出代码模型gydF4y2Ba
crossvalgydF4y2Ba 交叉验证多类、纠错输出代码模型gydF4y2Ba
resubEdgegydF4y2Ba 基于多类、纠错输出编码的边缘分类模型gydF4y2Ba
resubLossgydF4y2Ba 多类纠错输出码模型的分类损失重替换gydF4y2Ba
resubMargingydF4y2Ba 基于多类纠错输出码模型的分类边界重构gydF4y2Ba
resubPredictgydF4y2Ba 预测多类、纠错输出代码模型的再替换响应gydF4y2Ba

继承的方法gydF4y2Ba

compareHoldoutgydF4y2Ba 比较使用新数据的两种分类模型的准确性gydF4y2Ba
discard万博1manbetxSupportVectorsgydF4y2Ba 舍弃线性支持向量万博1manbetx机二元学习器的支持向量gydF4y2Ba
边缘gydF4y2Ba 用于多类、纠错输出代码模型的分类边gydF4y2Ba
损失gydF4y2Ba 多类纠错输出码模型的分类损失gydF4y2Ba
保证金gydF4y2Ba 多类、纠错输出代码模型的分类裕度gydF4y2Ba
预测gydF4y2Ba 使用多类、纠错输出代码模型预测标签gydF4y2Ba
selectModelsgydF4y2Ba 选择正则化线性分类模型的子集gydF4y2Ba

复制语义gydF4y2Ba

价值。要了解值类如何影响复制操作,请参见gydF4y2Ba复制对象gydF4y2Ba(MATLAB)。gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

使用支持向量机(SVM)二元学习器训练一个纠错输出代码(ECOC)多类模型。万博1manbetxgydF4y2Ba

加载费雪的虹膜数据集。gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2BaX = meas;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使用SVM二元学习器,并使用一对一编码设计。你可以访问gydF4y2BaMdlgydF4y2Ba使用点表示法的属性。gydF4y2Ba

显示编码设计矩阵。gydF4y2Ba

Mdl。一会gydF4y2Ba
ans =gydF4y2Ba3x1单元阵列gydF4y2Ba{'setosa'} {'versicolor'} {'virginica'}gydF4y2Ba
编码垫= Mdl。CodingMatrixgydF4y2Ba
CodingMat =gydF4y2Ba3×3gydF4y2Ba1 1 0 -1 0 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 = classreg.learning.classif.CompactClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: [-1 1] ScoreTransform: 'none' Beta: [4x1 double]偏差:1.4505 KernelParameters: [1x1 struct]属性,方法gydF4y2Ba

计算样本内分类误差。gydF4y2Ba

isLoss = resubLoss(Mdl)gydF4y2Ba
isLoss = 0.0067gydF4y2Ba

分类误差很小,但分类器可能过拟合。可以使用交叉验证分类器gydF4y2BacrossvalgydF4y2Ba。gydF4y2Ba

您可以使用点表示法访问二元学习器的属性,例如估计的参数。gydF4y2Ba

加载费雪的虹膜数据集。使用花瓣尺寸作为预测器。gydF4y2Ba

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

使用SVM二元学习器和默认编码设计(一对一)训练ECOC分类器。标准化预测因子并保存支持向量。万博1manbetxgydF4y2Ba

t = templateSVM(gydF4y2Ba“标准化”gydF4y2Ba, 1gydF4y2Ba“Save万博1manbetxSupportVectors”gydF4y2Ba,真正的);predictorNames = {gydF4y2Ba“petalLength”gydF4y2Ba,gydF4y2Ba“petalWidth”gydF4y2Ba};responseName =gydF4y2Ba“irisSpecies”gydF4y2Ba;classNames = {gydF4y2Ba“setosa”gydF4y2Ba,gydF4y2Ba“多色的”gydF4y2Ba,gydF4y2Ba“virginica”gydF4y2Ba};gydF4y2Ba指定类别顺序gydF4y2BaMdl = fitcecoc(X,Y,gydF4y2Ba“学习者”gydF4y2BatgydF4y2Ba“ResponseName”gydF4y2BaresponseName,gydF4y2Ba…gydF4y2Ba“PredictorNames”gydF4y2BapredictorNames,gydF4y2Ba“类名”gydF4y2Ba类名)gydF4y2Ba

tgydF4y2Ba是包含支持向量机分类选项的模板对象。所有属性均为空(gydF4y2Ba[]gydF4y2Ba),除了gydF4y2Ba方法gydF4y2Ba,gydF4y2BaSave万博1manbetxSupportVectorsgydF4y2Ba,gydF4y2BaStandardizeDatagydF4y2Ba,gydF4y2Ba类型gydF4y2Ba。gydF4y2BafitcecocgydF4y2Ba使用空属性的默认值。gydF4y2BaMdlgydF4y2Ba是一个gydF4y2BaClassificationECOCgydF4y2Ba分类器。您可以使用点表示法访问它的属性。gydF4y2Ba

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

Mdl。一会Mdl。CodingMatrixl=年代我ze(Mdl.CodingMatrix,2);%支持向量机个数gydF4y2Ba

列对应SVM二元学习器,行对应不同的类。行顺序对应于gydF4y2Ba一会gydF4y2Ba的属性gydF4y2BaMdlgydF4y2Ba。对于每一列:gydF4y2Ba

  • 一个gydF4y2Ba1gydF4y2Ba表明gydF4y2BafitcecocgydF4y2Ba用对应班级的观察结果作为阳性组的成员来训练SVM。gydF4y2Ba

  • 一个gydF4y2Ba1gydF4y2Ba表明gydF4y2BafitcecocgydF4y2Ba使用对应类中的观察结果作为阴性组的成员来训练SVM。gydF4y2Ba

  • 一个gydF4y2Ba0gydF4y2Ba表示SVM没有使用对应类中的观测值。gydF4y2Ba

例如,gydF4y2BafitcecocgydF4y2Ba将所有观测值赋给gydF4y2Ba“setosa”gydF4y2Ba或gydF4y2Ba“多色的”gydF4y2Ba,但不是gydF4y2Ba“virginica”gydF4y2Ba在第一个SVM中。gydF4y2Ba

您可以使用单元格下标和点表示法访问svm的属性。存储每个支持向量机的标准化支持向量。万博1manbetx对支持向量进行非标准化。万博1manbetxgydF4y2Ba

sv = cell(L,1);gydF4y2Ba为支持向量指数预分配万博1manbetxgydF4y2Ba为gydF4y2Baj = 1:L;SVM = mld . binarylearners {j};sv{j} = SVM.万博1manbetxSupportVectors;sv {j} = bsxfun (@plus bsxfun (sv {j}, @times SVM.Sigma), SVM.Mu);gydF4y2Ba结束gydF4y2Ba

svgydF4y2Ba是包含支持向量机的非标准化支持向量的矩阵单元阵列。万博1manbetxgydF4y2Ba

绘制数据,并确定支持向量。万博1manbetxgydF4y2Ba

图;h = 0 (3 + L,1);gydF4y2Ba%为句柄预分配gydF4y2Bah(1:3) = gscatter(X(:,1),X(:,2),Y);持有gydF4y2Ba在gydF4y2Ba;标记= {gydF4y2Ba“柯”gydF4y2Ba,gydF4y2Ba“罗”gydF4y2Ba,gydF4y2Ba“波”gydF4y2Ba};gydF4y2Ba为gydF4y2Baj = 1:L;SVS = sv{j};H (j + 3) = plot(svs(:,1),svs(:,2),标记{j},gydF4y2Ba…gydF4y2Ba“MarkerSize”gydF4y2Ba,10 + (j - 1)*3);gydF4y2Ba结束gydF4y2Ba标题gydF4y2Ba“费希尔的虹膜——ECOC支持载体”万博1manbetxgydF4y2Ba;包含(predictorNames {1});ylabel (predictorNames {2});传奇(h,一会,{gydF4y2Ba支万博1manbetx持向量-支持向量机1gydF4y2Ba,gydF4y2Ba…gydF4y2Ba支万博1manbetx持向量- SVM 2gydF4y2Ba,gydF4y2Ba支万博1manbetx持向量-支持向量机3gydF4y2Ba}),gydF4y2Ba…gydF4y2Ba“位置”gydF4y2Ba,gydF4y2Ba“最佳”gydF4y2Ba)举行gydF4y2Ba从gydF4y2Ba

你可以通过gydF4y2BaMdlgydF4y2Ba:gydF4y2Ba

  • 预测gydF4y2Ba对新观测进行分类gydF4y2Ba

  • resubLossgydF4y2Ba估计样本内分类误差gydF4y2Ba

  • crossvalgydF4y2Ba执行10倍交叉验证。gydF4y2Ba

加载费雪的虹膜数据集。gydF4y2Ba

负载gydF4y2BafisheririsgydF4y2BaX = meas;Y =物种;rng (1);gydF4y2Ba%用于再现性gydF4y2Ba

创建SVM模板。标准化预测器是一种很好的实践。gydF4y2Ba

t = templateSVM(gydF4y2Ba“标准化”gydF4y2Ba, 1)gydF4y2Ba
t =拟合分类支持向量机模板。Alpha: [0x1 double] BoxConstraint: [] CacheSize: [] CachingMethod: " ClipAlphas: [] DeltaGradientTolerance: [] Epsilon: [] GapTolerance: [] kkttolance: [] IterationLimit: [] KernelFunction: " KernelScale: [] KernelOffset: [] kernelpoliialorder: [] NumPrint: [] Nu: [] OutlierFraction: [] removeduplicate: [] ShrinkagePeriod: [] Solver: " StandardizeData: 1 SaveSupportVe万博1manbetxctors: [] VerbosityLevel: [] Version: 2 Method: 'SVM' Type: 'classification'gydF4y2Ba

tgydF4y2Ba为支持向量机模板。它的所有属性都为空,除了gydF4y2BaStandardizeDatagydF4y2Ba,gydF4y2Ba方法gydF4y2Ba,gydF4y2Ba类型gydF4y2Ba。当软件训练ECOC分类器时,它将适用的属性设置为默认值。gydF4y2Ba

训练ECOC分类器。最好的做法是指定类的顺序。gydF4y2Ba

Mdl = fitcecoc(X,Y,gydF4y2Ba“学习者”gydF4y2BatgydF4y2Ba…gydF4y2Ba“类名”gydF4y2Ba, {gydF4y2Ba“setosa”gydF4y2Ba,gydF4y2Ba“多色的”gydF4y2Ba,gydF4y2Ba“virginica”gydF4y2Ba});gydF4y2Ba

MdlgydF4y2Ba是一个gydF4y2BaClassificationECOCgydF4y2Ba分类器。您可以使用点表示法访问它的属性。gydF4y2Ba

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

CVMdl = crossval(Mdl);gydF4y2Ba

CVMdlgydF4y2Ba是一个gydF4y2BaClassificationPartitionedECOCgydF4y2Ba交叉验证ECOC分类器。gydF4y2Ba

估计泛化误差。gydF4y2Ba

oosLoss = kfoldLoss(cvdl)gydF4y2Ba
oosLoss = 0.0400gydF4y2Ba

样本外分类误差为4%,说明ECOC分类器泛化效果较好。gydF4y2Ba

更多关于gydF4y2Ba

全部展开gydF4y2Ba

算法gydF4y2Ba

全部展开gydF4y2Ba

选择gydF4y2Ba

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

参考文献gydF4y2Ba

[1] Fürnkranz,约翰内斯。“循环式分类。”机器学习研究,Vol. 2, 2002, pp. 721-747。gydF4y2Ba

[2] Escalera, S., O. Pujol, P. Radeva。纠错输出码的稀疏设计的三进制码的可分性。模式识别通讯,第30卷,第3期,2009,页285-297。gydF4y2Ba

扩展功能gydF4y2Ba

在R2014b中引入gydF4y2Ba

这个话题有用吗?gydF4y2Ba