主要内容

kfoldLoss

训练中未使用的观察值的分类损失

描述

例子

l=kfoldLoss(CVMdl返回交叉验证的分类损失得到的交叉验证,二元,线性分类模型CVMdl. 就是每一个褶皱,,kfoldLoss估计当它使用所有其他观察进行训练时,对观察的分类损失。

l包含组成的线性分类模型中的每个正则化强度的分类损耗CVMdl

例子

l=kfoldLoss(CVMdl名称,值使用一个或多个指定的附加选项名称,值对参数。例如,指示哪些折叠用于损失计算或指定分类损失函数。

输入参数

全部展开

交叉验证,二元,线性分类模型,指定为ClassificationPartitionedLinear模型对象。你可以创建一个ClassificationPartitionedLinear模型使用fitclinear并指定任意一个交叉验证参数,例如名称-值对参数,CrossVal

为了获得估计,kfoldLoss应用了用于交叉验证线性分类模型的相同数据(XY).

名称-值对的观点

指定可选的逗号分隔的对名称,值论据。名称参数名和价值为对应值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen

用于分类分数预测的折叠索引,指定为逗号分隔对,由“折叠”和一个正整数的数字向量。的元素折叠必须从1通过CVMdl.KFold

例子:“褶皱”[1 4 10]

数据类型:|双重的

损失函数,指定为逗号分隔对组成“LossFun”以及内置的丢失函数名或函数句柄。

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

    价值 描述
    “binodeviance” 二项异常
    “classiferror” 十进制错误分类率
    “指数型” 指数损失
    “枢纽” 铰链损耗
    分对数的 物流损失
    “mincost” 最小预期误分类成本(对于属于后验概率的分类分数)
    '二次' 二次损失

    “mincost”适用于后验概率的分类分数。对于线性分类模型,逻辑回归学习器默认返回后验概率作为分类分数,但支持向量机学习器不返回(参见预测).

  • 使用函数句柄表示法指定你自己的函数。

    n是观测的次数XK是不同类的数量(元素个数(Mdl.ClassNames)Mdl是输入模型)。您的函数必须具有此签名

    lockvalue =lossfun(C、S、W、成本)
    地点:

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

    • 选择函数名(lossfun).

    • C是一个n-借-K逻辑矩阵,其行表示相应的观测属于哪一类。中的列顺序对应于类的顺序Mdl。ClassNames

      构造C通过设置C (p, q) = 1如果观察p是在课堂上,每一行。设置行中的所有其他元素p0

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

    • W是一个n-乘1数值向量的观测权值。如果你通过W,软件将它们的总和标准化1

    • 成本是一个K-借-K错误分类成本的数字矩阵。例如,Cost = ones(K) - eye(K)指定成本0对于正确的分类,和1因为分类错误。

    使用以下命令指定函数"损失",@lossfun

数据类型:烧焦|一串|function_handle

损失聚合级别,指定为逗号分隔对组成“模式”“平均”“个人”

价值 描述
“平均” 所有折叠的平均收益损失
“个人” 返回每个折叠的损失

例子:“模式”,“个人”

输出参数

全部展开

交叉验证分类损失,以数字标量、向量或矩阵的形式返回。的解释l取决于失意

R正则化强度的数量是交叉验证的模型(存储在元素个数(CVMdl.Trained {1} .Lambda))及F为存储的折叠数CVMdl.KFold).

  • 如果模式“平均”,然后l是1 -R矢量。L (j是使用正则化强度的交叉验证模型所有折叠的平均分类损失j

  • 否则,l是一个F-借-R矩阵。L (j是折页的分类损失吗使用正规化强度的交叉验证模型j

估计lkfoldLoss使用创建的数据CVMdl(见XY).

例子

全部展开

加载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软件使用每个折叠的训练集训练的模型。

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

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

w j 重量是用于观察的吗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个对数间隔的正则化强度 1 0 - 6 通过 1 0 0 5

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

图中包含两个轴。标题为“测试样本统计”的轴1包含类型为line的对象。轴2包含类型为line的对象。

选择正则化强度指标,平衡预测变量稀疏性和低分类误差。在本例中,值介于 1 0 - 4 1 0 - 1 足以满足。

idxFinal = 7;

从中选择模型Mdl与所选择的正规化强度。

idxFinal MdlFinal = selectModels (Mdl);

MdlFinal是一个ClassificationLinear模型包含一个正规化强度。要估计新观测值的标签,请通过MdlFinal和新的数据预测

更多关于

全部展开

介绍了R2016a