主要内容

ClassificationNaiveBayes

朴素贝叶斯分类的多类分类

描述

ClassificationNaiveBayes是一个朴素贝叶斯对多类分类器的学习。训练有素的ClassificationNaiveBayes分类器存储训练数据,参数值,数据分布和先验概率。使用这些分类器来执行任务,比如估算resubstitution预测(见resubPredict)和预测新数据(见标签或后验概率预测)。

创建

创建一个ClassificationNaiveBayes对象的使用fitcnb

属性

全部展开

预测性能

这个属性是只读的。

预测指标名称,指定为一个单元阵列的特征向量。元素的顺序PredictorNames对应的顺序预测的名字出现在训练数据X

这个属性是只读的。

扩展预测名称,指定为一个单元阵列的特征向量。

如果模型使用哑变量编码为分类变量ExpandedPredictorNames包括名称,描述变量扩展。否则,ExpandedPredictorNames是一样的PredictorNames

这个属性是只读的。

分类预测指标,指定为一个向量的正整数。CategoricalPredictors包含索引值表明相应的预测分类。索引值介于1和p,在那里p预测的数量被用来训练模型。如果所有的预测都直言,那么这个属性是空的([])。

数据类型:|

这个属性是只读的。

多元多项式的水平,指定为一个单元阵列。的长度CategoricalLevels等于预测的数量(大小(X, 2))。

的细胞CategoricalLevels对应于你指定的预测因子“mvmn”在培训期间,也就是说,他们有一个多元多项式分布。细胞不对应于一个多元多项式分布是空的([])。

如果预测j是多元多项式,然后CategoricalLevels {j}是一个列表的所有不同值的预测j在样例。s是远离独特的(X (:, j))

这个属性是只读的。

Unstandardized预测使用朴素贝叶斯分类器训练,指定为一个数字矩阵。每一行的X对应于一个观察,每一列对应一个变量。软件不包含至少一个缺失值的观测,并删除相应的元素从Y。

预测分布属性

这个属性是只读的。

预测分布,指定为一个字符特征向量的向量或单元阵列。fitcnb使用预测分布模型预测。此表列出了可用的分布。

价值 描述
“内核” 平滑核密度估计
“锰” 多项分布。如果您指定多项分布的,那么所有功能组件。因此,您不能包含“锰”作为一个字符串数组的一个元素或者一个单元阵列的特征向量。有关详细信息,请参见估计概率多项式分布
“mvmn” 多元多项式分布。有关详细信息,请参见多元多项式估计概率分布
“正常” 正态(高斯)分布

如果DistributionNames是1 -P单元阵列的特征向量,然后fitcnb模型的特性j使用元素的分布j细胞的数组。

例子:“锰”

例子:{“内核”、“正常”、“内核”}

数据类型:字符|字符串|细胞

这个属性是只读的。

分布参数的估计,指定为一个单元阵列。DistributionParameters是一个K——- - - - - -D单元阵列,细胞(k,d)包含分布参数估计预测的实例d在课堂上k。订单的行对应订单的类属性一会和预测的顺序对应的列的顺序X

如果类k没有预测的观察j,那么{分布k,j}是空的([])。

的元素DistributionParameters依赖于分布的预测。此表描述中的值DistributionParameters {k,j}

分布的预测j 单元阵列的预测价值j和类k
内核 一个KernelDistribution模型。使用细胞显示属性索引和点符号。例如,显示带宽预测2的核密度估计在第三类,使用Mdl.DistributionParameters {3 2} .Bandwidth
一个标量表示令牌的概率j出现在课堂上k。有关详细信息,请参见估计概率多项式分布
mvmn 一个数值向量包含每个可能的概率预测的水平j在课堂上k。软件订单的概率顺序的所有独特的预测水平j(存储在属性中CategoricalLevels)。更多细节,请参阅多元多项式估计概率分布
正常的 一个2×1数值向量。第一个元素是样本均值和样本标准差是第二个元素。更多细节,请参阅正态分布估计

这个属性是只读的。

内核平滑类型,指定为内核的名称或一个细胞内核名字的数组。的长度内核等于预测的数量(大小(X, 2))。内核{j}对应的预测j并包含一个特征向量描述内核平滑的类型。如果单元格为空([]),然后fitcnb不符合一个内核分配到相应的预测。

这个表描述了支持内核流畅的类型。金宝app{u}表示指标函数。

价值 内核 公式
“盒子” 框(统一)

f ( x ) = 0.5 { | x | 1 }

“epanechnikov” Epanechnikov

f ( x ) = 0.75 ( 1 x 2 ) { | x | 1 }

“正常” 高斯

f ( x ) = 1 2 π 经验值 ( 0.5 x 2 )

“三角形” 三角

f ( x ) = ( 1 | x | ) { | x | 1 }

例子:“盒子”

例子:{“epanechnikov”、“正常”}

数据类型:字符|字符串|细胞

这个属性是只读的。

内核光滑密度的支持,指定为一个单元阵列。金宝app的长度金宝app等于预测的数量(大小(X, 2))。细胞代表的地区fitcnb应用内核密度。如果单元格为空([]),然后fitcnb不符合一个内核分配到相应的预测。

此表描述了支持选项。金宝app

价值 描述
1×2数字行向量 密度支持适用于指定的界限金宝app,例如(L U),在那里lU分别是有限的上下界限。
“积极” 密度支持适用于所有积极的金宝app实际价值。
“无限” 密度支持适用于所有真正的金宝app价值观。

这个属性是只读的。

内核平滑窗口宽度,指定为一个数字矩阵。宽度是一个K——- - - - - -P矩阵,K在数据类的数量,然后呢P预测的数量(大小(X, 2))。

宽度(k,j)是内核平滑窗口宽度的内核平滑密度预测j内部类k在列j表明,fitcnb不符合预测j使用一个内核密度。

响应特性

这个属性是只读的。

独特的培训模式中使用类名称,指定为一个类别或字符数组,逻辑或数值向量,或单元阵列的特征向量。

一会有相同的数据类型Y,并已K字符数组的元素(或行)。(软件对字符串数组作为细胞阵列特征向量)。

数据类型:分类|字符|字符串|逻辑||细胞

这个属性是只读的。

响应变量名称,指定为一个特征向量。

数据类型:字符|字符串

这个属性是只读的。

类标签用于训练朴素贝叶斯分类器,分类或字符数组,指定逻辑或者数值向量、数组或单元的特征向量。每一行的Y代表观察到的分类对应的行X

Y具有相同数据类型的数据Y用于训练模型。(软件对字符串数组作为细胞阵列特征向量)。

数据类型:||逻辑|字符|字符串|细胞|分类

训练属性

这个属性是只读的。

参数值用于训练ClassificationNaiveBayes模型,指定为一个对象。ModelParameters包含名称-值对参数值等参数值用于训练朴素贝叶斯分类器。

访问的属性ModelParameters通过使用点符号。例如,访问内核支持使用金宝appMdl.ModelParameters.金宝appSupport

这个属性是只读的。

数量的训练在训练数据存储在观察XY,指定为一个数字标量。

先验概率,指定为一个数值向量。元素的顺序之前对应的元素Mdl.ClassNames

fitcnb规范了先验概率设置使用“之前”名称-值对的论点,这样总和(前)=1

的价值之前不影响最佳拟合模型。因此,您可以复位之前训练后Mdl使用点符号。

例子:Mdl.Prior=(0.2 0.8]

数据类型:|

这个属性是只读的。

观察体重、指定为一个向量的非负价值相同的行数Y。中的每个条目W指定相应的观测的相对重要性Yfitcnb规范化设置的值“重量”名称-值对的论点,这样重量在一个特定的类和类的先验概率。

分类器性能

误分类代价,指定为一个数字方阵,成本(i, j)是一个指向类分类的成本j如果它真正的类。行对应于真实的类和列对应预测类。的行和列的顺序成本对应于类的顺序一会

对角线上的误分类代价矩阵一定是零。

的价值成本不影响训练。你可以重置成本训练后Mdl使用点符号。

例子:Mdl。成本=(0 0.5 ; 1 0]

数据类型:|

这个属性是只读的。

交叉验证优化hyperparameters,指定为一个BayesianOptimization对象或一个表hyperparameters和相关联的值。这个属性是否非空的“OptimizeHyperparameters”名称-值对参数非空的当你创建模型。的价值HyperparameterOptimizationResults取决于的设置优化器字段HyperparameterOptimizationOptions当您创建结构模型。

的价值优化器 的价值HyperparameterOptimizationResults
“bayesopt”(默认) 对象的类BayesianOptimization
“gridsearch”“randomsearch” hyperparameters表使用,观察目标函数值(交叉验证损失)和从最低(最好的)最高等级的观察(坏的)

分类得分变换,指定为一个特征向量或函数句柄。这个表总结了可用的特征向量。

价值 描述
“doublelogit” 1 / (1 +e2x)
“invlogit” 日志(x/ (1 -x))
“ismax” 集类的分数最大的分数为1,并设置所有其他类的分数为0
“分对数” 1 / (1 +e- - - - - -x)
“没有”“身份” x(转换)
“标志” 1x< 0
为0x= 0
1x> 0
“对称” 2x- 1
“symmetricismax” 集合类的分数最大的分数为1,和所有其他类的分数设置为1
“symmetriclogit” 2 / (1 +e- - - - - -x)- 1

对于一个MATLAB®函数或函数定义,使用它的功能处理的分数转换。函数处理必须接受一个矩阵(原始分数)并返回一个相同大小的矩阵(转换后的分数)。

例子:Mdl。ScoreTransform = '分对数'

数据类型:字符|字符串|函数处理

对象的功能

紧凑的 减少机器学习模型的大小
compareHoldout 比较两种分类模型使用新数据的精度
crossval 旨在机器学习模型
边缘 朴素贝叶斯分类器的分类边界
incrementalLearner 朴素贝叶斯分类模型转换为增量学习
石灰 本地可model-agnostic解释(石灰)
logp 朴素贝叶斯分类器的日志无条件概率密度
损失 朴素贝叶斯分类器分类损失
保证金 朴素贝叶斯分类器的分类的利润率
partialDependence 计算部分依赖
plotPartialDependence 创建部分依赖图(PDP)和个人条件期望(ICE)情节
预测 观察使用朴素贝叶斯分类器进行分类
resubEdge Resubstitution分类边缘
resubLoss Resubstitution分类损失
resubMargin Resubstitution分类保证金
resubPredict 使用训练数据训练分类器进行分类
沙普利 沙普利值
testckfold 比较两种分类模型的精度重复交叉验证

例子

全部折叠

创建一个朴素贝叶斯分类器对费舍尔的虹膜数据集,然后指定先验概率后训练分类器。

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

负载fisheririsX =量;Y =物种;

使用预测训练朴素贝叶斯分类器X和类标签Yfitcnb假设每个预测是独立的,适合每个默认使用正态分布预测。

Mdl = fitcnb (X, Y)
Mdl = ClassificationNaiveBayes ResponseName:‘Y’CategoricalPredictors:[]类名:{“setosa”“杂色的”“virginica”} ScoreTransform:“没有一个”NumObservations: 150 DistributionNames:{“正常”“正常”“正常”“正常”}DistributionParameters: {} 3 x4细胞属性,方法

Mdl是一个培训ClassificationNaiveBayes分类器。的一些Mdl属性出现在命令窗口。

显示的属性Mdl使用点符号。例如,显示类名和先验概率。

Mdl.ClassNames
ans =3 x1细胞{' setosa}{“癣”}{' virginica '}
Mdl.Prior
ans =1×30.3333 0.3333 0.3333

订单类的先验概率Mdl.Prior对应于类的顺序Mdl.ClassNames。默认情况下,先验概率是各自的相对频率类的数据。此外,您可以设置呼叫时先验概率fitcnb通过使用“之前的名称-值对的论点。

设置先验概率分类器训练后通过使用点符号。例如,设置先验概率为0.5,0.2,和0.3,分别。

Mdl.Prior=(0.50.2 0.3];

您现在可以使用这个训练分类器来执行更多任务。例如,您可以标签新的测量使用预测或旨在分类器使用crossval

火车和旨在朴素贝叶斯分类器。fitcnb默认实现10倍交叉验证。然后,估计旨在分类错误。

加载电离层数据集。删除前两个稳定的预测因子。

负载电离层X = X(:, 3:结束);rng (“默认”)%的再现性

火车和旨在使用预测朴素贝叶斯分类器X和类标签Y。推荐的做法是指定类名。fitcnb假定每一个预测是有条件和正态分布。

CVMdl = fitcnb (X, Y,“类名”,{“b”,‘g’},“CrossVal”,“上”)
CVMdl = ClassificationPartitionedModel CrossValidatedModel:“NaiveBayes”PredictorNames: {“x1”“x2”“x3”“x4”的x5的x6“x7”“×8”“x9”“x10”的x11“x12”“* 13”“x14英寸”“x15”“x16”“x17”“x18”“x19”“x20”“x21”“将”“x23”“x24”“25”“x26”“x27”“x28”“x29”“x30”“x31”“x32”} ResponseName:“Y”NumObservations: 351 KFold: 10个分区:[1 x1 cvpartition]类名:{b ' g '} ScoreTransform:“没有一个”属性,方法

CVMdl是一个ClassificationPartitionedModel旨在,朴素贝叶斯分类器。或者,您可以旨在训练ClassificationNaiveBayes模型通过它crossval

显示的第一个训练褶皱CVMdl使用点符号。

CVMdl.Trained {1}
ans = CompactClassificationNaiveBayes ResponseName:‘Y’CategoricalPredictors:[]类名:{b ' g '} ScoreTransform:“没有一个”DistributionNames: {1} x32细胞DistributionParameters: {2} x32细胞属性,方法

每一个褶皱都是CompactClassificationNaiveBayes模型训练数据的90%。

完整的和紧凑的朴素贝叶斯模型用于预测新数据。相反,使用它们来估计泛化误差通过CVMdlkfoldLoss

genError = kfoldLoss (CVMdl)
genError = 0.1852

泛化误差平均为19%左右。

您可以指定一个不同的条件分布预测,或调整条件分布参数降低泛化误差。

更多关于

全部展开

算法

全部展开

引用

[1]Hastie,特雷弗,罗伯特•Tibshirani和杰罗姆·弗里德曼。统计学习的元素:数据挖掘、推理和预测。第二版,施普林格系列统计。纽约:施普林格出版社,2009年。https://doi.org/10.1007/978 - 0 - 387 - 84858 - 7。

[2]曼宁,克里斯托弗·D。,Prabhakar Raghavan, and Hinrich Schütze.信息检索概论》,纽约:剑桥大学出版社,2008年。

扩展功能

版本历史

介绍了R2014b