主要内容

损失

分类错误

描述

l=损失(,资源描述,ResponseVarName)返回一个标量代表多好分类的数据资源描述,当TBL.ResponseVarName包含真正的分类。

当计算损失,损失规范类的概率Y类概率用于训练,存储在之前的属性

l=损失(,资源描述,Y)返回一个标量代表多好分类的数据资源描述,当Y包含真正的分类。

l=损失(,X,Y)返回一个标量代表多好分类的数据X,当Y包含真正的分类。

l=损失(___,名称,值)返回指定的一个或多个损失额外的选项名称,值对参数,使用任何以前的语法。例如,您可以指定损失函数或观察权重。

(l,se,NLeaf,bestlevel]=损失(___)还返回标准错误的向量分类错误(se),叶节点的数量的向量修剪的树木序列(NLeaf),最好的修剪中定义的水平TreeSize名称-值对(bestlevel)。

输入参数

全部展开

训练有素的分类树,指定为一个ClassificationTreeCompactClassificationTree模型对象。也就是说,返回的是一个训练分类模型fitctree紧凑的

样本数据,指定为一个表。每一行的资源描述对应于一个观察,每一列对应一个预测变量。可选地,资源描述响应变量可以包含额外的列和观察权重。资源描述必须包含所有的预测用于火车。多列变量和细胞数组以外的细胞阵列的特征向量是不允许的。

如果资源描述包含响应变量用于火车,那么你不需要指定ResponseVarNameY

如果你训练使用包含在示例数据的输入数据,那么这个方法也必须在一个表中。

数据类型:

数据分类,指定为一个数字矩阵。每一行的X代表一个观察,每一列代表一个预测。X必须有相同数量的列的数据用于火车X必须有相同数量的行元素的数量吗Y

数据类型:|

响应变量名称,指定为一个变量的名字资源描述。如果资源描述包含响应变量用于火车,那么你不需要指定ResponseVarName

如果您指定ResponseVarName作为一个角色,那么你必须这样做向量或字符串标量。例如,如果响应变量是存储为TBL.Response,然后指定它“响应”。否则,软件将所有列资源描述,包括TBL.ResponseVarName预测因子。

响应变量必须分类,字符,或字符串数组,逻辑或数值向量,或单元阵列的特征向量。如果响应变量是一个字符数组,数组的每个元素都必须对应一行。

数据类型:字符|字符串

指定的类标签,分类,特点,或字符串数组,一个逻辑或数值向量,或单元阵列的特征向量。Y必须是相同类型的分类用来训练吗,它的元素数量必须相同的行数的X

数据类型:分类|字符|字符串|逻辑|||细胞

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

损失函数,指定为逗号分隔组成的“LossFun”和一个内置的损失函数名或函数句柄。

  • 下表列出了可用的损失函数。指定一个使用其相应的特征向量或字符串标量。

    价值 描述
    “binodeviance” 二项异常
    “classifcost” 观察到的误分类代价
    “classiferror” 被误诊率小数
    “指数” 指数损失
    “枢纽” 铰链的损失
    分对数的 物流损失
    “mincost” 最小的预期的误分类代价(后验概率的分类评分)
    “二次” 二次损失

    “mincost”适合分类后验概率的分数。分类树返回后验概率作为默认分类得分(见预测)。

  • 指定你自己的函数使用函数处理符号。

    假设n被观察的数量XK不同的类的数目(元素个数(tree.ClassNames))。你的函数必须有这个签名

    lossvalue =lossfun(C、S、W、成本)
    地点:

    • 输出参数lossvalue是一个标量。

    • 你选择函数名(lossfun)。

    • C是一个n——- - - - - -K逻辑矩阵行指示相应的观察所属的类。列顺序对应于类顺序tree.ClassNames

      构造C通过设置C (p, q) = 1如果观察p是在课堂上,为每一行。设置所有其他元素的行p0

    • 年代是一个n——- - - - - -K数字矩阵分类的分数。列顺序对应于类顺序tree.ClassNames年代分类是一个矩阵得分,类似的输出预测

    • W是一个n1数字的观察向量权重。如果你通过W,软件使他们和规范化1

    • 成本是一个K——- - - - - -K数字矩阵的误分类代价。例如,成本= 1 (K) -眼(K)指定了一个成本0正确的分类,1误分类。

    指定你的函数使用“LossFun”@lossfun

损失函数的更多细节,请参阅分类损失

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

观察体重、指定为逗号分隔组成的“重量”和积极的数字矢量值或变量的名称资源描述

如果您指定权重作为一个数字矢量,然后的大小权重必须等于中的行数X资源描述

如果您指定权重作为一个变量的名字资源描述作为一个角色,你必须这样做向量或字符串标量。例如,如果存储为权重TBL.W,然后指定它' W '。否则,软件将所有列资源描述,包括TBL.W预测因子。

损失规范化权重,以便观察权重在每个类的先验概率和类。当你供应权重,损失计算加权分类损失。

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

名称,值参数与修剪树:

修剪水平,指定为逗号分隔组成的“子树”和一个向量的非负整数按升序或“所有”

如果您指定一个矢量,然后所有的元素都必须至少0在大多数马克斯(tree.PruneList)0显示完整的,unpruned树马克斯(tree.PruneList)表示完全修剪树(即。,只有根节点)。

如果您指定“所有”,然后损失运行在所有子树(即。,the entire pruning sequence). This specification is equivalent to using0:马克斯(tree.PruneList)

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

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

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

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

树的大小,指定为逗号分隔组成的“TreeSize”和下列值之一:

  • “本身”- - - - - -损失回报最高的修剪与损失在一个最低的标准偏差(l+se,在那里lse与最小的价值子树)。

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

输出参数

全部展开

分类损失,作为一个返回向量的长度子树。错误的意义取决于价值观权重LossFun

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

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

最好的修剪中定义的水平TreeSize名称-值对,作为一个标量,其价值取决于返回TreeSize:

  • TreeSize=“本身”- - - - - -损失回报最高的修剪与损失在一个最低的标准偏差(l+se,在那里lse与最小的价值子树)。

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

默认情况下,bestlevel修剪水平使损失在一个标准差最小损失。

例子

全部展开

计算的resubstituted分类错误电离层数据集。

负载电离层树= fitctree (X, Y);L =损失(树,X, Y)
L = 0.0114

Unpruned决策树overfit。平衡模型复杂度和样本外性能的一个方法是修剪树(或限制其增长)样本内和样本外,这样的性能是令人满意的。

加载费雪的虹膜数据集。数据分割成培训(50%)和验证(50%)。

负载fisheriris1)n =大小(量;rng (1)%的再现性idxTrn = false (n, 1);idxTrn (randsample (n,圆(0.5 * n))) = true;%训练集逻辑索引idxVal = idxTrn = = false;%验证设置合理的指标

使用训练集的分类树生长。

Mdl = fitctree(量(idxTrn:),物种(idxTrn));

查看分类树。

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

图分类树查看器包含一个坐标轴对象和其他对象类型uimenu uicontrol。坐标轴对象包含18行类型的对象,文本。一个或多个行显示的值只使用标记

分类树有四个修剪水平。0级是完整的,unpruned树(显示)。三级是根节点(即。,没有分裂)。

检查每个子树的训练样本分类错误(或修剪水平)扣除的最高水平。

m = max (Mdl.PruneList) - 1;trnLoss = resubLoss (Mdl,“子树”0米):
trnLoss =3×10.0267 0.0533 0.3067
  • 完整的,unpruned树分类约2.7%的训练观察。

  • 树修剪一级分类大约5.3%的训练观察。

  • 2级(即树修剪。,a stump) misclassifies about 30.6% of the training observations.

检查验证样本分类错误每一层不含的最高水平。

valLoss =损失(Mdl量(idxVal:),物种(idxVal),“子树”0米):
valLoss =3×10.0369 0.0237 0.3067
  • 完整的,unpruned树分类约3.7%的验证的观察。

  • 一级分类的树修剪约2.4%的验证的观察。

  • 2级(即树修剪。,a stump) misclassifies about 30.7% of the validation observations.

平衡模型复杂度和样本外的性能,考虑修剪Mdl1级。

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

图分类树查看器包含一个坐标轴对象和其他对象类型uimenu uicontrol。坐标轴对象包含12线类型的对象,文本。一个或多个行显示的值只使用标记

更多关于

全部展开

扩展功能