主要内容

resubLoss

Resubstitution分类损失

    描述

    例子

    l= resubLoss (Mdl)返回分类损失通过resubstitution (L),或样本分类损失,训练分类模型Mdl使用训练数据存储在Mdl.X和相应的类标签中存储Mdl.Y

    的解释l取决于损失函数(“LossFun”)和加权方案(Mdl.W)。一般来说,更好的分类器产生较小的分类损失值。默认的“LossFun”值在模型对象而异Mdl

    例子

    l= resubLoss (Mdl,名称,值)使用一个或多个名称参数指定附加选项。例如,“LossFun”、“binodeviance”将损失函数设置为二项式异常功能。

    例子

    全部折叠

    确定样本分类错误(resubstitution损失)的朴素贝叶斯分类器。一般来说,一个更小的损失表示一个更好的分类器。

    加载fisheriris数据集创建。X作为一个数字矩阵,包含四个测量150虹膜。创建Y作为一个单元阵列包含相应的特征向量的虹膜的物种。

    负载fisheririsX =量;Y =物种;

    使用预测训练朴素贝叶斯分类器X和类标签Y。推荐的做法是指定类名。fitcnb假定每一个预测是有条件和正态分布。

    Mdl = fitcnb (X, Y,“类名”,{“setosa”,“多色的”,“virginica”})
    Mdl = ClassificationNaiveBayes ResponseName:‘Y’CategoricalPredictors:[]类名:{“setosa”“杂色的”“virginica”} ScoreTransform:“没有一个”NumObservations: 150 DistributionNames:{“正常”“正常”“正常”“正常”}DistributionParameters: {} 3 x4细胞属性,方法

    Mdl是一个培训ClassificationNaiveBayes分类器。

    估计样本分类错误。

    L = resubLoss (Mdl)
    L = 0.0400

    朴素贝叶斯分类器分类4%的训练观察。

    加载电离层数据集。这个数据集有34个预测因子和351二进制响应雷达回报,要么坏(“b”)或好(‘g’)。

    负载电离层

    训练支持向量机(金宝appSVM)分类器。标准化的数据并指定‘g’是积极的类。

    SVMModel = fitcsvm (X, Y,“类名”,{“b”,‘g’},“标准化”,真正的);

    SVMModel是一个培训ClassificationSVM分类器。

    样本估计的铰链的损失。

    L = resubLoss (SVMModel,“LossFun”,“枢纽”)
    L = 0.1603

    铰链的损失0.1603。分类器与铰链损失接近0是首选。

    火车广义相加模型(GAM)包含预测的线性和互动方面,和估计分类损失和没有交互。指定是否要包括交互方面估计分类损失时训练和测试数据。

    加载电离层数据集。这个数据集有34个预测因子和351二进制响应雷达回报,要么坏(“b”)或好(‘g’)。

    负载电离层

    分区数据集分为两组:一个包含训练数据,和其他包含新的,未被注意的测试数据。储备50观察新的测试数据集。

    rng (“默认”)%的再现性n =大小(X, 1);newInds = randsample (n, 50);第1 = ~ ismember (1: n, newInds);XNew = X (newInds:);YNew = Y (newInds);

    使用预测训练GAMX和类标签Y。推荐的做法是指定类名。指定包含10个最重要的互动。

    Mdl = fitcgam (X(第1:),Y(第1),“类名”,{“b”,‘g’},“互动”,10)
    Mdl = ClassificationGAM ResponseName:‘Y’CategoricalPredictors:[]类名:{b ' g '} ScoreTransform:分对数的截距:2.0026交互:[10 x2双]NumObservations: 301属性,方法

    Mdl是一个ClassificationGAM模型对象。

    计算resubstitution分类损失都有或没有交互条款Mdl。排除交互条件,指定“IncludeInteractions”,假的

    resubl = resubLoss (Mdl)
    resubl = 0
    resubl_nointeraction = resubLoss (Mdl,“IncludeInteractions”假)
    resubl_nointeraction = 0

    估计损失的分类都有或没有交互条款Mdl

    l =损失(Mdl XNew YNew)
    l = 0.0615
    l_nointeraction =损失(Mdl XNew YNew,“IncludeInteractions”假)
    l_nointeraction = 0.0615

    包括交互方面不会改变分类损失Mdl。训练模型将所有的训练样本正确分类和分类大约6%的测试样品。

    输入参数

    全部折叠

    机器学习分类模型,指定为一个完整的分类模型对象,按照下表支持的模型。金宝app

    模型 分类模型对象
    广义加性模型 ClassificationGAM
    k最近的邻居模型 ClassificationKNN
    朴素贝叶斯模型 ClassificationNaiveBayes
    神经网络模型 ClassificationNeuralNetwork
    金宝app看到下面成了一和二分类支持向量机 ClassificationSVM

    名称-值参数

    指定可选的逗号分隔条名称,值参数。的名字参数名称和吗价值相应的价值。的名字必须出现在引号。您可以指定几个名称和值对参数在任何顺序Name1, Value1,…,的家

    例子:resubLoss (Mdl LossFun,分对数)估计分对数resubstitution损失。

    标志包括交互模型,指定为真正的。这个论点是有效的只有一个广义相加模型(GAM)。也就是说,您可以指定这个论点只有当MdlClassificationGAM

    默认值是真正的如果Mdl包含交互方面。的值必须如果模型不包含交互方面。

    数据类型:逻辑

    损失函数,指定为一个内置的损失函数名或一个函数处理。

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

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

      默认值取决于训练模型(Mdl)。

      • 默认值是“classiferror”如果Mdl是一个ClassificationGAM,ClassificationNeuralNetwork,或ClassificationSVM对象。

      • 默认值是“mincost”如果Mdl是一个ClassificationKNNClassificationNaiveBayes对象。

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

    • 指定一个自定义的损失函数,利用函数处理符号。函数必须有这种形式:

      lossvalue =lossfun(C、S、W、成本)

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

      • 你指定函数名(lossfun)。

      • C是一个n——- - - - - -K逻辑矩阵行指示相应的观察所属的类。n观察的数量吗资源描述X,K不同的类的数目(元素个数(Mdl.ClassNames)。列顺序对应于类顺序Mdl.ClassNames。创建C通过设置C (p, q) = 1,如果观察p是在课堂上,为每一行。设置所有其他元素的行p0

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

      • W是一个n1数字的观察向量权重。

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

    例子:“LossFun”、“binodeviance”

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

    更多关于

    全部折叠

    分类损失

    分类损失函数度量分类模型的预测误差。当你在考虑对比许多相同类型的损失模型,较低的损失表示一个更好的预测模型。

    考虑以下场景。

    • 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。软件可实现观察权重,这样他们和相应的前类概率。该软件还可实现先验概率之和为1。因此,

      j = 1 n w j = 1。

    鉴于这种情况,下表描述了支持损失函数,您可以指定使用金宝app“LossFun”名称-值对的论点。

    损失函数 的价值LossFun 方程
    二项异常 “binodeviance” l = j = 1 n w j 日志 { 1 + 经验值 ( 2 j ] }
    被误诊率小数 “classiferror”

    l = j = 1 n w j { y ^ 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

    如果你使用默认成本矩阵的元素值为0为不正确的分类正确的分类和1),然后“mincost”等于损失“classiferror”的损失。

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

    这个图比较了损失函数(除了“crossentropy”“mincost”)得分一个观察。一些函数归一化通过点(0,1)。

    比较不同的损失函数的分类损失

    算法

    resubLoss计算分类根据相应的损失损失的函数对象(Mdl)。模型相关的描述,请参阅损失下面的表函数参考页。

    模型 分类模型对象(Mdl) 损失目标函数
    广义加性模型 ClassificationGAM 损失
    k最近的邻居模型 ClassificationKNN 损失
    朴素贝叶斯模型 ClassificationNaiveBayes 损失
    神经网络模型 ClassificationNeuralNetwork 损失
    金宝app看到下面成了一和二分类支持向量机 ClassificationSVM 损失

    扩展功能

    介绍了R2012a