主要内容

resubLoss

类:RegressionTree

再代换的回归误差

语法

L = resubLoss(树)
L = resubLoss(树、名称、值)
L = resubLoss(树的子树,subtreevector)
(L, se) = resubLoss(树的子树,subtreevector)
[L, se, NLeaf] = resubLoss(树的子树,subtreevector)
[L, se, NLeaf bestlevel] = resubLoss(树的子树,subtreevector)
(L,…) = resubLoss(树的子树,subtreevector,名称,值)

描述

l= resubLoss (返回重新替换损失,即为该数据计算的损失fitrtree用于创建

l= resubLoss (名称,值返回由一个或多个指定的附加选项的损失名称,值对参数。可以以任意顺序指定多个名称-值对参数Name1, Value1,…,的家

l= resubLoss (“子树”subtreevector)返回修剪序列中树木的均方误差向量subtreevector

lse) = resubLoss (“子树”subtreevector)返回分类误差的标准误差向量。

lseNLeaf) = resubLoss (“子树”subtreevector)返回修剪序列的树中叶节点的数量向量。

lseNLeafbestlevel) = resubLoss (“子树”subtreevector)属性中定义的最佳修剪级别TreeSize名称-值对。默认情况下,bestlevel是在最小损失的一个标准差内给出损失的修剪级别。

(L,…) = resubLoss (“子树”subtreevector,名称,值返回由一个或多个指定的附加选项的损失统计信息名称,值对参数。可以以任意顺序指定多个名称-值对参数Name1, Value1,…,的家

输入参数

全部展开

回归树(RegressionTree模型对象)使用fitrtree

名称-值参数

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

损失函数,指定为函数句柄或mse的意思是均方误差。

您可以用中描述的语法编写自己的损失函数损失函数

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

名称,值与修剪子树相关的参数:

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

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

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

resubLoss李子的每一层子树,然后估计相应的输出参数。的大小子树确定某些输出参数的大小。

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

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

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

树的大小,指定为下列之一:

  • “本身”- - - - - -损失返回最高的修剪级别,损失在最小值的一个标准差内(l+se,在那里lse与中的最小值相关子树).

  • “最小值”- - - - - -损失返回子树以最小的损耗,通常是最小的元素子树

输出参数

全部展开

回归损失(均方误差),向量的长度子树.错误的含义取决于其中的值权重LossFun

标准误差的损失,矢量的长度子树

被修剪的子树的叶子(终端节点)的数量,向量的长度子树

标量,其值依赖于标量TreeSize

  • TreeSize“本身”- - - - - -损失返回最高的修剪级别,损失在最小值的一个标准差内(l+se,在那里lse与中的最小值相关子树).

  • TreeSize“最小值”- - - - - -损失返回子树以最小的损耗,通常是最小的元素子树

例子

全部展开

加载carsmall数据集。考虑位移马力,重量作为反应的预测器英里/加仑

负载carsmallX =[排量马力重量];

使用所有的观察结果生长一棵回归树。

Mdl = fitrtree (X, MPG);

计算重新替换MSE。

resubLoss (Mdl)
ans = 4.8952

未修剪的决策树往往会过度拟合。平衡模型复杂性和样本外性能的一种方法是对树进行修剪(或限制其生长),以使样本内和样本外性能都令人满意。

加载carsmall数据集。考虑位移马力,重量作为反应的预测器英里/加仑

负载carsmallX =[排量马力重量];Y = MPG;

将数据分成训练集(50%)和验证集(50%)。

n =大小(X, 1);rng (1)%的再现性idxTrn = false (n, 1);idxTrn (randsample (n,圆(0.5 * n))) = true;%训练集逻辑索引idxVal = idxTrn == false;%验证设置逻辑索引

使用训练集生长回归树。

Mdl = fitrtree (X (idxTrn:), Y (idxTrn));

查看回归树。

视图(Mdl,“模式”“图”);

图回归树查看器包含一个轴对象和其他类型的uimenu, uicontrol对象。axis对象包含27个类型为line, text的对象。

回归树有七个修剪级别。级别0是完整的、未修剪的树(如所示)。第7级只是根节点(即没有分割)。

检查每个子树(或修剪层次)的训练样本MSE,排除最高层次。

m = max(Mdl.PruneList) - 1;trnLoss = resubLoss (Mdl,“子树”0米):
trnLoss =7×15.9789 6.2768 6.8316 7.5209 8.3951 10.7452 14.8445
  • 完整未修剪的树的MSE约为6个单位。

  • 修剪到一级的树的MSE约为6.3个单位。

  • 修剪至第6级的树木(即树桩)的MSE约为14.8个单位。

检查除最高水平外的每个水平的验证样本MSE。

valLoss =损失(Mdl X (idxVal:), Y (idxVal),“子树”0米):
valLoss =7×132.1205 31.5035 32.0541 30.8183 26.3535 30.0137 38.4695
  • 对于完整的,未修剪的树(级别0)的MSE大约是32.1个单位。

  • 修剪到4级的树的MSE约为26.4个单位。

  • 修剪到5级的树的MSE约为30.0单位。

  • 修剪至第6级的树木(即树桩)的MSE约为38.5个单位。

为了平衡模型复杂性和样本外性能,可以考虑剪枝Mdl4级。

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

图回归树查看器包含一个轴对象和其他类型的uimenu, uicontrol对象。axis对象包含15个类型为line, text的对象。

更多关于

全部展开

扩展功能