主要内容

预测

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

描述

例子

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

例子

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

例子

全部折叠

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

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

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

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

提取训练指标和测试指标。

trainInds =培训(cv);testInds =测试(cv);

指定训练和测试数据集。

XTrain = X(trainInds,:);YTrain = Y(trainInds);XTest = X(testInds,:);YTest = 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' 'normal'} DistributionParameters: {3x4 cell}属性,方法

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

预测测试样品标签。

idx = randsample(sum(testInds),10);label = predict(Mdl,XTest);

显示测试样本中10个观察值的随机集合的结果。

表(欧美(idx),标签(idx),“VariableNames”...“TrueLabel”“PredictedLabel”})
ans =10×2表TrueLabel PredictedLabel  ______________ ______________ {' virginica’}{‘virginica}{“癣”}{“癣”}{“癣”}{“癣”}{‘virginica}{‘virginica}{‘setosa}{‘setosa}{‘virginica}{‘virginica}{‘setosa}{‘setosa}{“癣”}{“癣”}{“癣”}{‘virginica}{“癣”}{“癣”}

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

cm = confusionchart(YTest,label);

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

使用朴素贝叶斯分类器估计新观测的后验概率和错误分类代价。使用内存高效的预训练分类器对新观测进行分类。

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

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

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

n = size(X,1);newInds = randsample(n,10);inds = ~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 12731 ClassificationNaiveBayes

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

的类名CMdl使用点表示法。

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

预测标签。估计后验概率和预期的类别错误分类代价。

[labels,PostProbs,MisClassCost] = predict(CMdl,XNew);

将真实标签与预测标签进行比较。

表(YNew、标签PostProbs MisClassCost,“VariableNames”...“TrueLabels”“PredictedLabels”...“PosteriorProbabilities”“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.0007 e - 246 5.8758平台以及1 1 1 5.8758平台以及{“癣”}{“癣”}1.2022 e - 61 0.99995 4.9859 e-05 1 4.9859 0.99995 e-05{‘virginica} {' virginica '}2.687e-226 1.7905e-08 1 1 1 1.7905e-08 {'versicolor'} {'versicolor'} 3.3431e-76 0.99971 0.00028983 1 0.00028983 0.00028983 {'virginica'} {'virginica'} 4.05e-166 0.0028527 0.99715 1 0.99715 0.0099927 {' settosa '} {' settosa '} 1 1.1272e-14 2.0308e-23 1.1272e-14 1 1 1 8.3604e-10 {' settosa '} {' settosa '} 1 4.5023e- 28 2.1724e-24 4.5023e-17 1 1 1

PostProbs而且MisClassCost10——- - - - - -3.数字矩阵,其中每行对应一个新的观察值,每列对应一个类。列的顺序对应于的顺序CMdl。类Names

加载fisheriris数据集。创建X作为一个数字矩阵,包含150个鸢尾花的花瓣长度和宽度测量。创建Y作为包含相应虹膜种类的特征向量的单元数组。

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

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

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

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

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

xMax = max(X);xMin = min(X);H = 0.01;[x1Grid, x2Grid] = meshgrid (xMin (1): h: xMax (1) xMin (2): h: xMax (2));

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

[~, PosteriorRegion] =预测(Mdl [x1Grid (:), x2Grid (:)));

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

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

绘制数据图。

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

图中包含一个轴对象。标题为虹膜花瓣测量和后验概率的轴对象包含散点、线类型的4个对象。这些物品代表了setosa, versicolica, virgica。

输入参数

全部折叠

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

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

每行X对应一个观察结果,每一列对应一个变量。

  • 对于数值矩阵:

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

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

  • 对于表格:

    • 预测不支持多列变量或除万博1manbetx字符向量的单元格数组外的单元格数组。

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

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

数据类型:表格||

注:

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

  • 如果Mdl。DistributionNames不是“锰”,那么软件就会忽略估算错误分类代价和后验概率时的值。具体来说,该软件通过忽略与缺失预测器值对应的因素来计算给定类的预测器的条件密度。

  • 对于预测器分布,指定为“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)).

更多关于

全部折叠

误分类代价

一个误分类代价是分类器将观察结果标记到错误类的相对严重程度。

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

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

  • 预期误分类成本——一个K-维向量,其中元素k将观测数据分类的加权平均成本是多少k,由类后验概率加权。

    c k j 1 K P Y j | x 1 ... x P C o 年代 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存储预测器的分布名称。

  • πYk)为类先验概率分布。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中引入