训练中未使用的观察值的分类损失
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
.
成本
是一个K-借-K
错误分类成本的数字矩阵。例如,Cost = ones(K) - eye(K)
指定成本0
对于正确的分类,和1
因为分类错误。
使用以下命令指定函数"损失",@
.lossfun
数据类型:烧焦
|一串
|function_handle
“模式”
- - - - - -聚合损失水平“平均”
(默认)|“个人”
损失聚合级别,指定为逗号分隔对组成“模式”
和“平均”
或“个人”
.
价值 | 描述 |
---|---|
“平均” |
所有折叠的平均收益损失 |
“个人” |
返回每个折叠的损失 |
例子:“模式”,“个人”
加载NLP数据集。
负载nlpdata
X
是预测数据的稀疏矩阵,以及Y
是类标签的分类向量。数据中有两个以上的类。
该模型应识别网页中的单词计数是否来自统计信息和计算机学习工具箱文档。因此,识别与统计和机器学习工具箱文档网页对应的标签。
Y=Y=='统计';
交叉验证二进制线性分类模型,该模型可以识别文档网页中的字数是否来自统计和机器学习工具箱™ 文档
RNG(1);重复性的%cvmdl = fitclinear(x,ystats,“CrossVal”,“上”);
CVMdl
是一个ClassificationPartitionedLinear
模型默认情况下,软件执行10倍交叉验证。您可以使用“KFold”
名称-值对的论点。
估计出折叠,分类错误率的平均值。
ce = kfoldLoss (CVMdl)
ce=7.6017e-04
或者,您可以通过指定名称-值对来获得每倍分类错误率“模式”,“个人”
在kfoldLoss
.
加载NLP数据集。预处理数据估计k折交叉验证分类误差,并转置预测数据。
负载nlpdataY=Y=='统计';X = X ';
使用5倍交叉验证对二元线性分类模型进行交叉验证。利用SpaRSA优化目标函数。指定预测器观察值对应于列。
RNG(1);重复性的%cvmdl = fitclinear(x,ystats,“规划求解”,“sparsa”,“KFold”,5,...'观察',“列”);CMdl = CVMdl.Trained {1};
CVMdl
是一个ClassificationPartitionedLinear
模型。它包含属性训练
,这是一个5×1个单元阵列,保持aClassificationLinear
软件使用每个折叠的训练集训练的模型。
创建一个测量线性损失的匿名函数,即,
重量是用于观察的吗j, y_j为响应j(负类为-1,非负类为1),f_j为观察的原始分类评分j.自定义损失函数必须以特定的形式编写。有关编写自定义损失函数的规则,请参见失意
名称-值对参数。因为函数不使用分类成本,所以使用~
有kfoldLoss
忽略它的位置。
linearloss=@(C,S,W,~)和(-W.*sum(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
要确定使用逻辑回归学习器的线性分类模型的良好套索惩罚强度,请比较测试样本分类错误率。
加载NLP数据集。预处理数据指定自定义分类损失.
负载nlpdataY=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分区:[1x1 cvpartition]类名:[0 1]ScoreTransform:'none'属性、方法
提取经过训练的线性分类模型。
Mdl1 = CVMdl。训练有素的{1}
Mdl1 = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'logit' Beta: [34023x11 double] Bias: [1x11 double] Lambda: [1x11 double] Learner: 'logistic'属性,方法
Mdl1
是一个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.标记器='o';hL2。标志='o';ylabel (h (1),'日志{10}分类错误') ylabel (h (2),“对数{10}非零系数频率”)包含(“log_{10}λ的)头衔('test-sample statistics')举行从
选择正则化强度指标,平衡预测变量稀疏性和低分类误差。在本例中,值介于 来 足以满足。
idxFinal = 7;
从中选择模型Mdl
与所选择的正规化强度。
idxFinal MdlFinal = selectModels (Mdl);
MdlFinal
是一个ClassificationLinear
模型包含一个正规化强度。要估计新观测值的标签,请通过MdlFinal
和新的数据预测
.
分类损失函数测量分类模型的预测不准确性。当你在许多模型中比较同一类型的损失时,损失越低表明预测模型越好。
考虑下面的场景。
l为加权平均分类损失。
n为样本量。
二进制分类:
yj是被观察的类标签。软件将其编码为-1或1,表示负类或正类(或中第一类或第二类)一会
财产),分别。
f(Xj)是观察的正类分类分数(row)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” |
为得分最大的类对应的类标签。我{·是指标功能。 |
叉损失 | “crossentropy” |
加权交叉熵损失是
重量在哪里 都归一化为n而不是1。 |
指数损失 | “指数型” |
|
铰链损耗 | “枢纽” |
|
分对数损失 | 分对数的 |
|
最小的误分类成本 | “mincost” |
该软件使用此过程计算加权最小预期的分类成本进行观察j= 1,...,n.
最小期望误分类代价损失的加权平均值为
如果使用默认代价矩阵(其元素值为0表示正确分类,1表示不正确分类),则 |
二次损失 | '二次' |
这个数字比较的损失函数(除了“crossentropy”
和“mincost”
)过分米一个观察。一些函数被归一化通过点(0,1)。
您已经有了abgeänderte版本死亡Beispiels。Möchten您是谁? Änderungen öffnen?
您有一个连接到MATLAB-Befehl entspricht:
在澳大利亚的MATLAB中,您的名字是durch Eingabe。韦伯·朗瑟·恩特森·基恩·贝维尔。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。