kfoldPredict
预测不用于训练的观察结果的标签
描述
输入参数
CVMdl
- - - - - -交叉验证,二元,线性分类模型
ClassificationPartitionedLinear
模型对象
交叉验证,二元,线性分类模型,指定为ClassificationPartitionedLinear
模型对象。您可以创建ClassificationPartitionedLinear
模型使用fitclinear
并指定任何一个交叉验证,名值对参数,例如,CrossVal
.
输出参数
标签
-交叉验证,预测类标签
分类数组|字符数组|逻辑矩阵|数字矩阵|字符向量单元数组
例子
预测k交叉验证标签
加载NLP数据集。
负载nlpdata
X
是一个稀疏矩阵的预测数据,和Y
是类标签的分类向量。数据中有两个以上的类。
这些模型应该识别网页中的字数是否来自统计和机器学习工具箱™文档。因此,确定与统计和机器学习工具箱™文档网页对应的标签。
Ystats = Y ==“统计数据”;
使用整个数据集交叉验证二进制线性分类模型,该模型可以识别文档网页中的字数是否来自统计和机器学习工具箱™文档。
rng (1);%用于再现性CVMdl = fitclinear(X,Ystats,“CrossVal”,“上”);Mdl1 = CVMdl。训练有素的{1}
Mdl1 = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'none' Beta: [34023x1 double]偏差:-1.0008 Lambda: 3.5193e-05学习者:'svm'属性,方法
CVMdl
是一个ClassificationPartitionedLinear
模型。默认情况下,该软件实现10倍交叉验证。控件可以更改折叠数“KFold”
名称-值对参数。
预测观察结果的标签fitclinear
没有用于训练折叠。
label = kfoldPredict(CVMdl);
因为有一个正则化的强度Mdl1
,标签
预测的列向量包含的行数是否与观察的行数相同X
.
构造一个混淆矩阵。
confusitrain = confusichart (Ystats,label);
该模型错误地分类了15个“统计数据”
“统计和机器学习工具箱”文档之外的文档页,并将9个页面错误地分类为“统计数据”
页面。
估计k-fold交叉验证后验类概率
线性分类模型只返回逻辑回归学习者的后验概率。
加载NLP数据集并对其进行预处理,如预测k-fold交叉验证标签.转置预测器数据矩阵。
负载nlpdataYstats = Y ==“统计数据”;X = X';
使用5倍交叉验证交叉验证二元线性分类模型。利用SpaRSA对目标函数进行优化。将目标函数的梯度公差降低到1 e-8
.
rng (10);%用于再现性CVMdl = fitclinear(X,Ystats,“ObservationsIn”,“列”,...“KFold”5,“学习者”,“物流”,“规划求解”,“sparsa”,...“正规化”,“套索”,“GradientTolerance”1 e-8);
预测未用于训练每次折叠的观测的后验类概率。
[~,posterior] = kfoldPredict(CVMdl);CVMdl。一会
ans =2x1逻辑阵列0 1
因为有一个正则化的强度CVMdl
,后
是一个矩阵,有2列和2行等于观测值的数量。列我包含后验概率Mdl.ClassNames(我)
给定一个特定的观察结果。
计算ROC曲线的性能指标(真阳性率和假阳性率),并通过创建的方法找到ROC曲线下的面积(AUC)值rocmetrics
对象。
rocObj = rocmetrics(Ystats,posterior,CVMdl.ClassNames);
绘制第二类的ROC曲线情节
的函数rocmetrics
.
情节(rocObj一会= CVMdl.ClassNames (2))
ROC曲线表明,该模型几乎完美地分类了验证观察值。
使用交叉验证AUC找到好的套索惩罚
为了确定使用逻辑回归学习器的线性分类模型的良好套索惩罚强度,比较交叉验证的AUC值。
加载NLP数据集。预处理数据,如估计k倍交叉验证后验类概率.
负载nlpdataYstats = Y ==“统计数据”;X = X';
测试样本中有9471个观测值。
创建一组11个对数间隔的正则化强度 通过 .
Lambda = logspace(-6,-0.5,11);
交叉验证使用每种正则化强度和5倍交叉验证的二元线性分类模型。利用SpaRSA对目标函数进行优化。将目标函数的梯度公差降低到1 e-8
.
rng (10)%用于再现性CVMdl = fitclinear(X,Ystats,“ObservationsIn”,“列”,...“KFold”5,“学习者”,“物流”,“规划求解”,“sparsa”,...“正规化”,“套索”,“λ”λ,“GradientTolerance”1 e-8)
CVMdl = ClassificationPartitionedLinear CrossValidatedModel: 'Linear' ResponseName: 'Y' NumObservations: 31572 KFold: 5 Partition: [1x1 cvpartition] ClassNames: [0 1] ScoreTransform: 'none'属性,方法
Mdl1 = CVMdl。训练有素的{1}
Mdl1 = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'logit' Beta: [34023x11 double]偏差:[-13.3823 -13.3823 -13.3823 -13.3823 -13.3823 -13.3823…[Lambda: [1.0000e-06 3.5481e-06 1.2589e-05 4.4668e-05…]学习者:“逻辑”属性,方法
Mdl1
是一个ClassificationLinear
模型对象。因为λ
是一个正则化强度序列,你能想到吗Mdl1
作为11个模型,每个模型中的正则化强度为1λ
.
预测交叉验证的标签和后验类概率。
[label,posterior] = kfoldPredict(CVMdl);CVMdl.ClassNames;[n,K,L] = size(后验)
N = 31572
K = 2
L = 11
后(3、1、5)
Ans = 1.0000
标签
是一个31572 × 11的预测标签矩阵。每一列对应于使用相应的正则化强度训练的模型的预测标签。后
是一个31572 × 2 × 11的后验类别概率矩阵。列对应类,页对应正则化强度。例如,后(3、1、5)
表示第一类(标签)的后验概率0
)由所使用的模型分配到观测3λ(5)
作为正则化强度是1.0000。
对于每个模型,通过使用计算AUCrocmetrics
.
auc = 1:数字(Lambda);%预先配置为j = 1: nummel (Lambda) rocObj = rocmetrics(Ystats,posterior(:,:,j),CVMdl.ClassNames);auc(j) = rocObj.AUC(1);结束
较高的值λ
导致预测变量稀疏性,这是分类器的一个很好的特性。对于每个正则化强度,使用整个数据集和训练模型时相同的选项训练线性分类模型。确定每个模型的非零系数的数量。
Mdl = fitclinear(X,Ystats,“ObservationsIn”,“列”,...“学习者”,“物流”,“规划求解”,“sparsa”,“正规化”,“套索”,...“λ”λ,“GradientTolerance”1 e-8);numNZCoeff = sum(Mdl.Beta~=0);
在同一图中,绘制每个正则化强度的测试样本错误率和非零系数的频率。在对数尺度上画出所有变量。
图yyaxis左情节(log10(λ)log10 (auc),“啊——”) ylabel (“log_ {10} AUC的) yyaxis正确的plot(log10(Lambda),log10(numNZCoeff + 1),“啊——”) ylabel ('log_{10}非零系数频率')包含(“log_{10}λ的)标题(“旨在统计”)举行从
选择正则化强度指数,以平衡预测变量稀疏性和高AUC。在本例中,为之间的值 来 应该足够了。
idxFinal = 9;
从Mdl
用所选的正则化强度。
MdlFinal = selectModels(Mdl,idxFinal);
MdlFinal
是一个ClassificationLinear
包含一个正则化强度的模型。要估计新观测值的标签,请通过MdlFinal
新的数据预测
.
更多关于
分类分
对于线性分类模型,原始的分类分对观测进行分类x,一个行向量,转化为正类定义为
对于具有正则化强度的模型j,
估计的列向量的系数(模型属性β(:,j)
),
估计的标量偏差(模型属性偏见(j)
).
用于分类的原始分类分数x进入负类的是-f(x).该软件将观察结果分为产生正分的类别。
如果线性分类模型由逻辑回归学习器组成,则该软件应用分对数的
分数转换为原始分类分数(见ScoreTransform
).
版本历史
在R2016a中引入
Matlab명령
다음matlab명령에해당하는링크를클릭했습니다。
명령을실행하려면matlab명령창에입력하십시오。웹브라우저는matlab명령을지원하지않습니다。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。