主要内容

损失

朴素贝叶斯分类器分类损失

描述

l=损失(Mdl,资源描述,ResponseVarName)返回分类损失,一个标量代表的朴素贝叶斯分类器训练Mdl分类预测的数据表资源描述而真正的类标签tbl.ResponseVarName

损失规范类的概率tbl.ResponseVarName前类所使用的概率fitcnb存储在培训之前的属性Mdl

l=损失(Mdl,资源描述,Y)返回分类损失预测的数据表资源描述而真正的类标签Y

例子

l=损失(Mdl,X,Y)返回分类损失的基础上,预测数据矩阵X而真正的类标签Y

例子

l=损失(___,名称,值)指定选项使用一个或多个名称-值对参数除了任何输入参数组合在以前的语法。例如,您可以指定损失函数和分类权重。

例子

全部折叠

确定测试样本分类错误(损失)的朴素贝叶斯分类器。当你在考虑对比许多相同类型的损失模型,较低的损失表示一个更好的预测模型。

加载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。

输入参数

全部折叠

朴素贝叶斯分类模型,指定为一个ClassificationNaiveBayes模型对象或CompactClassificationNaiveBayes模型对象返回的fitcnb紧凑的,分别。

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

如果你训练Mdl使用样本数据包含在一个表中,然后输入数据损失也必须在一个表中。

响应变量名称,指定为一个变量的名字资源描述

您必须指定ResponseVarName作为一个特征向量或字符串标量。例如,如果响应变量y存储为tbl.y,然后指定它“y”。否则,软件将所有列资源描述,包括y预测因子。

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

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

数据类型:字符|字符串

预测数据,指定为一个数字矩阵。

每一行的X对应于观测(也称为一个实例例子),每一列对应一个变量(也称为功能)。变量的列X必须与变量相同训练吗Mdl分类器。

的长度Y的行数X必须是相等的。

数据类型:|

指定的类标签,分类,特点,或字符串数组,逻辑或数值向量,或单元阵列的特征向量。Y必须具有相同的数据类型Mdl.ClassNames(软件对字符串数组作为细胞阵列特征向量)。

的长度Y的行数必须等于资源描述X

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

名称-值参数

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

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

例子:损失(Mdl台,Y,“权重”,W)重每一行的观察资源描述使用相应的重量每一行的变量W

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

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

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

    “mincost”适合分类后验概率的分数。朴素贝叶斯模型返回后验概率作为默认分类得分(见预测)。

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

    假设n观察的数量吗XK不同的类的数目(元素个数(Mdl.ClassNames),在那里Mdl是输入模型)。你的函数必须有这个签名

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

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

    • 你指定函数名(lossfun)。

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

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

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

    • W是一个n1数字的观察向量权重。如果你通过W,该软件可实现权重总和1

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

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

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

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

观察体重、指定为一个数值向量或一个变量的名字资源描述。软件重每一行的观察X资源描述与相应的权重权重

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

如果您指定权重作为一个变量的名字资源描述,那么这个名字一定是一个特征向量或字符串标量。例如,如果存储为权重tbl.w,然后指定权重作为' w '。否则,软件将所有列资源描述,包括tbl.w预测因子。

如果你不指定一个损失函数,那么软件规范化权重加起来等于1

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

输出参数

全部折叠

分类损失,作为一个标量返回。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的标量分类评分模型预测真实,观察类。

  • 观察的重量jwj。软件可实现观察权重,这样他们和前到相应的类存储在概率之前财产。因此,

    j = 1 n w j = 1。

鉴于这种情况,下表描述了支持损失函数,您可以指定使用金宝appLossFun名称-值参数。

损失函数 的价值LossFun 方程
二项异常 “binodeviance” l = j = 1 n w j 日志 { 1 + 经验值 ( 2 j ] }
观察到的误分类代价 “classifcost”

l = j = 1 n w j c y j y ^ j ,

在哪里 y ^ j 是最大的类标签对应类分数,然后呢 c y j y ^ j 分类的用户指定的成本是一个观察到课吗 y ^ j 当它真正的类yj

被误诊率小数 “classiferror”

l = j = 1 n w j { y ^ j y j } ,

在哪里{·}是指标函数。

叉损失 “crossentropy”

“crossentropy”只适用于神经网络模型。

加权熵损失

l = j = 1 n w ˜ j 日志 ( j ) K n ,

的权重 w ˜ j 规范化和吗n而不是1。

指数损失 “指数” l = j = 1 n w j 经验值 ( j )
铰链的损失 “枢纽” l = j = 1 n w j 马克斯 { 0 , 1 j }
分对数损失 分对数的 l = j = 1 n w j 日志 ( 1 + 经验值 ( j ) )
最小的预期错误分类成本 “mincost”

“mincost”只有分类是合适的分数是后验概率。

软件计算加权最小分类会带来成本使用这个过程观察j= 1,…,n

  1. 估计预期的错误分类的分类成本观察Xj到类k:

    γ j k = ( f ( X j ) C ) k

    f(Xj)的列向量类的后验概率的观察XjC中存储的成本矩阵吗成本模型的属性。

  2. 为观察j,预测类标签对应最小的预期的误分类代价:

    y ^ j = argmin k = 1 , , K γ j k

  3. 使用C识别成本(cj)进行预测。

加权平均的误分类代价最小的预期损失

l = j = 1 n w j c j

二次损失 “二次” l = j = 1 n w j ( 1 j ) 2

如果你使用默认成本矩阵的元素值为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,由类的后验概率加权。

    c k = j = 1 K P ^ ( Y = j | x 1 , , x P ) C o 年代 t j k

    换句话说,软件将观察分为类预期最低的误分类代价。

后验概率

后验概率的概率是一个观察属于一个特定的类,考虑到数据。

朴素贝叶斯的分类是后验概率k对于一个给定的观察(x1、……xP)是

P ^ ( Y = k | x 1 , 。。 , x P ) = P ( X 1 , , X P | y = k ) π ( Y = k ) P ( X 1 , , X P ) ,

地点:

  • P ( X 1 , , X P | y = k ) 的条件联合密度预测给他们上课吗kMdl.DistributionNames存储分布预测的名字。

  • π(Y=k)是类的先验概率分布。Mdl.Prior存储先验分布。

  • P ( X 1 , 。。 , X P ) 是联合密度的预测因子。类是离散的,所以 P ( X 1 , , X P ) = k = 1 K P ( X 1 , , X P | y = k ) π ( Y = k )

先验概率

先验概率类的的假设相对频率观察类发生在一个人口。

扩展功能

版本历史

介绍了R2014b