文档

ClassificationLinear类

超类:

用于高维数据二值分类的线性模型

描述

ClassificationLinear是用于二值分类的训练线性模型对象;线性模型是支持向量机(SVM)或逻辑回归模型万博1manbetx。fitclinear符合一个ClassificationLinear通过使用减少高维数据集计算时间的技术(例如,随机梯度下降)最小化目标函数来建立模型。分类损失加上正则化项构成目标函数。

与其他分类模型不同,为了节省内存使用,ClassificationLinear模型对象不存储训练数据。然而,它们确实存储了,例如,估计的线性模型系数、先验类别概率和正则化强度。

你可以使用训练有素的ClassificationLinear用于预测新数据的标签或分类分数的模型。有关详细信息,请参见预测

建设

Mdl= fitclinear (XY返回一个训练过的线性分类模型对象,该对象包含将二元支持向量机与预测器数据拟合的结果万博1manbetxX和类标签Y

Mdl= fitclinear (___名称,值返回经过训练的线性分类模型,其中包含由一个或多个指定的附加选项名称,值Pair参数,使用前面的任何语法。例如,您可以指定要实现逻辑回归、指定要交叉验证或指定正则化的类型。

如果指定以下四个选项之一,则Mdl是一个ClassificationPartitionedLinear模型:“CrossVal”“CVPartition”“坚持”,或“KFold”

请注意

不同于其他分类模型对象:

  • 为了节省内存的使用,ClassificationLinear模型对象不存储训练数据或训练过程细节(例如,收敛历史)。

  • 你不能通过一个训练有素的ClassificationLinear模型对象crossval.相反,在使用该方法训练模型时,请指定适当的交叉验证名称-值对参数fitclinear

输入参数

全部展开

预测器数据,指定为n——- - - - - -p全或稀疏矩阵。

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

请注意

如果您对预测器矩阵进行定位,使观察结果与列对应并指定“ObservationsIn”、“列”,那么您可能会经历优化执行时间的显著减少。

数据类型:|

分类模型训练到的类标签,指定为类别或字符数组、逻辑或数字向量或字符向量的单元数组。

  • ClassificationLinear仅支持二进万博1manbetx制分类。要么Y必须包含两个完全不同的类,或者必须使用“类名”名称-值对的论点。关于多课程学习,请参阅fitcecoc

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

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

  • 属性指定类的顺序是一种良好的实践一会名称-值对的论点。

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

有关详细信息,请参见fitclinear

属性

全部展开

线性分类属性

正则项强度,指定为非负标量或非负值向量。

数据类型:|

线性分类模型类型,指定为“物流”“支持向量机”

在这个表中, f x x β + b

  • β是向量p系数。

  • x是来自p预测变量。

  • b为标量偏差。

价值 算法 损失函数 FittedLoss价值
“物流” 逻辑回归 异常(物流): y f x 日志 1 + 经验值 y f x 分对数的
“支持向量机” 万博1manbetx支持向量机 铰链: y f x 马克斯 0 1 y f x “枢纽”

线性系数估计,指定为长度等于预测数的数字向量。

数据类型:

估计偏差项或模型截距,指定为数值标量。

数据类型:

用于拟合线性模型的损失函数,指定为“枢纽”分对数的

价值 算法 损失函数 学习者价值
“枢纽” 万博1manbetx支持向量机 铰链: y f x 马克斯 0 1 y f x “支持向量机”
分对数的 逻辑回归 异常(物流): y f x 日志 1 + 经验值 y f x “物流”

复杂度惩罚类型,指定为“套索(L1)”“岭(L2)”

该软件由平均损失函数的总和组成最小化目标函数(见FittedLoss)和该表的正则化值。

价值 描述
“套索(L1)” 套索(l1)罚款: λ j 1 p | β j |
“岭(L2)” 脊(l2)罚款: λ 2 j 1 p β j 2

λ指定正则化项强度(参见λ).

该软件排除了偏差项(β0)从正规化处罚。

其他分类属性

类别预测器的索引,其值总是为空([]),因为一个ClassificationLinear模型不支持分类预测器。万博1manbetx

训练中使用的唯一类标签,指定为类别或字符数组、逻辑或数字向量或字符向量的单元数组。一会具有与类标签相同的数据类型(Y).一会也决定了类的顺序。

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

此属性是只读的。

误分类代价,指定为方阵数值矩阵。成本K行和列,其中K为类数。

成本(j将一个点分类的成本是多少j如果它真正的阶级是.的行和列的顺序成本中类的顺序一会

数据类型:

用于训练的参数ClassificationLinear模型,指定为结构。

访问字段ModelParameters使用点符号。例如,通过使用来访问线性系数和偏差项的相对公差Mdl.ModelParameters.BetaTolerance

数据类型:结构体

预测器名称在预测器数据中的出现顺序(X),指定为字符向量的单元格数组。的长度PredictorNames等于X

数据类型:细胞

扩展的预测器名称,指定为字符向量的单元格数组。

因为一个ClassificationLinear模型不支持分类预测器,万博1manbetxExpandedPredictorNamesPredictorNames是相等的。

数据类型:细胞

此属性是只读的。

先验类概率,指定为数字向量。之前有和类一样多的元素一会,元素的顺序与元素的顺序相对应一会

数据类型:

用于预测分数的分数转换函数,指定为函数名或函数句柄。

对于线性分类模型和变换前,预测的分类评分为观测值x(行向量)fx) =xβ+b,在那里βb对应于Mdl。βMdl。偏见,分别。

将分数转换函数更改为,例如:函数,使用点符号。

  • 对于内置函数,输入此代码并替换函数用表中的字符向量。

    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

响应变量名,指定为字符数组。

数据类型:字符

方法

边缘 线性分类模型的分类边缘
损失 线性分类模型的分类损失
保证金 线性分类模型的分类裕度
预测 预测线性分类模型的标签
selectModels 选择正则化的二元线性分类模型的子集

复制语义

价值。要了解值类如何影响复制操作,请参见复制对象(MATLAB)。

例子

全部折叠

使用支持向量机、双SGD和脊正则化训练二元线性分类模型。万博1manbetx

加载NLP数据集。

负载nlpdata

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

识别与统计和机器学习工具箱™文档网页对应的标签。

Ystats = Y ==“统计数据”

训练一个二元线性分类模型,可以识别文档网页中的单词计数是否来自统计学和机器学习工具箱™文档。使用整个数据集训练模型。通过提取一个拟合摘要,确定优化算法将模型与数据拟合的程度。

rng (1);%的再现性[Mdl, FitInfo] = fitclinear (X, Ystats)
Mdl = classficationlinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'none' Beta: [34023x1 double] Bias: -1.0059 Lambda: 3.1674e-05 Learner: 'svm'属性,方法
FitInfo =结构体字段:Lambda: 3.1674e-05 Objective: 5.3783e-04 PassLimit: 10 NumPasses: 10 BatchLimit: [] NumIterations: 238561 GradientNorm: NaN GradientTolerance: 0 RelativeChangeInBeta: 0.0562 BetaTolerance: 1.0000e-04 DeltaGradient: 1.4582 DeltaGradientTolerance: 1 TerminationCode: 0 TerminationStatus:{'迭代限制超过。Alpha: [31572x1 double] History: [] FitTime: 1.0598 Solver: {'dual'}

Mdl是一个ClassificationLinear模型。你可以通过Mdl和培训或新数据损失检查样本内分类误差。或者,你可以不去Mdl和新的预测数据预测为新的观测结果预测类别标签。

FitInfo是一个结构数组,其中包含终止状态(TerminationStatus)以及求解器将模型与数据拟合所需的时间(FitTime).这是很好的实践FitInfo确定优化终止测量是否令人满意。由于训练时间很小,您可以尝试重新训练模型,但增加数据的传递次数。这可以改善诸如DeltaGradient

加载NLP数据集。

负载nlpdatan =大小(X, 1);%观测次数

识别与统计和机器学习工具箱™文档网页对应的标签。

Ystats = Y ==“统计数据”

拿出5%的数据。

rng (1);%的再现性本量利= cvpartition (n,“坚持”, 0.05)
nummobations: 31572 NumTestSets: 1 TrainSize: 29994 TestSize: 1578

本量利是一个CVPartition对象的随机分区n数据转换为训练和测试集。

使用训练集训练一个二元线性分类模型,该训练集可以识别文档网页中的单词计数是否来自Statistics和Machine Learning Toolbox™文档。为了更快的训练时间,对预测器数据矩阵进行定向,使观察结果在列中。

idxTrain =培训(cvp);%提取训练集指标X = X ';Mdl = fitclinear (X (:, idxTrain) Ystats (idxTrain),“ObservationsIn”“列”);

预测保留样本的观测值和分类误差。

idxTest =测试(cvp);%提取测试集指标标签=预测(Mdl X (:, idxTest),“ObservationsIn”“列”);L =损失(Mdl X (:, idxTest) Ystats (idxTest),“ObservationsIn”“列”
L = 7.1753 e-04

Mdl错误分类的样本外观察不到1%。

扩展功能

介绍了R2016a

这个话题有用吗?