损失
朴素贝叶斯分类器分类损失
描述
例子
确定测试样本分类朴素贝叶斯分类器的损失
确定测试样本分类错误(损失)的朴素贝叶斯分类器。当你在考虑对比许多相同类型的损失模型,较低的损失表示一个更好的预测模型。
加载fisheriris
数据集创建。X
作为一个数字矩阵,包含四个花瓣测量150虹膜。创建Y
作为一个单元阵列包含相应的特征向量的虹膜的物种。
负载fisheririsX =量;Y =物种;rng (“默认”)%的再现性
随机观测分割成分层的训练集和测试集,使用类的信息Y
。指定一个抵抗30%样本进行测试。
简历= cvpartition (Y,“坚持”,0.30);
提取训练和测试指标。
trainInds =培训(简历);testInds =测试(简历);
指定的培训和测试数据集。
XTrain = X (trainInds:);YTrain = Y (trainInds);XTest = X (testInds:);欧美= Y (testInds);
使用预测训练朴素贝叶斯分类器XTrain
和类标签YTrain
。推荐的做法是指定类名。fitcnb
假定每一个预测是有条件和正态分布。
Mdl = fitcnb (XTrain YTrain,“类名”,{“setosa”,“多色的”,“virginica”})
Mdl = ClassificationNaiveBayes ResponseName:‘Y’CategoricalPredictors:[]类名:{“setosa”“杂色的”“virginica”} ScoreTransform:“没有一个”NumObservations: 105 DistributionNames:{“正常”“正常”“正常”“正常”}DistributionParameters: {} 3 x4细胞属性,方法
Mdl
是一个培训ClassificationNaiveBayes
分类器。
了解算法概括估计测试样本分类错误。
L =损失(Mdl XTest、欧美)
L = 0.0444
朴素贝叶斯分类器分类大约4%的测试样本。
你可能会降低分类错误通过指定更好的预测分布,当你训练的分类器fitcnb
。
确定测试样本分对数朴素贝叶斯分类器的损失
加载fisheriris
数据集创建。X
作为一个数字矩阵,包含四个花瓣测量150虹膜。创建Y
作为一个单元阵列包含相应的特征向量的虹膜的物种。
负载fisheririsX =量;Y =物种;rng (“默认”)%的再现性
随机观测分割成分层的训练集和测试集,使用类的信息Y
。指定一个抵抗30%样本进行测试。
简历= cvpartition (Y,“坚持”,0.30);
提取训练和测试指标。
trainInds =培训(简历);testInds =测试(简历);
指定的培训和测试数据集。
XTrain = X (trainInds:);YTrain = Y (trainInds);XTest = X (testInds:);欧美= Y (testInds);
使用预测训练朴素贝叶斯分类器XTrain
和类标签YTrain
。推荐的做法是指定类名。fitcnb
假定每一个预测是有条件和正态分布。
Mdl = fitcnb (XTrain YTrain,“类名”,{“setosa”,“多色的”,“virginica”});
Mdl
是一个培训ClassificationNaiveBayes
分类器。
了解估计算法概括的测试样本分对数的损失。
L =损失(Mdl XTest,欧美,“LossFun”,分对数的)
L = 0.3359
分对数损失大约是0.34。
输入参数
Mdl
- - - - - -朴素贝叶斯分类模型
ClassificationNaiveBayes
模型对象|CompactClassificationNaiveBayes
模型对象
朴素贝叶斯分类模型,指定为一个ClassificationNaiveBayes
模型对象或CompactClassificationNaiveBayes
模型对象返回的fitcnb
或紧凑的
,分别。
资源描述
- - - - - -样本数据
表
样本数据用于训练模型,指定为一个表。每一行的资源描述
对应于一个观察,每一列对应一个预测变量。资源描述
必须包含所有的预测用于火车Mdl
。多列变量和细胞数组以外的细胞阵列的特征向量是不允许的。可选地,资源描述
响应变量可以包含额外的列和观察权重。
如果你训练Mdl
使用样本数据包含在一个表中,然后输入数据损失
也必须在一个表中。
ResponseVarName
- - - - - -响应变量名
一个变量的名字资源描述
响应变量名称,指定为一个变量的名字资源描述
。
您必须指定ResponseVarName
作为一个特征向量或字符串标量。例如,如果响应变量y
存储为tbl.y
,然后指定它“y”
。否则,软件将所有列资源描述
,包括y
预测因子。
如果资源描述
包含响应变量用于火车Mdl
,那么你不需要指定ResponseVarName
。
响应变量必须分类,字符,或字符串数组,逻辑或数值向量,或单元阵列的特征向量。如果响应变量是一个字符数组,数组的每个元素都必须对应一行。
数据类型:字符
|字符串
X
- - - - - -预测数据
数字矩阵
预测数据,指定为一个数字矩阵。
每一行的X
对应于观测(也称为一个实例或例子),每一列对应一个变量(也称为功能)。变量的列X
必须与变量相同训练吗Mdl
分类器。
的长度Y
的行数X
必须是相等的。
数据类型:双
|单
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:损失(Mdl台,Y,“权重”,W)
重每一行的观察资源描述
使用相应的重量每一行的变量W
。
LossFun
- - - - - -损失函数
“mincost”
(默认)|“binodeviance”
|“classifcost”
|“classiferror”
|“指数”
|“枢纽”
|分对数的
|“二次”
|函数处理
损失函数,指定为逗号分隔组成的“LossFun”
和一个内置的损失函数名或函数句柄。
下表列出了可用的损失函数。指定一个使用其相应的特征向量或字符串标量。
价值 描述 “binodeviance”
二项异常 “classifcost”
观察到的误分类代价 “classiferror”
被误诊率小数 “指数”
指数损失 “枢纽”
铰链的损失 分对数的
物流损失 “mincost”
最小的预期的误分类代价(后验概率的分类评分) “二次”
二次损失 “mincost”
适合分类后验概率的分数。朴素贝叶斯模型返回后验概率作为默认分类得分(见预测
)。指定你自己的函数使用函数处理符号。
假设
n
观察的数量吗X
和K
不同的类的数目(元素个数(Mdl.ClassNames)
,在那里Mdl
是输入模型)。你的函数必须有这个签名lossvalue =
lossfun
(C、S、W、成本)输出参数
lossvalue
是一个标量。你指定函数名(
lossfun
)。C
是一个n
——- - - - - -K
逻辑矩阵行指示相应的观察所属的类。列顺序对应于类顺序Mdl.ClassNames
。创建
C
通过设置C (p, q) = 1
如果观察p
是在课堂上问
,为每一行。设置所有其他元素的行p
来0
。年代
是一个n
——- - - - - -K
数字矩阵分类的分数。列顺序对应于类顺序Mdl.ClassNames
。年代
分类是一个矩阵得分,类似的输出预测
。W
是一个n
1数字的观察向量权重。如果你通过W
,该软件可实现权重总和1
。成本
是一个K
——- - - - - -K
数字矩阵的误分类代价。例如,成本= 1 (K) -眼(K)
指定了一个成本0
正确的分类和1
误分类。
指定你的函数使用
“LossFun”@
。lossfun
损失函数的更多细节,请参阅分类损失。
数据类型:字符
|字符串
|function_handle
输出参数
l
——分类损失
标量
分类损失,作为一个标量返回。l
是一个泛化或resubstitution质量措施。它的解释取决于损失函数和加权方案;一般来说,更好的分类器产生较小的损失值。
更多关于
分类损失
分类损失函数度量分类模型的预测误差。当你在考虑对比许多相同类型的损失模型,较低的损失表示一个更好的预测模型。
考虑以下场景。
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)。
误分类代价
一个误分类代价分类器的相对严重程度标签是一个观察到错误的类。
存在两种类型的误分类代价:真正的和预期。让K类的数量。
真正的误分类代价——一个K——- - - - - -K矩阵,元素(我,j)表示一个观察到类分类的成本j如果它真正的类我。软件商店的误分类代价的财产
Mdl.Cost
在计算,并使用它。默认情况下,Mdl.Cost (i, j)
= 1,如果我
≠j
,Mdl.Cost (i, j)
= 0,如果我
=j
。换句话说,是成本0
正确的分类和1
对于任何不正确的分类。预期的误分类代价——一个K维向量,元素k分类的加权平均成本是一个观察到课吗k,由类的后验概率加权。
换句话说,软件将观察分为类预期最低的误分类代价。
后验概率
的后验概率的概率是一个观察属于一个特定的类,考虑到数据。
朴素贝叶斯的分类是后验概率k对于一个给定的观察(x1、……xP)是
地点:
的条件联合密度预测给他们上课吗k。
Mdl.DistributionNames
存储分布预测的名字。π(Y=k)是类的先验概率分布。
Mdl.Prior
存储先验分布。是联合密度的预测因子。类是离散的,所以
先验概率
的先验概率类的的假设相对频率观察类发生在一个人口。
扩展功能
高大的数组
计算和数组的行比装入内存。
这个函数完全支持高数组。金宝app您可以使用模型训练与这个函数在内存中或高数据。
有关更多信息,请参见高大的数组。
版本历史
介绍了R2014b
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。