主要内容

损失

广义可加模型的分类损失

    描述

    L.=损失(MDL.资源描述ResponseVarName返回分类损失L.),标量表示广义添加剂模型的程度如何MDL.对预测器数据进行分类资源描述与中真正的类标签相比tbl.responsevarname.

    解释L.取决于损失功能('lockfun')和加权方案('重量')。通常,更好的分类器产生较小的分类损失值。默认值'lockfun'价值是“classiferror”(小数中的错误分类率)。

    L.=损失(MDL.资源描述y使用表中的预测器数据资源描述和真正的类标签y

    例子

    L.=损失(MDL.Xy使用矩阵中的预测器数据X和真正的类标签y

    例子

    L.=损失(___名称,价值除了先前语法中的任何输入参数组合之外,使用一个或多个名称值参数指定选项。例如,“LossFun”、“mincost”将损失函数设置为最小预期误分类代价函数。

    例子

    全部收缩

    确定广义添加剂模型的测试样本分类误差(丢失)。当您在许多模型之间比较相同类型的损耗时,较低的损耗表示更好的预测模型。

    加载电离层数据集。此数据集具有34个预测器和351个雷达返回的二进制响应,无论是坏的吗('B')或好(‘g’)。

    加载电离层

    利用系统中的类信息,将观测数据随机划分为训练集和测试集,并进行分层y.指定30%HoldOut样本进行测试。

    rng (“默认”%的再现性简历= cvpartition (Y,“坚持”,0.30);

    提取培训和测试指数。

    训练=训练(简介);testinds =测试(CV);

    指定培训和测试数据集。

    xtrain = x(训练,:);ytrain = y(训练器);xtest = x(testinds,:);ytest = y(testinds);

    使用预测器训练游戏XTrain.和班级标签ytrain..推荐的做法是指定类名。

    mdl = fitcgam(Xtrain,Ytrain,“类名”,{'B'‘g’});

    MDL.是一个ClassificationGAM模型对象。

    通过估计测试样本分类误差来确定算法概括的程度。默认情况下,损失功能ClassificationGAM估计分类误差使用“classiferror”损失(十进制误分类率)。

    L =损失(Mdl XTest、欧美)
    L = 0.1052

    训练有素的分类器错误分类约11%的测试样本。

    培训包含预测器的线性和交互术语的广义添加剂模型(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);

    使用预测器训练游戏X和班级标签y.推荐的做法是指定类名。指定包含10个最重要的交互条款。

    mdl = fitcgam(x(inds,:),y(inds),“类名”,{'B'‘g’},'互动',10)
    Mdl = classificationongam ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' ' 'g'} ScoreTransform: 'logit' Intercept: 2.0026 Interactions: [10x2 double] NumObservations: 301属性,方法

    MDL.是一个ClassificationGAM模型对象。

    计算有和无交互项时的再替换分类损失MDL..要排除交互术语,请指定'internalidantaction',false

    RESUBL = RERUBLOS(MDL)
    resubl = 0.
    resubl_nointeraction = resubLoss (Mdl,'internalideraction',错误的)
    RERUBL_NOINTERACTION = 0.

    估计有和无交互项时的分类损失MDL.

    l =损失(MDL,Xnew,Ynew)
    L = 0.0615.
    l_nointeraction =损失(mdl,xnew,ynew,'internalideraction',错误的)
    l_nointeraction = 0.0615

    包括互动条款不会改变分类损失MDL..培训的模型正确对所有培训样本进行了分类,并错误分类约6%的测试样本。

    输入参数

    全部收缩

    广义可加性模型,指定为ClassificationGAM要么CompactClassificationgam.模型对象。

    • 如果你训练有素MDL.使用表中包含的示例数据,然后输入数据损失也必须在桌子里(资源描述)。

    • 如果你训练有素MDL.使用矩阵中包含的样本数据,然后输入数据损失也必须是矩阵(X)。

    示例数据,指定为表。每一排资源描述对应一个观察值,每一列对应一个预测变量。除了字符向量的单元格数组之外,不允许使用多列变量和单元格数组。

    资源描述必须包含所有用于训练的预测因子吗MDL..可选地,资源描述可以包含一列作为响应变量,一列作为观察权值。

    • 响应变量必须具有相同的数据类型mdl.y.(该软件将字符串数组视为字符向量的单元格阵列。)如果响应变量资源描述与用于训练的响应变量具有相同的名称MDL.,那么你不需要指定ResponseVarName

    • 权值必须是一个数字向量。中必须指定观测权值资源描述通过使用'重量'

    如果你训练有素MDL.使用表中包含的示例数据,然后输入数据损失也必须在桌子里。

    数据类型:桌子

    响应变量名称,指定为字符向量或字符串标量,包含响应变量的名称资源描述.例如,如果响应变量y存储在资源描述。y,然后将其指定为'是'

    数据类型:字符|字符串

    类标签,指定为分类,字符或字符串阵列,逻辑或数字矢量或字符向量的单元格数组。每一排y表示相应行的分类X要么资源描述

    y必须具有相同的数据类型mdl.y.(该软件将字符串数组视为字符向量的单元格阵列。)

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

    预测数据,指定为数字矩阵。每一排X对应一个观察值,每一列对应一个预测变量。

    如果你训练有素MDL.使用矩阵中包含的样本数据,然后输入数据损失也必须在矩阵中。

    数据类型:单身的|

    名称值对参数

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

    例子:'internalidantaction',false,'重量',w指定从模型中排除交互术语并使用观察权重W.

    标记以包含模型的交互术语,指定为真的要么错误的

    默认值'internalideraction'价值是真的如果MDL.包含交互术语。价值必须是错误的如果模型不包含交互术语。

    例子:'internalidantaction',false

    数据类型:逻辑

    丢失函数,指定为内置丢失函数名称或函数句柄。

    • 此表列出了可用损耗功能。使用其对应的字符向量或字符串标量指定一个。

      价值 描述
      'binodeviance' 二项式偏差
      “classiferror” 小数点被错误分类
      “指数” 指数损失
      '合页' 铰链的损失
      'logit' 物流损失
      'Mincost' 最小的预期误分类成本(用于后验概率的分类分数)
      “二次” 二次损失

      有关丢失功能的更多详细信息,请参阅分类损失

    • 要指定自定义丢失功能,请使用函数句柄表示法。该函数必须具有此表单:

      lossvalue =损失义务(C、S、W、成本)

      • 输出参数失值是一个标量。

      • 您指定函数名称(损失义务)。

      • C是一个N——- - - - - -K.逻辑矩阵,其行表示相应的观测所属的类。N是观察人数资源描述要么X, 和K.是不同类的数量(numel(mdl.classnames).列顺序对应于类顺序mdl.classnames..创建C通过设置c(p,q)= 1,如果观察P.是在课堂上问:每行。设置行的所有其他元素P.0.

      • S.是一个N——- - - - - -K.分类分数的数字矩阵。列顺序对应于类顺序mdl.classnames.S.是一个分类评分的矩阵,类似于输出预测

      • W.是一个N- 1个数字矢量重量的数字矢量。

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

    例子:“LossFun”、“binodeviance”

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

    观察权重,指定为标量值的向量或变量的名称资源描述.该软件对每一行的观察结果进行加权X要么资源描述具有相应的价值重量.的大小重量必须等于行的数量X要么资源描述

    如果您将输入数据指定为表资源描述, 然后重量可以是变量的名称资源描述它包含一个数字向量。在这种情况下,您必须指定重量作为字符向量或字符串标量。例如,如果权重向量W.存储在资源描述。W.,然后将其指定为'W'

    损失对每个类别的权重进行归一化,使其与各自类别的先验概率值相加。

    数据类型:单身的||字符|字符串

    更多关于

    全部收缩

    分类损失

    分类损失功能测量分类模型的预测不准确性。当您在许多模型之间比较相同类型的损耗时,较低的损耗表示更好的预测模型。

    假设以下内容:

    • L.是加权平均分类损失。

    • N是样本大小。

    • yj是观察到的类标签。软件将其代码为-1或1,表示负类或正类(或第一个或第二类Classnames.分别属性)。

    • FXj)为观察(行)的阳性分类评分j预测数据X

    • mj=yjFXj)为分类观察的分类评分j进入对应的课程yj.正值mj表明正确的分类,并没有为平均损失贡献。负值mj指出错误的分类,并对平均损失有很大的贡献。

    • 观察的重量jW.j.该软件将观察权重标准化,使得它们总和到相应的先前类概率。该软件还规范化了现有概率,以便它们总和为1.因此,

      σ. j = 1 N W. j = 1。

    此表介绍了您可以使用使用的支持损耗功能万博1manbetx'lockfun'名称-值参数。

    损失函数 的价值LossFun 方程
    二项式偏差 'binodeviance' L. = σ. j = 1 N W. j 日志 { 1 + exp. [ - 2 m j ] }
    指数损失 “指数” L. = σ. j = 1 N W. j exp. - m j
    小数点被错误分类 “classiferror”

    L. = σ. j = 1 N W. j 一世 { y ^ j y j }

    y ^ j 是与具有最大分数的类对应的类标签。一世{·}是指示函数。

    铰链的损失 '合页' L. = σ. j = 1 N W. j 最大限度 { 0. 1 - m j }
    Logit损失 'logit' L. = σ. j = 1 N W. j 日志 1 + exp. - m j
    最小预期错误分类费用 'Mincost'

    'Mincost'只有当分类分数是后验概率时才合适。

    该软件计算加权最小期望分类成本使用这一程序的观察j= 1,…,N

    1. 估计分类观察的预期错误分类成本Xj进入课堂K.

      γ j K. = F X j ' C K.

      FXj)是对观察的二元和多字母分类的类后验概率的柱矢量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 - m j 2

    该图比较了损耗功能(除了'Mincost'超过分数m一个观察。某些功能被归一化以通过点(0,1)。

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

    在R2021A介绍