ClassificationLinear类
高维数据二元分类的线性模型
描述
ClassificationLinear
是一个训练好的线性模型对象,用于二元分类;线性模型是支持向量机(SVM)或逻辑回归模型。fitclinear
符合一个ClassificationLinear
使用减少高维数据集计算时间(例如,随机梯度下降)的技术最小化目标函数进行建模。分类损失加上正则化项构成目标函数。
与其他分类模型不同的是,为了节省内存使用,ClassificationLinear
模型对象不存储训练数据。然而,它们确实存储,例如,估计的线性模型系数,先验类概率,和正则化强度。
你可以用受训过的ClassificationLinear
预测新数据标签或分类分数的模型。有关详细信息,请参见预测
.
建设
创建一个ClassificationLinear
对象的使用fitclinear
.
属性
λ
- - - - - -正则化项的力量
负的标量|非负值的向量
正则化项强度,指定为非负标量或非负值的向量。
数据类型:双
|单
学习者
- - - - - -线性分类模型类型
“物流”
|“支持向量机”
线性分类模型类型,指定为“物流”
或“支持向量机”
.
在这个表中,
β是的向量p系数。
x是一个观察p预测变量。
b是标量偏差。
价值 | 算法 | 损失函数 | FittedLoss 价值 |
---|---|---|---|
“支持向量机” |
支持向量机 | 铰链: | “枢纽” |
“物流” |
逻辑回归 | 异常(物流): | 分对数的 |
β
- - - - - -线性系数估计
数值向量
线性系数估计,指定为长度等于预测数的数值向量。
数据类型:双
偏见
- - - - - -估计偏差
数字标量
估计偏差项或模型截距,指定为数值标量。
数据类型:双
FittedLoss
- - - - - -用损失函数拟合线性模型
“枢纽”
|分对数的
此属性是只读的。
用于拟合线性模型的损失函数,指定为“枢纽”
或分对数的
.
价值 | 算法 | 损失函数 | 学习者 价值 |
---|---|---|---|
“枢纽” |
支持向量机 | 铰链: | “支持向量机” |
分对数的 |
逻辑回归 | 异常(物流): | “物流” |
正则化
- - - - - -复杂性处罚类型
“套索(L1)”
|“岭(L2)”
复杂度惩罚类型,指定为“套索(L1)”
或“岭(L2)”
.
该软件由平均损失函数的和组成最小化目标函数FittedLoss
)和该表的正则化值。
价值 | 描述 |
---|---|
“套索(L1)” |
套索(l1)罚款: |
“岭(L2)” |
脊(l2)罚款: |
λ指定正则化术语强度(参见λ
).
该软件排除了偏差项(β0)从正规化惩罚。
CategoricalPredictors
- - - - - -分类预测指标
正整数向量|[]
分类预测指标,指定为正整数的向量。CategoricalPredictors
包含指示相应的预测器是分类的索引值。索引值在1和之间p
,在那里p
用于训练模型的预测器的数量。如果没有一个预测器是绝对的,则此属性为空([]
).
数据类型:单
|双
一会
- - - - - -独特的类标签
分类数组|字符数组|逻辑向量|数值向量|字符向量的单元格数组
训练中使用的惟一类标签,指定为类别或字符数组、逻辑或数字向量或字符向量的单元格数组。一会
是否与类标签的数据类型相同Y
.(该软件将字符串数组视为字符向量的单元格数组。)一会
还决定了类的顺序。
数据类型:分类
|字符
|逻辑
|单
|双
|细胞
成本
- - - - - -误分类代价
广场数字矩阵
此属性是只读的。
错误分类成本,指定为方阵数字矩阵。成本
有K行和列,其中K是类的数量。
成本(
将一个点分类到类的成本是多少我
,j
)j
如果它真正的阶级是我
.的行和列的顺序成本
中的类的顺序一会
.
数据类型:双
ModelParameters
- - - - - -用于训练模型的参数
结构
用于训练的参数ClassificationLinear
模型,指定为结构。
访问字段ModelParameters
使用点符号。例如,通过使用访问线性系数和偏差项上的相对公差Mdl.ModelParameters.BetaTolerance
.
数据类型:结构体
PredictorNames
- - - - - -预测的名字
字符向量的单元格数组
预测器名称按照它们在预测器数据中出现的顺序,指定为字符向量的单元格数组。的长度PredictorNames
等于训练数据中变量的数量X
或资源描述
用作预测变量。
数据类型:细胞
ExpandedPredictorNames
- - - - - -扩大了预测的名字
字符向量的单元格数组
扩展的预测器名称,指定为字符向量的单元格数组。
如果模型对分类变量使用编码,则ExpandedPredictorNames
包括描述展开变量的名称。否则,ExpandedPredictorNames
和PredictorNames
.
数据类型:细胞
之前
- - - - - -前类概率
数值向量
此属性是只读的。
先验类概率,指定为数值向量。之前
中有和类一样多的元素一会
的元素顺序对应于的元素一会
.
数据类型:双
ResponseName
- - - - - -响应变量名
特征向量
响应变量名,指定为字符向量。
数据类型:字符
ScoreTransform
- - - - - -分数转换函数
“doublelogit”
|“invlogit”
|“ismax”
|分对数的
|“没有”
|函数处理|……
分数转换函数应用于预测分数,指定为函数名或函数句柄。
对于线性分类模型和变换前,预测的分类分数用于观察x(行向量)f(x) =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
对象的功能
边缘 |
线性分类模型的分类边 |
incrementalLearner |
将线性二元分类模型转化为增量学习器 |
石灰 |
局部可解释模型不可知解释(LIME) |
损失 |
线性分类模型的分类损失 |
保证金 |
线性分类模型的分类边距 |
partialDependence |
计算部分依赖 |
plotPartialDependence |
创建偏依赖图(PDP)和个体条件期望图(ICE) |
预测 |
预测线性分类模型的标签 |
沙普利 |
沙普利值 |
selectModels |
选择正则化、二元线性分类模型的子集 |
更新 |
更新模型参数以生成代码 |
复制语义
价值。要了解值类如何影响复制操作,请参见复制对象.
例子
列车线性分类模型
使用支持向量机、双SGD和脊正则化训练二元线性分类模型。
加载NLP数据集。
负载nlpdata
X
是稀疏矩阵的预测数据,和Y
是类标签的分类向量。数据中有两个以上的类。
确定与统计和机器学习工具箱™文档网页对应的标签。
Ystats = Y ==“统计数据”;
训练一个二进制的线性分类模型,它可以识别文档网页中的字数是否来自统计和机器学习工具箱™文档。使用整个数据集训练模型。通过提取拟合摘要,确定优化算法对模型与数据的拟合程度。
rng (1);%的再现性[Mdl, FitInfo] = fitclinear (X, Ystats)
Mdl = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'none' Beta: [34023x1 double]偏差:-1.0059 Lambda: 3.1674e-05学习者:'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: 0.0870 Solver: {'dual'}
Mdl
是一个ClassificationLinear
模型。你可以通过Mdl
培训或新的数据损失
检查样本内分类误差。或者,你可以不去Mdl
和新的预测数据预测
预测新观测的类标签。
FitInfo
是一个结构数组,其中包含终止状态(TerminationStatus
)以及求解器将模型与数据拟合所需的时间(FitTime
).这是一个很好的练习FitInfo
确定优化-终止测量是否令人满意。因为训练时间很短,您可以尝试重新训练模型,但要增加通过数据的次数。这可以改善措施,如DeltaGradient
.
用线性分类模型预测类标签
加载NLP数据集。
负载nlpdatan =大小(X, 1);观察次数%
确定与统计和机器学习工具箱™文档网页对应的标签。
Ystats = Y ==“统计数据”;
保留5%的数据。
rng (1);%的再现性本量利= cvpartition (n,“坚持”, 0.05)
cvp = hold out交叉验证分区NumObservations: 31572 NumTestSets: 1 TrainSize: 29994 TestSize: 1578
本量利
是一个CVPartition
对象,该对象定义的随机分区n数据进入训练集和测试集。
使用训练集训练二进制线性分类模型,该训练集可以识别文档网页中的字数是否来自统计和机器学习工具箱™文档。为了更快的训练时间,定位预测器数据矩阵,使观察结果在列中。
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%。
扩展功能
C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
当你训练一个线性分类模型使用
fitclinear
,适用以下限制。如果预测器数据输入参数值是一个矩阵,它必须是一个完整的数值矩阵。代码生成不支持稀疏数据。
您也只能指定一个正则化强度
“汽车”
或者一个非负的标量“λ”
名称-值对的论点。的值
“ScoreTransform”
名值对参数不能是匿名函数。对于使用编码器配置程序生成的代码,适用以下附加限制。
分类预测(
逻辑
,分类
,字符
,字符串
,或细胞
)。您不能使用CategoricalPredictors
名称-值参数。要在模型中包含类别预测器,可以使用dummyvar
在拟合模型之前。类的标签,使用
分类
不支持数据类型。训练数据中的类标签值(资源描述
或Y
的值一会
类的名称-值参数不能是数组分类
数据类型。
有关更多信息,请参见代码生成简介.
版本历史
介绍了R2016aR2022a:成本
属性存储用户指定的成本矩阵
从R2022a开始成本
属性存储用户指定的代价矩阵,以便使用指定的代价值计算观察到的错误分类代价。该软件存储规范化先验概率(之前
),并没有反映成本矩阵中所述的罚款。要计算观察到的错误分类代价,指定LossFun
名称-值参数为“classifcost”
当你打电话给损失
函数。
注意,模型训练没有改变,因此,类之间的决策边界没有改变。
在训练中,拟合函数通过加入指定代价矩阵中描述的惩罚来更新指定的先验概率,然后将先验概率和观察权重归一化。这种行为没有改变。在以前的版本中,软件将默认成本矩阵存储在成本
属性,并将用于训练的先验概率存储在之前
财产。从R2022a开始,该软件不加修改地存储用户指定的成本矩阵,并存储不反映成本惩罚的规范化先验概率。有关更多细节,请参见错误分类成本矩阵,先验概率和观察权重.
一些对象函数使用成本
而且之前
属性:
的
损失
函数使用存储在成本
属性,则指定LossFun
名称-值参数为“classifcost”
或“mincost”
.的
损失
而且边缘
函数使用存储在之前
属性规范化输入数据的观察权重。
如果在训练分类模型时指定非默认代价矩阵,对象函数将返回与以前版本不同的值。
如果您希望软件像以前版本中那样处理成本矩阵、先验概率和观测权重,请调整非默认成本矩阵的先验概率和观测权重,如中所述调整错误分类代价矩阵的先验概率和观测权重.然后,在训练分类模型时,指定调整后的先验概率和观察权重之前
而且权重
名称-值参数,并使用默认开销矩阵。
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。