训练中未使用的观察值的分类损失
CVMdl
- - - - - -交叉验证的二元线性分类模型ClassificationPartitionedLinear
模型对象交叉验证,二元,线性分类模型,指定为ClassificationPartitionedLinear
模型对象。您可以创建ClassificationPartitionedLinear
模型使用fitclinear
并指定任意一个交叉验证参数,例如名称-值对参数,CrossVal
.
指定可选的逗号分隔的对名称,值
参数。的名字
参数名和价值
为对应值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
折叠
- - - - - -用于分类评分预测的折叠指数1: CVMdl。KFold
(默认)|正整数的数字向量用于分类评分预测的折叠索引,指定为逗号分隔对,由“折叠”
和一个正整数的数字向量。的元素折叠
必须从1
通过CVMdl。KFold
.
例子:“折叠”,[1 4 10]
数据类型:单
|双
LossFun
- - - - - -损失函数“classiferror”
(默认)|“binodeviance”
|“指数”
|“枢纽”
|分对数的
|“mincost”
|“二次”
|函数处理损失函数,指定为逗号分隔对组成“LossFun”
以及一个内置的丢失函数名或函数句柄。
下表列出了可用的损耗函数。使用其对应的字符向量或字符串标量指定一个。
价值 | 描述 |
---|---|
“binodeviance” |
二项异常 |
“classiferror” |
十进制错误分类率 |
“指数” |
指数损失 |
“枢纽” |
铰链的损失 |
分对数的 |
物流损失 |
“mincost” |
最小的预期误分类成本(用于后验概率的分类分数) |
“二次” |
二次损失 |
“mincost”
适用于后验概率的分类分数。对于线性分类模型,逻辑回归学习器默认返回后验概率作为分类分数,但支持向量机学习器不返回(参见预测
).
使用函数句柄表示法指定你自己的函数。
让n
是观测的次数X
和K
为不同类别的数目(元素个数(Mdl.ClassNames)
,Mdl
是输入模型)。您的函数必须有这个签名
lossvalue =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”@
.lossfun
数据类型:字符
|字符串
|function_handle
模式
- - - - - -聚合损失水平“平均”
(默认)|“个人”
损失聚合级别,指定为逗号分隔对组成“模式”
和“平均”
或“个人”
.
价值 | 描述 |
---|---|
“平均” |
回报率损失在所有折线上平均 |
“个人” |
返回每一折的损失 |
例子:“模式”,“个人”
加载NLP数据集。
负载nlpdata
X
是预测数据的稀疏矩阵,和Y
是类标签的分类向量。数据中有两个以上的类。
模型应该识别网页中的单词计数是否来自统计学和机器学习工具箱™文档。因此,识别与统计和机器学习工具箱™文档网页相对应的标签。
Ystats = Y ==“统计数据”;
交叉验证一个二元线性分类模型,该模型可以识别文档网页中的单词计数是否来自统计学和机器学习工具箱™文档。
rng (1);%的再现性Ystats CVMdl = fitclinear (X,“CrossVal”,“上”);
CVMdl
是一个ClassificationPartitionedLinear
模型。默认情况下,该软件实现10倍交叉验证。属性可以改变折叠的数量“KFold”
名称-值对的论点。
估计出折叠,分类错误率的平均值。
ce = kfoldLoss (CVMdl)
ce = 7.6017 e-04
或者,您可以通过指定名称-值对来获得每倍分类错误率“模式”,“个人”
在kfoldLoss
.
加载NLP数据集。预处理数据,如估计k折交叉验证分类误差,并对预测数据进行转置。
负载nlpdataYstats = Y ==“统计数据”;X = X ';
使用5倍交叉验证对二元线性分类模型进行交叉验证。利用SpaRSA优化目标函数。指定预测器观察值对应于列。
rng (1);%的再现性Ystats CVMdl = fitclinear (X,“规划求解”,“sparsa”,“KFold”5,...“ObservationsIn”,“列”);CMdl = CVMdl.Trained {1};
CVMdl
是一个ClassificationPartitionedLinear
模型。它包含属性训练有素的
,这是一个5 × 1单元格数组,包含一个ClassificationLinear
软件使用每个折叠的训练集训练的模型。
创建一个匿名函数来测量线性损失,也就是说,
重量是用于观察的吗j, y_j为响应j(负类为-1,非负类为1),f_j为观察的原始分类评分j.自定义损失函数必须以特定的形式编写。有关编写自定义损失函数的规则,请参见LossFun
名称-值对的论点。因为功能不使用分类费用,使用~
有kfoldLoss
忽略它的位置。
linearloss = @ (C, S W ~)和(- W。*总和(S . C * 2) / (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数据集。预处理数据,如指定自定义分类损失.
负载nlpdataYstats = Y ==“统计数据”;X = X ';
创建一组11个对数间隔的正则化强度 通过 .
-0.5λ= logspace(6日,11);
交叉验证二元,线性分类模型使用5倍交叉验证,并使用每个正则化强度。利用SpaRSA优化目标函数。将目标函数梯度的容差降低到1 e-8
.
rng (10);%的再现性Ystats CVMdl = fitclinear (X,“ObservationsIn”,“列”,...“KFold”5,“学习者”,“物流”,“规划求解”,“sparsa”,...“正规化”,“套索”,“λ”λ,“GradientTolerance”1 e-8)
CVMdl = ClassificationPartitionedLinear CrossValidatedModel: 'Linear' ResponseName: 'Y' NumObservations: 31572 KFold: 5 Partition: [1x1 cvpartition] ClassNames: [0 1] ScoreTransform: 'none'属性,方法
提取经过训练的线性分类模型。
Mdl1 = CVMdl。训练有素的{1}
Mdl1 = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'logit' Beta: [34023x11 double] Bias:[-13.3808 -13.3808 -13.3808 -13.3808 -13.3808 -13.3808 -13.3808 -13.3808 -13.3808 -13.3808…[1.0000e-06 3.5481e-06 1.2589e-05 4.4668e-05…]学习者:逻辑属性,方法
Mdl1
是一个ClassificationLinear
模型对象。因为λ
你能想到一个正规化强度的序列吗Mdl
作为11个模型,每个正规化强度在λ
.
估计交叉验证的分类误差。
ce = kfoldLoss (CVMdl);
因为有11种正规化强度,ce
是分类错误率的1 × 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));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)为观察(行)的阳性分类评分j预测数据的X.
米j=yjf(Xj)为分类观察的分类评分j对应的类yj.积极的价值观米j表明正确的分类,对平均损失贡献不大。负的米j指出错误的分类,并对平均损失有很大的贡献。
对于支持多类分类的算法(即,金宝appK≥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。因此,
给定此场景,下表描述了支持的损失函数,可以使用金宝app“LossFun”
名称-值对的论点。
损失函数 | 的价值LossFun |
方程 |
---|---|---|
二项异常 | “binodeviance” |
|
十进制错误分类率 | “classiferror” |
为得分最大的类对应的类标签。我{·}是指示函数。 |
叉损失 | “crossentropy” |
加权交叉熵损失是
的权重 都归一化为n而不是1。 |
指数损失 | “指数” |
|
铰链的损失 | “枢纽” |
|
分对数损失 | 分对数的 |
|
最小的误分类成本 | “mincost” |
该软件计算加权最小期望分类成本使用这一程序的观察j= 1,…,n.
最小期望误分类代价损失的加权平均值为
如果使用默认代价矩阵(其元素值为0表示正确分类,1表示不正确分类),则 |
二次损失 | “二次” |
这个数字比较的损失函数(除了“crossentropy”
和“mincost”
超过分数米一个观察。一些函数被归一化通过点(0,1)。
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。