主要内容

预测

使用朴素贝叶斯分类器对观测值进行分类

描述

例子

标签=预测(Mdl,X)返回表或矩阵中预测器数据的预测类标签向量X,基于训练好的朴素贝叶斯分类模型Mdl.经过训练的朴素贝叶斯模型可以是完整的,也可以是紧凑的。

例子

[标签,后面的,成本) =预测(Mdl,X)还返回后验概率(后面的)和预测(预期)误分类代价(成本)对应的观察(行)Mdl。X.对于每一项观察X时,预测类别标签对应所有类别中最小的期望分类成本。

例子

全部折叠

加载fisheriris数据集。创建X作为一个数字矩阵,包含四个花瓣测量150鸢尾。创建Y作为字符向量的细胞阵列,包含相应的虹膜种类。

负载fisheririsX =量;Y =物种;rng (“默认”)%为了再现性

利用系统中的类信息,将观测数据随机划分为训练集和测试集,并进行分层Y.指定30%的抵抗样品进行测试。

简历= cvpartition (Y,“坚持”, 0.30);

提取训练和测试指标。

trainInds =培训(简历);testInds =测试(简历);

指定培训和测试数据集。

XTrain = X (trainInds:);YTrain = Y (trainInds);XTest = X (testInds:);欧美= Y (testInds);

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

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

Mdl是一个培训ClassificationNaiveBayes分类器。

预测测试样本标签。

idx = randsample (sum (testInds), 10);标签=预测(Mdl XTest);

显示测试样本中随机10次观察的结果。

表(欧美(idx),标签(idx),“VariableNames”,...{“TrueLabel”,“PredictedLabel”})
ans =10×2表(UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU弗吉尼亚州}{'versicolor'}{'versicolor'}

根据真实标签创建混淆图欧美以及预测的标签标签

厘米= confusionchart(欧美、标签);

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

使用朴素贝叶斯分类器估计新观测值的后验概率和误分类代价。使用高效记忆的预训练分类器对新的观察结果进行分类。

加载fisheriris数据集。创建X作为一个数字矩阵,包含四个花瓣测量150鸢尾。创建Y作为字符向量的细胞阵列,包含相应的虹膜种类。

负载fisheririsX =量;Y =物种;rng (“默认”)%为了再现性

将数据集分为两组:一组包含训练集,另一组包含新的未观测数据。为新数据集保留10个观测值。

n =大小(X, 1);newInds = randsample (n, 10);第1 = ~ ismember (1: n, newInds);XNew = X (newInds:);YNew = Y (newInds);

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

Mdl=fitcnb(X(inds,:),Y(inds),...“类名”, {“setosa”,“多色的”,“virginica”});

Mdl是一个培训ClassificationNaiveBayes分类器。

通过减少训练有素的朴素贝叶斯分类器的大小来节省内存。

CMdl =紧凑(Mdl);谁(“Mdl”,“CMdl”)
名称大小字节类属性CMdl 1x1 5406 classreg.learning.classif.CompactClassificationNaiveBayes Mdl 1x1 12707 ClassificationNaiveBayes

CMdl是一个CompactClassificationNaiveBayes分类器。它使用的内存比Mdl因为Mdl存储数据。

的类名CMdl使用点符号。

CMdl。类Names
ans=3 x1细胞{'setosa'}{'versicolor'}{'virginica'}

预测标签。估计后验概率和预期分类错误成本。

[标签、后标签、误分类成本]=预测(CMdl、XNew);

比较真实标签和预测标签。

表(YNew、标签PostProbs MisClassCost,“VariableNames”,...{“TrueLabels”,“PredictedLabels”,...“后验概率”,“MisclassificationCosts”})
ans =10×4表TrueLabels PredictedLabels PosteriorProbabilities MisclassificationCosts  ______________ _______________ _________________________________________ ______________________________________ {' virginica’}{‘virginica} 4.0832 e - 268 4.6422 e-09 1 1 1 4.6422 e-09{‘setosa}{‘setosa} 1 3.0706 3.0706 4.6719 e-18 e-25 e-18 1 1{‘virginica} {' virginica '}1 1 1 0.995e -08 {' versiccolor '} {' versiccolor '} 3.343e -76 0.99971 0.00028983 1 0.00028983 0.99971 {'virginica'}} 4.05e-166 0.0028527 0.99715 1 0.99715 0.0028527{'setosa'} {'setosa'} 1 1.1272 -14 2.0308e-23 1.1272 -14 1 1 {'virginica'} {'virginica'} 1.3292e-228 8.3604e-10 1 1 8.3604e-10 {'setosa'}} 1 4.5023e-17 2.1724e-24 4.5023e-17 1 1

事后抢劫MisClassCost10——- - - - - -3.数字矩阵,其中每一行对应一个新的观察结果,每一列对应一个类。列的顺序对应于CMdl。类Names

加载fisheriris数据集。创建X作为一个数字矩阵,包含四个花瓣测量150鸢尾。创建Y作为字符向量的细胞阵列,包含相应的虹膜种类。

负载fisheririsX =量(:,3:4);Y =物种;

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

Mdl = fitcnb (X, Y,“类名”, {“setosa”,“多色的”,“virginica”});

Mdl是一个培训ClassificationNaiveBayes分类器。

在观察到的预测值空间中定义一个值网格。

xMax=最大值(X);xMin=min(X);h=0.01;[x1Grid,x2Grid]=meshgrid(xMin(1):h:xMax(1),xMin(2):h:xMax(2));

预测网格中每个实例的后验概率。

[~,后验区域]=predict(Mdl,[x1Grid(:),x2Grid(:)];

绘制后验概率区域和训练数据。

h =散射(x1Grid (:), x2Grid (:), 1, PosteriorRegion);h.MarkerEdgeAlpha = 0.3;

图数据。

持有gh = gscatter (X (: 1), X (:, 2), Y,“k”,“dx *”);头衔“虹膜花瓣的测量和后验概率”;包含“花瓣长度(厘米)”;ylabel“花瓣宽度(cm)”;轴传奇(gh,“位置”,“最好的”)举行

图中包含一个坐标轴。以Iris花瓣测量和后验概率为标题的坐标轴包含4个散点、直线类型的对象。这些物品代表着维珍卡。

输入参数

全部折叠

朴素贝叶斯分类模型,指定为ClassificationNaiveBayes模型对象或CompactClassificationNaiveBayes返回的模型对象fitcnb紧凑的分别地

要分类的预测器数据,指定为数字矩阵或表。

每一行的X对应一个观察值,每一列对应一个变量。

  • 对于数值矩阵:

    • 组成列的变量X必须和训练的预测变量有相同的顺序吗Mdl

    • 如果你训练Mdl使用表格(例如,资源描述),然后X可以是数字矩阵,如果资源描述只包含数值预测变量。处理数值预测资源描述作为分类训练,识别分类预测使用“分类预测因素”的名称-值对参数fitcnb.如果资源描述包含异构预测变量(例如,数字和分类数据类型)和X是一个数值矩阵,那么预测抛出一个错误。

  • 一个表:

    • 预测除了字符向量的单元金宝app格数组外,不支持多列变量或单元格数组。

    • 如果你训练Mdl使用表格(例如,资源描述),然后所有预测变量X必须具有与训练的变量相同的变量名和数据类型Mdl(存储在Mdl。PredictorNames).但是,的列顺序X不需要对应于的列顺序资源描述资源描述X可以包含额外的变量(响应变量、观察权重等),但是预测忽视他们。

    • 如果你训练Mdl使用一个数字矩阵,然后预测器命名Mdl。PredictorNames必须与中对应的预测器变量名相同X。要在培训期间指定预测值名称,请使用'PredictorNames的名称-值对参数fitcnb.所有的预测变量X必须是数值向量。X可以包含额外的变量(响应变量、观察权重等),但是预测忽视他们。

数据类型:表格||

注:

  • 如果Mdl。DistributionNames“mn”,然后软件返回S对应的行X至少包含一个

  • 如果Mdl。DistributionNames不是“mn”,则软件将忽略估计误分类成本和后验概率时的值。具体而言,软件通过忽略与缺失预测值对应的因素来计算给定类别预测值的条件密度。

  • 为指定的预测器分布“mvmn”,如果X包含训练数据中没有表示的级别(即不在Mdl。CategoricalLevels对于该预测器),则给定类的预测器的条件密度为0。对于这些观测结果,软件返回相应的值后面的作为一个. 软件使用存储在中的类先验概率确定此类观测的类标签Mdl。Prior

输出参数

全部折叠

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

预测的类标签具有以下特性:

  • 与所观察的类标签相同的数据类型(Mdl。Y).(软件将字符串数组视为字符向量的单元数组。)

  • 长度等于的行数Mdl。X

  • 产生最低预期误分类成本的类(成本).

后验概率,以数字矩阵形式返回。后面的行数等于的行数Mdl。X和列等于训练数据中不同类的数量(尺寸(Mdl.ClassNames, 1)).

后(j, k)类的预测后验概率是多少K(在课堂上Mdl.ClassNames (k))考虑到排中的观察结果JMdl。X

预期误分类代价,以数字矩阵形式返回。成本行数等于的行数Mdl。X和列等于训练数据中不同类的数量(尺寸(Mdl.ClassNames, 1)).

成本(j, k)是第行中观察的预期错误分类成本JMdl。X预测到类K(在课堂上Mdl.ClassNames (k)).

更多关于

全部折叠

误分类代价

A.错分代价是分类器将一个观察标记为错误类的相对严重程度。

有两种类型的错误分类成本:真实和预期K是类的数量。

  • 真实误分类成本——一个K——- - - - - -K矩阵,其中元素(,J)表示将观测结果预测为类的误分类代价J如果它真正的阶级是.软件将误分类成本储存在物业中Mdl。成本,并将其用于计算。默认情况下,Mdl.成本(i,j)=1如果J,Mdl.成本(i,j)=0如果=J. 换句话说,成本是0正确分类及1.任何不正确的分类。

  • 预期的误分类代价——一个K-维向量,其中元素K将观察结果分类的加权平均误分类成本是多少K,按类别后验概率加权。

    C K = J = 1. K P ^ ( Y = J | x 1. , ... , x P ) C o s T J K

    换言之,软件将观察结果分类为与最低预期误分类成本相对应的类别。

后验概率

这个后验概率是在给定数据的情况下,某一观察结果属于某一类的概率。

对于朴素贝叶斯,分类的后验概率K对于给定的观测(x1.、……xP)是

P ^ ( Y = K | x 1. , .. , x P ) = P ( X 1. , ... , X P | Y = K ) π ( Y = K ) P ( X 1. , ... , X P ) ,

哪里:

  • P ( X 1. , ... , X P | Y = K ) 在课堂上给出预测器的条件关节密度吗KMdl。DistributionNames存储预测器的分布名称。

  • π(Y=K)是类先验概率分布。Mdl。Prior存储先前的分发。

  • P ( X 1. , .. , X P ) 为预测者的联合密度。这些类是离散的,所以 P ( X 1. , ... , X P ) = K = 1. K P ( X 1. , ... , X P | Y = K ) π ( Y = K )

先验概率

这个先验概率类的相对频率是假定的相对频率,该类的观测值在总体中出现。

扩展功能

介绍了R2014b