Classifiedecoc.gydF4y2Ba

支持向量机(SVM)和其他分类器的多牌型号万博1manbetxgydF4y2Ba

描述gydF4y2Ba

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

创建gydF4y2Ba

创建一个gydF4y2BaClassifiedecoc.gydF4y2Ba通过使用gydF4y2BaFitcecoc.gydF4y2Ba.gydF4y2Ba

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

特性gydF4y2Ba

展开全部gydF4y2Ba

创建一个gydF4y2BaClassifiedecoc.gydF4y2Ba模型对象,可以使用点表示法来访问其属性。例如,看到gydF4y2Ba使用SVM学习者列车多标配模型gydF4y2Ba.gydF4y2Ba

ecoc属性gydF4y2Ba

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

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

数据类型:gydF4y2Ba细胞gydF4y2Ba

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

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

数据类型:gydF4y2BachargydF4y2Ba

二进制学习者类标签,指定为数字矩阵。gydF4y2BaBinaryYgydF4y2Ba是A.gydF4y2BaNumObservationsgydF4y2Ba-经过-gydF4y2BalgydF4y2Ba矩阵,其中gydF4y2BalgydF4y2Ba是二进制学习者的数量(gydF4y2Ba长度(Mdl.BinaryLearners)gydF4y2Ba)。gydF4y2Ba

要点gydF4y2BaBinaryYgydF4y2Ba是gydF4y2Ba-1gydF4y2Ba,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

数字预测器的Bin边缘,指定为单元数组gydF4y2BapgydF4y2Ba数字向量,在哪里gydF4y2BapgydF4y2Ba是预测因子的数量。每个向量包括数值预测器的bin边缘。分类预测器的单元格数组中的元素是空的,因为软件没有装入分类预测器。gydF4y2Ba

只有当您指定gydF4y2Ba'numbins'gydF4y2Ba名称 - 值对参数作为正整数标量培训与树学习者的模型。的gydF4y2Ba毕业生gydF4y2Ba房产是空的gydF4y2Ba'numbins'gydF4y2BaValue为空(默认)。gydF4y2Ba

您可以重现Binned Predictor数据gydF4y2Baxbinned.gydF4y2Ba通过使用gydF4y2Ba毕业生gydF4y2Ba培训模型的财产gydF4y2BaMDL.gydF4y2Ba.gydF4y2Ba

x = mdl.x;%predictor数据xbinned = zeros(size(x));边缘= mdl.bineges;%查找箱预测因子的指数。idxnumeric = find(〜cellfun(@ isempty,边));如果是iscumn(idxnumeric)idxnumeric = idxnumeric';j = idxnumeric x = x(:,j);如果x是表,%将x转换为数组。如果是Istable(x)x = table2array(x);结束%X通过使用X进入垃圾箱gydF4y2Ba离散化gydF4y2Ba功能。xbinned =离散化(x,[ -  inf;边缘{j}; inf]);Xbinned(:,j)= xbinned;结束gydF4y2Ba
xbinned.gydF4y2Ba包含单位,范围为1到箱数,用于数字预测器。gydF4y2Baxbinned.gydF4y2Ba对于分类预测器,值为0。如果gydF4y2BaXgydF4y2Ba包含gydF4y2Ba南gydF4y2Bas,然后相应的gydF4y2Baxbinned.gydF4y2Ba值是gydF4y2Ba南gydF4y2Bas。gydF4y2Ba

数据类型:gydF4y2Ba细胞gydF4y2Ba

二进制学习者的类分配代码,指定为数字矩阵。gydF4y2BaCodingMatrixgydF4y2Ba是A.gydF4y2BaKgydF4y2Ba-经过-gydF4y2BalgydF4y2Ba矩阵,其中gydF4y2BaKgydF4y2Ba是班数和gydF4y2BalgydF4y2Ba是二元学习者的数量。gydF4y2Ba

元素gydF4y2BaCodingMatrixgydF4y2Ba是gydF4y2Ba-1gydF4y2Ba,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|gydF4y2BaINT8.gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2BaINT32.gydF4y2Ba|gydF4y2BaINT64.gydF4y2Ba

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

数据类型:gydF4y2BachargydF4y2Ba

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

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

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

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

其他分类属性gydF4y2Ba

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

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

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

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

Fitcecoc.gydF4y2Ba在不同类型的二进制学习者中采用不同的错误分类代价。gydF4y2Ba

数据类型:gydF4y2Ba双倍的gydF4y2Ba

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

如果模型使用对分类变量的编码,那么gydF4y2BaExpandedPredictorNames.gydF4y2Ba包括描述扩展变量的名称。除此以外,gydF4y2BaExpandedPredictorNames.gydF4y2Ba和gydF4y2Ba预测gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba细胞gydF4y2Ba

参数值,例如名称值对参数值,用于培训Ecoc分类器,指定为对象。gydF4y2Ba模特分析者gydF4y2Ba不包含估计参数。gydF4y2Ba

访问的属性gydF4y2Ba模特分析者gydF4y2Ba使用点表示法。例如,通过使用列出包含二进制学习者参数的模板gydF4y2Bamdl.modelparameters.binarylearner.gydF4y2Ba.gydF4y2Ba

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

数据类型:gydF4y2Ba双倍的gydF4y2Ba

以预测仪数据在其外观的顺序的预测器名称gydF4y2BaXgydF4y2Ba,指定为字符向量的小区数组。长度gydF4y2Ba预测gydF4y2Ba等于列数gydF4y2BaXgydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba细胞gydF4y2Ba

此属性是只读的。gydF4y2Ba

先验类概率,指定为数值向量。gydF4y2Ba事先的gydF4y2Ba具有与类的数量一样多的元素gydF4y2Ba一会gydF4y2Ba,元素的顺序对应于类的顺序gydF4y2Ba一会gydF4y2Ba.gydF4y2Ba

Fitcecoc.gydF4y2Ba在不同类型的二进制学习者中采用不同的错误分类代价。gydF4y2Ba

数据类型:gydF4y2Ba双倍的gydF4y2Ba

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

数据类型:gydF4y2BachargydF4y2Ba

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

数据类型:gydF4y2Ba逻辑gydF4y2Ba

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

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

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

    mdl.scoretransform ='gydF4y2Ba功能gydF4y2Ba'gydF4y2Ba

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

  • 对于matlab.gydF4y2Ba®gydF4y2Ba函数或定义的函数输入其功能句柄。gydF4y2Ba

    mdl.scoretransform = @gydF4y2Ba功能gydF4y2Ba;gydF4y2Ba

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

数据类型:gydF4y2BachargydF4y2Ba|gydF4y2Bafunction_handlegydF4y2Ba

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

该软件将用于训练的重量标准化为此gydF4y2BaNANSUM(W)gydF4y2Ba是gydF4y2Ba1gydF4y2Ba.gydF4y2Ba

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

用于培训ECOC分类器的解控算预测数据,指定为数字矩阵或表。gydF4y2Ba

每一排gydF4y2BaXgydF4y2Ba对应于一个观察,并且每列对应于一个变量。gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双倍的gydF4y2Ba|gydF4y2Ba桌子gydF4y2Ba

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

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

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

HyperParameter优化属性gydF4y2Ba

封立参数的交叉验证优化的描述,指定为agydF4y2Ba贝叶斯偏见gydF4y2Ba对象或超参数和关联值的表。如果是,则此属性为非空gydF4y2Ba'OptimizeHyperParameters'gydF4y2Ba创建模型时,名称值对参数是非空的。的价值gydF4y2BaHyperparameterOptimizationResultsgydF4y2Ba取决于gydF4y2Ba优化器gydF4y2Ba田野gydF4y2BaHyperParameterOptimizationOptions.gydF4y2Ba创建模型时的结构,如此表格中所述。gydF4y2Ba

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

对象功能gydF4y2Ba

compareHoldoutgydF4y2Ba 使用新数据比较两个分类模型的精度gydF4y2Ba
袖珍的gydF4y2Ba 减少多种误差校正输出代码(ECOC)模型的大小gydF4y2Ba
crossvalgydF4y2Ba 交叉验证多款纠错输出代码(ECOC)模型gydF4y2Ba
丢弃普罗斯韦普万博1manbetx罗斯韦gydF4y2Ba 丢弃ecoc模型万博1manbetx中线性SVM二元学习者的支持向量gydF4y2Ba
边缘gydF4y2Ba 多种误差校正输出代码(ECOC)模型的分类边gydF4y2Ba
失利gydF4y2Ba 多种误差输出代码(ECOC)模型的分类损失gydF4y2Ba
利润gydF4y2Ba 用于多款纠错输出代码(ECOC)模型的分类边缘gydF4y2Ba
预测gydF4y2Ba 使用多款纠错输出代码(ECOC)模型进行分类观察gydF4y2Ba
resubEdgegydF4y2Ba 用于多款纠错输出代码(ECOC)模型的重新提交分类边缘gydF4y2Ba
resubLossgydF4y2Ba 多类纠错输出码(ECOC)模型的再替代分类损失gydF4y2Ba
重新提交gydF4y2Ba 用于多款纠错输出代码(ECOC)模型的重新提交分类边缘gydF4y2Ba
resubPredictgydF4y2Ba 在多种误差校正输出代码(ECOC)模型中分类观察gydF4y2Ba

例子gydF4y2Ba

全部收缩gydF4y2Ba

使用支持向量机(SVM)二进制学习者培训多种误差校正输出代码(ECOC)模型。万博1manbetxgydF4y2Ba

装载Fisher的Iris数据集。指定预测器数据gydF4y2BaXgydF4y2Ba和响应数据gydF4y2BaYgydF4y2Ba.gydF4y2Ba

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

使用默认选项列车多种多组ECOC模型。gydF4y2Ba

mdl = fitcecoc(x,y)gydF4y2Ba
mdl = classificationecoc challactename:'y'patporicalpricictors:[] classNames:{setosa''versicolor''virginica'} scoreTransform:'none'binarylearners:{3x1 cell} codingname:'OneVSONE'属性,方法gydF4y2Ba

MDL.gydF4y2Ba是A.gydF4y2BaClassifiedecoc.gydF4y2Ba模型。默认,gydF4y2BaFitcecoc.gydF4y2Ba使用SVM二进制学习者和一个与一个编码设计。你可以访问gydF4y2BaMDL.gydF4y2Ba使用点表示法的属性。gydF4y2Ba

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

mdl.classnames.gydF4y2Ba
ans =gydF4y2Ba3x1细胞gydF4y2Ba{'setosa'} {'versicolor'} {'virginica'}gydF4y2Ba
codingmat = mdl.codingmatrix.gydF4y2Ba
CodingMat =gydF4y2Ba3×3gydF4y2Ba1 1 0 -1 0 1 0 -1gydF4y2Ba

一个针对三个类的一对一编码设计产生了三个二进制学习者。的列gydF4y2BacodingmatgydF4y2Ba对应于学习者,并且行对应于类。班级订单与订单相同gydF4y2Bamdl.classnames.gydF4y2Ba.例如,gydF4y2BaCodingMat (: 1)gydF4y2Ba是gydF4y2Ba[1;-1;0]gydF4y2Ba表明该软件使用分类为的所有观测结果训练第一个SVM二元学习器gydF4y2Ba'setosa'gydF4y2Ba和gydF4y2Ba'versicolor'gydF4y2Ba.因为gydF4y2Ba'setosa'gydF4y2Ba对应于gydF4y2Ba1gydF4y2Ba,这是积极的课程;gydF4y2Ba'versicolor'gydF4y2Ba对应于gydF4y2Ba-1gydF4y2Ba,所以它是否定类。gydF4y2Ba

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

Mdl。BinaryLearners {1}gydF4y2Ba%第一个二元学习者gydF4y2Ba
ans = classReg.Learning.classif.Comp.ClassificationsVM Recopdename:'Y'类分类:[] ClassNames:[-1 1] ScorEtransform:'None'Beta:[4x1 Double]偏置:1.4505内核参数:[1x1 struct]属性,方法gydF4y2Ba

计算重新提交的分类错误。gydF4y2Ba

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

培训数据上的分类错误很小,但分类器可能是过度符合的模型。您可以使用跨验证分类器使用gydF4y2BacrossvalgydF4y2Ba并计算交叉验证分类错误。gydF4y2Ba

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

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

加载gydF4y2BafisheririsgydF4y2BaX = MEAS(:,3:4);Y =物种;gydF4y2Ba

使用SVM二进制学习者和默认编码设计列车常规分类器(一个与-One)。标准化预测器并保存支持向量。万博1manbetxgydF4y2Ba

t = templatesvm(gydF4y2Ba'标准化'gydF4y2Ba,真的,gydF4y2Ba'save万博1manbetxsupportvectors'gydF4y2Ba,真的);predictornames = {gydF4y2Ba'petallength'gydF4y2Ba,gydF4y2Ba'petalwidth'gydF4y2Ba};ReplateName =gydF4y2Ba'irisspecies'gydF4y2Ba;ClassNames = {gydF4y2Ba'setosa'gydF4y2Ba,gydF4y2Ba'versicolor'gydF4y2Ba,gydF4y2Ba'virginica'gydF4y2Ba};gydF4y2Ba%指定类订单gydF4y2Bamdl = fitcecoc(x,y,gydF4y2Ba“学习者”gydF4y2Ba,t,gydF4y2Ba“ResponseName”gydF4y2Ba,ractorybeame,gydF4y2Ba......gydF4y2Ba“PredictorNames”gydF4y2Ba,预测,gydF4y2Ba'classnames'gydF4y2Ba,classnames)gydF4y2Ba
mdl = classificationecoc predictornames:{'petallength''petalwidth'} racitchename:'irisspecies'patporicalpricictors:[] classnames:{'setosa''versicolor''virginica'} scoreTransform:'none'binarylearners:{3x1 cell} codingname:'Onevsone'属性,方法gydF4y2Ba

tgydF4y2Ba是一个包含SVM分类选项的模板对象。这个函数gydF4y2BaFitcecoc.gydF4y2Ba为空的(gydF4y2Ba[]gydF4y2Ba) 特性。gydF4y2BaMDL.gydF4y2Ba是A.gydF4y2BaClassifiedecoc.gydF4y2Ba分类器。您可以访问属性gydF4y2BaMDL.gydF4y2Ba使用点表示法。gydF4y2Ba

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

mdl.classnames.gydF4y2Ba
ans =gydF4y2Ba3x1细胞gydF4y2Ba{'setosa'} {'versicolor'} {'virginica'}gydF4y2Ba
Mdl。CodingMatrixgydF4y2Ba
ans =gydF4y2Ba3×3gydF4y2Ba1 1 0 -1 0 1 0 -1gydF4y2Ba

列对应SVM二进制学习者,行对应不同的类。行顺序与。中的顺序相同gydF4y2Ba一会gydF4y2Ba财产gydF4y2BaMDL.gydF4y2Ba.每一列:gydF4y2Ba

  • 1gydF4y2Ba表示gydF4y2BaFitcecoc.gydF4y2Ba使用相应类中的观察作为正组的成员进行培训SVM。gydF4y2Ba

  • -1gydF4y2Ba表示gydF4y2BaFitcecoc.gydF4y2Ba使用相应类中的观察作为负数组的成员培训SVM。gydF4y2Ba

  • 0gydF4y2Ba表示SVM不在相应类中使用观察。gydF4y2Ba

在第一个SVM中,例如,gydF4y2BaFitcecoc.gydF4y2Ba分配所有观察gydF4y2Ba'setosa'gydF4y2Ba或者gydF4y2Ba'versicolor'gydF4y2Ba, 但不是gydF4y2Ba'virginica'gydF4y2Ba.gydF4y2Ba

使用小区订户和点表示法访问SVM的属性。存储每个SVM的标准化支持向量。万博1manbetx解开支持向量。万博1manbetxgydF4y2Ba

l =大小(mdl.codingmatrix,2);gydF4y2Ba%支持向量机个数gydF4y2BaSV =细胞(L,1);gydF4y2Ba%预分配支持向量指数万博1manbetxgydF4y2Ba为了gydF4y2Baj = 1:L SVM = mdl . binary学习者{j};sv {j} = SVM万博1manbetx.SupportVectors;sv {j} = sv {j}。* SVM。σ+ SVM.Mu;gydF4y2Ba结束gydF4y2Ba

SV.gydF4y2Ba是包含用于SVM的非标准化支持载体的基质阵列。万博1manbetxgydF4y2Ba

绘制数据,并识别支持向量。万博1manbetxgydF4y2Ba

图gscatter (X (: 1), (:, 2), Y);持有gydF4y2Ba上gydF4y2Ba标记= {gydF4y2Ba'ko'gydF4y2Ba,gydF4y2Ba'ro'gydF4y2Ba,gydF4y2Ba'博'gydF4y2Ba};gydF4y2Ba%应该是长度lgydF4y2Ba为了gydF4y2Baj = 1:l svs = sv {j};绘图(SVS(:,1),SVS(:,2),标记{J},gydF4y2Ba......gydF4y2Ba'Markersize'gydF4y2Ba,10 +(J  -  1)* 3);gydF4y2Ba结束gydF4y2Ba标题(gydF4y2Ba'fisher'的虹膜 -  ecoc支持vec万博1manbetxtors'gydF4y2Ba)xlabel(predictornames {1})ylabel(predictornames {2})图例([classnames,{gydF4y2Ba'万博1manbetx支持vectors  -  SVM 1'gydF4y2Ba,gydF4y2Ba......gydF4y2Ba'万博1manbetx支持向量 -  SVM 2'gydF4y2Ba,gydF4y2Ba'万博1manbetx支持向量 -  SVM 3'gydF4y2Ba}),gydF4y2Ba......gydF4y2Ba'地点'gydF4y2Ba,gydF4y2Ba“最佳”gydF4y2Ba) 抓住gydF4y2Ba离开gydF4y2Ba

你可以通过gydF4y2BaMDL.gydF4y2Ba这些函数:gydF4y2Ba

  • 预测gydF4y2Ba,分类新观察gydF4y2Ba

  • resubLossgydF4y2Ba,估算培训数据的分类错误gydF4y2Ba

  • crossvalgydF4y2Ba,执行10倍的交叉验证gydF4y2Ba

使用SVM二进制学习者交叉验证ECOC分类器,并估计广义分类错误。gydF4y2Ba

装载Fisher的Iris数据集。指定预测器数据gydF4y2BaXgydF4y2Ba和响应数据gydF4y2BaYgydF4y2Ba.gydF4y2Ba

加载gydF4y2BafisheririsgydF4y2BaX =量;Y =物种;rng (1);gydF4y2Ba重复性的%gydF4y2Ba

创建SVM模板,并标准化预测器。gydF4y2Ba

t = templatesvm(gydF4y2Ba'标准化'gydF4y2Ba,真的)gydF4y2Ba
t =分类SVM的适合模板。alpha:[0x1 double] boxconstraint:[] cacheSize:[] cachingmethod:''clipalphas:[] settagradienttolerance:[] epsilon:[] gaptolerance:[] kkttolerance:[] kkttolerance:[] iterationLimit:[] ererationLimit:[] kernelfunction:'Kerneloffset:[] KernelPolynomialOrder:[] NumPrint:[] Nu:[] OutlieRFraction:[] recouptulaticates:[] ShrinkatePeriod:[] Solver:''标准化数据:1 SaveSupPortVectors:[] v万博1manbetxercoRyLevel:[]版本:2方法:2方法:2方法:2方法:'SVM'类型:'分类'gydF4y2Ba

tgydF4y2Ba是一个svm模板。大多数模板对象属性都是空的。培训ECOC分类器时,软件将适用的属性设置为其默认值。gydF4y2Ba

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

mdl = fitcecoc(x,y,gydF4y2Ba“学习者”gydF4y2Ba,t,gydF4y2Ba......gydF4y2Ba'classnames'gydF4y2Ba,{gydF4y2Ba'setosa'gydF4y2Ba,gydF4y2Ba'versicolor'gydF4y2Ba,gydF4y2Ba'virginica'gydF4y2Ba});gydF4y2Ba

MDL.gydF4y2Ba是A.gydF4y2BaClassifiedecoc.gydF4y2Ba分类器。您可以使用点表示法访问其属性。gydF4y2Ba

交叉验证gydF4y2BaMDL.gydF4y2Ba使用10倍交叉验证。gydF4y2Ba

cvmdl = crossval(mdl);gydF4y2Ba

cvmdl.gydF4y2Ba是A.gydF4y2BaClassificationedecoc.gydF4y2Ba交叉验证的Ecoc分类器。gydF4y2Ba

估计广义分类错误。gydF4y2Ba

generror = kfoldloss(cvmdl)gydF4y2Ba
generror = 0.0400.gydF4y2Ba

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

更多关于gydF4y2Ba

展开全部gydF4y2Ba

算法gydF4y2Ba

展开全部gydF4y2Ba

替代功能gydF4y2Ba

您可以使用这些替代算法来训练多字母模型:gydF4y2Ba

参考gydF4y2Ba

[1]Fürnkranz,约翰内斯。“循环罗宾分类。”gydF4y2Ba机床学习研究gydF4y2Ba,卷。2002年,第721-747页。gydF4y2Ba

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

扩展能力gydF4y2Ba

在R2014B中介绍gydF4y2Ba