resubLoss
替换分类损失
描述
例子
朴素贝叶斯分类器置换损失的确定
确定朴素贝叶斯分类器的样本内分类错误(替换损失)。一般来说,损失越小表示分类器越好。
加载fisheriris
数据集。创建X
这个数字矩阵包含了150个虹膜的四个测量值。创建Y
作为包含相应虹膜种类的字符向量的单元数组。
负载fisheririsX = meas;Y =物种;
使用预测器训练朴素贝叶斯分类器X
和类标签Y
.推荐的做法是指定类名。fitcnb
假设每个预测因子都是条件正态分布的。
Mdl = fitcnb(X,Y,“类名”, {“setosa”,“多色的”,“virginica”})
Mdl = ClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' NumObservations: 150 DistributionNames: {'normal' 'normal' 'normal' 'normal'} DistributionParameters: {3x4 cell}属性,方法
Mdl
是经过训练的ClassificationNaiveBayes
分类器。
估计样本内分类误差。
L = resubLoss(Mdl)
L = 0.0400
朴素贝叶斯分类器对4%的训练观察结果分类错误。
确定SVM分类器的替换铰链损失
加载电离层
数据集。该数据集有34个预测器和351个雷达返回二进制响应,坏的(“b”
)或好(‘g’
).
负载电离层
训练支持向量机分金宝app类器。标准化数据并指定‘g’
是正类。
SVMModel = fitcsvm(X,Y,“类名”, {“b”,‘g’},“标准化”,真正的);
SVMModel
是经过训练的ClassificationSVM
分类器。
估计样本内铰链损耗。
L = resubLoss(SVMModel,“LossFun”,“枢纽”)
L = 0.1603
铰链损耗为0.1603
.铰链损耗接近0的分类器是首选的。
通过检查分类损失比较GAMs
训练一个包含线性项和交互项的广义加性模型(GAM),估计有交互项和没有交互项的分类损失。指定在估计训练和测试数据的分类损失时是否包括交互项。
加载电离层
数据集。该数据集有34个预测器和351个雷达返回二进制响应,坏的(“b”
)或好(‘g’
).
负载电离层
将数据集划分为两个集:一个包含训练数据,另一个包含新的、未观察到的测试数据。为新的测试数据集保留50个观察值。
rng (“默认”)%用于重现性n = size(X,1);newInds = randsample(n,50);inds = ~ismember(1:n,newInds);XNew = X(newInds,:);YNew = Y(newInds);
使用预测器训练GAMX
和类标签Y
.推荐的做法是指定类名。指定包含10个最重要的交互术语。
Mdl = fitcgam(X(inds,:),Y(inds),“类名”, {“b”,‘g’},“互动”, 10)
Mdl = ClassificationGAM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'logit' Intercept: 2.0026 interaction: [10x2 double] NumObservations: 301 Properties, Methods
Mdl
是一个ClassificationGAM
模型对象。
计算有交互项和无交互项的替换分类损失Mdl
.要排除交互术语,请指定“IncludeInteractions”,假的
.
resubl = resubLoss(Mdl)
Resubl = 0
resubl_nointeraction = resubLoss(Mdl,“IncludeInteractions”假)
Resubl_nointeraction = 0
估计有和没有交互项的分类损失Mdl
.
l = loss(Mdl,XNew,YNew)
L = 0.0615
l_nointeraction = loss(Mdl,XNew,YNew,“IncludeInteractions”假)
L_nointeraction = 0.0615
包含交互项并不改变分类损失Mdl
.经过训练的模型对所有训练样本进行了正确分类,并对大约6%的测试样本进行了错误分类。
输入参数
Mdl
- - - - - -分类机器学习模型
完整分类模型对象
分类机器学习模型,指定为一个完整的分类模型对象,如下表所示的支持模型。金宝app
模型 | 分类模型对象 |
---|---|
广义加性模型 | ClassificationGAM |
k-最近邻模型 | ClassificationKNN |
朴素贝叶斯模型 | ClassificationNaiveBayes |
神经网络模型 | ClassificationNeuralNetwork |
金宝app单类和二元分类的支持向量机 | ClassificationSVM |
名称-值参数
指定逗号分隔的可选对名称,值
参数。的名字
参数名称和价值
对应的值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
resubLoss (Mdl LossFun,分对数)
估计logit替换损失。
IncludeInteractions
- - - - - -标记以包含交互术语
真正的
|假
标记以包括模型的交互术语,指定为真正的
或假
.这个论点仅对广义加性模型(GAM)有效。也就是说,只有当Mdl
是ClassificationGAM
.
默认值为真正的
如果Mdl
包含交互项。取值必须为假
如果模型不包含交互项。
数据类型:逻辑
LossFun
- - - - - -损失函数
“binodeviance”
|“classiferror”
|“crossentropy”
|“指数”
|“枢纽”
|分对数的
|“mincost”
|“二次”
|函数处理
丢失函数,指定为内置丢失函数名或函数句柄。
该表列出了可用的损耗函数。使用对应的字符向量或字符串标量指定一个。
价值 描述 “binodeviance”
二项异常 “classiferror”
错误的十进制率分类 “crossentropy”
交叉熵损失(仅适用于神经网络) “指数”
指数损失 “枢纽”
铰链的损失 分对数的
物流损失 “mincost”
最小预期误分类代价(对于后验概率分类分数) “二次”
二次损失 默认值取决于训练的模型(
Mdl
).默认值为
“classiferror”
如果Mdl
是一个ClassificationGAM
,ClassificationNeuralNetwork
,或ClassificationSVM
对象。默认值为
“mincost”
如果Mdl
是一个ClassificationKNN
或ClassificationNaiveBayes
对象。
有关损失函数的更多详细信息,请参见分类损失.
要指定自定义丢失函数,请使用函数句柄表示法。函数必须有这样的形式:
lossvalue =
lossfun
(C、S、W、成本)输出参数
lossvalue
是一个标量。指定函数名(
lossfun
).C
是一个n
——- - - - - -K
逻辑矩阵,用行表示对应的观察结果所属的类别。n
观察的数量在吗资源描述
或X
,K
是不同类的数量(元素个数(Mdl.ClassNames)
.列顺序与中的类顺序对应Mdl。ClassNames
.创建C
通过设置C(p,q) = 1
如果观察p
在课堂上问
,为每一行。设置row的所有其他元素p
来0
.年代
是一个n
——- - - - - -K
分类分数的数字矩阵。列顺序与中的类顺序对应Mdl。ClassNames
.年代
是一个分类分数矩阵,类似的输出预测
.W
是一个n
-by-1观察权重的数值向量。成本
是一个K
——- - - - - -K
错误分类成本的数字矩阵。例如,成本=个数(K) -眼数(K)
的成本。0
正确的分类和1
误分类。
例子:“LossFun”、“binodeviance”
数据类型:字符
|字符串
|function_handle
更多关于
分类损失
分类损失函数度量分类模型的预测不准确性。当你在许多模型中比较同一类型的损失时,较低的损失表示较好的预测模型。
考虑以下场景。
l为加权平均分类损失。
n是样本容量。
二元分类:
yj是观察到的类标签。软件将其编码为-1或1,表示负数或正类(或中的第一个或第二个类)
一会
分别属性)。f(Xj)为观察正级分类分数(行)j预测数据X.
米j=yjf(Xj)为分类观察的分类分数j成对应的类yj.的正数值米j指出正确的分类和不贡献太多的平均损失。的负值米j指出不正确的分类和对平均损失有显著贡献。
对于支持多类分类的算法(即金宝appK≥3):
yj*是的向量K- 1个0,其中1在对应于真实的观察类的位置yj.例如,如果第二次观测的真类是第三类和K= 4,然后y2*= [0 0 1 0] '.类的顺序对应于
一会
属性。f(Xj)为长度K班级成绩的观察向量j预测数据X.分数的顺序与课程的顺序相对应
一会
属性。米j=yj*”f(Xj).因此,米j是模型为真实的、观察到的类预测的标量分类分数。
观察权重j是wj.软件对观察权重进行归一化处理,使其之和等于相应的先验类概率。该软件还将先验概率归一化,使其和为1。因此,
对于这种场景,下表描述了可以使用金宝app“LossFun”
名称-值对参数。
损失函数 | 的价值LossFun |
方程 |
---|---|---|
二项异常 | “binodeviance” |
|
错误的十进制率分类 | “classiferror” |
是与得分最大的类对应的类标签。我{·}为指示函数。 |
叉损失 | “crossentropy” |
加权交叉熵损失为
权重在哪里 和是归一化的吗n而不是1。 |
指数损失 | “指数” |
|
铰链的损失 | “枢纽” |
|
分对数损失 | 分对数的 |
|
最小的预期错误分类成本 | “mincost” |
软件利用此方法计算加权最小期望分类成本j= 1,…,n.
最小期望误分类成本损失的加权平均值为
如果使用默认代价矩阵(其元素值为0表示正确分类,为1表示错误分类),则 |
二次损失 | “二次” |
该图比较了损失函数(除“crossentropy”
而且“mincost”
)超过分数米有一个观察。一些函数经过点(0,1)被归一化。
算法
resubLoss
计算相应的分类损失损失
对象的函数(Mdl
).有关特定于模型的描述,请参见损失
下表中的函数参考页。
模型 | 分类模型对象(Mdl ) |
损失 目标函数 |
---|---|---|
广义加性模型 | ClassificationGAM |
损失 |
k-最近邻模型 | ClassificationKNN |
损失 |
朴素贝叶斯模型 | ClassificationNaiveBayes |
损失 |
神经网络模型 | ClassificationNeuralNetwork |
损失 |
金宝app单类和二元分类的支持向量机 | ClassificationSVM |
损失 |
扩展功能
GPU数组
通过使用并行计算工具箱™在图形处理单元(GPU)上运行来加速代码。
使用注意事项和限制:
该函数完全支持经过训练的分类模型的GPU金宝app阵列
ClassificationKNN
或ClassificationSVM
对象。
有关更多信息,请参见在图形处理器上运行MATLAB函数(并行计算工具箱).
Beispiel offnen
Sie haben eine geänderte Version dieses Beispiels。Möchten Sie dieses Beispiel mit Ihren Änderungen öffnen?
MATLAB-Befehl
Sie haben auf einen Link geklickt, der diesem MATLAB-Befehl entspricht:
Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus。web浏览器unterstützen keine MATLAB-Befehle。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。