主要内容

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

    • 成本是A.K-经过-K错误分类成本的数字矩阵。例如,Cost = ones(K) - eye(K)指定成本0对于正确的分类,和1错误分类。

    使用以下命令指定函数'lockfun',@lossfun

数据类型:char|细绳|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是类标签的分类向量。数据中有两个以上的类。

该模型应识别网页中的单词计数是否来自统计信息和计算机学习工具箱文档。因此,识别与统计和机器学习工具箱文档网页对应的标签。

ystats = y =='统计'

交叉验证二进制,线性分类模型,可以识别文档网页中的单词是否来自统计和机器学习工具箱™文档。

RNG(1);重复性的%cvmdl = fitclinear(x,ystats,“CrossVal”“上”);

cvmdl.是A.ClassificationPartitionedLinear模型。默认情况下,软件实现10倍交叉验证。您可以使用使用的折叠数'kfold'名称-值对的论点。

估计出折叠,分类错误率的平均值。

ce = kfoldLoss (CVMdl)
CE = 7.6017E-04

或者,您可以通过指定名称-值对来获得每倍分类错误率“模式”,“个人”kfoldLoss

加载NLP数据集。预处理数据估计k折交叉验证分类误差,并转换预测器数据。

负载nlpdataystats = y =='统计';X = X ';

使用5倍交叉验证对二元线性分类模型进行交叉验证。利用SpaRSA优化目标函数。指定预测器观察值对应于列。

RNG(1);重复性的%cvmdl = fitclinear(x,ystats,“规划求解”“sparsa”'kfold',5,...'观察'“列”);CMdl = CVMdl.Trained {1};

cvmdl.是A.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。*和(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

确定使用Logistic回归学习者的线性分类模型的良好的租赁强度,比较测试样本分类错误率。

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

负载nlpdataystats = 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 Partition: [1×1 cvpartition] ClassNames: [0 1] ScoreTransform: 'none'属性,方法

提取经过训练的线性分类模型。

Mdl1 = CVMdl。训练有素的{1}
Mdl1 = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'logit' Beta: [34023×11 double] Bias: [-13.2559 -13.2559 -13.2559 -9.1017 -7.1128 -5.4113 -3.6007 -3.1606 -2.9794] Lambda: [1.0000e-06 3.5481e-06 1.2589e-05 4.4668e-05 1.5849e-04 5.6234e-04 0.0020 0.0071 0.0251 0.0891 0.3162]初学者:“物流”属性,方法

Mdl1是A.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.Marker ='o';hL2。标志='o';ylabel (h (1),'log_ {10}分类错误') ylabel (h (2),'log_ {10}非零系数频率')包含(“log_{10}λ的) 标题('test-sample statistics')举行

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

idxFinal = 7;

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

idxFinal MdlFinal = selectModels (Mdl);

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

更多关于

展开全部

介绍了R2016a