主要内容

resubPredict

使用训练过的分类器对训练数据进行分类

    描述

    例子

    标签= resubPredict (Mdl返回预测类标签的向量(标签)为训练后的分类模型Mdl使用预测器数据存储在Mdl。X

    例子

    标签分数= resubPredict(Mdl还返回分类分数。

    例子

    标签分数= resubPredict(Mdl“IncludeInteractions”,includeInteractions指定是否在计算中包含交互项。此语法仅适用于广义加法模型。

    标签分数成本= resubPredict(Mdl还返回预期的错误分类代价。此语法仅适用于k-最近邻和朴素贝叶斯模型。

    例子

    全部折叠

    加载fisheriris数据集。创建X作为一个数字矩阵,包含150个虹膜的四个测量值。创建Y作为包含相应虹膜种类的特征向量的单元数组。

    负载fisheririsX = meas;Y =物种;rng (“默认”%用于再现性

    使用预测器训练朴素贝叶斯分类器X和类别标签Y.推荐的做法是指定类名。fitcnb假设每个预测因子都是有条件的正态分布。

    Mdl = fitcnb(X,Y,“类名”,{“setosa”“多色的”“virginica”})
    Mdl = ClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' NumObservations: 150 DistributionNames: {'normal' 'normal' 'normal' 'normal'} DistributionParameters: {3x4 cell}属性,方法

    Mdl是受过训练的ClassificationNaiveBayes分类器。

    预测训练样本标签。

    label = resubPredict(Mdl);

    显示10个观察的随机集合的结果。

    idx = randsample(size(X,1),10);表(Y (idx)、标签(idx),“VariableNames”...“真正的标签”“预测标签”})
    ans =10×2表真正的标签预测标签  ______________ _______________ {' virginica’}{‘virginica}{‘setosa}{‘setosa}{‘virginica}{‘virginica}{“癣”}{“癣”}{‘virginica}{‘virginica}{“癣”}{“癣”}{‘virginica}{‘virginica}{‘setosa}{‘setosa}{‘virginica}{‘virginica}{‘setosa} {' setosa '}

    根据真实标签制作一个混淆表Y预测的标签标签

    cm = confusionchart(Y,label);

    图包含一个confusimatrixchart类型的对象。

    加载电离层数据集。该数据集有34个预测器和351个雷达返回的二进制响应,要么是坏的(“b”)或好(‘g’).

    负载电离层

    训练支持向量机(金宝appSVM)分类器。标准化数据并指定这一点‘g’是正类。

    SVMModel = fitcsvm(X,Y,“类名”,{“b”‘g’},“标准化”,真正的);

    SVMModel是一个ClassificationSVM分类器。

    拟合最优得分-后验概率转换函数。

    rng (1);%用于再现性ScoreSVMModel = fitPosterior(vmmodel)
    ScoreSVMModel = ClassificationSVM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: '@(S)sigmoid(S,-9.482415e-01,-1.217768e-01)' NumObservations: 351 Alpha: [90x1 double] Bias: -0.1342 KernelParameters: [1x1 struct] Mu:[0.8917 0 0.6413 0.0444 0.6011 0.1159 0.5501…]西格玛:[0.3112 0 0.4977 0.4414 0.5199 0.4608 0.4927…] BoxConstraints: [351x1 double] ConvergenceInfo: [1x1 struct] Is金宝appSupportVector: [351x1 logical]求解器:“SMO”属性,方法

    由于类是不可分割的,因此分数转换函数(ScoreSVMModel。ScoreTransform)为sigmoid函数。

    估计训练数据的分数和正类后验概率。显示前10个观察结果。

    [label,scores] = resubPredict(SVMModel);[~,postProbs] = resubPredict(ScoreSVMModel);表(Y(1:10),标签(1:10),分数(1:10),2),postProbs (1:10), 2),“VariableNames”...“TrueLabel”“PredictedLabel”“分数”“PosteriorProbability”})
    ans =10×4表TrueLabel PredictedLabel得分PosteriorProbability  _________ ______________ _______ ____________________ {' 1.4862 - 0.82216 g’}{‘g’}{b} {b} -1.0004 - 0.30431{‘g’}{‘g’}1.8686 - 0.86918 {b} {b} -2.6462 - 0.084133{‘g’}{‘g’}1.2808 - 0.79188 {b} {b} -1.4618 - 0.22022{‘g’}{‘g’}2.1673 - 0.89815 {b} {b} -5.7093 - 0.0050066{‘g’}{‘g’}2.4797 - 0.92224 {b} {b} -2.7811 - 0.074784

    使用包含预测因子线性和交互项的分类广义加法模型(GAM)估计训练数据的后验概率(分类分数)的logit。指定在计算分类分数时是否包括交互术语。

    加载电离层数据集。该数据集有34个预测器和351个雷达返回的二进制响应,要么是坏的(“b”)或好(‘g’).

    负载电离层

    使用预测器训练一个GAMX和类别标签Y.推荐的做法是指定类名。指定包含10个最重要的交互术语。

    Mdl = fitccam (X,Y,“类名”,{“b”‘g’},“互动”, 10)
    Mdl = ClassificationGAM ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'logit'截取:3.2565交互:[10x2 double] NumObservations: 351属性,方法

    Mdl是一个ClassificationGAM模型对象。

    同时使用线性项和交互项预测标签,然后仅使用线性项。要排除交互术语,请指定“IncludeInteractions”,假的.估计后验概率的对数ScoreTransform财产“没有”

    Mdl。ScoreTransform =“没有”;[labels,scores] = resubPredict(Mdl);[labels_nointeraction,scores_nointeraction] = resubPredict(Mdl,“IncludeInteractions”、假);

    创建一个包含真实标签、预测标签和分数的表。显示表的前八行。

    t = table(Y,labels,scores,labels_nointeraction,scores_nointeraction,...“VariableNames”,{“真正的标签”“预测标签”“分数”...“没有交互作用的预测标签”“没有互动的分数”});头(t)
    ans =8×5表真正的标签标签预测分数预测标签没有交互的分数没有交互  ___________ ________________ __________________ _____________________________________ ___________________________ {' -51.628 - 51.628 g’}{‘g’}{‘g’}-47.676 - 47.676 {b} {b} 37.433 - -37.433 36.435 - -36.435 {b}{‘g’}{‘g’}-62.061 - 62.061 -58.357 - 58.357{‘g’}{b} {b} 37.666 - -37.666 36.297 - -36.297 {b}{‘g’}{‘g’}-47.361 - 47.361 -43.373 - 43.373{‘g’}{b} {b} {b} -106.48 106.48 102.43-102.43{‘g’}{‘g’}-62.665 - 62.665 -58.377 - 58.377{‘g’}{b} {b} {b} 197.84 - -197.84 201.46 -201.46

    训练数据的预测标签X不会因是否包含交互术语而有所不同,但估计值是不同的。

    输入参数

    全部折叠

    分类机器学习模型,指定为完整的分类模型对象,如下表所示的支持模型。金宝app

    模型 分类模型对象
    广义加性模型 ClassificationGAM
    k-最近邻模型 ClassificationKNN
    朴素贝叶斯模型 ClassificationNaiveBayes
    神经网络模型 ClassificationNeuralNetwork
    金宝app支持向量机用于一类和二元分类 ClassificationSVM

    标志,以包括模型的交互术语,指定为真正的.这一论点仅对广义可加模型(GAM)有效。也就是说,您只能在以下情况下指定此参数MdlClassificationGAM

    默认值为真正的如果Mdl包含交互术语。取值必须为如果模型不包含交互项。

    数据类型:逻辑

    输出参数

    全部折叠

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

    标签与所观察的训练的类标签具有相同的数据类型Mdl,其长度等于中的观测数Mdl。X(该软件将字符串数组视为字符向量的单元格数组。)

    类的分数,作为数字矩阵返回。分数行数是否等于其中的观察数Mdl。X列等于训练数据中不同类的数量(尺寸(Mdl.ClassNames, 1)).

    预期的错误分类代价,以数字矩阵形式返回。此输出仅适用于k-最近邻和朴素贝叶斯模型。也就是说,resubPredict返回成本只有当MdlClassificationKNNClassificationNaiveBayes

    成本行数是否等于其中的观察数Mdl。X列等于训练数据中不同类的数量(尺寸(Mdl.ClassNames, 1)).

    成本(j, k)观测的预期错分类代价是连续的吗jMdl。X预测进入课堂k(在课堂上Mdl.ClassNames (k)).

    算法

    resubPredict根据相应的计算预测预测对象的函数(Mdl).有关特定于模型的描述,请参见预测下表中的函数参考页。

    模型 分类模型对象(Mdl 预测目标函数
    广义加性模型 ClassificationGAM 预测
    k-最近邻模型 ClassificationKNN 预测
    朴素贝叶斯模型 ClassificationNaiveBayes 预测
    神经网络模型 ClassificationNeuralNetwork 预测
    金宝app支持向量机用于一类和二元分类 ClassificationSVM 预测

    扩展功能

    在R2012a中引入