主要内容

损失

回归误差

描述

L=损失(,资源描述,ResponseVarName)返回预测值之间的均方误差的数据资源描述,与真实的回答相比资源描述。ResponseVarName

L=损失(,x,y)返回预测值之间的均方误差的数据x,与真实的回答相比y

L=损失(___,名称、值)使用一个或多个指定的附加选项计算预测中的错误名称、值使用前面的任何语法对参数。

[L,se,NLeaf,最佳水平] =损失(___)还返回损失的标准错误(se),树中的叶节点(终端节点)数量(NLeaf),以及(最佳水平).

输入参数

全部展开

训练的回归树,指定为RegressionTree对象由fitrtree或者CompactRegressionTree对象由紧凑的

预测器值,指定为浮点值矩阵。每一列的x表示一个变量,每行表示一个观察值。

数据类型:|

中的响应变量名,指定为变量名资源描述

您必须指定ResponseVarName作为字符向量或字符串标量。例如,如果响应变量y存储为待定,然后指定ResponseVarName作为“是的”.否则,软件将对所有列进行处理资源描述,包括y,作为训练模型时的预测器。

数据类型:字符|字符串

响应数据,指定为数字列向量,行数与x.每项y是对数据的对应行中的数据的响应x

数据类型:|

名称-值对参数

指定可选的逗号分隔的字符对名称、值参数。的名字是参数名和价值观为对应值。的名字必须出现在引号内。您可以按任意顺序指定多个名称和值对参数,如下所示:Name1, Value1,…,的家

损失函数,指定为逗号分隔对,由“LossFun”以及用于丢失的函数句柄,或mse的代表均方误差。如果你传递一个函数句柄乐趣,损失电话乐趣为:

乐趣(Y、Y、W)
  • Y是真实响应的向量。

  • 伊菲特是预测响应的向量。

  • W是观察权重。如果你通过W,元素被规范化为sum1

所有的向量都有相同的行数Y

例子:“LossFun”、“mse的

数据类型:功能手柄|字符|字符串

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

如果指定向量,则所有元素必须至少为0在大多数max(树形修剪列表)0表示完整的、未修剪的树max(树形修剪列表)表示被完全修剪的树(即根节点)。

如果您指定“全部”那么损失操作所有子树(即整个修剪序列)。此规范相当于使用0:max(tree.PruneList)

损失李子至中所示的每个级别子树,然后估计相应的输出参数子树确定某些输出参数的大小。

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

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

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

树大小,指定为逗号分隔对,由“树化”以及下列其中一项:

  • “本身”损失返回最佳水平所对应的最小树,其均方误差(MSE)在最小MSE的一个标准误差之内。

  • “最小值”损失返回最佳水平它对应于最小MSE树。

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

观察权值,指定为逗号分隔的对,由“重量”和一个标量值的向量。该软件对每一行的观察结果进行加权x资源描述在中具有相应的值砝码.的大小砝码必须等于中的行数x资源描述

如果您将输入数据指定为表资源描述那么砝码可以是变量的名称资源描述它包含一个数字向量。在这种情况下,您必须指定砝码作为变量名。例如,如果权重向量W存储为待定,然后指定砝码作为“W”.否则,软件将对所有列进行处理资源描述,包括W,作为训练模型时的预测器。

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

输出参数

全部展开

分类错误,作为向量返回的长度为子树.每棵树的误差为均方误差,加权砝码. 如果包括LossFun,L反映出计算出的损失LossFun

损失的标准错误,作为向量返回子树

修剪子树中的叶数(终端节点),作为长度的向量返回子树

中定义的最佳修剪级别TreeSize名称-值对,作为其值依赖于的标量返回TreeSize:

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

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

例子

全部展开

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

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

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

树= fitrtree (X, MPG);

估计样本内MSE。

L=损失(树,X,MPG)
L = 4.8952

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

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

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

Mdl = fitrtree (X, MPG);

查看回归树。

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

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

找出产生最佳样本损失的最佳修剪水平。

[L、se、NLeaf、bestLevel]=损失(Mdl、X、MPG、,“子树”,“全部”);bestLevel
bestLevel = 1

最佳的修剪级别是第1级。

将树修剪到第1级。

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

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

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

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

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

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

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

使用训练集生长回归树。

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

查看回归树。

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

图回归树查看器包含一个轴和其他类型的uimenu, uicontrol的对象。轴包含27个对象的类型行,文本。

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

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

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

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

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

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

valLoss =损失(Mdl X (idxVal:), Y (idxVal),“子树”,0:m)
瓦尔洛斯=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个单位。

要平衡模型复杂性和样本外性能,请考虑修剪Mdl到4级。

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

图回归树查看器包含一个轴和其他类型的uimenu, uicontrol的对象。轴包含15个对象的类型行,文本。

更多关于

全部展开

扩展功能

另见

|