主要内容

预测

类:ClassificationLinear

预测线性分类模型的标签

描述

例子

标签=预测(MdlX返回预测器数据中每个观测的预测类标签X基于训练的二元线性分类模型Mdl标签中包含每个正则化强度的类标签Mdl

例子

标签=预测(MdlX,'观察',尺寸指定预测仪数据观察维度,也可以是“行”(默认)或“列”.例如,指定'观察','列'指示预测器数据中的列与观测值对应。

例子

标签] =预测(___也退货分类的分数对于使用前面语法中的任何输入参数组合的两个类。包含每个正则化强度的分类分数Mdl

输入参数

展开所有

二元线性分类模型,指定为ClassificationLinear模型对象。你可以创建一个ClassificationLinear模型对象使用FitClinear.

要分类的预测数据,指定为完整或稀疏数字矩阵或表。

默认情况下,每一行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可以包含其他变量(响应变量,观察权重等),但是预测忽略了它们。

请注意

如果您对预测器矩阵进行定位,使观察结果与列对应并指定'观察','列',则可能会显著减少优化执行时间。你不能指定'观察','列'用于表中的预测器数据。

数据类型:表格|双人间|单身

预测器数据观测维数,指定为“列”“行”

请注意

如果您对预测器矩阵进行定位,使观察结果与列对应并指定'观察','列',则可能会显著减少优化执行时间。你不能指定'观察','列'用于表中的预测器数据。

输出参数

展开所有

预测类标签,作为分类或字符数组、逻辑或数字矩阵或字符向量的单元格数组返回。

在大多数情况下,标签是一个n-l与所观察的类标签具有相同数据类型的数组(Y过去常训练Mdl(该软件将字符串数组视为字符向量的单元格数组。)n观察的次数在吗Xl是正规化优势的数量Mdl。lambda.那是,标签(j是预测的类别标签的观察采用具有正规化强度的线性分类模型Mdl。lambda(j

如果Y是字符数组和l> 1,然后标签是一系列类标签的单元格数组。

分类的分数,返回为n2 -l数字数组。n观察的次数在吗Xl是正规化优势的数量Mdl。lambda评分(kj这个分数是对观察进行分类的吗成类k采用具有正规化强度的线性分类模型Mdl。lambda(jMdl。一会存储类的顺序。

如果Mdl。learner“物流”,然后分类得分是后验概率。

例子

展开所有

加载NLP数据集。

负载nlpdata

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

该模型应识别网页中的单词计数是否来自统计信息和计算机学习工具箱文档。因此,识别与统计和机器学习工具箱文档网页对应的标签。

ystats = y =='统计'

使用整个数据集训练一个二元线性分类模型,它可以识别文档网页中的单词计数是否来自统计学和机器学习工具箱™文档。

RNG(1);重复性的%MDL = FITCLINEAR(X,YSTATS);

Mdl是A.ClassificationLinear模型。

预测训练样本,或再替换,标签。

标签=预测(Mdl X);

因为有一个正规化强度Mdl标签为长度等于观测次数的列向量。

构建混淆矩阵。

ConfusionTrain = confusionchart (Ystats、标签);

图包含ConfusionMatrixChart类型的对象。

模型只会错分一个'统计'在统计和机器学习工具箱文档之外的文档页。

加载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),'观察'“列”);

因为有一个正规化强度MdlLabelTrain.莱克斯特柱矢量分别等于培训和测试观察的数量。

构建训练数据的混淆矩阵。

ConfusionTrain = confusionchart (Ystats (trainIdx) labelTrain);

图包含ConfusionMatrixChart类型的对象。

该模型仅误解了三个文档页面,因为统计和机器学习工具箱文档之外。

构建测试数据的混淆矩阵。

confusiontest = confusionchart(Ystats(Testidx),Labeltest);

图包含ConfusionMatrixChart类型的对象。

该模型将三个文档页面错误地分类为统计和机器学习工具箱之外的页面,并将两个页面错误地分类为工具箱内的页面。

通过绘制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曲线的轴包含类型线的对象。

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个对数间隔的正则化强度 1 0 - 6 通过 1 0 - 0 5

-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')举行

图包含2个轴。具有标题测试样本统计信息的轴1包含类型线的对象。轴2包含类型线的对象。

选择正则化强度指标,平衡预测变量的稀疏性和较高的下面积。在本例中,是介于之间的值 1 0 - 2 到目前为止 1 0 - 1 足以满足。

idxFinal = 9;

选择模型Mdl与所选择的正规化强度。

idxFinal MdlFinal = selectModels (Mdl);

MdlFinal是A.ClassificationLinear模型包含一个正则化强度。估算新观察的标签,通过MdlFinal和新的数据预测

更多关于

展开所有

扩展能力

介绍了R2016a