线性分类模型的分类损失
中预测器数据的分类损失L.
=损失(Mdl
那TBL.
那ResponseVarName
)TBL.
和真正的类标签资源描述。ResponseVarName
.
Mdl
-二进制,线性分类模型ClassificationLinear
模型对象二元线性分类模型,指定为ClassificationLinear
模型对象。你可以创建一个ClassificationLinear
模型对象使用FitClinear.
.
X
-预测数据预测数据,指定为一个N-经过-P.满或稀疏矩阵。这种方向X
表示行对应于各个观察,并且列对应于各个预测变量。
笔记
如果你定位你的预测矩阵,以便观察对应的列和指定'观察','列'
,那么您可能会体验到计算时间的显著减少。
长度y
和观察人数X
必须是平等的。
数据类型:单身的
|双倍的
TBL.
-样本数据用于培训模型的示例数据,指定为表。每一排TBL.
对应于一个观察,并且每列对应于一个预测变量。可选地,TBL.
可以包含响应变量和观察权值的附加列。TBL.
必须包含用于训练的所有预测因子Mdl
.不允许多列变量和单元格数组(字符向量的单元格数组除外)。
如果TBL.
包含用于训练的响应变量Mdl
,那么你不需要指定ResponseVarName
或y
.
如果你训练Mdl
使用表中包含的示例数据,然后输入数据失利
也必须在桌子里。
指定可选的逗号分离对名称,值
论点。名称
是参数名称和价值
是对应的值。名称
必须出现在引号内。您可以按如下顺序指定几个名称和值对参数name1,value1,...,namen,valuen
.
'lockfun'
-损失功能'classiferror'
(默认)|'binodeviance'
|'指数'
|“枢纽”
|'logit'
|“mincost”
|'二次'
|功能手柄丢失函数,指定为逗号分隔的对,由'lockfun'
和内置,丢失功能名称或功能句柄。
下表列出了可用损耗功能。使用其对应的字符向量或字符串标量指定一个。
价值 | 描述 |
---|---|
'binodeviance' |
二项式偏差 |
'classiferror' |
小数点被错误分类 |
'指数' |
指数损失 |
“枢纽” |
铰链损失 |
'logit' |
物流损失 |
“mincost” |
最小预期的错误分类成本(用于后验概率的分类分数) |
'二次' |
二次损失 |
“mincost”
适用于后验概率的分类评分。对于线性分类模型,Logistic回归学习者默认将后续概率作为分类分数返回,但SVM学习者没有(见预测
).
要指定自定义丢失功能,请使用函数句柄表示法。该函数必须具有此表单:
lockvalue =损失义务
(C,S,W,成本)
输出参数lossvalue
是一个标量。
您可以指定函数名(损失义务
).
C
是一个N
-经过-K.
具有行的逻辑矩阵,指示相应观察所属的类。N
是观察人数TBL.
或X
,K.
是不同类的数量(元素个数(Mdl.ClassNames)
.列顺序对应于类顺序Mdl。ClassNames
.创建C
通过设置C (p, q) = 1
,如果观察P.
是在课堂上问:
,用于每一行。设置行中所有其他元素P.
至0.
.
S.
是一个N
-经过-K.
分类分数的数字矩阵。列顺序对应于类顺序Mdl。ClassNames
.S.
是一个分类评分的矩阵,类似于输出预测
.
W.
是一个N
-乘1的观测权值的数值向量。
成本
是A.K.
-经过-K.
错误分类成本的数字矩阵。例如,成本=(k) - 眼睛(k)
指定成本0.
为了正确分类和1
错误分类。
例子:'lockfun',@
损失义务
数据类型:char
|细绳
|function_handle.
'观察'
-预测数据观测维数'行'
(默认)|'列'
预测器数据观察维度,指定为'行'
或'列'
.
笔记
如果你定位你的预测矩阵,以便观察对应的列和指定'观察','列'
,那么您可能会体验到计算时间的显著减少。你不能指定'观察','列'
对于表中的预测数据。
数据类型:char
|细绳
加载NLP数据集。
加载nlpdata.
X
是预测器数据的稀疏矩阵,以及y
是类标签的类别向量。数据中有两个以上的类。
该模型应识别网页中的单词计数是否来自统计信息和计算机学习工具箱文档。因此,识别与统计和机器学习工具箱文档网页对应的标签。
ystats = y =='统计';
培训二进制线性分类模型,可以识别文档网页中的单词计数是否来自统计信息和计算机学习工具箱™文档。指定持有30%的观察结果。利用SpaRSA优化目标函数。
RNG(1);重复性的%cvmdl = fitclinear(x,ystats,“规划求解”那'sparsa'那'坚持',0.30);cmdl = cvmdl.trained {1};
cvmdl.
是A.分类分类线性
模型。它包含属性训练有素
,这是一个1×1个单元阵列,保持aClassificationLinear
使用培训集培训的软件的模型。
从分区定义中提取培训和测试数据。
trainidx =培训(cvmdl.partition);testidx = test(cvmdl.partition);
估计训练样本和测试样本的分类误差。
cetrain =损失(cmdl,x(trainidx,:),ystats(trainidx))
cetrain = 1.3572e-04
CETEST =损失(cmdl,x(testidx,:),ystats(testidx))
cet(中央东部东京)= 5.2804 e-04
因为有一个正则化力量CMDL.
那cetrain
和赛
是数字标量。
加载NLP数据集。预处理数据估计测试样本分类损失,并转换预测器数据。
加载nlpdata.ystats = y =='统计';X = X ';
培训二进制,线性分类模型。指定持有30%的观察结果。利用SpaRSA优化目标函数。指定预测器观察对应于列。
RNG(1);重复性的%cvmdl = fitclinear(x,ystats,“规划求解”那'sparsa'那'坚持',0.30,......'观察'那'列');cmdl = cvmdl.trained {1};
cvmdl.
是A.分类分类线性
模型。它包含属性训练有素
,这是一个1×1个单元阵列,保持aClassificationLinear
使用培训集培训的软件的模型。
从分区定义中提取培训和测试数据。
trainidx =培训(cvmdl.partition);testidx = test(cvmdl.partition);
创建一个匿名函数,测量线性损耗,即
重量是用来观察的吗j那
是响应j(-1为负类,另外1个),以及
是理想分类的观察分数j.自定义损失函数必须以特定的形式编写。有关编写自定义丢失函数的规则,请参见损失义务
名称值对参数。
linearloss = @(c,s,w,成本)和(-w。*和(s. * c,2))/ sum(w);
使用线性损耗函数估计培训和测试样本分类损失。
ceTrain =损失(CMdl X (:, trainIdx) Ystats (trainIdx),'lockfun',linearloss,......'观察'那'列')
cetrain = -7.8330.
CETEST =损失(cmdl,x(:,testidx),ystats(testidx),'lockfun',linearloss,......'观察'那'列')
cetest = -7.7383.
确定使用Logistic回归学习者的线性分类模型的良好的租赁强度,比较测试样本分类错误率。
加载NLP数据集。预处理数据指定自定义分类损失.
加载nlpdata.ystats = y =='统计';X = X ';RNG(10);重复性的%分区= cvpartition (Ystats,'坚持',0.30);testidx =测试(分区);xtest = x(:,testIdx);ytest = ystats(testidx);
创建一组11个对数间隔的正则化强度 通过 .
-0.5λ= logspace(6日,11);
训练二元线性分类模型,利用每一个正则化优势。利用SpaRSA优化目标函数。将目标函数梯度上的公差降低到1E-8
.
cvmdl = fitclinear(x,ystats,'观察'那'列'那......'cvpartition',划分,“学习者”那'逻辑'那“规划求解”那'sparsa'那......'正规化'那“套索”那'lambda'λ,'gradienttolerance'1 e-8)
CVMDL =分类artitionedLineSearyScrossvalidatedModel:'Linear'rancectename:'y'numobservations:31572 kfold:1分区:[1x1 cvpartition] classnames:[0 1] scoreTransform:'无'属性,方法
提取培训的线性分类模型。
mdl = cvmdl.trinained {1}
Mdl = classiationlinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'logit' Beta: [34023x11 double]偏爱:[1x11 double] Lambda: [1x11 double]学习者:'logistic'属性,方法
Mdl
是A.ClassificationLinear
模型对象。因为lambda.
是一系列正规化优势,你可以想到Mdl
作为11个型号,一个用于每个正则化强度lambda.
.
估计测试样本分类错误。
ce =损失(Mdl X (:, testIdx) Ystats (testIdx),'观察'那'列');
因为有11个正则化优势,ce
是一个1×11的分类错误速率矢量。
更高的值lambda.
导致预测变量稀疏性,这是分类器的良好质量。对于每个正则化强度,使用整个数据集和交叉验证模型时的选项列出线性分类模型。确定每个模型的非零系数的数量。
mdl = fitclinear(x,ystats,'观察'那'列'那......“学习者”那'逻辑'那“规划求解”那'sparsa'那'正规化'那“套索”那......'lambda'λ,'gradienttolerance',1E-8);numnzcoeff = sum(mdl.beta〜= 0);
在相同的图中,为每个正则化强度绘制非零系数的测试样本误差速率和频率。绘制日志比例上的所有变量。
数字;[h,hl1,hl2] = plotyy(log10(lambda),log10(ce),......log10(lambda),log10(numnzcoeff + 1));HL1.Marker ='o';HL2.Marker =.'o';ylabel(h(1),'log_ {10}分类错误')Ylabel(H(2),'log_ {10}非零系数频率')包含('log_ {10} lambda') 标题('test-sample statistics')举行从
选择余额强度的索引,使预测值变性稀疏性和低分类误差进行平衡。在这种情况下,之间的值 至 足以满足。
IDXFinal = 7;
选择模型Mdl
随着所选的正则化力量。
mdlfinal = SelectModels(MDL,IDXFinal);
MdlFinal
是A.ClassificationLinear
模型包含一个正则化强度。估算新观察的标签,通过MdlFinal
和新的数据预测
.
分类损失功能测量分类模型的预测不准确性。当您在许多模型之间比较相同类型的损耗时,较低的损耗表示更好的预测模型。
考虑以下情景。
L.是加权平均分类损失。
N是样本大小。
二进制分类:
yj是观察到的类标签。软件将其编码为-1或1,表示负或正类(或第一个或第二个类Classnames.
财产分别。
F(Xj)是观察的正级分类评分(行)j预测数据X.
mj=yjF(Xj)是分类观察的分类分数j进入对应的课程yj.正值mj说明正确的分类,不要对平均损失造成太大的影响。负的mj表示不正确的分类,并对平均损失显着贡献。
对于支持多字符分类的算法(即,万博1manbetxK.≥3):
yj*是向量K.- 1零,1个位置与真实的,观察类相对应yj.例如,如果第二个观察的真正类是第三个阶级和K.= 4, 然后y2*= [0 0 1 0]'.类的顺序对应于订单Classnames.
输入模型的属性。
F(Xj)是长度K.观察类分数向量j预测数据X.分数的顺序对应于类中的类的顺序Classnames.
输入模型的属性。
mj=yj*'F(Xj).所以,mj标量分类得分是模型预测真实的观察类。
观察的重量j是W.j.该软件将观察权重标准化,使得它们总和到相应的先前类概率。该软件还规范化了现有概率,因此它们总和为1.因此,
鉴于此方案,下表介绍了通过使用您可以指定的支持损耗功能万博1manbetx'lockfun'
名称值对参数。
损失功能 | 的价值损失义务 |
方程 |
---|---|---|
二项式偏差 | 'binodeviance' |
|
小数点被错误分类 | 'classiferror' |
是与具有最大分数的类对应的类标签。一世{·是指标功能。 |
叉损失 | “crossentropy” |
加权交叉熵损失是
哪里重量 被标准化为总和N而不是1。 |
指数损失 | '指数' |
|
铰链损失 | “枢纽” |
|
Logit损失 | 'logit' |
|
最小预期错误分类费用 | “mincost” |
该软件使用此过程计算加权最小预期的分类成本进行观察j= 1,......,N.
最小期望误分类成本损失的加权平均值为
如果使用默认成本矩阵(其元素值为0对于正确分类和1个不正确的分类),则 |
二次损失 | '二次' |
该图比较了损耗功能(除了“crossentropy”
和“mincost”
)超过分数m一个观察。一些函数被规范化以通过点(0,1)。
默认情况下,观察权重是现有的概率。如果您提供权重重量
然后,软件将它们标准化为总和在相应类中的先前概率。该软件使用重字化权重来估计加权分类损失。
Tiene UnaVersiónModififada de Este Ejegro。¿desea abrir este ejegro ejemero con modififiones?
在MATLAB中有一个对应的序列:
ejecute el comandoinsuciéndoloen la Ventana de comandos de matlab。los navegadores网站没有adminiten comandos de matlab。
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。