resubLoss

类:RegressionTree

通过resubstitution回归错误

句法

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,名称,值)

描述

大号= resubLoss(返回resubstitution损失,这意味着计算的数据损失fitrtree用于创建

大号= resubLoss(名称,值返回由一个或多个指定的使用附加选项损失名称,值对参数。您可以按照任何顺序指定多个名称 - 值对参数名1,值1,...,NameN,值N

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

[大号SE] = resubLoss(“子树”,subtreevector)返回分类错误的标准误差向量。

[大号SENLeaf] = resubLoss(“子树”,subtreevector)返回修剪序列的树的叶节点的数的矢量。

[大号SENLeafbestlevel] = resubLoss(“子树”,subtreevector)返回中的定义,最好的修剪水平的TreeSize名称 - 值对。默认,bestlevel是修剪水平,让损失降到最低的一个标准差之内的损失。

[L,...] = resubLoss(“子树”,subtreevector,名称,值由一个或多个指定的其他选项回报损失统计名称,值对参数。您可以按照任何顺序指定多个名称 - 值对参数名1,值1,...,NameN,值N

输入参数

展开全部

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

名称 - 值对参数

指定可选的用逗号分隔的对名称,值参数。名称是参数的名称和是对应的值。名称必须出现引号内。您可以按照任何顺序指定多个名称和值对参数名1,值1,...,NameN,值N

损失函数,指定为功能手柄或'MSE'这意味着均方误差。

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

数据类型:烧焦||function_handle

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

修剪水平,指定为逗号分隔的一对组成的“子树”和非负整数的升序排列的载体或'所有'

如果指定一个矢量,那么将所有元件必须至少0在最MAX(tree.PruneList)0指示充分,未修剪的树MAX(tree.PruneList)表示完全修剪树(即,只是根节点)。

如果您指定'所有', 然后resubLoss运行在所有子树(即,整个修剪序列)。本说明书是等效于使用0:最大(tree.PruneList)

resubLoss梅干每个电平表示在子树,然后估计相应的输出参数。的大小子树确定的一些输出参数的大小。

要调用子树,属性PruneListPruneAlpha不能是空的。换句话说,成长通过设置“修剪”,“上”,或通过修剪运用修剪

例:“子树”,“全部”

数据类型:||烧焦|

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

  • 'SE'-失利返回与损失最小的一个标准差之内的最高水平修剪(大号+SE,其中大号SE涉及在最小值子树)。

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

输出参数

展开全部

回归损失(均方误差),矢量的长度子树。错误的含义取决于价值观权重LossFun

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

在修剪子树的叶(终端节点)的数目,一个矢量的长度子树

标量,其价值取决于的TreeSize

  • 的TreeSize='SE'-失利返回与损失最小的一个标准差之内的最高水平修剪(大号+SE,其中大号SE涉及在最小值子树)。

  • 的TreeSize=“最小值”-失利返回的元素子树具有最小损耗,通常的最小元素子树

例子

展开全部

加载carsmall数据集。考虑移位马力重量作为响应的预测因子MPG

加载carsmallX = [位移马力重量];

生成,使用所有观测回归树。

MDL = fitrtree(X,MPG);

计算resubstitution MSE。

resubLoss(MDL)
ANS = 4.8952

未修剪决策树倾向于过度拟合。到平衡模型的复杂性和外的样本演奏的一种方法是修剪树(或限制其生长),使得样本内和外的样品性能是令人满意的。

加载carsmall数据集。考虑移位马力重量作为响应的预测因子MPG

加载carsmallX = [位移马力重量];Y = MPG;

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

N =尺寸(X,1);RNG(1)%用于重现idxTrn =假(N,1);idxTrn(randsample(N,圆形(0.5 * N)))= TRUE;%培训组逻辑指数idxVal = idxTrn == FALSE;%验证组逻辑指数

生成,使用训练集回归树。

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

查看回归树。

视图(MDL,'模式''图形');

回归树有七个修剪水平。Level 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个单位。

  • 对于修剪到1级树中的MSE是约6.3单位。

  • 对于树中的MSE修剪至6级(即,残端)为约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单位。

  • 对于树中的MSE修剪至6级(即,残端)为约38.5单位。

为了平衡模型的复杂性和外的样品性能,可以考虑修剪MDL到4级。

pruneMdl =剪枝(MDL,'水平',4);视图(pruneMdl,'模式''图形'

更多关于

展开全部

也可以看看

||