损失
找到分类错误的支持向量机(SVM)分类器金宝app
描述
返回分类错误(见分类损失),一个标量代表如何训练支持向量机(SVM)分类器(金宝appl
=损失(SVMModel
,资源描述
,ResponseVarName
)SVMModel
)分类预测的数据表资源描述
而真正的类标签Tbl.ResponseVarName
。
分类损失(l
)是一个泛化或resubstitution质量措施。它的解释取决于损失函数和加权方案,但是,总的来说,更好的分类器产生较小的分类损失值。
例子
确定测试样本SVM分类器的分类误差
加载电离层
数据集。
负载电离层rng (1);%的再现性
一个支持向量机分类器训练。指定一个抵抗15%样品用于测试,规范数据,并指定‘g’
是积极的类。
CVSVMModel = fitcsvm (X, Y,“坚持”,0.15,“类名”,{“b”,‘g’},…“标准化”,真正的);CompactSVMModel = CVSVMModel.Trained {1};%提取训练,紧凑的分类器testInds =测试(CVSVMModel.Partition);%提取测试指标XTest = X (testInds:);欧美= Y (testInds:);
CVSVMModel
是一个ClassificationPartitionedModel
分类器。它包含属性训练有素的
,这是一个1×1单元阵列举行CompactClassificationSVM
软件使用训练集训练分类器。
了解算法概括估计测试样本分类错误。
L =损失(CompactSVMModel XTest、欧美)
L = 0.0787
支持向量机分类器分类大约8%的测试样本。
确定测试样本铰链SVM分类器的损失
加载电离层
数据集。
负载电离层rng (1);%的再现性
一个支持向量机分类器训练。指定一个抵抗15%样品用于测试,规范数据,并指定‘g’
是积极的类。
CVSVMModel = fitcsvm (X, Y,“坚持”,0.15,“类名”,{“b”,‘g’},…“标准化”,真正的);CompactSVMModel = CVSVMModel.Trained {1};%提取训练,紧凑的分类器testInds =测试(CVSVMModel.Partition);%提取测试指标XTest = X (testInds:);欧美= Y (testInds:);
CVSVMModel
是一个ClassificationPartitionedModel
分类器。它包含属性训练有素的
,这是一个1×1单元阵列举行CompactClassificationSVM
软件使用训练集训练分类器。
了解测试样本估计的算法概括铰链的损失。
L =损失(CompactSVMModel XTest,欧美,“LossFun”,“枢纽”)
L = 0.2998
铰链损失大约是0.3。分类器与铰链损失接近0是首选。
输入参数
SVMModel
- - - - - -支持向量机分类模型
ClassificationSVM
模型对象|CompactClassificationSVM
模型对象
支持向量机分类模型,指定为一个ClassificationSVM
模型对象或CompactClassificationSVM
模型对象返回的fitcsvm
或紧凑的
,分别。
资源描述
- - - - - -样本数据
表
样本数据用于训练模型,指定为一个表。每一行的资源描述
对应于一个观察,每一列对应一个预测变量。可选地,资源描述
响应变量可以包含额外的列和观察权重。资源描述
必须包含所有的预测用于火车SVMModel
。多列变量和细胞数组以外的细胞阵列的特征向量是不允许的。
如果资源描述
包含响应变量用于火车SVMModel
,那么你不需要指定ResponseVarName
或Y
。
如果你训练SVMModel
使用样本数据包含在一个表中,然后输入数据损失
也必须在一个表中。
如果你设置“标准化”,真的
在fitcsvm
当训练SVMModel
,那么软件标准化预测的列数据使用中相应的方法SVMModel.Mu
和标准偏差SVMModel.Sigma
。
数据类型:表
ResponseVarName
- - - - - -响应变量名
变量的名字资源描述
响应变量名称,指定为一个变量的名字资源描述
。如果资源描述
包含响应变量用于火车SVMModel
,那么你不需要指定ResponseVarName
。
您必须指定ResponseVarName
作为一个特征向量或字符串标量。例如,如果响应变量Y
存储为Tbl.Y
,然后指定ResponseVarName
作为“Y”
。否则,软件将所有列资源描述
,包括Y
训练时,预测模型。
响应变量必须分类,字符,或字符串数组,逻辑或数值向量,或单元阵列的特征向量。如果响应变量是一个字符数组,数组的每个元素都必须对应一行。
数据类型:字符
|字符串
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:损失(SVMModel台,Y,“权重”,W)
重每一行的观察资源描述
使用相应的重量每一行的变量W
在资源描述
。
LossFun
- - - - - -损失函数
“classiferror”
(默认)|“binodeviance”
|“classifcost”
|“指数”
|“枢纽”
|分对数的
|“mincost”
|“二次”
|函数处理
损失函数,指定为一个内置的损失函数名或一个函数处理。
此表列出了可用的损失函数。指定一个使用其相应的特征向量或字符串标量。
价值 描述 “binodeviance”
二项异常 “classifcost”
观察到的误分类代价 “classiferror”
被误诊率小数 “指数”
指数损失 “枢纽”
铰链的损失 分对数的
物流损失 “mincost”
最小的预期的误分类代价(后验概率的分类评分) “二次”
二次损失 “mincost”
适合分类后验概率的分数。您可以指定使用后验概率作为SVM模型通过设置分类得分“FitPosterior”,真的
当你旨在模型使用fitcsvm
。指定你自己的函数通过函数处理符号。
假设
n
观察的数量吗X
,K
不同的类的数目(元素个数(SVMModel.ClassNames)
)用于创建输入模型(SVMModel
)。你的函数必须有这个签名lossvalue =
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
。成本
是一个K
——- - - - - -K
数字矩阵的误分类代价。例如,成本= 1 (K) -眼(K)
指定了一个成本0
正确的分类和1
误分类。
指定你的函数使用
“LossFun”@
。lossfun
损失函数的更多细节,请参阅分类损失。
例子:“LossFun”、“binodeviance”
数据类型:字符
|字符串
|function_handle
权重
- - - - - -观察权重
(大小(X, 1), 1)
(默认)|数值向量|变量的名字资源描述
更多关于
分类损失
分类损失函数度量分类模型的预测误差。当你在考虑对比许多相同类型的损失模型,较低的损失表示一个更好的预测模型。
考虑以下场景。
l是加权平均分类损失。
n是样本容量。
yj是观察到的类标签。软件代码为1或1,表明消极或积极类(或第一或第二课
一会
分别属性)。f(Xj观察)是positive-class分类评分(行)j预测的数据X。
米j=yjf(Xj)是分类的分类评分观察j相对应的类yj。积极的价值观米j显示正确的分类,不为平均损失作出多少贡献。负的米j显示不正确的分类和对平均损失作出了重大贡献。
观察的重量j是wj。软件可实现观察权重,这样他们和前到相应的类存储在概率
之前
财产。因此,
鉴于这种情况,下表描述了支持损失函数,您可以指定使用金宝appLossFun
名称-值参数。
损失函数 | 的价值LossFun |
方程 |
---|---|---|
二项异常 | “binodeviance” |
|
观察到的误分类代价 | “classifcost” |
在哪里 是最大的类标签对应类分数,然后呢 分类的用户指定的成本是一个观察到课吗 当它真正的类yj。 |
被误诊率小数 | “classiferror” |
在哪里我{·}是指标函数。 |
叉损失 | “crossentropy” |
加权熵损失
的权重 规范化和吗n而不是1。 |
指数损失 | “指数” |
|
铰链的损失 | “枢纽” |
|
分对数损失 | 分对数的 |
|
最小的预期错误分类成本 | “mincost” |
软件计算加权最小分类会带来成本使用这个过程观察j= 1,…,n。
加权平均的误分类代价最小的预期损失
|
二次损失 | “二次” |
如果你使用默认成本矩阵的元素值为0为不正确的分类正确的分类和1),那么损失值“classifcost”
,“classiferror”
,“mincost”
都是相同的。模型与一个默认的成本矩阵,“classifcost”
等于损失“mincost”
大部分的时间损失。这些损失可以是不同如果预测到最大后验概率的类是不同的从预测到类以最小的预期成本。请注意,“mincost”
只有分类是合适的分数是后验概率。
这个图比较了损失函数(除了“classifcost”
,“crossentropy”
,“mincost”
)得分米一个观察。一些函数归一化通过点(0,1)。
分类分
的支持向量机分类分分类观测x签署了距离x决定边界从-∞,+∞。积极的分数表明,对于一个类x预计这个类。否则负分数表示。
积极类分类得分 是训练SVM分类函数。 也是数值预测响应吗x,或者预测的分数x到积极的类。
在哪里 是估计的支持向量机参数, 是点积的预测值之间的空间吗x和支持向量,包括金宝app训练集和观察。消极类分类评分x,或者预测的分数x进入负类,-f(x)。
如果G(xj,x)=xj′x(线性内核),然后比分功能降低
年代是内核规模和β是安装的向量线性系数。
更多细节,请参阅了解支持向量机金宝app。
引用
[1]Hastie, T。,R. Tibshirani, and J. Friedman.统计学习的元素,第二版。施普林格,纽约,2008年。
扩展功能
版本历史
介绍了R2014aR2022a:损失
返回一个不同的值与默认的成本矩阵模型
如果你指定一个默认的成本矩阵训练输入模型对象时,损失
函数返回一个不同的值与以前版本相比。
的损失
函数使用中存储的先验概率之前
属性规范化观察输入数据的权重。此外,函数使用矩阵的存储成本成本
如果你指定属性LossFun
名称-值参数为“classifcost”
或“mincost”
。这个函数使用的方式之前
和成本
属性值没有改变。然而,属性值存储在一个模型的输入模型对象改变了默认的成本矩阵,所以函数可以返回不同的值。
属性值变化的细节,请参阅成本属性存储指定的成本矩阵。
如果你想要处理的软件成本矩阵,先验概率,和观察权重在以前的版本中,调整默认的成本的先验概率和观察权重矩阵,描述调整先验概率和观察权重误分类代价矩阵。然后,当你训练一个分类模型,指定调整先验概率和观察权重通过使用之前
和权重
名称-值参数,分别使用默认成本矩阵。
R2022a:损失
可以返回NaN和缺失值预测数据
的损失
函数不再省略了一个观察与南得分计算加权平均分类损失。因此,损失
现在可以返回NaN当预测数据X
或预测变量资源描述
包含任何缺失值,名称参数LossFun
不是指定为“classifcost”
,“classiferror”
,或“mincost”
。在大多数情况下,如果测试集观测不含缺失的预测,损失
函数不返回NaN。
这一变化提高了分类模型的自动选择,当你使用fitcauto
。这种变化之前,软件可能会选择一个模型(最好将分类新数据)和一些non-NaN预测。
如果损失
在您的代码返回NaN,你可以更新你的代码来避免这一结果通过下列之一:
通过删除或替换缺失值
rmmissing
或fillmissing
,分别。指定名称的参数
LossFun
作为“classifcost”
,“classiferror”
,或“mincost”
。
下面的表显示了分类模型的损失
目标函数可以返回NaN。更多细节,请参见兼容性的考虑损失
函数。
模型类型 | 全部或紧凑的模型对象 | 损失 目标函数 |
---|---|---|
判别分析分类模型 | ClassificationDiscriminant ,CompactClassificationDiscriminant |
损失 |
系综分类的学习者 | ClassificationEnsemble ,CompactClassificationEnsemble |
损失 |
高斯核函数分类模型 | ClassificationKernel |
损失 |
k最近的邻居分类模型 | ClassificationKNN |
损失 |
线性分类模型 | ClassificationLinear |
损失 |
神经网络分类模型 | ClassificationNeuralNetwork ,CompactClassificationNeuralNetwork |
损失 |
金宝app支持向量机(SVM)分类模型 | 损失 |
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。