损失
分类错误
语法
描述
返回一个标量代表多好l
=损失(树
,资源描述
,ResponseVarName
)树
分类的数据资源描述
,当TBL.ResponseVarName
包含真正的分类。
当计算损失,损失
规范类的概率Y
类概率用于训练,存储在之前
的属性树
。
输入参数
树
- - - - - -训练有素的分类树
ClassificationTree
模型对象|CompactClassificationTree
模型对象
训练有素的分类树,指定为一个ClassificationTree
或CompactClassificationTree
模型对象。也就是说,树
返回的是一个训练分类模型fitctree
或紧凑的
。
资源描述
- - - - - -样本数据
表
样本数据,指定为一个表。每一行的资源描述
对应于一个观察,每一列对应一个预测变量。可选地,资源描述
响应变量可以包含额外的列和观察权重。资源描述
必须包含所有的预测用于火车树
。多列变量和细胞数组以外的细胞阵列的特征向量是不允许的。
如果资源描述
包含响应变量用于火车树
,那么你不需要指定ResponseVarName
或Y
。
如果你训练树
使用包含在示例数据表
的输入数据,那么这个方法也必须在一个表中。
数据类型:表
ResponseVarName
- - - - - -响应变量名
一个变量的名字资源描述
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
LossFun
- - - - - -损失函数
“mincost”
(默认)|“binodeviance”
|“classifcost”
|“classiferror”
|“指数”
|“枢纽”
|分对数的
|“二次”
|函数处理
损失函数,指定为逗号分隔组成的“LossFun”
和一个内置的损失函数名或函数句柄。
下表列出了可用的损失函数。指定一个使用其相应的特征向量或字符串标量。
价值 描述 “binodeviance”
二项异常 “classifcost”
观察到的误分类代价 “classiferror”
被误诊率小数 “指数”
指数损失 “枢纽”
铰链的损失 分对数的
物流损失 “mincost”
最小的预期的误分类代价(后验概率的分类评分) “二次”
二次损失 “mincost”
适合分类后验概率的分数。分类树返回后验概率作为默认分类得分(见预测
)。指定你自己的函数使用函数处理符号。
假设
n
被观察的数量X
和K
不同的类的数目(元素个数(tree.ClassNames)
)。你的函数必须有这个签名lossvalue =
lossfun
(C、S、W、成本)输出参数
lossvalue
是一个标量。你选择函数名(
lossfun
)。C
是一个n
——- - - - - -K
逻辑矩阵行指示相应的观察所属的类。列顺序对应于类顺序tree.ClassNames
。构造
C
通过设置C (p, q) = 1
如果观察p
是在课堂上问
,为每一行。设置所有其他元素的行p
来0
。年代
是一个n
——- - - - - -K
数字矩阵分类的分数。列顺序对应于类顺序tree.ClassNames
。年代
分类是一个矩阵得分,类似的输出预测
。W
是一个n
1数字的观察向量权重。如果你通过W
,软件使他们和规范化1
。成本
是一个K——- - - - - -K
数字矩阵的误分类代价。例如,成本= 1 (K) -眼(K)
指定了一个成本0
正确的分类,1
误分类。
指定你的函数使用
“LossFun”@
。lossfun
损失函数的更多细节,请参阅分类损失。
数据类型:字符
|字符串
|function_handle
权重
- - - - - -观察权重
(大小(X, 1), 1)
(默认)|一个变量的名字资源描述
|数字矢量的积极的价值观
观察体重、指定为逗号分隔组成的“重量”
和积极的数字矢量值或变量的名称资源描述
。
如果您指定权重
作为一个数字矢量,然后的大小权重
必须等于中的行数X
或资源描述
。
如果您指定权重
作为一个变量的名字资源描述
作为一个角色,你必须这样做向量或字符串标量。例如,如果存储为权重TBL.W
,然后指定它' W '
。否则,软件将所有列资源描述
,包括TBL.W
预测因子。
损失
规范化权重,以便观察权重在每个类的先验概率和类。当你供应权重
,损失
计算加权分类损失。
数据类型:单
|双
|字符
|字符串
名称,值
参数与修剪树:
子树
- - - - - -修剪水平
0(默认)|向量的非负整数|“所有”
修剪水平,指定为逗号分隔组成的“子树”
和一个向量的非负整数按升序或“所有”
。
如果您指定一个矢量,然后所有的元素都必须至少0
在大多数马克斯(tree.PruneList)
。0
显示完整的,unpruned树马克斯(tree.PruneList)
表示完全修剪树(即。,只有根节点)。
如果您指定“所有”
,然后损失
运行在所有子树(即。,the entire pruning sequence). This specification is equivalent to using0:马克斯(tree.PruneList)
。
损失
李子树
每个级别表示子树
,然后估计相应的输出参数。的大小子树
确定一些输出参数的大小。
调用子树
,属性PruneList
和PruneAlpha
的树
必须非空的。换句话说,成长树
通过设置“删除”,“上”
,或者通过修剪树
使用修剪
。
例子:“子树”,“所有”
数据类型:单
|双
|字符
|字符串
TreeSize
- - - - - -树的大小
“本身”
(默认)|“最小值”
树的大小,指定为逗号分隔组成的“TreeSize”
和下列值之一:
“本身”
- - - - - -损失
回报最高的修剪与损失在一个最低的标准偏差(l
+se
,在那里l
和se
与最小的价值子树
)。“最小值”
- - - - - -损失
返回的元素子树
用最小的损失,通常的最小元素子树
。
输出参数
l
——分类损失
向量的标量值
分类损失,作为一个返回向量的长度子树
。错误的意义取决于价值观权重
和LossFun
。
se
-标准错误的损失
向量的标量值
标准错误的损失,作为一个向量的长度返回子树
。
NLeaf
——叶节点的数量
向量的整数值
数量的叶子在修剪树(终端节点),作为一个向量的长度返回子树
。
bestlevel
-最佳修剪水平
标量值
最好的修剪中定义的水平TreeSize
名称-值对,作为一个标量,其价值取决于返回TreeSize
:
TreeSize
=“本身”
- - - - - -损失
回报最高的修剪与损失在一个最低的标准偏差(l
+se
,在那里l
和se
与最小的价值子树
)。TreeSize
=“最小值”
- - - - - -损失
返回的元素子树
用最小的损失,通常的最小元素子树
。
默认情况下,bestlevel
修剪水平使损失在一个标准差最小损失。
例子
计算样本分类错误
检查每个子树的分类错误
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,“模式”,“图”);
分类树有四个修剪水平。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.
平衡模型复杂度和样本外的性能,考虑修剪Mdl
1级。
pruneMdl =修剪(Mdl,“水平”1);视图(pruneMdl,“模式”,“图”)
更多关于
分类损失
分类损失函数度量分类模型的预测误差。当你在考虑对比许多相同类型的损失模型,较低的损失表示一个更好的预测模型。
考虑以下场景。
l是加权平均分类损失。
n是样本容量。
二进制分类:
yj是观察到的类标签。软件代码为1或1,表明消极或积极类(或第一或第二课
一会
分别属性)。f(Xj观察)是positive-class分类评分(行)j预测的数据X。
米j=yjf(Xj)是分类的分类评分观察j相对应的类yj。积极的价值观米j显示正确的分类,不为平均损失作出多少贡献。负的米j显示不正确的分类和对平均损失作出了重大贡献。
对于支持多级分类的算法(即金宝appK≥3):
yj*是一个向量的K- 1 0与1的位置对应于真实,观察类yj。例如,如果真正的第二步是第三类的类K= 4,然后y2*= (
0 0 1 0
]′。类的顺序对应订单的一会
输入模型的属性。f(Xj)是长度K向量类分数的观察j预测的数据X。分数的顺序对应类的顺序
一会
输入模型的属性。米j=yj*′f(Xj)。因此,米j的标量分类评分模型预测真实,观察类。
观察的重量j是wj。软件可实现观察权重,这样他们和前到相应的类存储在概率
之前
财产。因此,
鉴于这种情况,下表描述了支持损失函数,您可以指定使用金宝appLossFun
名称-值参数。
损失函数 | 的价值LossFun |
方程 |
---|---|---|
二项异常 | “binodeviance” |
|
观察到的误分类代价 | “classifcost” |
在哪里 是最大的类标签对应类分数,然后呢 分类的用户指定的成本是一个观察到课吗 当它真正的类yj。 |
被误诊率小数 | “classiferror” |
在哪里我{·}是指标函数。 |
叉损失 | “crossentropy” |
加权熵损失
的权重 规范化和吗n而不是1。 |
指数损失 | “指数” |
|
铰链的损失 | “枢纽” |
|
分对数损失 | 分对数的 |
|
最小的预期错误分类成本 | “mincost” |
软件计算加权最小分类会带来成本使用这个过程观察j= 1,…,n。
加权平均的误分类代价最小的预期损失
|
二次损失 | “二次” |
如果你使用默认成本矩阵的元素值为0为不正确的分类正确的分类和1),那么损失值“classifcost”
,“classiferror”
,“mincost”
都是相同的。模型与一个默认的成本矩阵,“classifcost”
等于损失“mincost”
大部分的时间损失。这些损失可以是不同如果预测到最大后验概率的类是不同的从预测到类以最小的预期成本。请注意,“mincost”
只有分类是合适的分数是后验概率。
这个图比较了损失函数(除了“classifcost”
,“crossentropy”
,“mincost”
)得分米一个观察。一些函数归一化通过点(0,1)。
真正的误分类代价
真正的误分类代价的成本分类是一个观察到一个不正确的类。
您可以设置每类通过使用真正的误分类代价成本
名称-值参数当您创建分类器。成本(i, j)
分类的成本是一个观察到班呢j
当它真正的类我
。默认情况下,成本(i, j) = 1
如果我~ = j
,成本(i, j) = 0
如果我=我
。换句话说,是成本0
正确的分类和1
不正确的分类。
预期的误分类代价
每个观测是一个预期的错误分类成本分类观察到每个类的平均成本。
假设你有脑袋
观察你想要与训练的分类器进行分类,和你K
类。你把观测到一个矩阵X
有一个观察每一行。
预期成本矩阵CE
有大小脑袋
——- - - - - -K
。每一行的CE
包含预期的(平均)的观察到每个分类的成本K
类。CE (n,k)
是
地点:
K类的数量。
是类的后验概率我为观察X(n)。
是真正的错误分类的成本分类的观察k当它真正的类我。
分数(树)
对于树木,分数分类的一个叶节点的后验概率分类节点。的后验概率分类节点训练序列的数量,导致节点的分类,除以训练序列的数量,导致该节点。
例如,看到的后验概率定义分类树。
扩展功能
高大的数组
计算和数组的行比装入内存。
GPU数组
加速代码运行在一个图形处理单元(GPU)使用并行计算工具箱™。
MATLAB명령
다음MATLAB명령에해당하는링크를클릭했습니다。
명령을실행하려면MATLAB명령창에입력하십시오。웹브라우저는MATLAB명령을지원하지않습니다。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。