主要内容

kfoldLoss

分类损失旨在分类模型

    描述

    例子

    l= kfoldLoss (CVMdl)返回分类损失旨在获得的分类模型CVMdl。对于每一个褶皱,kfoldLoss计算分类损失validation-fold观察使用分类器训练training-fold观测。CVMdl.XCVMdl.Y包含两组观察。

    例子

    l= kfoldLoss (CVMdl,名称,值)返回指定的一个或多个分类损失额外的选项名称参数。例如,您可以指定一个自定义功能损失。

    例子

    全部折叠

    加载电离层数据集。

    负载电离层

    一个分类树生长。

    树= 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

    训练旨在广义相加模型(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岁没有交叉验证。

    输入参数

    全部折叠

    旨在分区分类,指定为一个ClassificationPartitionedModel,ClassificationPartitionedEnsemble,或ClassificationPartitionedGAM对象。你可以通过两种方式创建对象:

    • 通过训练分类模型下面的表中列出的crossval对象的功能。

    • 训练分类模型使用一个函数中列出下表,并指定一个交叉验证函数的名称参数。

    名称-值参数

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

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

    例子:kfoldLoss (CVMdl“折叠”,[1 2 3 5])指定使用第一,第二,第三,和第五折叠计算分类损失,但排除第四折。

    褶皱指标使用,指定为一个正整数向量。的元素折叠一定范围内1CVMdl.KFold

    在指定的软件只使用折叠折叠

    例子:“折叠”,[1 4 10]

    数据类型:|

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

    默认值是真正的如果模型CVMdl(CVMdl.Trained)包含交互方面。的值必须如果模型不包含交互方面。

    数据类型:逻辑

    损失函数,指定为一个内置的损失函数名或一个函数处理。违约损失函数取决于类型的模型CVMdl

    • 默认值是“classiferror”如果模型类型是一个合奏或支持向量机分类器。万博1manbetx

    • 默认值是“mincost”如果模型类型是判别分析,k最近的邻居,朴素贝叶斯、神经网络或树分类器。

    • 如果模型类型是广义相加模型分类器,默认值是“mincost”如果ScoreTransform输入模型对象的属性(CVMdl.ScoreTransform)是分对数的;否则,默认值是“classiferror”

    “classiferror”“mincost”当你使用默认成本矩阵是等价的。看到算法为更多的信息。

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

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

      “mincost”适合分类后验概率的分数。的预测kfoldPredict判别分析的函数,广义加性模型,k最近的邻居,朴素贝叶斯、神经网络和树分类器返回默认这样的分数。

      • 使用的整体模型“包”“子”默认方法、分类分数后验概率。使用的整体模型“AdaBoostM1”,“AdaBoostM2”,GentleBoost,或“LogitBoost”方法,您可以使用后验概率作为分类的分数通过指定double-logit分数变换。例如,输入:

        CVMdl。年代c或eTransform =“doublelogit”;
        对于所有其他搭配方法,软件不支持后验概率作为分类的分数。万博1manbetx

      • 对于支持向量机模型,您可以指定使用后验概率作为分类分数设置“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是在课堂上,为每一行。设置所有其他元素的行p0

      • 年代是一个n——- - - - - -K数字矩阵分类的分数。列顺序对应于类顺序CVMdl.ClassNames。输入年代类似的输出参数分数kfoldPredict

      • W是一个n1数字的观察向量权重。如果你通过W,软件使其元素和规范化1

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

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

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

    例子:“LossFun”、“枢纽”

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

    聚合级的输出,指定为“平均”,“个人”,或“累积”

    价值 描述
    “平均” 输出是一个标量平均折叠。
    “个人” 的输出是一个向量的长度k包含一个值/褶皱,k是折叠的数量。
    “累积”

    请注意

    如果你想指定这个值,CVMdl必须是一个ClassificationPartitionedEnsemble对象或ClassificationPartitionedGAM对象。

    • 如果CVMdlClassificationPartitionedEnsemble,然后输出一个向量的长度分钟(CVMdl.NumTrainedPerFold)。每个元素j平均超过所有函数获得通过使用折叠乐团训练较差的学习者1:j

    • 如果CVMdlClassificationPartitionedGAM,然后输出值取决于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所有折叠的平均分类损失。

    • 如果模式“个人”,然后l是一个k1数字列向量包含分类损失对于每一个褶皱,k是折叠的数量。

    • 如果模式“累积”CVMdlClassificationPartitionedEnsemble,然后l是一个分钟(CVMdl.NumTrainedPerFold)1数字列向量。每个元素j的平均分类损失所有的折叠功能获得通过使用乐团训练较差的学习者1:j

    • 如果模式“累积”CVMdlClassificationPartitionedGAM,然后输出值取决于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显示不正确的分类和对平均损失作出了重大贡献。

    • 对于支持多级分类的算法(即万博1manbetxK≥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。

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

    损失函数 的价值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)。

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

    算法

    kfoldLoss计算分类中描述相应的损失损失对象的功能。模型相关的描述,看到合适的损失下面的表函数引用页面。

    模型类型 损失函数
    判别分析分类器 损失
    集成分类器 损失
    广义相加模型分类器 损失
    k最近的邻居分类器 损失
    朴素贝叶斯分类器 损失
    神经网络分类器 损失
    万博1manbetx支持向量机分类器 损失
    二叉决策树的多类分类 损失

    扩展功能

    版本历史

    介绍了R2011a

    全部展开

    行为改变R2022a

    行为改变R2022a