预测线性分类模型的标签
Mdl
- - - - - -二进制,线性分类模型ClassificationLinear
模型对象二元线性分类模型,指定为ClassificationLinear
模型对象。你可以创建一个ClassificationLinear
模型对象使用FitClinear.
.
X
- - - - - -预测数据分类要分类的预测数据,指定为完整或稀疏数字矩阵或表。
默认情况下,每一行X
对应于一个观察,并且每列对应于一个变量。
对于数值矩阵:
列中的变量X
必须和训练的预测变量有相同的顺序吗Mdl
.
如果你训练Mdl
使用表(例如,TBL.
)和TBL.
那么,只包含数值预测变量X
可以是一个数字矩阵。治疗数字预测器TBL.
作为分类训练,识别分类预测因子使用分类预测器
的名称-值对参数FitClinear.
.如果TBL.
包含异构的预测变量(例如,数字和分类数据类型)和X
是一个数字矩阵,然后预测
抛出错误。
对于表:
预测
除了字符向量的单元金宝app格数组外,不支持多列变量或单元格数组。
如果你训练Mdl
使用表(例如,TBL.
),然后所有预测器变量都在X
必须具有与所训练的变量相同的变量名和数据类型Mdl
(存储在Mdl。PredictorNames
).但是,列顺序X
不需要对应的列顺序TBL.
.同时,TBL.
和X
可以包含其他变量(响应变量,观察权重等),但是预测
忽略了它们。
如果你训练Mdl
使用数字矩阵,然后是预测器名称Mdl。PredictorNames
必须与中对应的预测器变量名相同X
.要在培训期间指定预测器名称,请使用PredictorNames
的名称-值对参数FitClinear.
.所有的预测变量X
必须是数值向量。X
可以包含其他变量(响应变量,观察权重等),但是预测
忽略了它们。
请注意
如果您对预测器矩阵进行定位,使观察结果与列对应并指定'观察','列'
,则可能会显著减少优化执行时间。你不能指定'观察','列'
用于表中的预测器数据。
数据类型:表格
|双人间
|单身
尺寸
- - - - - -预测数据观测维数“行”
(默认)|“列”
预测器数据观测维数,指定为“列”
或“行”
.
请注意
如果您对预测器矩阵进行定位,使观察结果与列对应并指定'观察','列'
,则可能会显著减少优化执行时间。你不能指定'观察','列'
用于表中的预测器数据。
加载NLP数据集。
负载nlpdata
X
是预测器数据的稀疏矩阵,以及Y
是类标签的分类向量。数据中有两个以上的类。
该模型应识别网页中的单词计数是否来自统计信息和计算机学习工具箱文档。因此,识别与统计和机器学习工具箱文档网页对应的标签。
ystats = y =='统计';
使用整个数据集训练一个二元线性分类模型,它可以识别文档网页中的单词计数是否来自统计学和机器学习工具箱™文档。
RNG(1);重复性的%MDL = FITCLINEAR(X,YSTATS);
Mdl
是A.ClassificationLinear
模型。
预测训练样本,或再替换,标签。
标签=预测(Mdl X);
因为有一个正规化强度Mdl
,标签
为长度等于观测次数的列向量。
构建混淆矩阵。
ConfusionTrain = confusionchart (Ystats、标签);
模型只会错分一个'统计'
在统计和机器学习工具箱文档之外的文档页。
加载NLP数据集并对其进行预处理,如预测培训 - 样本标签.转换预测器数据矩阵。
负载nlpdataystats = y =='统计';X = X ';
训练一个二元线性分类模型,可以识别文档网页中的单词计数是否来自统计学和机器学习工具箱™文档。指定保留30%的观察结果。利用SpaRSA优化目标函数。
RNG(1)重复性的%cvmdl = fitclinear(x,ystats,“规划求解”,“sparsa”,'持有',0.30,......'观察',“列”);Mdl = CVMdl.Trained {1};
cvmdl.
是A.ClassificationPartitionedLinear
模型。它包含属性训练有素
,这是一个1×1个单元阵列,保持aClassificationLinear
使用培训集培训的软件的模型。
从分区定义中提取培训和测试数据。
trainidx =培训(cvmdl.partition);testidx = test(cvmdl.partition);
预测培训和测试样品标签。
LabelTrain =预测(MDL,x(:,trainidx),'观察',“列”);labeltest = predict(mdl,x(:,testidx),'观察',“列”);
因为有一个正规化强度Mdl
,LabelTrain.
和莱克斯特
柱矢量分别等于培训和测试观察的数量。
构建训练数据的混淆矩阵。
ConfusionTrain = confusionchart (Ystats (trainIdx) labelTrain);
该模型仅误解了三个文档页面,因为统计和机器学习工具箱文档之外。
构建测试数据的混淆矩阵。
confusiontest = confusionchart(Ystats(Testidx),Labeltest);
该模型将三个文档页面错误地分类为统计和机器学习工具箱之外的页面,并将两个页面错误地分类为工具箱内的页面。
通过绘制ROC曲线估计测试样本,后验类概率,并确定模型的质量。线性分类模型仅对logistic回归学习者返回后验概率。
加载NLP数据集并对其进行预处理,如预测测试样品标签.
负载nlpdataystats = y =='统计';X = X ';
通过指定30%的抵抗样本,将数据随机划分为训练集和测试集。识别测试集索引。
本量利= cvpartition (Ystats,'持有', 0.30);idxTest =测试(cvp);
训练一个二元线性分类模型。使用SpaRSA拟合logistic回归学习者。要拿出测试集,请指定分区模型。
cvmdl = fitclinear(x,ystats,'观察',“列”,'cvpartition'、本量利、......“学习者”,“物流”,“规划求解”,“sparsa”);Mdl = CVMdl.Trained {1};
Mdl
是A.ClassificationLinear
模型使用分区中指定的训练集进行训练CVP.
只有。
预测测试样本的后验类别概率。
[~,后]=预测(Mdl X (:, idxTest),'观察',“列”);
因为有一个正规化强度Mdl
,后
是一个两列两行的矩阵,等于测试集观察的数量。列我包含的后验概率mdl.classnames(i)
给予特定观察。
获得假阳性率和真阳性率,并估计AUC。指定第二个类为正类。
(玻璃钢,tpr, ~, auc) = perfcurve (Ystats (idxTest)、后(:,2),Mdl.ClassNames (2));auc
auc = 0.9985
AUC是1
,这表明该模型预测良好。
绘制ROC曲线。
图;图(fpr,tpr) h = gca;h.XLim (1) = -0.1;h.YLim (2) = 1.1;包含(的假阳性率) ylabel (“真阳性率”)标题(“ROC曲线”)
ROC曲线和AUC表示该模型几乎完美地对测试样本观察进行了分类。
确定使用Logistic回归学习者的线性分类模型的良好租赁强度,比较AUC的测试样本值。
加载NLP数据集。预处理数据预测测试样品标签.
负载nlpdataystats = y =='统计';X = X ';
创建一个数据分区,该分区指定阻止10%的观察。提取测试样品指标。
RNG(10);重复性的%分区= cvpartition (Ystats,'持有',0.10);testidx =测试(分区);xtest = x(:,testIdx);n = sum(testidx)
n = 3157
欧美= Ystats (testIdx);
在测试样本中有3157个观察值。
创建一组11个对数间隔的正则化强度 通过 .
-0.5λ= logspace(6日,11);
训练使用每个正则化强度的二元、线性分类模型。利用SpaRSA优化目标函数。将目标函数梯度的容差降低到1E-8
.
cvmdl = fitclinear(x,ystats,'观察',“列”,......'cvpartition',分区,“学习者”,“物流”,“规划求解”,“sparsa”,......“正规化”,“套索”,“λ”λ,'gradienttolerance'1 e-8)
CVMdl = ClassificationPartitionedLinear CrossValidatedModel: 'Linear' ResponseName: 'Y' NumObservations: 31572 KFold: 1 Partition: [1x1 cvpartition] ClassNames: [0 1] ScoreTransform: 'none'属性,方法
提取培训的线性分类模型。
Mdl1 = CVMdl。训练有素的{1}
Mdl1 = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'logit' Beta: [34023x11 double] Bias: [1x11 double] Lambda: [1x11 double] Learner: 'logistic'属性,方法
Mdl
是A.ClassificationLinear
模型对象。因为λ
是一系列正规化优势,你可以想到Mdl
作为11个型号,一个用于每个正则化强度λ
.
估计测试样本预测标签和后级概率。
[标签,后部] =预测(MDL1,XTEST,'观察',“列”);mdl1.classnames;后(3,1,5)
ans = 1.0000
标签
是一个3157 × 11的预测标签矩阵。每一列对应的是使用相应正则化强度训练的模型的预测标签。后
是3157×2×11后级概率矩阵。列对应于类和页面对应于正则化强度。例如,后(3,1,5)
表示第一类(标号)的后验概率0
)通过使用的模型分配给观察3λ(5)
正规化强度为1.0000。
对于每个模型,计算AUC。指定第二节课为积极课。
AUC = 1:秩序(Lambda);%预先配置为j = 1:元素个数(λ)[~,~,~,auc (j)] = perfcurve(欧美,后(:,2,j), Mdl1.ClassNames (2));结束
更高的值λ
导致预测变量稀疏性,这是分类器的良好质量。对于每个正则化强度,使用整个数据集和培训模型培训时的选项列出线性分类模型。确定每个模型的非零系数的数量。
Mdl = fitclinear (X, Ystats'观察',“列”,......“学习者”,“物流”,“规划求解”,“sparsa”,“正规化”,“套索”,......“λ”λ,'gradienttolerance',1E-8);numnzcoeff = sum(mdl.beta〜= 0);
在相同的图中,为每个正则化强度绘制非零系数的测试样本误差速率和频率。绘制日志比例上的所有变量。
图;[h,hl1,hl2] = plotyy(log10(lambda),log10(auc),......log10(λ)log10 (numNZCoeff + 1));hL1。标志='o';hL2。标志='o';ylabel (h (1),'log_ {10} auc') ylabel (h (2),'log_ {10}非零系数频率')包含(“log_{10}λ的)标题('test-sample statistics')举行从
选择正则化强度指标,平衡预测变量的稀疏性和较高的下面积。在本例中,是介于之间的值 到目前为止 足以满足。
idxFinal = 9;
选择模型Mdl
与所选择的正规化强度。
idxFinal MdlFinal = selectModels (Mdl);
MdlFinal
是A.ClassificationLinear
模型包含一个正则化强度。估算新观察的标签,通过MdlFinal
和新的数据预测
.
对于线性分类模型,原始分类分对观察进行分类x,一个行向量,进入正数类定义为
对于正规化强度的模型j,
是系数的估计柱矢量(模型属性beta(:,j)
)和
估计的标量偏差(模型属性偏见(j)
).
对分类的原始分类分数x负的类别是-f(x).该软件将观察分类为产生正得分的类。
如果线性分类模型由Logistic回归学习者组成,则该软件适用分对数的
分数转换为原始分类分数(见scoretransform.
).
使用说明和限制:
您可以为两者生成C/ c++代码预测
和更新
通过使用编码器配置程序。或者,仅生成代码预测
通过使用Savelarnerforcoder.
,loadlearnerforcoder.
,Codegen.
.
代码生成的预测
和更新
- 通过使用创建编码器配置程序Learnercoderconfigurer
然后通过使用生成代码Generatecode.
.然后,您可以在生成的代码中更新模型参数,而无需重新生成代码。
代码生成的预测
- 通过使用保存培训的模型Savelarnerforcoder.
.定义一个入口点函数,通过使用loadlearnerforcoder.
并致电预测
函数。然后使用Codegen.
(MATLAB编码器)为入口点函数生成代码。
要为预测生成单精度C / C ++代码,请指定名称值参数'dataType','single'
当你呼叫loadlearnerforcoder.
函数。
此表包含有关参数的说明预测
.未包含在此表中的参数完全支持。金宝app
争论 | 注意和局限性 |
---|---|
Mdl |
有关模型对象的使用说明和限制,请参见代码生成的 |
X |
|
名称-值对的观点 |
|
有关更多信息,请参阅代码生成简介.
你点击一个链接对应于这个MATLAB命令:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。