主要内容

ClassificationPartitionedLinear

包:classreg.learning.partition
超类:ClassificationPartitionedModel

旨在为二进制线性模型高维数据的分类

描述

ClassificationPartitionedLinear是一组线性分类模型的训练旨在折叠。获得一个旨在,线性分类模型,使用fitclinear并指定一个交叉验证选项。你可以估计的质量分类,或者如何推广的线性分类模型,使用一个或多个这些“kfold”方法:kfoldPredict,kfoldLoss,kfoldMargin,kfoldEdge

每个“kfold”方法使用模型训练的观测预测out-of-fold观察的反应。例如,假设您旨在使用5折。在这种情况下,软件随机分配每个观测分成大致相等大小的五组。的培训褶皱包含四个组的(也就是说,约4/5的数据)和测试褶皱包含另一组(即约1/5的数据)。在这种情况下,交叉验证收益如下:

  1. 软件培训(存储在第一个模型CVMdl.Trained {1})使用观察过去四组和储备第一组的观测验证。

  2. 软件培训第二个模型,这是存储在CVMdl.Trained {2}使用观察第一组最后三组。软件保留在第二组观察验证。

  3. 软件第三到五收益以类似的方式模型。

如果验证通过调用kfoldPredict的观测,计算预测使用第一个模型组1,组2第二模式,等等。简而言之,每个观测使用的软件估计响应模型训练没有观察。

请注意

ClassificationPartitionedLinear模型对象不存储预测数据集。

建设

CVMdl = fitclinear (X, Y,名称,值)当创建了一个旨在,线性分类模型的名字要么是“CrossVal”,“CVPartition”,“坚持”,或“KFold”。更多细节,请参阅fitclinear

属性

全部展开

交叉验证的属性

旨在模型名称,指定为一个特征向量。

例如,“线性”指定了一个旨在为二进制分类或回归线性模型。

数据类型:字符

旨在折叠,指定为一个正整数。

数据类型:

交叉验证参数值,例如,旨在使用名称-值对参数值的线性模型,指定为一个对象。ModelParameters不包含估计参数。

访问的属性ModelParameters使用点符号。

在训练数据的观察,指定为一个积极的数字标量。

数据类型:

数据分区显示软件将数据分为交叉验证折叠,如何指定为一个cvpartition模型。

线性分类模型的训练在交叉验证折叠,指定的单元阵列ClassificationLinear模型。训练有素的k细胞,k是折叠的数量。

数据类型:细胞

观察权重模型,旨在使用指定为一个数值向量。WNumObservations元素。

该软件可实现W这样观察在一个特定的类的权重总结类的先验概率。

数据类型:|

指定的模型,观察类标签用于旨在作为一个类别或字符数组,逻辑或数值向量,或单元阵列的特征向量。YNumObservations元素,是相同的数据类型作为输入参数Y你通过了fitclinear该模型旨在。(软件对字符串数组作为细胞阵列特征向量)。

每一行的Y代表观察到的分类预测相应的观测的数据。

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

其他分类属性

分类预测指标,指定为一个向量的正整数。CategoricalPredictors包含索引值表明相应的预测分类。索引值介于1和p,在那里p预测的数量被用来训练模型。如果所有的预测都直言,那么这个属性是空的([])。

数据类型:|

独特的类标签用于培训,指定为一个类别或字符数组,逻辑或数值向量,或单元阵列的特征向量。一会具有相同的数据类型的类标签吗Y(软件对字符串数组作为细胞阵列特征向量)。一会也决定了课堂秩序。

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

这个属性是只读的。

误分类代价,指定为一个正方形数字矩阵。成本K行和列,K类的数量。

成本(,j)是一个指向类分类的成本j如果它真正的类。的行和列的顺序成本对应于类的顺序一会

数据类型:

预测出他们名字的顺序出现在预测数据,指定为一个单元阵列的特征向量。的长度PredictorNames等于在训练数据变量的数量X资源描述作为预测变量。

数据类型:细胞

这个属性是只读的。

类概率之前,指定为一个数值向量。之前尽可能多的元素类一会和元素的顺序对应的元素一会

数据类型:

响应变量名称,指定为一个特征向量。

数据类型:字符

分数转换函数适用于预测分数,指定为一个函数名或函数处理。

线性分类模型在转换之前,预测分类评分的观察x(行向量)f(x)=xβ+b,在那里βb对应于Mdl.BetaMdl.Bias,分别。

改变分数转换函数,例如,函数,使用点符号。

  • 对于一个内置的函数,输入这个代码和替换函数表中的值。

    Mdl。ScoreTransform = '函数”;

    价值 描述
    “doublelogit” 1 / (1 +e2x)
    “invlogit” 日志(x/ (1 -x))
    “ismax” 集类的分数最大的分数为1,并设置所有其他类的分数为0
    “分对数” 1 / (1 +e- - - - - -x)
    “没有”“身份” x(转换)
    “标志” 1x< 0
    为0x= 0
    1x> 0
    “对称” 2x- 1
    “symmetricismax” 集合类的分数最大的分数为1,和所有其他类的分数设置为1
    “symmetriclogit” 2 / (1 +e- - - - - -x)- 1

  • 对于一个MATLAB®函数,或者您定义一个函数,输入函数处理。

    Mdl。ScoreTransform = @函数;

    函数必须接受一个矩阵的原始分数为每个类,然后返回一个相同大小的矩阵表示为每一个类转换后的分数。

数据类型:字符|function_handle

方法

kfoldEdge 分类边观察不用于培训
kfoldLoss 分类损失的观察中未使用培训
kfoldMargin 分类利润率观察中未使用培训
kfoldPredict 预测观察标签不用于培训

复制语义

价值。学习如何价值类影响复制操作,明白了复制对象

例子

全部折叠

加载NLP数据集。

负载nlpdata

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

确定对应的标签统计和机器学习工具箱™文档web页面。

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

旨在一个二进制,线性分类模型,该模型可以确定是否这个词项在文档的web页面的统计和机器学习工具箱™文档。

rng (1);%的再现性Ystats CVMdl = fitclinear (X,“CrossVal”,“上”)
CVMdl = ClassificationPartitionedLinear CrossValidatedModel:“线性”ResponseName:“Y”NumObservations: 31572 KFold: 10个分区:[1 x1 cvpartition]类名:[0 1]ScoreTransform:“没有一个”属性,方法

CVMdl是一个ClassificationPartitionedLinear旨在模型。因为fitclinear实现了10倍交叉验证默认情况下,CVMdl.Trained包含十ClassificationLinear模型包含训练线性分类的结果模型的折叠。

估计标签out-of-fold观察和估计泛化误差通过CVMdlkfoldPredictkfoldLoss,分别。

oofLabels = kfoldPredict (CVMdl);通用电气= kfoldLoss (CVMdl)
通用电气(ge) = 7.6017 e-04

观察分类错误估计泛化误差小于0.1%。

确定好lasso-penalty强度线性分类模型,使用逻辑回归的学习者,实现5倍交叉验证。

加载NLP数据集。

负载nlpdata

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

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

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

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

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

旨在模型。提高执行速度,转置预测数据和指定列的观测。使用SpaRSA估计系数。降低目标函数的梯度的宽容1 e-8

X = X ';rng (10);%的再现性Ystats CVMdl = fitclinear (X,“ObservationsIn”,“列”,“KFold”5,“学习者”,“物流”,“规划求解”,“sparsa”,“正规化”,“套索”,“λ”λ,“GradientTolerance”1 e-8)
CVMdl = ClassificationPartitionedLinear CrossValidatedModel:“线性”ResponseName:“Y”NumObservations: 31572 KFold: 5分区:[1 x1 cvpartition]类名:[0 1]ScoreTransform:“没有一个”属性,方法
numCLModels =元素个数(CVMdl.Trained)
numCLModels = 5

CVMdl是一个ClassificationPartitionedLinear模型。因为fitclinear实现5倍交叉验证,CVMdl包含5ClassificationLinear火车在每个折叠模型软件。

显示第一个训练有素的线性分类模型。

Mdl1 = CVMdl.Trained {1}
Mdl1 = ClassificationLinear ResponseName:“Y”类名:[0 1]ScoreTransform:分对数的β:[34023 x11双]偏见:[-13.2936 -13.2936 -13.2936 -13.2936 -13.2936 -6.8954 -5.4359 -4.7170 -3.4108 -3.1566 -2.9792]λ:[1.0000 5.6234 1.5849 4.4668 1.2589 3.5481 e-06 e-06 e-05 e-05 e-04 e-04 0.0020 0.0071 0.0251 0.0891 0.3162)学习者:“物流”属性,方法

Mdl1是一个ClassificationLinear模型对象。fitclinear构造Mdl1通过培训第一个4折。因为λ是一个序列的正则化的优势,你能想到什么Mdl111岁的模型,每个正规化的力量在一个λ

估计旨在分类错误。

ce = kfoldLoss (CVMdl);

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

图包含2轴对象。坐标轴对象1标题测试样本统计,包含log_{10}λ,ylabel log_{10}分类误差包含一个类型的对象。坐标轴对象2 ylabel log_ {10} nonzero-coefficient频率包含一个类型的对象。

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

idxFinal = 7;

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

idxFinal MdlFinal = selectModels (Mdl);

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

版本历史

介绍了R2016a

全部展开