templateECOC年代pan>
纠错输出编码学习者模板
描述
例子
创建一个默认ECOC分类学习者模板
使用templateECOC
创建一个默认ECOC模板。
t = templateECOC ()
t =适合分类ECOC的模板。BinaryLearners:“编码:“FitPosterior:[]选项:[]VerbosityLevel: [] NumConcurrent:[]版本:1方法:“ECOC”类型:“分类”
模板对象的所有属性都是空的,除了方法
和类型
。当你通过t
来testckfold
,软件填写空的属性与各自的默认值。例如,软件填充BinaryLearners
财产与“支持向量机”
。其他默认值的详细信息,请参见fitcecoc
。
t
是一个计划,一个ECOC学习者。当您创建它,没有计算。你可以通过t
来testckfold
为ECOC指定一个计划与另一个模式分类模型统计比较。
统计比较两个ECOC分类模型的性能
选择预测或特性的一种方法是训练两个模型,使用预测的一个子集训练。统计模型的预测性能进行比较。如果有足够的证据表明,模型预测性能更好训练少于使用更多的预测模型的训练,那么你可以进行更有效的模型。
加载费雪的虹膜数据集。情节所有二维组合预测。
负载<年代pan style="color:#A020F0">fisheriris年代pan>d =大小(量,2);<年代pan style="color:#228B22">%的预测数量年代pan>对= nchoosek (1: d, 2)
对=<年代pan class="emphasis">6×21 2 3 1 4 2 3 4 2 3 4
为年代pan>j = 1:尺寸(对,1)次要情节(3 2 j) gscatter(量(:,对(j, 1)),量(:,对(j, 2)),物种)包含(sprintf (<年代pan style="color:#A020F0">“量(:,% d) '年代pan>双(j 1))) ylabel (sprintf (<年代pan style="color:#A020F0">“量(:,% d) '年代pan>双(j 2)))传奇<年代pan style="color:#A020F0">从年代pan>结束年代pan>
根据散点图,量(:3)
和量(:4)
似乎他们单独的组好。
创建一个ECOC模板。指定使用one-versus-all编码设计。
t = templateECOC (<年代pan style="color:#A020F0">“编码”年代pan>,<年代pan style="color:#A020F0">“onevsall”年代pan>);
默认情况下,ECOC线性SVM模型使用二进制学习者。你可以选择其他的,支持算法通过指定使用万博1manbetx“学习者”
名称-值对的论点。
测试是否一个ECOC模型,只是训练使用预测最多3和4执行以及ECOC使用所有预测模型的训练。拒绝零假设意味着训练使用的ECOC模型预测3和4执行比ECOC训练使用所有预测模型。假设<年代pan class="inlineequation"> 代表的分类误差ECOC模型训练使用预测3和4<年代pan class="inlineequation"> 代表的分类误差ECOC模型训练使用所有预测,然后测试:
默认情况下,testckfold
进行一个5×2<年代pan class="emphasis">k倍<年代pan class="emphasis">F测试,不适合作为一个单侧检验。指定一个5×2<年代pan class="emphasis">k倍<年代pan class="emphasis">t测试。
rng (1);<年代pan style="color:#228B22">%的再现性年代pan>[h, pValue] = testckfold (t, t,量(:,对(6,:)),量,物种,<年代pan style="color:#0000FF">…年代pan>“替代”年代pan>,<年代pan style="color:#A020F0">“更大的”年代pan>,<年代pan style="color:#A020F0">“测试”年代pan>,<年代pan style="color:#A020F0">“5 x2t”年代pan>)
h =<年代pan class="emphasis">逻辑0
pValue = 0.8940
的h = 0
表示没有足够的证据表明,使用预测模型训练3和4比模型训练使用更精确的预测。
输入参数
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:年代trong>“编码”、“ternarycomplete’,‘FitPosterior’,真的,“学习者”,“树”
指定一个三进制完整的编码设计,将分数后验概率,为所有二进制分类树生长的学习者。年代pan>
编码
- - - - - -<年代pan itemprop="purpose">编码设计年代pan>
“onevsone”
(默认)|<年代pan itemprop="inputvalue">“allpairs”
|<年代pan itemprop="inputvalue">“binarycomplete”
|<年代pan itemprop="inputvalue">“denserandom”
|<年代pan itemprop="inputvalue">“onevsall”
|<年代pan itemprop="inputvalue">“顺序”
|<年代pan itemprop="inputvalue">“sparserandom”
|<年代pan itemprop="inputvalue">“ternarycomplete”
|<年代pan itemprop="inputvalue">数字矩阵年代pan>
编码设计名称,指定为逗号分隔组成的“编码”
和一个数字矩阵或值表。
价值 | 二进制数的学习者 | 描述 |
---|---|---|
“allpairs” 和“onevsone” |
K(K- 1)/ 2 | 对于每一个二进制的学习者,一个类是正的,另一个是负的,忽略了其他的软件。这个设计就会耗尽所有的组合类作业。 |
“binarycomplete” |
这个设计分区的类所有二进制组合,而不忽略任何类。对于每一个二进制的学习者,随堂作业1 和1 至少有一个积极的类和一个负类的任务。 |
|
“denserandom” |
随机的,但大约10日志<年代ub>2年代ub>K | 对于每个二进制学习者,软件随机分配类为积极或消极类,每种类型的至少一个。更多细节,请参阅随机编码设计矩阵。 |
“onevsall” |
K | 对于每一个二进制的学习者,一个类是正的,其余的是负面的。这个设计就会耗尽所有积极的随堂作业的组合。 |
“顺序” |
K- 1 | 第一二进制学习者,第一节课是负的,其余的都是正的。第二二进制学习者,前两类是消极的,其余是积极的,等等。 |
“sparserandom” |
随机的,但大约15日志<年代ub>2年代ub>K | 对于每个二进制学习者,软件随机分配类作为每一个积极的还是消极的概率为0.25,0.5和忽略了类的概率。更多细节,请参阅随机编码设计矩阵。 |
“ternarycomplete” |
这个设计分区的类为所有三元组合。所有的随堂作业0 ,1 ,1 至少有一个积极的类和一个负类在每个任务。 |
您还可以指定一个编码设计使用自定义编码矩阵,这是一个K——- - - - - -l矩阵。每一行对应一个类和每一列对应一个二进制的学习者。类的顺序(行)对应的顺序一会
。创建矩阵通过遵循这些指南:
自定义编码矩阵的每个元素必须
1
,0
,或1
,价值必须对应一个二分类任务。考虑编码(i, j)
,学习者的类j
分配在课堂上观察我
。价值 两个类的任务 1
学习者 j
分配在课堂上观察我
一个负类。0
在培训之前,学习者 j
删除在课堂上观察我
从数据集。1
学习者 j
分配在课堂上观察我
一个积极的类。每一列必须包含至少一个
1
和一个1
。所有列的索引
我
,j
在哪里我
≠j
,编码(:,我)
不能平等编码(:,j)
,编码(:,我)
不能平等编码(:,j)
。所有的自定义编码矩阵的行必须是不同的。
为更多的细节在自定义编码设计矩阵的形式,明白了自定义编码设计矩阵。
例子:年代trong>“编码”、“ternarycomplete”
数据类型:年代trong>字符
|字符串
|双
|单
|int16
|int32
|int64
|int8
FitPosterior
- - - - - -<年代pan itemprop="purpose">标志指示是否将分数后验概率年代pan>
假
或0
(默认)|<年代pan itemprop="inputvalue">真正的
或1
标志指示是否将分数后验概率,指定为逗号分隔组成的“FitPosterior”
和一个真正的
(1
)或假
(0
)。
如果FitPosterior
是真正的
,那么软件转换binary-learner分类得分后验概率。你可以通过使用获得后验概率kfoldPredict
,预测
,或resubPredict
。
fitcecoc
不支持安装后验概率万博1manbetx如果:
整体方法
AdaBoostM2
,LPBoost
,RUSBoost
,RobustBoost
,或TotalBoost
。二进制学习者(
学习者
)是线性或内核实现了支持向量机分类模型。获得后验概率线性或内核分类模型,实现逻辑回归。
例子:年代trong>“FitPosterior”,真的
数据类型:年代trong>逻辑
学习者
- - - - - -<年代pan itemprop="purpose">二进制学习者模板年代pan>
“支持向量机”
(默认)|<年代pan itemprop="inputvalue">“判别”
|<年代pan itemprop="inputvalue">“内核”
|<年代pan itemprop="inputvalue">“资讯”
|<年代pan itemprop="inputvalue">“线性”
|<年代pan itemprop="inputvalue">“naivebayes”
|<年代pan itemprop="inputvalue">“树”
|<年代pan itemprop="inputvalue">模板对象年代pan>|<年代pan itemprop="inputvalue">细胞模板对象的向量年代pan>
二进制学习者模板,指定为逗号分隔组成的“学习者”
和一个特征向量,字符串标量,模板对象,或细胞模板对象的向量。具体来说,您可以指定二进制支持向量机等分类器,和使用的集合体GentleBoost
,LogitBoost
,RobustBoost
解决多类问题。然而,fitcecoc
还支持多级万博1manbetx模型作为二元分类器。
如果
学习者
是一个特征向量或字符串标量,然后软件火车每个二进制学习者使用的默认值指定的算法。这个表总结了可用的算法。价值 描述 “判别”
判别分析。默认选项,请参阅 templateDiscriminant
。“内核”
内核的分类模型。默认选项,请参阅 templateKernel
。“资讯”
k最近的邻居。默认选项,请参阅 templateKNN
。“线性”
线性分类模型。默认选项,请参阅 templateLinear
。“naivebayes”
朴素贝叶斯。默认选项,请参阅 templateNaiveBayes
。“支持向量机”
支持向量机。默认选项,请参阅 templateSVM
。“树”
分类树。默认选项,请参阅 templateTree
。如果
学习者
是一个模板对象,那么每个二进制学习者列车根据存储选项。您可以创建一个模板对象使用:templateDiscriminant
判别分析。templateEnsemble
整体学习。你必须至少指定学习方法(方法
),学习者的数量(NLearn
)和学习者的类型(学习者
)。你不能使用AdaBoostM2
合奏二进制方法学习。templateKernel
内核的分类。templateKNN
,因为k最近的邻居。templateLinear
线性分类。templateNaiveBayes
朴素贝叶斯。templateSVM
支持向量机。templateTree
分类树。
如果
学习者
是一个细胞向量模板对象,那么:
默认情况下,软件培训学习者使用默认支持向量机模板。
例子:年代trong>“学习者”,“树”
输出参数
t
——ECOC分类模板
模板对象年代pan>
ECOC分类模板,作为一个模板对象返回。通过t
来testckfold
指定如何创建一个ECOC分类器的预测性能要与另一个分类器。
如果你显示t
命令窗口,那么所有,未指定的选项出现空([]
)。然而,与相应的软件替换空选项默认值在训练。
算法
自定义编码设计矩阵
自定义编码矩阵必须有一定的形式。软件验证自定义编码矩阵通过确保:
每一个元素是1,0或1。
每一列包含至少一个1和一个1。
对所有不同的列向量u和v,u≠v和u≠-v。
行向量都是独一无二的。
矩阵可以单独的任何两个类。也就是说,您可以从任何其他行以下规则:
垂直移动从1到1或1比1。
水平从一个非零元素移动到另一个非零元素。
使用矩阵的列垂直移动一次。
如果它是不可能从行我行j使用这些规则,那么类我和j设计是不可分割的。例如,在编码设计
类1和2离不开类3和4(也就是说,您不能将水平从1行2列2因为那个位置包含一个0)。因此,拒绝这种编码设计的软件。
随机编码设计矩阵
对于一个给定的类的数量K,软件生成随机编码设计矩阵如下所示。
软件生成一个矩阵:
密集的随机-软件分配1或1等概率的每个元素K——- - - - - -l<年代ub>d年代ub>编码设计矩阵,<年代pan class="inlineequation"> 。
稀疏随机-软件分配1的每个元素K——- - - - - -l<年代ub>年代年代ub>编码设计矩阵的概率0.25,1概率为0.25,0.5和0的概率,在那里<年代pan class="inlineequation"> 。
如果一列不包含至少一个1和一个1,然后软件删除列。
对于不同的列u和v,如果u=v或u= -v,那么软件删除v从编码设计矩阵。
软件随机生成10000矩阵在默认情况下,保留了矩阵最大,最小,两两行基于汉明距离测量([2])由
在哪里米<年代ub>k<年代ub>j年代ub>l年代ub>是一种元素的编码设计矩阵j。
引用
[1]Furnkranz,约翰。“循环赛分类”。j·马赫。学习。Res。2卷,2002年,页721 - 747。
[2]Escalera, S。,O. Pujol, and P. Radeva. “Separability of ternary codes for sparse designs of error-correcting output codes.”Recog模式。列托人。问题3,卷。30日,2009年,页285 - 297。
版本历史
介绍了R2015a年代trong>
另请参阅
ClassificationECOC
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">fitcecoc
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">designecoc
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">templateDiscriminant
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">templateEnsemble
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">templateKNN
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">templateSVM
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">templateTree
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">预测
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">testckfold
MATLAB명령
다음MATLAB명령에해당하는링크를클릭했습니다。
명령을실행하려면MATLAB명령창에입력하십시오。웹브라우저는MATLAB명령을지원하지않습니다。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。