主要内容

损失

查找支持向量机(SVM)分类器的分类错误万博1manbetx

描述

l=损失(SVMModelTBL.responsevarname.返回分类错误(参见分类损失),标量表示训练的支持向量机(SVM)分类器(万博1manbetxSVMModel)对表中的预测器数据进行分类TBL.与真正的课程标签相比TBL.ResponseVarName

损失标准化在类概率TBL.ResponseVarName到之前的概率fitcsvm.用于培训,储存在的属性SVMModel

分类损失(l)是一种泛化或再替代质量度量。它的解释取决于损失函数和加权方案,但一般来说,更好的分类器产生更小的分类损失值。

l=损失(SVMModelTBL.Y返回表中预测器数据的分类错误TBL.而真正的类标签中Y

损失标准化在类概率Y到之前的概率fitcsvm.用于培训,储存在的属性SVMModel

例子

l=损失(SVMModelXY基于矩阵中的预测器数据返回分类错误X与真正的课程标签相比Y

例子

l=损失(___名称,值除了以前语法中的输入参数之外,使用一个或多个名称值对参数指定选项。例如,您可以指定丢失函数和分类权重。

例子

崩溃

加载电离层数据集。

负载电离层RNG(1);重复性的%

训练SVM分类器。指定用于测试的15%HoldOut样本,标准化数据并指定'G'是积极类。

CVSVMModel = fitcsvm(X,Y,“最牛钉子户”,0.15,'classnames'{'B''G'},......'标准化',真正的);CompactSVMModel = CVSVMModel.Trained {1};%提取的训练,紧凑型的分类testInds =试验(CVSVMModel.Partition);%提取测试指标xtest = x(testinds,:);ytest = y(testinds,:);

CVSVMModel是A.ClassificationPartitionedModel分类。它包含属性训练有素,这是一个1×1个单元阵列,保持aCompactClassificationsVM.软件使用训练集训练的分类器。

确定算法通过估计测试样品分类误差如何推广。

l =损耗(CompactSvmModel,XTest,YTEST)
L = 0.0787

SVM分类misclassifies测试样品的约8%。

加载电离层数据集。

负载电离层RNG(1);重复性的%

训练SVM分类器。指定用于测试的15%HoldOut样本,标准化数据并指定'G'是积极类。

CVSVMModel = fitcsvm(X,Y,“最牛钉子户”,0.15,'classnames'{'B''G'},......'标准化',真正的);CompactSVMModel = CVSVMModel.Trained {1};%提取的训练,紧凑型的分类testInds =试验(CVSVMModel.Partition);%提取测试指标xtest = x(testinds,:);ytest = y(testinds,:);

CVSVMModel是A.ClassificationPartitionedModel分类。它包含属性训练有素,这是一个1×1个单元阵列,保持aCompactClassificationsVM.软件使用训练集训练的分类器。

通过估计测试样品铰链损耗来确定算法概括的程度。

L =损耗(CompactSvmModel,XTest,Yest,'lockfun''铰链'
L = 0.2998

铰链损耗约为0.3。具有接近0的铰链损耗的分类器是优选的。

输入参数

崩溃

SVM分类模型,指定为a分类VM.模型对象或CompactClassificationsVM.模型对象通过返回fitcsvm.或者紧凑,分别。

样本数据,指定为表。每行TBL.对应于一个观察,并且每列对应于一个预测变量。可选地,TBL.可以包含用于响应变量和权重观察附加列。TBL.必须包含用于训练的所有预测器SVMModel.除了字符向量的单元格数组之外,不允许使用多列变量和单元格数组。

如果TBL.包含用于训练的响应变量SVMModel,那么你就需要指定responsevarname.或者Y

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

如果你设置了“标准化”,真的fitcsvm.当训练SVMModel,然后软件使用相应的手段标准化预测器数据的列SVMModel.Mu和标准差SVMModel。σ

数据类型:表格

响应变量名,指定为变量的名称中的TBL.

您必须指定responsevarname.为一个字符向量或标量的字符串。例如,如果响应变量Y存储为tbl.y.然后指定responsevarname.作为'Y'.否则,该软件将处理所有列TBL.,包括Y,作为训练模型时的预测器。

响应变量必须是明确的,字符或字符串数​​组,逻辑或数字载体,或字符向量的单元阵列。如果响应变量是一个字符数组,则每个元素必须对应于所述阵列的一行。

数据类型:char|

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

每行X对应于一个观察(也称为实例或示例),每一列对应于一个变量(也称为特性)。列中的变量X必须和训练SVMModel分类。

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

如果你设置了“标准化”,真的fitcsvm.训练SVMModel,那么软件标准化的列X利用在相应的装置SVMModel.Mu和标准差SVMModel。σ

数据类型:双人间|单身

类标签,指定为分类,字符或字符串数​​组,逻辑或数字载体,或字符向量的单元阵列。Y必须与的数据类型相同SVMModel.ClassNames(该软件将字符串数组视为字符向量的单元格数组。)

的长度Y必须等于行数TBL.或者行数X

名称值对参数

指定可选的逗号分隔的对名称,值论点。名称参数名和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

示例:损失(SVMModel台,Y,“权重”,W)重量每行的观察TBL.使用相应的权重的变量的每行中WTBL.

损耗函数,指定为逗号分隔的一对组成的'lockfun'和内置丢失函数名称或函数句柄。

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

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

    “mincost”适用于后验概率的分类分数。您可以通过设置指定使用后验概率作为SVM模型的分类分数'fitposterior',真实当您使用fitcsvm.

  • 通过使用功能手柄符号指定自己的函数。

    假设n观察的次数在吗X,和K为不同类别的数目(numel(svmmodel.classnames))用于创建输入模型(SVMModel).您的功能必须具有此签名

    lockvalue =lossfun(C,S,W,成本)
    地点:

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

    • 选择函数名(lossfun).

    • C是一个n-K逻辑矩阵,其行表示相应的观测所属的类。中的列顺序对应于类的顺序SVMModel.ClassNames

      构造C通过设置C(P,Q)= 1如果观察p是在课堂上,对于每一行。组行的所有其他元素p到目前为止0

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

    • W是一个n×1观察权重的数值向量。如果你通过了W,软件标准化的权重总和为1

    • 成本是A.K-K错误分类成本的数字矩阵。例如,成本=(k) - 眼睛(k)指定成本0正确分类和1错误分类。

    使用以下命令指定函数'lockfun',@lossfun

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

示例:'lockfun','binodeviance'

数据类型:char||function_handle

观察权重,指定为逗号分隔的配对组成“重量”和一个数字向量或变量的名称TBL..该软件对每一行的观察结果进行权衡X或者TBL.与相应的重量权重

如果您指定权重作为一个数字向量,然后是权重必须等于行数X或者TBL.

如果您指定权重中的变量名TBL.,您必须这样做作为字符向量或字符串标量。例如,如果重量被存储为TBL.W.然后指定权重作为' W '.否则,该软件将处理所有列TBL.,包括TBL.W.,作为预测。

如果没有指定自己的损失函数,那么软件规格化权重总结在相应类的先验概率的值。

示例:'重量','w'

数据类型:单身|双人间|char|

更多关于

崩溃

分类损失

分类损失测量功能分类模型的预测不准确。当你比较同类型的众多车型中的损失,更低的损耗表示更好的预测模型。

考虑以下情景。

  • l为加权平均分类损失。

  • n为样本量。

  • 对于二元分类:

    • yj是所观察到的类的标签。软件代码作为-1或1,表示在负的或正的类(或第一或第二类一会财产分别。

    • fXj)是观察的正级分类评分(行)j预测数据X

    • jyjfXj)是分类观察的分类分数j对应的类yj.积极的价值观j表明正确分类,也没有太多的平均损失作出贡献。的负值j表示不正确的分类,并对平均损失显着贡献。

  • 对于支持多字符分类的算法(即,万博1manbetxK≥3):

    • yj是的向量K- 1零,1个位置与真实的,观察类相对应yj.例如,如果第二个观察的真正类是第三个阶级和K= 4,然后y2= [0 0 1 0] '.类的顺序对应于订单一会输入模型的属性。

    • fXj)是长度K级得分进行观察的矢量j预测数据X.分数的顺序对应于类中的类的顺序一会输入模型的属性。

    • jyjfXj).因此,j标量分类得分是模型预测真实的观察类。

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

    σ. j 1 n w j 1。

鉴于此方案,下表介绍了通过使用您可以指定的支持损耗功能万博1manbetx'lockfun'名称-值对的论点。

损失功能 的价值损失义务 方程式
二项式偏差 “binodeviance” l σ. j 1 n w j 日志 1 + exp. - 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 exp. - j
铰链损失 '铰链' l σ. j 1 n w j 最大 0 1 - j
分对数损失 分对数的 l σ. j 1 n w j 日志 1 + exp. - 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

该图比较了损失功能(除了'crossentropy'“mincost”)超过分数一个观测指标。一些功能被归一化到穿过点(0,1)。

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

分数分数

SVM分类分分类观测x是符合距离的距离x到决策边界范围从-∞到+∞。班级的正得分表示x被预测为在该类中。负分另有指示。

积极类分类得分 f x 为训练后的支持向量机分类函数。 f x 也是数值预测的响应x,或预测得分x进入正类。

f x σ. j 1 n α. j y j G x j x + b

在哪里 α. 1 ...... α. n b 是估计的SVM参数, G x j x 是在预测的空间之间的圆点产品x和支持向量,并且万博1manbetx总和包括训练集观察。负类分类分数x,或预测得分x成阴性类,是 -fx).

如果Gxjx)=xjx(线性内核),则该得分函数简化为

f x x / 年代 β + b

年代是内核比例和β为拟合线性系数的向量。

有关更多详细信息,请参阅了解支持向量机万博1manbetx

参考资料

[1] Hastie,T.,R. Tibshirani和J. Friedman。统计学习的要素,第二版。施普林格,纽约,2008。

扩展能力

在R2014A介绍