主要内容

损失

广义可加模型的分类损失

    描述

    l=损失(Mdl资源描述ResponseVarName返回分类损失l),表示广义可加模型的性能的标量Mdl分类预测数据资源描述与中真正的类标签相比资源描述。ResponseVarName

    的解释l取决于损失函数(“LossFun”)及加权计划(“重量”).一般来说,更好的分类器产生更小的分类损失值。默认的“LossFun”值是“classiferror”(误分类率十进制)。

    l=损失(Mdl资源描述Y使用表中的预测数据资源描述和真正的类标签Y

    例子

    l=损失(MdlXY使用矩阵中的预测数据X和真正的类标签Y

    例子

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

    例子

    全部折叠

    确定广义可加模型的测试样本分类误差(损失)。当你在许多模型中比较同一类型的损失时,损失越低表明预测模型越好。

    加载电离层数据集。该数据集有34个预测器和351个雷达返回的二进制响应,或坏(“b”)或好(‘g’).

    负载电离层

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

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

    提取训练和测试指标。

    trainInds =培训(简历);testInds =测试(简历);

    指定训练和测试数据集。

    XTrain = X (trainInds:);YTrain = Y (trainInds);XTest = X (testInds:);欧美= Y (testInds);

    使用预测器训练GAMXTrain和类标签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);

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

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

    Mdl是一个ClassificationGAM模型对象。

    计算有和无交互项时的再替换分类损失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%的测试样本进行错误分类。

    输入参数

    全部折叠

    广义可加性模型,指定为ClassificationGAMCompactClassificationGAM模型对象。

    • 如果你训练Mdl使用表中包含的样例数据,然后输入数据损失也必须在表中(资源描述).

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

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

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

    • 响应变量的数据类型必须与Mdl。Y(该软件将字符串数组视为字符向量的单元格数组。)如果响应变量在资源描述是否与用于训练的响应变量同名Mdl,则不需要指定ResponseVarName

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

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

    数据类型:表格

    中的响应变量名,指定为包含响应变量名的字符向量或字符串标量资源描述.例如,如果响应变量Y存储在资源描述。Y,则指定为“Y”

    数据类型:字符|字符串

    类标签,指定为类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。每一行的Y的对应行的分类X资源描述

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

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

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

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

    数据类型:|

    名称-值参数

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

    例子:“IncludeInteractions”,假的,“权重”,w指定从模型中排除交互项并使用观测权值w

    标记以包含模型的交互术语,指定为真正的

    默认的“IncludeInteractions”值是真正的如果Mdl包含交互方面。该值必须为如果模型不包含交互项。

    例子:“IncludeInteractions”,假的

    数据类型:逻辑

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

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

      价值 描述
      “binodeviance” 二项异常
      “classiferror” 十进制错误分类率
      “指数” 指数损失
      “枢纽” 铰链的损失
      分对数的 物流损失
      “mincost” 最小的预期误分类成本(用于后验概率的分类分数)
      “二次” 二次损失

      有关损失函数的详细信息,请参见分类损失

    • 要指定自定义的损失函数,请使用函数句柄表示法。函数必须是这样的形式:

      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是一个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,表示负类或正类(或中第一类或第二类)一会分别属性)。

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

    • jyjfXj)为分类观察的分类评分j对应的类yj.积极的价值观j表明正确的分类,对平均损失贡献不大。负的j指出错误的分类,并对平均损失有很大的贡献。

    • 观测权重jwj.该软件将观测权值归一化,使其和为相应的先验类别概率。软件还将先验概率归一化,使其和为1。因此,

      j 1 n w j 1.

    属性指定的支持的损失函数金宝app“LossFun”名称-值参数。

    损失函数 的价值LossFun 方程
    二项异常 “binodeviance” l j 1 n w j 日志 1 + 经验值 2 j
    指数损失 “指数” l j 1 n w j 经验值 j
    十进制错误分类率 “classiferror”

    l j 1 n w j y j y j

    y 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

      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 j 2

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

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

    介绍了R2021a