ClassificationLinear类
高维数据二元分类的线性模型
描述
ClassificationLinear
是训练好的用于二元分类的线性模型对象;线性模型是支持向量机(SVM)或逻辑回归模型万博1manbetx。fitclinear
符合一个ClassificationLinear
通过使用减少高维数据集计算时间的技术(例如,随机梯度下降)最小化目标函数来建模。分类损失加上正则化项构成目标函数。
与其他分类模型不同,为了节省内存使用,ClassificationLinear
模型对象不存储训练数据。然而,它们确实存储了,例如,估计的线性模型系数、先验概率和正则化强度。
你可以用训练有素ClassificationLinear
用于预测新数据标签或分类分数的模型。详细信息请参见预测
.
建设
创建一个ClassificationLinear
对象,使用fitclinear
.
属性
λ
- - - - - -正则化项强度
负的标量|非负值的向量
正则化术语强度,指定为非负标量或非负值的向量。
数据类型:双
|单
学习者
- - - - - -线性分类模型类型
“物流”
|“支持向量机”
线性分类模型类型,指定为“物流”
或“支持向量机”
.
在这个表格中,
β的向量p系数。
x是来自p预测变量。
b是标量偏置。
价值 | 算法 | 损失函数 | FittedLoss 价值 |
---|---|---|---|
“支持向量机” |
万博1manbetx支持向量机 | 铰链: | “枢纽” |
“物流” |
逻辑回归 | 异常(物流): | 分对数的 |
β
- - - - - -线性系数估计
数值向量
线性系数估计,指定为长度等于预测因子数量的数值向量。
数据类型:双
偏见
- - - - - -估计偏置项
数字标量
估计偏置项或模型截距,指定为数值标量。
数据类型:双
FittedLoss
- - - - - -采用损失函数拟合线性模型
“枢纽”
|分对数的
此属性是只读的。
用于拟合线性模型的损失函数,指定为“枢纽”
或分对数的
.
价值 | 算法 | 损失函数 | 学习者 价值 |
---|---|---|---|
“枢纽” |
万博1manbetx支持向量机 | 铰链: | “支持向量机” |
分对数的 |
逻辑回归 | 异常(物流): | “物流” |
正则化
- - - - - -复杂性惩罚类型
“套索(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和山脊正则化训练二元线性分类模型。万博1manbetx
加载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目标: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]历史记录:[]FitTime: 0.1159求解器:{'dual'}
Mdl
是一个ClassificationLinear
模型。你可以通过Mdl
而训练或新的数据损失
检验样本内分类误差。或者,你可以通过Mdl
新的预测数据预测
预测新观测值的类别标签。
FitInfo
是一个结构数组,其中包含终止状态(TerminationStatus
),以及求解器将模型与数据拟合所需的时间(FitTime
).这是一个很好的实践FitInfo
确定优化终止测量是否令人满意。因为训练时间很短,你可以尝试重新训练模型,但要增加数据的遍历次数。这可以改善措施,如DeltaGradient
.
利用线性分类模型预测分类标签
加载NLP数据集。
负载nlpdatan = size(X,1);观测次数%
识别与“统计和机器学习工具箱”文档网页对应的标签。
Ystats = Y ==“统计数据”;
保留5%的数据。
rng (1);%用于再现性CVP = cvpartition(n,“坚持”, 0.05)
cvp =保留交叉验证分区NumObservations: 31572 NumTestSets: 1 TrainSize: 29994 TestSize: 1578
本量利
是一个CVPartition
对象的随机分区n数据进入训练集和测试集。
使用训练集训练二进制线性分类模型,该训练集可以识别文档网页中的字数是否来自统计和机器学习工具箱™文档。为了更快的训练时间,定向预测器数据矩阵,使观察结果列。
idxTrain =训练(cvp);提取训练集指标X = X';Mdl = fitclinear(X(:,idxTrain),Ystats(idxTrain),“ObservationsIn”,“列”);
预测保留样本的观测值和分类误差。
idxTest = test(cvp);提取测试集索引标签=预测(Mdl,X(:,idxTest),“ObservationsIn”,“列”);L = loss(Mdl,X(:,idxTest),Ystats(idxTest),“ObservationsIn”,“列”)
L = 7.1753e-04
Mdl
错分类的样本外观测不到1%。
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
当你训练线性分类模型时,使用
fitclinear
,则适用以下限制。如果预测器数据输入参数值是一个矩阵,它必须是一个完整的数字矩阵。代码生成不支持稀疏数据。万博1manbetx
您也只能指定一种正则化强度
“汽车”
或者一个非负标量“λ”
名称-值对参数。的值
“ScoreTransform”
名称-值对参数不能是匿名函数。对于使用编码器配置程序的代码生成,适用以下附加限制。
分类预测符(
逻辑
,分类
,字符
,字符串
,或细胞
)不受支持。万博1manbetx您不能使用CategoricalPredictors
名称-值参数。若要在模型中包含分类预测器,请使用dummyvar
在拟合模型之前。类标记,使用
分类
不支持数据类型。万博1manbetx训练数据中的类标签值(资源描述
或Y
的值一会
名称-值参数不能是具有分类
数据类型。
有关更多信息,请参见代码生成简介.
版本历史
在R2016a中引入R2022a:成本
属性存储用户指定的成本矩阵
从R2022a开始,成本
属性存储用户指定的代价矩阵,以便您可以使用指定的代价值计算观察到的错误分类代价。软件存储标准化先验概率(之前
),不反映成本矩阵中所描述的惩罚。要计算观察到的错误分类代价,请指定LossFun
名称-值参数为“classifcost”
当你打电话给损失
函数。
请注意,模型训练没有改变,因此,类之间的决策边界没有改变。
对于训练,拟合函数通过合并指定成本矩阵中描述的惩罚来更新指定的先验概率,然后将先验概率和观察权重归一化。这种行为没有改变。在以前的版本中,软件将默认成本矩阵存储在成本
属性,并存储用于训练的先验概率之前
财产。从R2022a开始,软件存储用户指定的成本矩阵而不进行修改,并存储不反映成本惩罚的标准化先验概率。详情请参见错误分类成本矩阵,先验概率和观察权重.
一些对象函数使用成本
而且之前
属性:
的
损失
函数中存储的代价矩阵成本
属性LossFun
名称-值参数为“classifcost”
或“mincost”
.的
损失
而且边缘
函数使用存储在之前
属性将输入数据的观测权重归一化。
如果在训练分类模型时指定非默认代价矩阵,则对象函数返回的值与以前版本的值不同。
如果您希望软件像以前版本中那样处理成本矩阵、先验概率和观察权重,请调整非默认成本矩阵的先验概率和观察权重,如中所述调整错误分类成本矩阵的先验概率和观测权重.然后,当你训练一个分类模型,指定调整的先验概率和观察权重使用之前
而且权重
分别使用名称-值参数,并使用默认代价矩阵。
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。