主要内容

保证金

类:ClassificationLinear

线性分类模型的分类边距

描述

例子

=利润(MdlXY返回分类的利润率为二元、线性分类模型Mdl使用预测数据X和相应的类标签Y中每个正则化强度的分类边距Mdl

例子

=利润(MdlXY“ObservationsIn”,也可以指定预测器数据观测维度“行”(默认)或“列”.例如,指定“ObservationsIn”、“列”表示预测数据中的列与观测值相对应。

=利润(Mdl资源描述ResponseVarName返回训练过的线性分类器的分类边距Mdl利用表中的预测数据资源描述和类标签资源描述。ResponseVarName

=利润(Mdl资源描述Y返回分类器的分类边距Mdl利用表中的预测数据资源描述类标签在向量中Y

输入参数

全部展开

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

预测数据,指定为n——- - - - - -p全或稀疏矩阵。这个方向的X指示行对应个别的观察结果,列对应个别的预测变量。

请注意

如果你定位你的预测矩阵,使观察结果对应列和指定“ObservationsIn”、“列”,那么计算时间可能会显著减少。

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

数据类型:|

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

  • 的数据类型Y的数据类型必须相同Mdl。一会(该软件将字符串数组视为字符向量的单元格数组。)

  • 不同的阶级Y的子集Mdl。一会

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

  • 的长度Y必须等于在X资源描述

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

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

请注意

如果你定位你的预测矩阵,使观察结果对应列和指定“ObservationsIn”、“列”,那么优化执行时间可能会显著减少。你不能指定“ObservationsIn”、“列”用于表中的预测数据。

用于训练模型的样例数据,指定为表。每一行的资源描述对应一个观察结果,每一列对应一个预测变量。可选地,资源描述可以包含用于响应变量和观察权重的附加列。资源描述必须包含用于训练的所有预测器Mdl.不允许多列变量和字符向量的单元格数组以外的单元格数组。

如果资源描述包含用于训练的响应变量Mdl,则不需要指定ResponseVarNameY

如果你训练Mdl使用表中包含的样例数据,则输入数据为保证金也必须在表中。

中指定为变量名的响应变量名资源描述.如果资源描述包含用于训练的响应变量Mdl,则不需要指定ResponseVarName

如果您指定ResponseVarName,则必须将其指定为字符向量或字符串标量。例如,如果响应变量存储为资源描述。Y,然后指定ResponseVarName作为“Y”.的所有列资源描述,包括资源描述。Y预测因子。

响应变量必须是一个类别、字符或字符串数组;逻辑向量:逻辑或数字向量;或者字符向量的单元格数组。如果响应变量是字符数组,则每个元素必须对应数组中的一行。

数据类型:字符|字符串

输出参数

全部展开

分类的利润率,作为数值列向量或矩阵返回。

n——- - - - - -l,在那里n观察的数量在吗X而且l正则化强度的数量在吗Mdl(即,元素个数(Mdl.Lambda)).

米(j分类范围是观察范围吗利用训练的具有正则化强度的线性分类模型Mdl。lambda(j

例子

全部展开

加载NLP数据集。

负载nlpdata

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

模型应该确定网页中的字数是否来自统计和机器学习工具箱™文档。因此,确定与统计和机器学习工具箱™文档网页对应的标签。

Ystats = Y ==“统计数据”

训练一个二进制的线性分类模型,它可以识别文档网页中的字数是否来自统计和机器学习工具箱™文档。指定保留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);

估计训练和测试样本的裕度。

mTrain =利润率(CMdl X (trainIdx:), Ystats (trainIdx));太=利润率(CMdl X (testIdx:), Ystats (testIdx));

因为有一个正则化的强度CMdlmTrain而且分别为长度等于训练观察数和测试观察数的列向量。

使用框图绘制两组边距。

图;箱线图([mTrain;太]、[0(大小(mTrain, 1), 1);(大小(mt, 1), 1)),“标签”, {“训练集”测试集的});甘氨胆酸h =;h.YLim = [-5 60];标题“培训和测试集的边际”

图中包含一个axes对象。标题为Training- and Test-Set margin的axes对象包含14个类型为line的对象。

训练集和测试集之间的差值分布相似。

执行特征选择的一种方法是比较来自多个模型的测试样本裕度。仅根据这个标准,边距越大的分类器就是越好的分类器。

加载NLP数据集。对数据进行预处理估计测试样本的利润率

负载nlpdataYstats = Y ==“统计数据”;X = X ';rng (1);%的再现性

创建一个数据分区,保存30%的观察结果用于测试。

分区= cvpartition (Ystats,“坚持”, 0.30);testIdx =测试(分区);%测试集指数XTest = X (:, testIdx);欧美= Ystats (testIdx);

分区是一个cvpartition对象,该对象定义数据集分区。

随机选择10%的预测变量。

p =大小(X, 1);%预测数idxPart = randsample (p,装天花板(0.1 * p));

训练两个二元线性分类模型:一个使用所有的预测因子,另一个使用随机的10%。利用SpaRSA优化目标函数,并指示观测值与列对应。

Ystats CVMdl = fitclinear (X,“CVPartition”分区,“规划求解”“sparsa”“ObservationsIn”“列”);PCVMdl = fitclinear (X (idxPart:), Ystats,“CVPartition”分区,“规划求解”“sparsa”“ObservationsIn”“列”);

CVMdl而且PCVMdlClassificationPartitionedLinear模型。

提取训练ClassificationLinear来自交叉验证模型的模型。

CMdl = CVMdl.Trained {1};PCMdl = PCVMdl.Trained {1};

估计每个分类器的测试样本裕度。使用框图绘制边缘集的分布。

fullMargins =利润率(CMdl XTest,欧美,“ObservationsIn”“列”);partMargins =利润率(PCMdl XTest (idxPart:),欧美,“ObservationsIn”“列”);图;箱线图([fullMargins partMargins),“标签”“所有预测”“10%的预测者”});甘氨胆酸h =;h.YLim = [-20 60];标题(测试样本的利润的

图中包含一个axes对象。标题为Test-Sample margin的axes对象包含14个类型为line的对象。

的边际分布CMdl位于高于边际分布的PCMdl

为了确定使用逻辑回归学习器的线性分类模型的一个好的套索惩罚强度,比较测试样本裕度的分布。

加载NLP数据集。对数据进行预处理估计测试样本的利润率

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

创建一组11个对数间距的正则化强度 1 0 - 8 通过 1 0 1

λ= logspace (8 1 11);

训练使用每种正则化优势的二元线性分类模型。利用SpaRSA优化目标函数。降低目标函数梯度上的公差1 e-8

rng (10);%的再现性Ystats CVMdl = fitclinear (X,“ObservationsIn”“列”“CVPartition”分区,“学习者”“物流”“规划求解”“sparsa”“正规化”“套索”“λ”λ,“GradientTolerance”1 e-8)
CVMdl = ClassificationPartitionedLinear CrossValidatedModel: 'Linear' ResponseName: 'Y' NumObservations: 31572 KFold: 1 Partition: [1x1 cvpartition] ClassNames: [0 1] ScoreTransform: 'none' Properties, Methods

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

Mdl = CVMdl。训练有素的{1}
Mdl = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'logit' Beta: [34023x11 double] Bias:[-11.5378 -11.5378 -11.5378 -11.5378 -11.5378…[1.0000e-08 7.9433e-08 6.3096e-07 5.0119e-06…]学习者:“逻辑”性质,方法

Mdl是一个ClassificationLinear模型对象。因为λ是一个序列的正则化强度,你能想到吗Mdl作为11个模型,每个正则化强度为λ

估计测试样本裕度。

m =利润率(Mdl X (:, testIdx) Ystats (testIdx),“ObservationsIn”“列”);尺寸(米)
ans =1×29471年11

因为有11种正则化优势,有11列。

绘制每个正则化强度的测试样本裕度图。因为逻辑回归分数在[0,1],所以裕度在[-1,1]。重新调整边界的大小,以帮助识别使网格上的边界最大化的正则化强度。

图;箱线图(10000 m ^) ylabel (“取幂试样边缘的)包含(“λ指数”

图中包含一个axes对象。axis对象包含77个line类型的对象。

数的值λ附近紧实的收益率边际分布 1 0 0 0 0 1 .较高的lambda值导致预测器变量稀疏性,这是分类器的一个良好品质。

选择发生在裕度分布中心开始下降之前的正则化强度。

LambdaFinal =λ(5);

使用整个数据集训练一个线性分类模型,并指定所需的正则化强度。

Ystats MdlFinal = fitclinear (X,“ObservationsIn”“列”“学习者”“物流”“规划求解”“sparsa”“正规化”“套索”“λ”, LambdaFinal);

要估计新观察值的标签,请传递MdlFinal和新的数据预测

更多关于

全部展开

扩展功能

介绍了R2016a