分类损失旨在分类模型
加载电离层
数据集。
负载电离层
一个分类树生长。
树= fitctree (X, Y);
旨在使用10倍交叉验证的分类树。
cvtree = crossval(树);
估计旨在分类错误。
L = kfoldLoss (cvtree)
L = 0.1083
加载电离层
数据集。
负载电离层
训练一个分类的100使用AdaBoostM1决策树。指定树桩作为弱的学习者。
t = templateTree (“MaxNumSplits”1);实体= fitcensemble (X, Y,“方法”,“AdaBoostM1”,“学习者”t);
旨在整体使用10倍交叉验证。
cvens = crossval (ens);
估计旨在分类错误。
L = kfoldLoss (cvens)
L = 0.0655
kfoldLoss
训练旨在广义相加模型(GAM) 10倍。然后,用kfoldLoss
计算累积交叉验证分类错误(错误分类率小数)。使用错误来确定最优数量的树木每预测(预测线性项)和最优数量的树/交互项。
或者,你可以找到的最优值fitcgam
通过使用名称-值参数OptimizeHyperparameters名称-值参数。例如,看到的优化使用OptimizeHyperparameters联欢。
加载电离层
数据集。这个数据集有34个预测因子和351二进制响应雷达回报,要么坏(“b”
)或好(‘g’
)。
负载电离层
通过使用默认创建一个旨在GAM交叉验证选择。指定“CrossVal”
名称-值参数为“上”
。指定包含所有可用的交互方面的p值不大于0.05。
rng (“默认”)%的再现性CVMdl = fitcgam (X, Y,“CrossVal”,“上”,“互动”,“所有”,“MaxPValue”,0.05);
如果您指定“模式”
作为“累积”
为kfoldLoss
,那么函数返回累积误差,获得的平均错误折叠所有使用相同数量的树木为每一个褶皱。显示的数量为每个折叠树。
CVMdl.NumTrainedPerFold
ans =结构体字段:PredictorTrees: [59 65 64 61 60 66 65 62 64 61] InteractionTrees: [1 2 2 2 2 1 2 2 2 2]
kfoldLoss
可以计算累计错误使用多达59预测树和一个交互树。
情节的累积,旨在10倍、分类错误(错误分类率小数)。指定“IncludeInteractions”
作为假
排除交互方面的计算。
L_noInteractions = kfoldLoss (CVMdl,“模式”,“累积”,“IncludeInteractions”、假);图绘制(0:min (CVMdl.NumTrainedPerFold.PredictorTrees) L_noInteractions)
的第一个元素L_noInteractions
是所有折叠的平均误差仅使用拦截获得(常数)。(J + 1
)th元素的L_noInteractions
使用拦截获得的平均误差项和第一J
预测树/线性项。绘制累计损失允许您监控误差变化预测树GAM数量的增加。
找到最小误差和预测树的数量达到最小误差。
[M,我]= min (L_noInteractions)
M = 0.0655
我= 23
GAM达到最小误差,它包括22个预测树。
计算分类累积误差同时使用线性项和交互项。
L = kfoldLoss (CVMdl,“模式”,“累积”)
L =2×10.0712 - 0.0712
的第一个元素l
获得的平均误差都折叠使用拦截(常数)项和所有预测树/线性项。第二个元素的l
使用拦截获得的平均误差项,所有预测树每线性项和一个交互树/交互项。错误交互条款时不会减少。
如果你满意错误预测树的数量是22时,您可以创建一个由训练单变量预测模型GAM和指定“NumTreesPerPredictor”, 22岁
没有交叉验证。
CVMdl
- - - - - -旨在分区分类器ClassificationPartitionedModel
对象|ClassificationPartitionedEnsemble
对象|ClassificationPartitionedGAM
对象旨在分区分类,指定为一个ClassificationPartitionedModel
,ClassificationPartitionedEnsemble
,或ClassificationPartitionedGAM
对象。你可以通过两种方式创建对象:
通过训练分类模型下面的表中列出的crossval
对象的功能。
训练分类模型使用一个函数中列出下表,并指定一个交叉验证函数的名称参数。
指定可选的逗号分隔条名称,值
参数。的名字
参数名称和吗价值
相应的价值。的名字
必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家
。
kfoldLoss (CVMdl“折叠”,[1 2 3 5])
指定使用第一,第二,第三,和第五折叠计算分类损失,但排除第四折。
折叠
- - - - - -褶皱指标使用1:CVMdl.KFold
(默认)|正整数向量褶皱指标使用,指定为一个正整数向量。的元素折叠
一定范围内1
来CVMdl.KFold
。
在指定的软件只使用折叠折叠
。
例子:“折叠”,[1 4 10]
数据类型:单
|双
IncludeInteractions
- - - - - -标志包括交互方面真正的
|假
标志包括交互模型,指定为真正的
或假
。这个论点是有效的只有一个广义相加模型(GAM)。也就是说,您可以指定这个论点只有当CVMdl
是ClassificationPartitionedGAM
。
默认值是真正的
如果模型CVMdl
(CVMdl.Trained
)包含交互方面。的值必须假
如果模型不包含交互方面。
数据类型:逻辑
LossFun
- - - - - -损失函数“classiferror”
|“binodeviance”
|“crossentropy”
|“指数”
|“枢纽”
|分对数的
|“mincost”
|“二次”
|函数处理损失函数,指定为一个内置的损失函数名或一个函数处理。违约损失函数取决于类型的模型CVMdl
。
默认值是“classiferror”
如果模型类型是一个整体,广义加性模型,神经网络、支持向量机分类器。金宝app
默认值是“mincost”
如果模型类型是判别分析,k最近的邻居,朴素贝叶斯、树分类器。
“classiferror”
和“mincost”
当你使用默认成本矩阵是等价的。看到算法为更多的信息。
此表列出了可用的损失函数。指定一个使用其相应的特征向量或字符串标量。
价值 | 描述 |
---|---|
“binodeviance” |
二项异常 |
“classiferror” |
被误诊率小数 |
“crossentropy” |
叉损失(神经网络) |
“指数” |
指数损失 |
“枢纽” |
铰链的损失 |
分对数的 |
物流损失 |
“mincost” |
最小的预期的误分类代价(后验概率的分类评分) |
“二次” |
二次损失 |
“mincost”
适合分类后验概率的分数。的预测
和kfoldPredict
判别分析的函数,广义加性模型,k最近的邻居,朴素贝叶斯、神经网络和树分类器返回默认这样的分数。
使用的整体模型“包”
或“子”
默认方法、分类分数后验概率。使用的整体模型“AdaBoostM1”
,“AdaBoostM2”
,GentleBoost
,或“LogitBoost”
方法,您可以使用后验概率作为分类的分数通过指定double-logit分数变换。例如,输入:
CVMdl。年代c或eTransform =“doublelogit”;
对于支持向量机模型,您可以指定使用后验概率作为分类分数设置“FitPosterior”,真的
当你旨在模型使用fitcsvm
。
指定你自己的函数使用函数处理符号。
假设n
在训练数据的观测数量(CVMdl.NumObservations
),K
类的数量(元素个数(CVMdl.ClassNames)
)。你的函数必须有签名lossvalue =
,地点:lossfun
(C、S、W、成本)
输出参数lossvalue
是一个标量。
你指定函数名(lossfun
)。
C
是一个n
——- - - - - -K
逻辑矩阵行指示相应的观察所属的类。列顺序对应于类顺序CVMdl.ClassNames
。
构造C
通过设置C (p, q) = 1
如果观察p
是在课堂上问
,为每一行。设置所有其他元素的行p
来0
。
年代
是一个n
——- - - - - -K
数字矩阵分类的分数。列顺序对应于类顺序CVMdl.ClassNames
。输入年代
类似的输出参数分数
的kfoldPredict
。
W
是一个n
1数字的观察向量权重。如果你通过W
,软件使其元素和规范化1
。
成本
是一个K
——- - - - - -K
数字矩阵的误分类代价。例如,成本= 1 (K) -眼(K)
指定了一个成本0
正确的分类,1
误分类。
指定你的函数使用“LossFun”@
。lossfun
损失函数的更多细节,请参阅分类损失。
例子:“LossFun”、“枢纽”
数据类型:字符
|字符串
|function_handle
模式
- - - - - -聚合级输出“平均”
(默认)|“个人”
|“累积”
聚合级的输出,指定为“平均”
,“个人”
,或“累积”
。
价值 | 描述 |
---|---|
“平均” |
输出是一个标量平均折叠。 |
“个人” |
的输出是一个向量的长度k包含一个值/褶皱,k是折叠的数量。 |
“累积” |
请注意 如果你想指定这个值,
|
例子:“模式”,“个人”
l
——分类损失分类损失,作为一个数字返回标量或数字列向量。
如果模式
是“平均”
,然后l
所有折叠的平均分类损失。
如果模式
是“个人”
,然后l
是一个k1数字列向量包含分类损失对于每一个褶皱,k是折叠的数量。
如果模式
是“累积”
和CVMdl
是ClassificationPartitionedEnsemble
,然后l
是一个分钟(CVMdl.NumTrainedPerFold)
1数字列向量。每个元素j
的平均分类损失所有的折叠功能获得通过使用乐团训练较差的学习者1:j
。
如果模式
是“累积”
和CVMdl
是ClassificationPartitionedGAM
,然后输出值取决于IncludeInteractions
价值。
如果IncludeInteractions
是假
,然后l
是一个(1 +分钟(NumTrainedPerFold.PredictorTrees))
1数字列向量。的第一个元素l
平均分类损失获得所有折叠,只使用拦截(常数)。的(j + 1)
th元素l
平均损失获得使用截距项和第一个吗j
预测树/线性项。
如果IncludeInteractions
是真正的
,然后l
是一个(1 +分钟(NumTrainedPerFold.InteractionTrees))
1数字列向量。的第一个元素l
平均分类损失所有的折叠是获得使用拦截(常数)项和所有预测树/线性项。的(j + 1)
th元素l
是使用截距项,获得的平均损失的所有预测树/线性项,第一j
交互树/交互项。
分类损失函数度量分类模型的预测误差。当你在考虑对比许多相同类型的损失模型,较低的损失表示一个更好的预测模型。
考虑以下场景。
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。软件可实现观察权重,这样他们和相应的前类概率。该软件还可实现先验概率之和为1。因此,
鉴于这种情况,下表描述了支持损失函数,您可以指定使用金宝app“LossFun”
名称-值对的论点。
损失函数 | 的价值LossFun |
方程 |
---|---|---|
二项异常 | “binodeviance” |
|
被误诊率小数 | “classiferror” |
是最大的类标签对应类的分数。我{·}是指标函数。 |
叉损失 | “crossentropy” |
加权熵损失
的权重 规范化和吗n而不是1。 |
指数损失 | “指数” |
|
铰链的损失 | “枢纽” |
|
分对数损失 | 分对数的 |
|
最小的预期错误分类成本 | “mincost” |
软件计算加权最小分类会带来成本使用这个过程观察j= 1,…,n。
加权平均的误分类代价最小的预期损失
如果你使用默认成本矩阵的元素值为0为不正确的分类正确的分类和1),然后 |
二次损失 | “二次” |
这个图比较了损失函数(除了“crossentropy”
和“mincost”
)得分米一个观察。一些函数归一化通过点(0,1)。
kfoldLoss
计算分类中描述相应的损失损失
对象的功能。模型相关的描述,看到合适的损失
下面的表函数引用页面。
使用笔记和限制:
这个函数完全支持GPU以下旨在模型对象的金宝app数组:
系综分类器训练fitcensemble
k最近的邻居分类器训练fitcknn
金宝app支持向量机分类器训练fitcsvm
二叉决策树的多类分类培训fitctree
有关更多信息,请参见运行在GPU MATLAB函数(并行计算工具箱)。
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。