主要内容

失利

类:ClassificationLinear

线性分类模型的分类损失

描述

例子

L.=损失(MdlXy返回分类损失对于二元,线性分类模型Mdl使用预测器数据X和相应的类标签yL.包含每个正则化强度的分类错误率Mdl

L.=损失(MdlTBL.ResponseVarName中预测器数据的分类损失TBL.和真正的类标签资源描述。ResponseVarName

L.=损失(MdlTBL.y返回表中预测器数据的分类损失TBL.和真正的类标签y

例子

L.=损失(___名称,值除了使用前面语法中的任何输入参数组合外,还使用一个或多个名称-值对参数指定选项。例如,您可以指定预测器数据中的列对应于观察数据,或者指定分类损失函数。

输入参数

展开全部

二元线性分类模型,指定为ClassificationLinear模型对象。你可以创建一个ClassificationLinear模型对象使用FitClinear.

预测数据,指定为一个N-经过-P.满或稀疏矩阵。这种方向X表示行对应于各个观察,并且列对应于各个预测变量。

笔记

如果你定位你的预测矩阵,以便观察对应的列和指定'观察','列',那么您可能会体验到计算时间的显著减少。

长度y和观察人数X必须是平等的。

数据类型:单身的|双倍的

类标签,指定为类别、字符或字符串数组;逻辑或数字矢量;或者是字符向量的单元数组。

  • 数据类型y必须与数据类型相同Mdl。ClassNames(该软件将字符串数组视为字符向量的单元格阵列。)

  • 中不同的类y必须是Mdl。ClassNames

  • 如果y是一个字符数组,那么每个元素都必须对应于数组的一行。

  • 长度y必须等于观察的数量XTBL.

数据类型:分类|char|细绳|逻辑|单身的|双倍的|细胞

用于培训模型的示例数据,指定为表。每一排TBL.对应于一个观察,并且每列对应于一个预测变量。可选地,TBL.可以包含响应变量和观察权值的附加列。TBL.必须包含用于训练的所有预测因子Mdl.不允许多列变量和单元格数组(字符向量的单元格数组除外)。

如果TBL.包含用于训练的响应变量Mdl,那么你不需要指定ResponseVarNamey

如果你训练Mdl使用表中包含的示例数据,然后输入数据失利也必须在桌子里。

响应变量名,指定为中变量的名称TBL..如果TBL.包含用于训练的响应变量Mdl,那么你不需要指定ResponseVarName

如果您指定ResponseVarName,然后您必须将其指定为字符向量或字符串标量。例如,如果存储为响应变量tbl.y.然后指定ResponseVarName作为“Y”.否则,该软件将处理所有列TBL., 包括tbl.y.预测因子。

响应变量必须是分类,字符或字符串数​​组;逻辑或数字矢量;或者是字符向量的单元格阵列。如果响应变量是字符数组,则每个元素必须对应于数组的一行。

数据类型:char|细绳

名称-值对的观点

指定可选的逗号分离对名称,值论点。名称是参数名称和价值是对应的值。名称必须出现在引号内。您可以按如下顺序指定几个名称和值对参数name1,value1,...,namen,valuen

丢失函数,指定为逗号分隔的对,由'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。ClassNamesS.是一个分类评分的矩阵,类似于输出预测

    • W.是一个N-乘1的观测权值的数值向量。

    • 成本是A.K.-经过-K.错误分类成本的数字矩阵。例如,成本=(k) - 眼睛(k)指定成本0.为了正确分类和1错误分类。

例子:'lockfun',@损失义务

数据类型:char|细绳|function_handle.

预测器数据观察维度,指定为'行''列'

笔记

如果你定位你的预测矩阵,以便观察对应的列和指定'观察','列',那么您可能会体验到计算时间的显著减少。你不能指定'观察','列'对于表中的预测数据。

数据类型:char|细绳

观察权重,指定为逗号分隔的配对组成'重量'和数字矢量或变量的名称TBL.

  • 如果您指定重量作为一个数值向量,则其大小重量必须等于观察的数量XTBL.

  • 如果您指定重量作为变量的名称TBL.,然后名称必须是字符向量或字符串标量。例如,如果重量被存储为TBL.W.然后指定重量作为' W '.否则,该软件将处理所有列TBL., 包括TBL.W.预测因子。

如果你提供权重,那么对于每个正则化强度,失利计算加权分类损失并将权重标准化以总结相应类中的现有概率的值。

数据类型:双倍的|单身的

输出参数

展开全部

分类损失,作为数字标量或行向量返回。解释L.取决于重量损失义务

L.与尺寸相同Mdl。L.ambdaL (j是使用正则化强度训练的线性分类模型的分类损失Mdl。L.ambda(j

例子

展开全部

加载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);

创建一个匿名函数,测量线性损耗,即

L. = σ. j - W. j y j F j σ. j W. j

W. j 重量是用来观察的吗j y j 是响应j(-1为负类,另外1个),以及 F j 是理想分类的观察分数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个对数间隔的正则化强度 1 0. - 6. 通过 1 0. - 0. 5.

-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')举行

图包含2个轴。具有标题测试样本统计信息的轴1包含类型线的对象。轴2包含类型线的对象。

选择余额强度的索引,使预测值变性稀疏性和低分类误差进行平衡。在这种情况下,之间的值 1 0. - 4. 1 0. - 1 足以满足。

IDXFinal = 7;

选择模型Mdl随着所选的正则化力量。

mdlfinal = SelectModels(MDL,IDXFinal);

MdlFinal是A.ClassificationLinear模型包含一个正则化强度。估算新观察的标签,通过MdlFinal和新的数据预测

更多关于

展开全部

算法

默认情况下,观察权重是现有的概率。如果您提供权重重量然后,软件将它们标准化为总和在相应类中的先前概率。该软件使用重字化权重来估计加权分类损失。

扩展能力

在R2016A介绍