边缘
线性分类模型的分类边
描述
返回经过训练的线性分类器的分类边e
=边缘(Mdl
,资源描述
,ResponseVarName
)Mdl
使用预测数据资源描述
类标签在里面资源描述。ResponseVarName
.
输入参数
Mdl
- - - - - -二元线性分类模型
ClassificationLinear
模型对象
二进制,线性分类模型,指定为ClassificationLinear
模型对象。您可以创建ClassificationLinear
使用模型对象fitclinear
.
X
- - - - - -预测数据
完整的矩阵|稀疏矩阵
预测器数据,指定为n——- - - - - -p全矩阵或稀疏矩阵。这个方向X
指示行对应于单个观测值,列对应于单个预测变量。
请注意
如果你定位你的预测矩阵,使观察结果与列相对应,并指定“ObservationsIn”、“列”
,那么您可能会经历计算时间的显著减少。
的长度Y
观察的次数X
必须是相等的。
数据类型:单
|双
资源描述
- - - - - -样本数据
表格
用于训练模型的示例数据,指定为表。每行资源描述
对应一个观测值,每一列对应一个预测变量。可选地,资源描述
可以包含响应变量和观察权重的附加列。资源描述
必须包含用于训练的所有预测器Mdl
.不允许使用字符向量的单元格数组以外的多列变量和单元格数组。
如果资源描述
包含用于训练的响应变量Mdl
,则不需要指定ResponseVarName
或Y
.
如果你训练Mdl
使用样本数据包含在一个表中,然后输入数据为边缘
也必须在表中。
ResponseVarName
- - - - - -响应变量名
变量名资源描述
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
ObservationsIn
- - - - - -预测器数据观测维数
“行”
(默认)|“列”
预测器数据观测维数,指定为“行”
或“列”
.
请注意
如果你定位你的预测矩阵,使观察结果与列相对应,并指定“ObservationsIn”、“列”
,那么您可能会经历计算时间的显著减少。你不能指定“ObservationsIn”、“列”
用于表中的预测器数据。
数据类型:字符
|字符串
例子
估计测试样本边
加载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
而且PCVMdl
是ClassificationPartitionedLinear
模型。
提取训练有素的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个对数间隔的正则化强度 通过 .
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}λ的)传说(“边缘”,的最大优势)举行从
的几个值λ
产生同样高的边缘。较高的lambda值导致预测变量稀疏性,这是分类器的一个良好品质。
选择恰好在边缘开始减少之前发生的正则化强度。
LambdaFinal = Lambda(5);
使用整个数据集训练一个线性分类模型,并指定产生最大边缘的正则化强度。
MdlFinal = fitclinear(X,Ystats,“ObservationsIn”,“列”,...“学习者”,“物流”,“规划求解”,“sparsa”,“正规化”,“套索”,...“λ”, LambdaFinal);
要估计新观测值的标签,请通过MdlFinal
新的数据预测
.
更多关于
分类的优势
的分类的优势是分类边际的加权平均值。
在多个分类器中进行选择的一种方法,例如执行特征选择,是选择产生最大边缘的分类器。
分类保证金
的分类保证金对于二元分类,对于每个观察,是真实类别的分类分数与虚假类别的分类分数之间的差值。
该软件将二进制分类的分类裕度定义为
x是一种观察。如果真标签的x那么,是阳性类吗y为1,否则为-1。f(x)为观察的正类分类分数x.分类裕度通常定义为米=yf(x).
如果边际在同一个尺度上,那么它们可以作为分类置信度的衡量标准。在多个分类器中,利润率更高的分类器更好。
分类分
对于线性分类模型,原始的分类分对观测进行分类x,一个行向量,转化为正类定义为
对于具有正则化强度的模型j,
估计的列向量的系数(模型属性β(:,j)
),
估计的标量偏差(模型属性偏见(j)
).
用于分类的原始分类分数x进入负类的是-f(x).该软件将观察结果分为产生正分的类别。
如果线性分类模型由逻辑回归学习器组成,则该软件应用分对数的
分数转换为原始分类分数(见ScoreTransform
).
算法
默认情况下,观测权重是优先类概率。如果你提供重量使用权重
,然后软件对它们进行归一化,使之与各类的先验概率相加。该软件使用归一化权值估计加权边。
扩展功能
高大的数组
使用行数超过内存容量的数组进行计算。
版本历史
在R2016a中引入R2022a:边缘
对于具有非默认成本矩阵的模型,返回不同的值
如果在训练输入模型对象时指定非默认代价矩阵,则边缘
函数返回与以前版本不同的值。
的边缘
函数中存储的先验概率之前
属性将输入数据的观测权重归一化。函数使用的方式之前
属性值没有改变。但是,对于具有非默认代价矩阵的模型,存储在输入模型对象中的属性值已经更改,因此函数可以返回不同的值。
修改属性值的具体操作请参见Cost属性存储用户指定的成本矩阵.
如果您希望软件像以前版本中那样处理成本矩阵、先验概率和观察权重,请调整非默认成本矩阵的先验概率和观察权重,如中所述调整错误分类成本矩阵的先验概率和观测权重.然后,当你训练一个分类模型,指定调整的先验概率和观察权重使用之前
而且权重
分别使用名称-值参数,并使用默认代价矩阵。
R2022a:边缘
可以返回NaN的预测数据与缺失的值
的边缘
函数在计算分类边际的加权平均值时不再忽略具有NaN分数的观测值。因此,边缘
现在可以返回NaN时的预测器数据X
或者预测变量资源描述
包含任何缺失的值。在大多数情况下,如果测试集观测值不包含缺失的预测因子,则边缘
函数不返回NaN。
此更改改进了在使用时对分类模型的自动选择fitcauto
.在此更改之前,软件可能会选择一个具有很少非nan预测器的模型(预计能对新数据进行最佳分类)。
如果边缘
在你的代码中返回NaN,你可以更新你的代码来避免这个结果。使用删除或替换缺失的值rmmissing
或fillmissing
,分别。
下表显示了分类模型边缘
对象函数可能返回NaN。有关更多详细信息,请参见每种产品的兼容性考虑因素边缘
函数。
模型类型 | 完整或紧凑模型对象 | 边缘 目标函数 |
---|---|---|
判别分析分类模型 | ClassificationDiscriminant ,CompactClassificationDiscriminant |
边缘 |
分类的学习器集合 | ClassificationEnsemble ,CompactClassificationEnsemble |
边缘 |
高斯核分类模型 | ClassificationKernel |
边缘 |
k-最近邻分类模型 | ClassificationKNN |
边缘 |
线性分类模型 | ClassificationLinear |
边缘 |
神经网络分类模型 | ClassificationNeuralNetwork ,CompactClassificationNeuralNetwork |
边缘 |
万博1manbetx支持向量机(SVM)分类模型 | 边缘 |
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。