主要内容

边缘

类:ClassificationLinear

线性分类模型的分类边

描述

例子

e=边缘(MdlXY返回分类的边缘对于二元,线性分类模型Mdl使用预测器数据X和相应的类标签在Ye中每个正则化强度的分类边Mdl

e=边缘(Mdl资源描述ResponseVarName返回经过训练的线性分类器的分类边Mdl使用预测数据资源描述类标签在里面资源描述。ResponseVarName

e=边缘(Mdl资源描述Y返回分类器的分类边Mdl使用表中的预测数据资源描述类的标签是向量Y

例子

e=边缘(___名称,值除以前语法中的任何输入参数组合外,还使用一个或多个名称-值对参数指定选项。例如,您可以指定预测器数据中的列对应于观测值或提供观测值权重。

请注意

如果预测数据X或者预测变量资源描述包含任何缺失的值,则边缘函数可以返回NaN。详情请参见对于缺少值的预测器数据,edge可以返回NaN

输入参数

全部展开

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

预测器数据,指定为n——- - - - - -p全矩阵或稀疏矩阵。这个方向X指示行对应于单个观测值,列对应于单个预测变量。

请注意

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

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

数据类型:|

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

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

  • 不同的类Y的子集Mdl。一会

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

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

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

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

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

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

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

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

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

数据类型:字符|字符串

名称-值参数

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

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

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

请注意

如果你定位你的预测矩阵,使观察结果与列相对应,并指定“ObservationsIn”、“列”,那么您可能会经历计算时间的显著减少。你不能指定“ObservationsIn”、“列”用于表中的预测器数据。

数据类型:字符|字符串

观察权重,由逗号分隔的对组成“重量”和数值向量或变量名资源描述

  • 如果你指定权重作为一个数值向量,则大小为权重必须等于中的观测数X资源描述

  • 如果你指定权重作为变量的名称资源描述,则名称必须为字符向量或字符串标量。例如,如果权重存储为资源描述。W,然后指定权重作为' W '.否则,软件处理的所有列资源描述,包括资源描述。W,作为预测指标。

如果你提供权重,那么对于每个正则化强度,边缘计算加权分类的优势并将权重归一化,使其总和为各自类别中的先验概率值。

数据类型:|

输出参数

全部展开

分类的边缘,作为数字标量或行向量返回。

e尺寸和Mdl。λe (j线性分类模型的分类边是用正则化强度训练的吗Mdl。λ(j

例子

全部展开

加载NLP数据集。

负载nlpdata

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

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

Ystats = Y ==“统计数据”

训练一个二进制线性分类模型,可以识别文档网页中的字数是否来自统计和机器学习工具箱™文档。指定坚持30%的观察。利用SpaRSA对目标函数进行优化。

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

CVMdl是一个ClassificationPartitionedLinear模型。它包含属性训练有素的,这是一个1乘1单元格数组,包含一个ClassificationLinear软件使用训练集训练的模型。

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

trainIdx = training(CVMdl.Partition);testdx = test(CVMdl.Partition);

估计训练样本边和测试样本边。

eTrain = edge(CMdl,X(trainIdx,:),Ystats(trainIdx)))
eTrain = 15.6660
eTest = edge(CMdl,X(testdx,:),Ystats(testdx)))
eTest = 15.4767

执行特征选择的一种方法是比较来自多个模型的测试样本边。仅根据这一准则,边缘最高的分类器就是最好的分类器。

加载NLP数据集。

负载nlpdata

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

这些模型应该识别网页中的字数是否来自统计和机器学习工具箱™文档。因此,确定与统计和机器学习工具箱™文档网页对应的标签。为了加快执行时间,请对预测器数据进行定向,以便各个观察值对应于列。

Ystats = Y ==“统计数据”;X = X';rng (1);%用于再现性

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

分区= cvpartition(Ystats,“坚持”, 0.30);testdx = test(分区);%测试集指数XTest = X(:, testdx);YTest = Ystats(testdx);

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

随机选择一半的预测变量。

p = size(X,1);%预测因子的数量idxPart = randsample(p,ceil(0.5*p));

训练两个二元线性分类模型:一个使用所有预测因子,另一个使用一半预测因子。利用SpaRSA对目标函数进行优化,表明观测值与列相对应。

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

CVMdl而且PCVMdlClassificationPartitionedLinear模型。

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

CMdl = cvmdl .训练{1};PCMdl = pcvmdl .训练{1};

估计每个分类器的测试样本边缘。

fullEdge = edge(CMdl,XTest,YTest,“ObservationsIn”“列”
fullEdge = 15.4767
partEdge = edge(PCMdl,XTest(idxPart,:),YTest,“ObservationsIn”“列”
partEdge = 13.4458

基于测试样本边,使用所有预测因子的分类器是更好的模型。

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

加载NLP数据集。预处理数据,如使用测试样本边进行特征选择

负载nlpdataYstats = Y ==“统计数据”;X = X';分区= cvpartition(Ystats,“坚持”, 0.30);testdx = test(分区);XTest = X(:, testdx);YTest = Ystats(testdx);

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

Lambda = logspace(-8,1,11);

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

rng (10);%用于再现性CVMdl = fitclinear(X,Ystats,“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'属性,方法

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

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

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

估计测试样本边。

e = edge(Mdl,X(:, testdx),Ystats(testdx),“ObservationsIn”“列”
e =1×110.9986 0.9986 0.9986 0.9986 0.9933 0.9765 0.9202 0.8340 0.8128 0.8128

因为有11个正则化优势,e是一个1 × 11的边向量。

绘制每个正则化强度的测试样本边。确定使网格边缘最大化的正则化强度。

图;情节(log10(λ)log10 (e),“o”) [~, maxEIdx] = max(e);maxLambda = Lambda(maxEIdx);持有情节(log10 (maxLambda) log10 (e (maxEIdx)),“罗”);ylabel ('log_{10} test-sample edge')包含(“log_{10}λ的)传说(“边缘”的最大优势)举行

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示边,最大边。

的几个值λ产生同样高的边缘。较高的lambda值导致预测变量稀疏性,这是分类器的一个良好品质。

选择恰好在边缘开始减少之前发生的正则化强度。

LambdaFinal = Lambda(5);

使用整个数据集训练一个线性分类模型,并指定产生最大边缘的正则化强度。

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

要估计新观测值的标签,请通过MdlFinal新的数据预测

更多关于

全部展开

算法

默认情况下,观测权重是优先类概率。如果你提供重量使用权重,然后软件对它们进行归一化,使之与各类的先验概率相加。该软件使用归一化权值估计加权边。

扩展功能

版本历史

在R2016a中引入

全部展开