训练中未使用的观察值的分类损失
cvmdl.
- - - - - -交叉验证的二元线性分类模型ClassificationPartitionedLinear
模型对象交叉验证,二元,线性分类模型,指定为ClassificationPartitionedLinear
模型对象。你可以创建一个ClassificationPartitionedLinear
模型使用FitClinear.
并指定任意一个交叉验证参数,例如名称-值对参数,CrossVal
.
指定可选的逗号分隔的对名称,值
论点。的名字
参数名和价值
为对应值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen
.
“折叠”
- - - - - -折叠指数用于分类评分预测1: CVMdl。KFold
(默认)|正整数的数字矢量用于分类评分预测的折叠指标,指定为包括的逗号分隔对“折叠”
和一个正整数的数字向量。的元素折叠
必须从1
通过cvmdl.kfold.
.
例子:'折叠',[1 4 10]
数据类型:单
|双倍的
“LossFun”
- - - - - -损失功能'classiferror'
(默认)|“binodeviance”
|'指数'
|“枢纽”
|分对数的
|“mincost”
|'二次'
|函数处理损失函数,指定为逗号分隔对组成“LossFun”
和内置,丢失功能名称或功能句柄。
下表列出了可用的损耗函数。使用其对应的字符向量或字符串标量指定一个。
价值 | 描述 |
---|---|
“binodeviance” |
二项异常 |
'classiferror' |
分类错误 |
'指数' |
幂数 |
“枢纽” |
铰链 |
分对数的 |
物流 |
“mincost” |
最小预期的错误分类成本(用于后验概率的分类分数) |
'二次' |
二次 |
“mincost”
适用于后验概率的分类分数。对于线性分类模型,逻辑回归学习器默认返回后验概率作为分类分数,但支持向量机学习器不返回(参见预测
).
使用函数句柄表示法指定你自己的函数。
让n
是观测的次数X
和K
是不同班级的数量(元素个数(Mdl.ClassNames)
,Mdl
是输入模型)。您的功能必须具有此签名
lockvalue =lossfun
(C,S,W,成本)
输出参数lossvalue
是一个标量。
选择函数名(lossfun
).
C
是一个n
-经过-K
逻辑矩阵,其行表示相应的观测属于哪一类。中的列顺序对应于类的顺序Mdl。ClassNames
.
构造C
通过设置C (p, q) = 1
如果观察p
是在课堂上问
,每一行。设置行中的所有其他元素p
来0
.
年代
是一个n
-经过-K
分类分数的数值矩阵。中的列顺序对应于类的顺序Mdl。ClassNames
.年代
是一个矩阵的分类分数,类似于输出预测
.
W
是一个n
-乘1数值向量的观测权值。如果你通过W
,软件将它们的总和标准化1
.
成本
是A.K-经过-K
错误分类成本的数字矩阵。例如,Cost = ones(K) - eye(K)
指定成本0
对于正确的分类,和1
错误分类。
使用以下命令指定函数'lockfun',@
.lossfun
数据类型:char
|细绳
|function_handle
“模式”
- - - - - -聚合损失水平“平均”
(默认)|“个人”
损失聚合级别,指定为逗号分隔对组成“模式”
和“平均”
或“个人”
.
价值 | 描述 |
---|---|
“平均” |
返回所有折叠的平均损失 |
“个人” |
返回每个折叠的损失 |
例子:“模式”,“个人”
加载NLP数据集。
负载nlpdata
X
是预测器数据的稀疏矩阵,以及Y
是类标签的分类向量。数据中有两个以上的类。
该模型应识别网页中的单词计数是否来自统计信息和计算机学习工具箱文档。因此,识别与统计和机器学习工具箱文档网页对应的标签。
ystats = y =='统计';
交叉验证二进制,线性分类模型,可以识别文档网页中的单词是否来自统计和机器学习工具箱™文档。
RNG(1);重复性的%cvmdl = fitclinear(x,ystats,“CrossVal”,“上”);
cvmdl.
是A.ClassificationPartitionedLinear
模型。默认情况下,软件实现10倍交叉验证。您可以使用使用的折叠数'kfold'
名称-值对的论点。
估计出折叠,分类错误率的平均值。
ce = kfoldLoss (CVMdl)
CE = 7.6017E-04
或者,您可以通过指定名称-值对来获得每倍分类错误率“模式”,“个人”
在kfoldLoss
.
加载NLP数据集。预处理数据估计k折交叉验证分类误差,并转换预测器数据。
负载nlpdataystats = y =='统计';X = X ';
使用5倍交叉验证对二元线性分类模型进行交叉验证。利用SpaRSA优化目标函数。指定预测器观察值对应于列。
RNG(1);重复性的%cvmdl = fitclinear(x,ystats,“规划求解”,“sparsa”,'kfold',5,...'观察',“列”);CMdl = CVMdl.Trained {1};
cvmdl.
是A.ClassificationPartitionedLinear
模型。它包含属性训练有素
,这是一个5×1个单元阵列,保持aClassificationLinear
软件使用每个折叠的训练集训练的模型。
创建一个匿名函数,测量线性损耗,即
重量是用于观察的吗j, y_j为响应j(负类为-1,非负类为1),f_j为观察的原始分类评分j.自定义损失函数必须以特定的形式编写。有关编写自定义损失函数的规则,请参见损失义务
名称-值对的论点。因为功能不使用分类费用,使用~
有kfoldLoss
忽略它的位置。
linearloss = @(c,s,w,〜)和总和(-w。*和(s. * c,2))/ sum(w);
使用线性损耗函数估计平均交叉验证的分类丢失。此外,获得每个折叠的损耗。
ce = kfoldLoss (CVMdl,“LossFun”,linearloss)
ce = -8.0982
ceFold = kfoldLoss (CVMdl,“LossFun”,linearloss,“模式”,“个人”)
ceFold =5×1-8.3165 -8.7633 -7.4342 -8.0423 -7.9347
确定使用Logistic回归学习者的线性分类模型的良好的租赁强度,比较测试样本分类错误率。
加载NLP数据集。预处理数据指定自定义分类损失.
负载nlpdataystats = y =='统计';X = X ';
创建一组11个对数间隔的正则化强度 通过 .
-0.5λ= logspace(6日,11);
交叉验证二元,线性分类模型使用5倍交叉验证,并使用每个正则化强度。利用SpaRSA优化目标函数。将目标函数梯度的容差降低到1E-8
.
RNG(10);重复性的%cvmdl = fitclinear(x,ystats,'观察',“列”,...'kfold',5,“学习者”,“物流”,“规划求解”,“sparsa”,...“正规化”,“套索”,“λ”λ,'gradienttolerance'1 e-8)
CVMdl = ClassificationPartitionedLinear CrossValidatedModel: 'Linear' ResponseName: 'Y' NumObservations: 31572 KFold: 5 Partition: [1×1 cvpartition] ClassNames: [0 1] ScoreTransform: 'none'属性,方法
提取经过训练的线性分类模型。
Mdl1 = CVMdl。训练有素的{1}
Mdl1 = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'logit' Beta: [34023×11 double] Bias: [-13.2559 -13.2559 -13.2559 -9.1017 -7.1128 -5.4113 -3.6007 -3.1606 -2.9794] Lambda: [1.0000e-06 3.5481e-06 1.2589e-05 4.4668e-05 1.5849e-04 5.6234e-04 0.0020 0.0071 0.0251 0.0891 0.3162]初学者:“物流”属性,方法
Mdl1
是A.ClassificationLinear
模型对象。因为λ
是一系列正规化优势,你可以想到Mdl
作为11个型号,一个用于每个正则化强度λ
.
估计交叉验证的分类误差。
ce = kfoldLoss (CVMdl);
因为有11种正规化强度,ce
是分类错误率的1 × 11向量。
更高的值λ
导致预测变量稀疏性,这是分类器的良好质量。对于每个正则化强度,使用整个数据集和交叉验证模型时的选项列出线性分类模型。确定每个模型的非零系数的数量。
Mdl = fitclinear (X, Ystats'观察',“列”,...“学习者”,“物流”,“规划求解”,“sparsa”,“正规化”,“套索”,...“λ”λ,'gradienttolerance'1 e-8);numNZCoeff = (Mdl.Beta ~ = 0)之和;
在相同的图中,为每个正则化强度绘制交叉验证的,分类误差率和非零系数的频率。绘制日志比例上的所有变量。
图;[h, hL1, hL2] = plotyy (log10(λ)log10 (ce),...log10(lambda),log10(numnzcoeff));HL1.Marker ='o';hL2。标志='o';ylabel (h (1),'log_ {10}分类错误') ylabel (h (2),'log_ {10}非零系数频率')包含(“log_{10}λ的) 标题('test-sample statistics')举行从
选择余额强度的索引,使预测值变稀物性和低分类误差余额。在这种情况下,之间的值 来 足以满足。
idxFinal = 7;
选择模型Mdl
与所选择的正规化强度。
idxFinal MdlFinal = selectModels (Mdl);
MdlFinal
是A.ClassificationLinear
模型包含一个正规化强度。要估计新观测值的标签,请通过MdlFinal
和新的数据预测
.
分类损失函数测量分类模型的预测不准确性。当你在许多模型中比较同一类型的损失时,损失越低表明预测模型越好。
考虑以下情景。
l为加权平均分类损失。
n为样本量。
二进制分类:
yj是观察到的类标签。软件将其代码为-1或1,分别表示为负或正类。
f(Xj)为观察(行)的原始分类评分j预测数据X.
米j=yjf(Xj)是分类观察的分类分数j对应的类yj.积极的价值观米j表明正确的分类,对平均损失贡献不大。负的米j表示不正确的分类,并对平均损失显着贡献。
对于支持多字符分类的算法(即,万博1manbetxK≥3):
yj*是向量K- 1零,1个位置与真实的,观察类相对应yj.例如,如果第二个观察的真正类是第三个阶级和K= 4,然后y2*= [0 0 1 0]'。类的顺序对应于订单一会
输入模型的属性。
f(Xj)是长度K用于观察的班级分数向量j预测数据X.分数的顺序对应于类中的类的顺序一会
输入模型的属性。
米j=yj*′f(Xj).因此,米j标量分类得分是模型预测真实的观察类。
观测权重j是wj.该软件将观测权值归一化,使其和为相应的先验类别概率。软件还将先验概率归一化,使其和为1。因此,
鉴于此方案,下表介绍了通过使用您可以指定的支持损耗功能万博1manbetx“LossFun”
名称-值对的论点。
损失功能 | 的价值损失义务 |
方程 |
---|---|---|
二项异常 | “binodeviance” |
|
指数损失 | '指数' |
|
分类错误 | 'classiferror' |
分类误差为误分类观测值的加权分数,其中 为后验概率最大的类对应的类标签。我{x是指标功能。 |
铰链损失 | “枢纽” |
|
分对数损失 | 分对数的 |
|
最小的成本 | “mincost” |
该软件利用这一程序计算加权最小成本的观测j= 1,......,n.
加权平均最小成本损失为
|
二次损失 | '二次' |
这个数字比较的损失函数(除了“mincost”
)进行一次观察米.一些函数被归一化通过[0,1]。
你点击一个链接对应于这个MATLAB命令:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。