主要内容

cvloss

类:ClassificationTree

交叉验证的分类错误

描述

E= cvloss (返回交叉验证的分类错误(丢失),一个分类树。的cvloss方法使用分层划分来创建交叉验证集。也就是说,对于每个折叠,数据的每个分区与用于训练的数据的类比例大致相同

ESE) = cvloss (返回的标准错误E

ESENleaf) = cvloss (的叶的个数

ESENleafBestLevel) = cvloss (返回的最佳修剪级别

___) = cvloss (名称,值使用由一个或多个选项指定的附加选项进行交叉验证名称,值对参数,使用任何前面的语法。可以以任意顺序指定多个名值对参数Name1, Value1,…,的家

输入参数

全部展开

训练过的分类树,指定为ClassificationTree生成的模型对象fitctree

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

修剪级别,指定为逗号分隔的对,由“子树”和一个由非负整数按升序或“所有”

如果指定了一个向量,那么所有元素必须是至少的0在大多数马克斯(tree.PruneList)0指示未修剪的完整树和马克斯(tree.PruneList)表示完全修剪的树(即仅根节点)。

如果您指定“所有”,然后cvloss操作所有子树(即整个修剪序列)。这个规范相当于使用0:马克斯(tree.PruneList)

cvloss李子中所示的每一级子树,然后估计相应的输出参数。的大小子树确定一些输出参数的大小。

调用子树,属性PruneList而且PruneAlpha必须非空的。换句话说,就是成长通过设置“删除”,“上”,或通过修剪使用修剪

例子:“子树”,“所有”

数据类型:||字符|字符串

树大小,指定为以下值之一:

  • “本身”- - - - - -cvloss使用最小树,其代价在最小代价的一个标准误差内。

  • “最小值”- - - - - -cvloss使用最小代价树。

例子:“TreeSize”,“最小值”

交叉验证样本的数量,指定为大于1的正整数。

例子:“KFold”,8

输出参数

全部展开

的设置,作为向量或标量返回的交叉验证分类错误(丢失)子树名称-值对。

的标准误差E属性的设置作为向量或标量返回子树名称-值对。

中的叶节点数属性的设置作为向量或标量返回子树名称-值对。叶节点是终端节点,它给出分类,而不是分割。

最佳修剪级别,作为标量值返回。默认情况下,表示达到值的最大修剪级别的标量ESE最小误差。如果你设置TreeSize“最小值”BestLevel最小的值在吗子树

例子

全部展开

计算默认分类树的交叉验证错误。

加载电离层数据集。

负载电离层

使用整个数据集生成一个分类树。

Mdl = fitctree (X, Y);

计算交叉验证误差。

rng (1);%的再现性E = cvloss (Mdl)
E = 0.1168

E是10倍的错误分类错误。

应用k-fold交叉验证,为所有子树找到修剪分类树的最佳级别。

加载电离层数据集。

负载电离层

使用整个数据集生成一个分类树。查看生成的树。

Mdl = fitctree (X, Y);视图(Mdl,“模式”“图”

{

计算除最高修剪级别外的每个子树的5倍交叉验证误差。指定返回所有子树的最佳修剪级别。

rng (1);%的再现性m = max(mml . prunelist) - 1
m = 7
[E, ~, ~, bestLevel] = cvloss (Mdl,“子树”, 0: m,“KFold”5)
E =8×10.1282 0.1254 0.1225 0.1282 0.1282 0.1197 0.0997 0.1738
bestLevel = 6

7修剪水平,最好的修剪水平是6

把这棵树修剪到最好的水平。查看生成的树。

MdlPrune =修剪(Mdl,“水平”, bestLevel);视图(MdlPrune,“模式”“图”

{

选择

您可以用crossval,叫kfoldLoss而不是cvloss.如果您要检查交叉验证的树不止一次,那么替代方案可以节省时间。

但是,与cvlosskfoldLoss不返回SENleaf,或BestLevelkfoldLoss也不允许您检查除分类错误以外的任何错误。

扩展功能

Baidu
map