损失
分类损失线性分类模型
描述
返回分类预测数据的损失l
=损失(Mdl
,资源描述
,ResponseVarName
)资源描述
而真正的类标签Tbl.ResponseVarName
。
输入参数
Mdl
- - - - - -二元线性分类模型
ClassificationLinear
模型对象
二元线性分类模型,指定为ClassificationLinear
模型对象。您可以创建一个ClassificationLinear
模型对象使用fitclinear
。
X
- - - - - -预测数据
完整的矩阵|稀疏矩阵
预测数据,指定为一个n——- - - - - -p完整的或稀疏矩阵。这个方向的X
表明行对应于个人观察,和列对应于个人预测变量。
请注意
如果你东方预测矩阵,以便观察并指定对应列“ObservationsIn”、“列”
,那么你可能会经历显著减少计算时间。
的长度Y
和观察的数量X
必须是相等的。
数据类型:单
|双
资源描述
- - - - - -样本数据
表
样本数据用于训练模型,指定为一个表。每一行的资源描述
对应于一个观察,每一列对应一个预测变量。可选地,资源描述
响应变量可以包含额外的列和观察权重。资源描述
必须包含所有的预测用于火车Mdl
。多列变量和细胞数组以外的细胞阵列的特征向量是不允许的。
如果资源描述
包含响应变量用于火车Mdl
,那么你不需要指定ResponseVarName
或Y
。
如果你训练Mdl
使用样本数据包含在一个表中,然后输入数据损失
也必须在一个表中。
ResponseVarName
- - - - - -响应变量名
变量的名字资源描述
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
LossFun
- - - - - -损失函数
“classiferror”
(默认)|“binodeviance”
|“classifcost”
|“指数”
|“枢纽”
|分对数的
|“mincost”
|“二次”
|函数处理
损失函数,指定为逗号分隔组成的“LossFun”
和一个内置的损失函数名或函数句柄。
下表列出了可用的损失函数。指定一个使用其相应的特征向量或字符串标量。
价值 描述 “binodeviance”
二项异常 “classifcost”
观察到的误分类代价 “classiferror”
被误诊率小数 “指数”
指数损失 “枢纽”
铰链的损失 分对数的
物流损失 “mincost”
最小的预期的误分类代价(后验概率的分类评分) “二次”
二次损失 “mincost”
适合分类后验概率的分数。对于线性分类模型,逻辑回归学生返回后验概率作为分类的分数在默认情况下,但SVM学习者不(见预测
)。指定一个自定义的损失函数,利用函数处理符号。函数必须有这种形式:
lossvalue =
lossfun
(C、S、W、成本)输出参数
lossvalue
是一个标量。你指定函数名(
lossfun
)。C
是一个n
——- - - - - -K
逻辑矩阵行指示相应的观察所属的类。n
观察的数量吗资源描述
或X
,K
不同的类的数目(元素个数(Mdl.ClassNames)
。列顺序对应于类顺序Mdl.ClassNames
。创建C
通过设置C (p, q) = 1
,如果观察p
是在课堂上问
,为每一行。设置所有其他元素的行p
来0
。年代
是一个n
——- - - - - -K
数字矩阵分类的分数。列顺序对应于类顺序Mdl.ClassNames
。年代
分类是一个矩阵得分,类似的输出预测
。W
是一个n
1数字的观察向量权重。成本
是一个K
——- - - - - -K
数字矩阵的误分类代价。例如,成本= 1 (K) -眼(K)
指定了一个成本0
正确的分类和1
误分类。
例子:“LossFun”@
lossfun
数据类型:字符
|字符串
|function_handle
ObservationsIn
- - - - - -预测数据观察维度
“行”
(默认)|“列”
预测数据观察维度,指定为“行”
或“列”
。
请注意
如果你东方预测矩阵,以便观察并指定对应列“ObservationsIn”、“列”
,那么你可能会经历显著减少计算时间。你不能指定“ObservationsIn”、“列”
预测数据表。
数据类型:字符
|字符串
输出参数
例子
估计测试样本分类损失
加载NLP数据集。
负载nlpdata
X
是一个稀疏矩阵的预测数据,Y
是一个分类向量类的标签。有两个以上的类的数据。
模型应该确定是否这个词项在一个web页面的统计和机器学习工具箱™文档。所以,确定对应的标签统计和机器学习的工具箱™文档web页面。
Ystats = Y = =“统计数据”;
火车一个二进制,线性分类模型,该模型可以确定这个词项在文档web页面是否从统计和机器学习工具箱™文档。指定坚持30%的观察。使用SpaRSA优化目标函数。
rng (1);%的再现性Ystats CVMdl = fitclinear (X,“规划求解”,“sparsa”,“坚持”,0.30);CMdl = CVMdl.Trained {1};
CVMdl
是一个ClassificationPartitionedLinear
模型。它包含属性训练有素的
,这是一个1×1单元阵列举行ClassificationLinear
使用训练集模型的软件培训。
从分区中提取的训练和测试数据的定义。
trainIdx =培训(CVMdl.Partition);testIdx =测试(CVMdl.Partition);
估计训练和测试样本分类错误。
ceTrain =损失(CMdl X (trainIdx:), Ystats (trainIdx))
ceTrain = 1.3572 e-04
cet(中央东部东京)=损失(CMdl X (testIdx:), Ystats (testIdx))
cet(中央东部东京)= 5.2804 e-04
因为有一个正规化的力量CMdl
,ceTrain
和cet(中央东部东京)
是数字标量。
指定自定义分类损失
加载NLP的数据集,数据的预处理估计测试样本分类损失和转置的预测数据。
负载nlpdataYstats = Y = =“统计数据”;X = X ';
火车一个二进制线性分类模型。指定坚持30%的观察。使用SpaRSA优化目标函数。指定该预测观测对应列。
rng (1);%的再现性Ystats CVMdl = fitclinear (X,“规划求解”,“sparsa”,“坚持”,0.30,…“ObservationsIn”,“列”);CMdl = CVMdl.Trained {1};
CVMdl
是一个ClassificationPartitionedLinear
模型。它包含属性训练有素的
,这是一个1×1单元阵列举行ClassificationLinear
使用训练集模型的软件培训。
从分区中提取的训练和测试数据的定义。
trainIdx =培训(CVMdl.Partition);testIdx =测试(CVMdl.Partition);
创建一个匿名函数,线性损失的措施,也就是说,
是观察的重量吗j,
是响应j为负类(1,1),和
是观察原始分类得分j。定制的损失函数必须用特定的形式。编写一个定制的损失函数规则,请参阅LossFun
名称-值对的论点。
linearloss = @ (C、S、W、成本)和(- W。*总和(S . C * 2) / (W)之和;
估计使用线性的训练和测试样本分类损失损失函数。
ceTrain =损失(CMdl X (:, trainIdx) Ystats (trainIdx),“LossFun”linearloss,…“ObservationsIn”,“列”)
ceTrain = -7.8330
cet(中央东部东京)=损失(CMdl X (:, testIdx) Ystats (testIdx),“LossFun”linearloss,…“ObservationsIn”,“列”)
cet(中央东部东京)= -7.7383
找到好的套索惩罚使用分类损失
确定好lasso-penalty强度线性分类模型,使用逻辑回归的学习者,比较测试样本的分类错误率。
加载NLP的数据集,数据的预处理指定自定义分类损失。
负载nlpdataYstats = Y = =“统计数据”;X = X ';rng (10);%的再现性分区= cvpartition (Ystats,“坚持”,0.30);testIdx =测试(分区);XTest = X (:, testIdx);欧美= Ystats (testIdx);
创建一组11对数间隔正则化的优势 通过 。
-0.5λ= logspace(6日,11);
火车二进制,线性分类模型,使用每一种正则化的优势。使用SpaRSA优化目标函数。降低目标函数的梯度的宽容1 e-8
。
Ystats CVMdl = fitclinear (X,“ObservationsIn”,“列”,…“CVPartition”分区,“学习者”,“物流”,“规划求解”,“sparsa”,…“正规化”,“套索”,“λ”λ,“GradientTolerance”1 e-8)
CVMdl = ClassificationPartitionedLinear CrossValidatedModel:“线性”ResponseName:“Y”NumObservations: 31572 KFold: 1分区:[1 x1 cvpartition]类名:[0 1]ScoreTransform:“没有一个”属性,方法
提取训练线性分类模型。
Mdl = CVMdl.Trained {1}
Mdl = ClassificationLinear ResponseName:“Y”类名:[0 1]ScoreTransform:分对数的β:[34023 x11双]偏见:[-12.1036 -12.1036 -12.1036 -12.1036 -12.1036……λ:[1.0000 4.4668 1.2589 3.5481 e-06 e-06 e-05 e-05……学习者:“物流”属性,方法
Mdl
是一个ClassificationLinear
模型对象。因为λ
是一个序列的正则化的优势,你能想到什么Mdl
11岁的模型,每个正规化的力量在一个λ
。
估计测试样本分类错误。
ce =损失(Mdl X (:, testIdx) Ystats (testIdx),“ObservationsIn”,“列”);
因为有11个正规化的优势,ce
是一个1-by-11向量的分类错误率。
更高的值λ
导致预测变量较少,这是一个很好的分类器的质量。对于每一个正规化的力量,训练使用整个数据集和一个线性分类模型旨在模型时相同的选项。确定数量的非零系数模型。
Mdl = fitclinear (X, Ystats“ObservationsIn”,“列”,…“学习者”,“物流”,“规划求解”,“sparsa”,“正规化”,“套索”,…“λ”λ,“GradientTolerance”1 e-8);numNZCoeff = (Mdl.Beta ~ = 0)之和;
在同一人物,情节的测试样本错误率和频率非零系数为每个正则化的力量。所有变量在对数尺度的阴谋。
图;[h, hL1, hL2] = plotyy (log10(λ)log10 (ce),…log10(λ)log10 (numNZCoeff + 1));hL1。标志=“o”;hL2。标志=“o”;ylabel (h (1),“log_{10}分类错误”)ylabel (h (2),“log_ {10} nonzero-coefficient频率”)包含(“log_{10}λ的)标题(测试样本统计的)举行从
选择平衡的正则化强度指数预测变量稀疏和低分类错误。在这种情况下,一个值之间 来 应该足够了。
idxFinal = 7;
选择的模型Mdl
选择正则化的力量。
idxFinal MdlFinal = selectModels (Mdl);
MdlFinal
是一个ClassificationLinear
模型包含一个正规化的力量。为新观测估计标签,通过MdlFinal
和新数据预测
。
更多关于
分类损失
分类损失函数度量分类模型的预测误差。当你在考虑对比许多相同类型的损失模型,较低的损失表示一个更好的预测模型。
考虑以下场景。
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)。
算法
默认情况下,观察权重前类概率。如果您使用的供应权重权重
,那么软件可实现他们各自的先验概率和类。软件使用重整权重估计加权分类损失。
扩展功能
高大的数组
计算和数组的行比装入内存。
版本历史
介绍了R2016aR2022a:损失
返回一个不同的值与默认的成本矩阵模型
如果你指定一个默认的成本矩阵训练输入模型对象时,损失
函数返回一个不同的值与以前版本相比。
的损失
函数使用中存储的先验概率之前
属性规范化观察输入数据的权重。此外,函数使用矩阵的存储成本成本
如果你指定属性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国家网站不优化的访问你的位置。