主要内容

损失

类:ClassificationLinear

分类损失线性分类模型

描述

例子

l=损失(Mdl,X,Y)返回分类损失二进制的线性分类模型Mdl使用预测数据X和相应的类标签Yl包含每个正则化强度的分类错误率Mdl

l=损失(Mdl,资源描述,ResponseVarName)返回分类预测数据的损失资源描述而真正的类标签Tbl.ResponseVarName

l=损失(Mdl,资源描述,Y)返回分类损失预测的数据表资源描述而真正的类标签Y

例子

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

请注意

如果预测数据X资源描述包含任何缺失的值LossFun没有设置为“classifcost”,“classiferror”,或“mincost”,损失函数可以返回NaN。更多细节,请参阅损失可以返回NaN预测数据缺失值

输入参数

全部展开

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

预测数据,指定为一个n——- - - - - -p完整的或稀疏矩阵。这个方向的X表明行对应于个人观察,和列对应于个人预测变量。

请注意

如果你东方预测矩阵,以便观察并指定对应列“ObservationsIn”、“列”,那么你可能会经历显著减少计算时间。

的长度Y和观察的数量X必须是相等的。

数据类型:|

指定的类标签,分类,特点,或字符串数组;逻辑或数值向量;或细胞的特征向量。

  • 的数据类型Y的数据类型必须相同吗Mdl.ClassNames(软件对字符串数组作为细胞阵列特征向量)。

  • 的不同的类Y必须是一个子集的Mdl.ClassNames

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

  • 的长度Y必须等于观测的数量X资源描述

数据类型:分类|字符|字符串|逻辑|||细胞

样本数据用于训练模型,指定为一个表。每一行的资源描述对应于一个观察,每一列对应一个预测变量。可选地,资源描述响应变量可以包含额外的列和观察权重。资源描述必须包含所有的预测用于火车Mdl。多列变量和细胞数组以外的细胞阵列的特征向量是不允许的。

如果资源描述包含响应变量用于火车Mdl,那么你不需要指定ResponseVarNameY

如果你训练Mdl使用样本数据包含在一个表中,然后输入数据损失也必须在一个表中。

响应变量名称,指定为一个变量的名字资源描述。如果资源描述包含响应变量用于火车Mdl,那么你不需要指定ResponseVarName

如果您指定ResponseVarName,那么你必须指定它作为特征向量或字符串标量。例如,如果响应变量是存储为Tbl.Y,然后指定ResponseVarName作为“Y”。否则,软件将所有列资源描述,包括Tbl.Y预测因子。

响应变量必须分类,字符,或字符串数组;一个逻辑或数值向量;或一个单元阵列的特征向量。如果响应变量是一个字符数组,数组的每个元素都必须对应一行。

数据类型:字符|字符串

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

损失函数,指定为逗号分隔组成的“LossFun”和一个内置的损失函数名或函数句柄。

  • 下表列出了可用的损失函数。指定一个使用其相应的特征向量或字符串标量。

    价值 描述
    “binodeviance” 二项异常
    “classifcost” 观察到的误分类代价
    “classiferror” 被误诊率小数
    “指数” 指数损失
    “枢纽” 铰链的损失
    分对数的 物流损失
    “mincost” 最小的预期的误分类代价(后验概率的分类评分)
    “二次” 二次损失

    “mincost”适合分类后验概率的分数。对于线性分类模型,逻辑回归学生返回后验概率作为分类的分数在默认情况下,但SVM学习者不(见预测)。

  • 指定一个自定义的损失函数,利用函数处理符号。函数必须有这种形式:

    lossvalue =lossfun(C、S、W、成本)

    • 输出参数lossvalue是一个标量。

    • 你指定函数名(lossfun)。

    • C是一个n——- - - - - -K逻辑矩阵行指示相应的观察所属的类。n观察的数量吗资源描述X,K不同的类的数目(元素个数(Mdl.ClassNames)。列顺序对应于类顺序Mdl.ClassNames。创建C通过设置C (p, q) = 1,如果观察p是在课堂上,为每一行。设置所有其他元素的行p0

    • 年代是一个n——- - - - - -K数字矩阵分类的分数。列顺序对应于类顺序Mdl.ClassNames年代分类是一个矩阵得分,类似的输出预测

    • W是一个n1数字的观察向量权重。

    • 成本是一个K——- - - - - -K数字矩阵的误分类代价。例如,成本= 1 (K) -眼(K)指定了一个成本0正确的分类和1误分类。

例子:“LossFun”@lossfun

数据类型:字符|字符串|function_handle

预测数据观察维度,指定为“行”“列”

请注意

如果你东方预测矩阵,以便观察并指定对应列“ObservationsIn”、“列”,那么你可能会经历显著减少计算时间。你不能指定“ObservationsIn”、“列”预测数据表。

数据类型:字符|字符串

观察体重、指定为逗号分隔组成的“重量”和一个数字向量或一个变量的名字资源描述

  • 如果您指定权重作为一个数字矢量,然后的大小权重必须等于观测的数量X资源描述

  • 如果您指定权重作为一个变量的名字资源描述,那么这个名字一定是一个特征向量或字符串标量。例如,如果存储为权重Tbl.W,然后指定权重作为' W '。否则,软件将所有列资源描述,包括Tbl.W预测因子。

如果你提供重量,那么对于每一个正规化的力量,损失计算加权分类损失和规范权重总结先验概率的值在相应的类中。

数据类型:|

输出参数

全部展开

分类损失,作为一个数字返回标量或行向量。的解释l取决于权重LossFun

l一样的尺寸吗Mdl.LambdaL (j)是线性分类模型的分类损失训练使用正则化力量Mdl.Lambda (j)

例子

全部展开

加载NLP数据集。

负载nlpdata

X是一个稀疏矩阵的预测数据,Y是一个分类向量类的标签。有两个以上的类的数据。

模型应该确定是否这个词项在一个web页面的统计和机器学习工具箱™文档。所以,确定对应的标签统计和机器学习的工具箱™文档web页面。

Ystats = Y = =“统计数据”;

火车一个二进制,线性分类模型,该模型可以确定这个词项在文档web页面是否从统计和机器学习工具箱™文档。指定坚持30%的观察。使用SpaRSA优化目标函数。

rng (1);%的再现性Ystats CVMdl = fitclinear (X,“规划求解”,“sparsa”,“坚持”,0.30);CMdl = CVMdl.Trained {1};

CVMdl是一个ClassificationPartitionedLinear模型。它包含属性训练有素的,这是一个1×1单元阵列举行ClassificationLinear使用训练集模型的软件培训。

从分区中提取的训练和测试数据的定义。

trainIdx =培训(CVMdl.Partition);testIdx =测试(CVMdl.Partition);

估计训练和测试样本分类错误。

ceTrain =损失(CMdl X (trainIdx:), Ystats (trainIdx))
ceTrain = 1.3572 e-04
cet(中央东部东京)=损失(CMdl X (testIdx:), Ystats (testIdx))
cet(中央东部东京)= 5.2804 e-04

因为有一个正规化的力量CMdl,ceTraincet(中央东部东京)是数字标量。

加载NLP的数据集,数据的预处理估计测试样本分类损失和转置的预测数据。

负载nlpdataYstats = Y = =“统计数据”;X = X ';

火车一个二进制线性分类模型。指定坚持30%的观察。使用SpaRSA优化目标函数。指定该预测观测对应列。

rng (1);%的再现性Ystats CVMdl = fitclinear (X,“规划求解”,“sparsa”,“坚持”,0.30,“ObservationsIn”,“列”);CMdl = CVMdl.Trained {1};

CVMdl是一个ClassificationPartitionedLinear模型。它包含属性训练有素的,这是一个1×1单元阵列举行ClassificationLinear使用训练集模型的软件培训。

从分区中提取的训练和测试数据的定义。

trainIdx =培训(CVMdl.Partition);testIdx =测试(CVMdl.Partition);

创建一个匿名函数,线性损失的措施,也就是说,

l = j - - - - - - w j y j f j j w j

w j 是观察的重量吗j, y j 是响应j为负类(1,1),和 f j 是观察原始分类得分j。定制的损失函数必须用特定的形式。编写一个定制的损失函数规则,请参阅LossFun名称-值对的论点。

linearloss = @ (C、S、W、成本)和(- W。*总和(S . C * 2) / (W)之和;

估计使用线性的训练和测试样本分类损失损失函数。

ceTrain =损失(CMdl X (:, trainIdx) Ystats (trainIdx),“LossFun”linearloss,“ObservationsIn”,“列”)
ceTrain = -7.8330
cet(中央东部东京)=损失(CMdl X (:, testIdx) Ystats (testIdx),“LossFun”linearloss,“ObservationsIn”,“列”)
cet(中央东部东京)= -7.7383

确定好lasso-penalty强度线性分类模型,使用逻辑回归的学习者,比较测试样本的分类错误率。

加载NLP的数据集,数据的预处理指定自定义分类损失

负载nlpdataYstats = Y = =“统计数据”;X = X ';rng (10);%的再现性分区= cvpartition (Ystats,“坚持”,0.30);testIdx =测试(分区);XTest = X (:, testIdx);欧美= Ystats (testIdx);

创建一组11对数间隔正则化的优势 1 0 - - - - - - 6 通过 1 0 - - - - - - 0 5

-0.5λ= logspace(6日,11);

火车二进制,线性分类模型,使用每一种正则化的优势。使用SpaRSA优化目标函数。降低目标函数的梯度的宽容1 e-8

Ystats CVMdl = fitclinear (X,“ObservationsIn”,“列”,“CVPartition”分区,“学习者”,“物流”,“规划求解”,“sparsa”,“正规化”,“套索”,“λ”λ,“GradientTolerance”1 e-8)
CVMdl = ClassificationPartitionedLinear CrossValidatedModel:“线性”ResponseName:“Y”NumObservations: 31572 KFold: 1分区:[1 x1 cvpartition]类名:[0 1]ScoreTransform:“没有一个”属性,方法

提取训练线性分类模型。

Mdl = CVMdl.Trained {1}
Mdl = ClassificationLinear ResponseName:“Y”类名:[0 1]ScoreTransform:分对数的β:[34023 x11双]偏见:[-12.1036 -12.1036 -12.1036 -12.1036 -12.1036……λ:[1.0000 4.4668 1.2589 3.5481 e-06 e-06 e-05 e-05……学习者:“物流”属性,方法

Mdl是一个ClassificationLinear模型对象。因为λ是一个序列的正则化的优势,你能想到什么Mdl11岁的模型,每个正规化的力量在一个λ

估计测试样本分类错误。

ce =损失(Mdl X (:, testIdx) Ystats (testIdx),“ObservationsIn”,“列”);

因为有11个正规化的优势,ce是一个1-by-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 + 1));hL1。标志=“o”;hL2。标志=“o”;ylabel (h (1),“log_{10}分类错误”)ylabel (h (2),“log_ {10} nonzero-coefficient频率”)包含(“log_{10}λ的)标题(测试样本统计的)举行

图包含2轴对象。坐标轴对象1标题测试样本数据包含一个类型的对象。坐标轴对象2包含一个类型的对象。

选择平衡的正则化强度指数预测变量稀疏和低分类错误。在这种情况下,一个值之间 1 0 - - - - - - 4 1 0 - - - - - - 1 应该足够了。

idxFinal = 7;

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

idxFinal MdlFinal = selectModels (Mdl);

MdlFinal是一个ClassificationLinear模型包含一个正规化的力量。为新观测估计标签,通过MdlFinal和新数据预测

更多关于

全部展开

算法

默认情况下,观察权重前类概率。如果您使用的供应权重权重,那么软件可实现他们各自的先验概率和类。软件使用重整权重估计加权分类损失。

扩展功能

版本历史

介绍了R2016a

全部展开