主要内容

横梁

交叉验证多款纠错输出代码(ECOC)模型

描述

例子

CVMdl= Crossval(Mdl返回一个交叉验证(分区)的多类错误校正输出码(ECOC)模型(CVMdl)来自训练有素的ecoc模型(Mdl).默认情况下,横梁在培训数据上使用10倍的交叉验证以创建CVMdl,一个ClassificationPartitionedECOC模型。

例子

CVMdl= Crossval(Mdl名称,值返回分区ECOC模型,其中包含一个或多个名称值对参数指定的其他选项。例如,您可以指定折叠次数或保持样本比例。

例子

全部折叠

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

载入费雪的虹膜数据集。指定预测器数据X以及响应数据y

加载fisheririsx = meas;y =物种;RNG(1);%的再现性

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

t = templateSVM (“标准化”,真的)
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'类型:'分类'

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

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

Mdl = fitcecoc (X, Y,'学习者't......“类名”, {“setosa”“多色的”“virginica”});

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

交叉验证Mdl使用10倍交叉验证。

CVMdl = crossval (Mdl);

CVMdl是A.ClassificationPartitionedECOC交叉验证的Ecoc分类器。

估计广义分类误差。

generror = kfoldloss(cvmdl)
generror = 0.0400.

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

考虑到心律失常数据集。该数据集包含16类,其中13个在数据中表示。第一类表明受试者没有心律失常,最后一类表明未记录受试者的心律失常状态。其他类是表明心律失常严重程度的序数水平。

使用类别描述指定的自定义编码设计列车。

加载心律失常数据集。转变y到一个分类变量,并确定类的数量。

加载心律失常y =分类(y);k =独特(Y);%不同类别的数量

构造一个编码矩阵,描述类的性质。

OrdMat = designecoc(11日'序号');nOrdMat =大小(OrdMat);class1VSOrd = [1;1人(11日);0);class1VSClass16 = [1;1 0(11日);1);OrdVSClass16 = [0;1(11日); -1]; Coding = [class1VSOrd class1VSClass16 OrdVSClass16,......[0 (1, nOrdMat (2));OrdMat;0 (1, nOrdMat (2)];

使用自定义编码设计训练ECOC分类器(编码)和并行计算。指定一个由50个分类树组成的集合。

t = templateEnsemble (“GentleBoost”, 50岁,“树”);选择= statset ('使用指平行',真正的);Mdl = fitcecoc (X, Y,“编码”,编码,'学习者't“选项”、选择);
使用“local”配置文件启动并行池(parpool)…连接到并行池(工作人员数量:6)。

Mdl是A.ClassificationECOC模型。您可以使用点表示法访问其属性。

交叉验证Mdl使用8倍交叉验证和并行计算。

RNG(1);%的再现性cvmdl = crossval(mdl,“选项”,选项,'kfold'8);
警告:一个或多个折叠不包含所有组的点。

由于某些类相对频率低,因此一些折叠不会使用这些类的观察来训练。CVMdl是A.ClassificationPartitionedECOC交叉验证的ecoc模型。

使用并行计算估计泛化误差。

错误= kfoldLoss (CVMdl,“选项”,选项)
错误= 0.3208.

交叉验证的分类误差为32%,说明该模型泛化效果不佳。为了改进模型,尝试使用不同的增强方法(如RobustBoost)或不同的算法(如SVM)进行训练。

输入参数

全部折叠

完整培训的多种多组ecoc模型,指定为aClassificationECOC模型训练有素fitcecoc

名称-值对的观点

指定可选的逗号分离对名称,值参数。姓名是参数名称和价值为对应值。姓名必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:crossval (Mdl KFold, 3)指定在交叉验证模型中使用三次折叠。

交叉验证分区,指定为aCVPartition.分区对象由CVPartition..分区对象指定跨验证的类型和培训和验证集的索引。

要创建一个交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition坚持kfold., 或者忽略

例子:假设您使用以下方法创建了一个随机分区,用于对500个观测数据进行5倍交叉验证CVP = CVPARTING(500,'KFOLD',5).然后,您可以通过使用指定交叉验证的模型'cvpartition',cvp

用于抵抗验证的数据的一部分,指定为范围(0,1)中的标量值。如果您指定‘坚持’,p,然后软件完成以下步骤:

  1. 随机选择和保留p * 100数据的百分比作为验证数据,并使用其余数据训练模型。

  2. 存储紧凑型培训的模型训练有素的交叉验证模型的性质。

要创建一个交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition坚持kfold., 或者忽略

例子:“坚持”,0.1

数据类型:|单身的

在交叉验证模型中使用的折叠数,指定为大于1的正整数。如果您指定KFold, k,然后软件完成以下步骤:

  1. 将数据随机划分为K.集。

  2. 对于每个集合,保留该集合作为验证数据,并使用另一个来训练模型K.- 1集。

  3. 储存K.紧凑,训练模型在K.- 1个细胞矢量训练有素的交叉验证模型的性质。

要创建一个交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition坚持kfold., 或者忽略

例子:“KFold”,5

数据类型:单身的|

省略一交叉验证标志,指定为'在'“关闭”.如果您指定'留下','开'然后是每个人N观察(在哪里N不包括遗漏的观测数据,观测数据的数量是否在numobservations.该模型的属性),软件完成以下步骤:

  1. 保留作为验证数据的一个观察,并使用另一个培训模型N- 1观察。

  2. 储存N紧凑,训练模型在一个N- 1个细胞矢量训练有素的交叉验证模型的性质。

要创建一个交叉验证的模型,您只能指定以下四个名称-值参数中的一个:CVPartition坚持kfold., 或者忽略

例子:'留下','开'

估算选项,指定为逗号分隔对组成“选项”和返回的结构阵列statset

要调用并行计算:

  • 您需要一个并行计算工具箱™许可证。

  • 指定“选项”,statset (UseParallel,真的)

提示

  • 评估的预测性能Mdl在交叉验证数据使用“kfold”方法和性质CVMdl, 如Kfoldloss.

选择功能

而不是培训ecoc模型然后交叉验证它,您可以通过使用直接创建交叉验证的ECOC模型fitcecoc并指定其中一个名称-值对参数:“CrossVal”“CVPartition”'坚持''忽略', 或者'kfold'

扩展能力

介绍了R2014b