主要内容

ClassificationNaiveBayes

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

描述

ClassificationNaiveBayes是A.朴素贝叶斯多类学习的分类器。训练有素的ClassificationNaiveBayes分类器存储培训数据,参数值,数据分发和先前概率。使用这些分类器执行任务,例如估计resubstitute预测(参见resubPredict)和预测新数据的标签或后验概率(参见预测).

创建

创建一个ClassificationNaiveBayes通过使用对象fitcnb

特性

展开全部

预测性能

此属性是只读的。

预测名称,指定为字符向量的单元数组。元素的顺序PredictorNames对应于预测器名称在培训数据中出现的顺序X

此属性是只读的。

扩展预测器名,指定为字符向量的单元阵列。

如果该机型采用虚拟变量编码分类变量,然后ExpandedPredictorNames.包括描述扩展变量的名称。否则,ExpandedPredictorNames.是一样的PredictorNames

此属性是只读的。

分类预测指标,指定为一个正整数向量。分类预测器包含与包含分类预测器的预测器数据列对应的索引值。如果没有任何预测器是绝对的,则此属性为空([]).

数据类型:|双倍的

此属性是只读的。

多变量多项级等级,指定为单元阵列。的长度CategoricalLevels等于预测器的数量(大小(X, 2)).

的细胞CategoricalLevels对应于指定为的预测器'mvmn'在培训期间,也就是说,它们具有多变量多项式分布。不对应于多变量多变量分布的细胞是空的([]).

如果预测j是多元多项式吗CategoricalLevels {j}是预测器的所有不同值的列表j在样例。S从独特的(X (:, j))

此属性是只读的。

用于培训Naive Bayes分类器的非标准化预测因子,指定为数字矩阵。每一排X对应于一个观察,并且每列对应于一个变量。该软件排除了包含至少一个缺失值的观察,并从Y中删除相应的元素。

预测分布属性

此属性是只读的。

预测器分布,指定为字符向量或字符向量的单元数组。fitcnb使用预测器分布来模拟预测器。该表列出了可用的发行版。

价值 描述
'核心' 核平滑密度估计
“锰” 多项分布。如果您指定,则所有特征都是多项式分布的组成部分。因此,不能包含“锰”作为字符串数组或字符向量的单元格数组的元素。有关详细信息,请参见多项分布的估计概率
'mvmn' 多变量多项式分布。有关详细信息,请参见多元多项式分布的估计概率
'普通的' 正常(高斯)分布

如果DistributionNames是一个1-by-P.然后,字符向量阵列fitcnb模型的特性j使用元素中的分布j细胞阵列。

例子:“锰”

例子:{'kernel','normal','kernel'}

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

此属性是只读的。

分布参数估计,指定为单元阵列。DistributionParameters是A.K.-经过-D.细胞阵列,其中细胞(K.D.)包含预测器的实例的分发参数估计D.在班上K..行的顺序对应于属性中类的顺序Classnames.,预测器的顺序与列的顺序相对应X

如果类K.没有对预测器的观察吗j,那么分配{K.j}是空的([]).

的元素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一世{}表示指示函数。

价值 内核 公式
“盒子” 盒子(制服)

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”、“正常”}

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

此属性是只读的。

内核平滑密度支持,指定为单元阵列。金宝app的长度金宝app等于预测器的数量(大小(X, 2)).细胞代表该区域fitcnb应用内核密度。如果一个单元格为空([]), 然后fitcnb没有拟合核分布到相应的预测器。

此表介绍了支持的选项。金宝app

价值 描述
1-by-2数字行向量 密度支持适用于指定范围中金宝app,例如[鲁], 在哪里L.是有限的下限和上限。
“积极” 密度支持适用于所有正实值金宝app。
“无限” 密度支持适用于所有实际值金宝app。

此属性是只读的。

核平滑窗口宽度,指定为数值矩阵。宽度是A.K.-经过-P.矩阵,其中K.是数据中的类数,以及P.为预测因子的数目(大小(X, 2)).

宽度(K.j核平滑窗宽是否代表预测器的核平滑密度j内部类K.在列j表明fitcnb不适合预测j使用核密度。

响应特性

此属性是只读的。

训练模型中使用的惟一类名,指定为类别数组或字符数组、逻辑向量或数字向量或字符向量的单元数组。

Classnames.具有相同的数据类型y,并有K.字符数组的元素(或行)。(该软件将字符串数组视为字符向量的单元格阵列。)

数据类型:分类|char|字符串|逻辑|双倍的|细胞

此属性是只读的。

响应变量名,指定为字符向量。

数据类型:char|字符串

此属性是只读的。

用于培训Naive Bayes分类的类标签,指定为分类或字符阵列,逻辑或数字矢量或字符向量的单元格数组。每一排y表示的对应行的观察分类X

y具有与数据相同的数据类型y用于训练模型。(该软件将字符串数组视为字符向量的单元格阵列。)

数据类型:|双倍的|逻辑|char|字符串|细胞|分类

培训属性

此属性是只读的。

用于训练的参数值ClassificationNaiveBayes模型,指定为对象。模特分析者包含参数值,例如用于培训Naive Bayes分类器的名称值对参数值。

访问属性模特分析者通过使用点符号。例如,使用金宝appMdl.ModelParameters.金宝appSupport

此属性是只读的。

在训练数据中存储的训练观察数Xy,指定为数字标量。

先验概率,指定为数字向量。元素的顺序之前对应于元素Mdl。Classnames.

fitcnb将你设置的先验概率标准化'事先的'名称-值对参数,以便总和(前)=1

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

例子:mdl.prior = [0.2 0.8]

数据类型:双倍的|

此属性是只读的。

观察权重,指定为具有相同行数的非负值的向量y.每个条目W.中相应观测值的相对重要性yfitcnb为您设置的值标准化'重量'名称-值对参数,以便特定类中的权重与该类的先验概率之和。

分类器属性

误分类代价,用数值方阵表示,其中成本(i, j)将一个点分类的成本是多少j如果它的真实课程是一世.行对应于真实类,列对应于预测类。行和列的顺序成本中类的顺序Classnames.

误分类代价矩阵对角上必须为零。

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

例子:mdl.cost = [0 0.5;1 0]

数据类型:双倍的|

此属性是只读的。

超参数的交叉验证优化,指定为BayesianOptimization对象或包含超参数和关联值的表。该属性是非空的'OptimizeHyperParameters'在创建模型时,名称-值对参数是非空的。的价值HyperParameterOptimationResults.要看的设置优化器字段HyperparameterOptimizationOptions创建模型时的结构。

的价值优化器 的价值HyperParameterOptimationResults.
'Bayesopt'(默认) 类的对象BayesianOptimization
“gridsearch”'randomsearch' 使用超参数的表,观察到的目标函数值(交叉验证损失),以及观测的秩从最低(最好)至最高(最差)

分数转换,指定为字符向量或功能句柄。此表总结了可用的字符向量。

价值 描述
“doublelogit” 1 /(1 +E.2X
'invlogit' 日志(X/ (1 -X))
“ismax” 将分数最大的班级的分数设置为1,并将所有其他班级的分数设置为0
分对数的 1 /(1 +E.-X
“没有”“身份” X(转换)
'标志' 1X< 0
为0X= 0
1X> 0
'对称' 2X- 1
'ymmetricismax' 将具有最大分数为1的类设置分数,并将所有其他类的分数设置为-1
'symmetriclogit' 2 / (1 +E.-X) - 1

对于一个MATLAB®功能或功能您定义,使用其功能句柄进行分数转换。函数句柄必须接受矩阵(原始分数)并返回相同大小的矩阵(转换的分数)。

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

数据类型:char|字符串|功能手柄

对象的功能

袖珍的 减少机器学习模型的规模
compareHoldout 使用新数据比较两个分类模型的精度
横梁 交叉验证机器学习模型
边缘 天真贝叶斯分类器的分类边缘
incrementalLearner 将Naive Bayes分类模型转换为增量学习者
酸橙 局部可解释的模型不可知解释(LIME)
logp 天真贝叶斯分类器的无条件概率密度
损失 天真贝叶斯分类器的分类损失
保证金 天真贝叶斯分类器的分类利润
partialDependence 计算部分依赖
绘图竞争依赖性 创建部分依赖图(PDP)和个人条件期望图(ICE)
预测 使用Naive Bayes Classifier进行分类观察
重新提交 重新提交分类边缘
resubLoss Resubstitution分类损失
resubMargin 重新取款分类保证金
resubPredict 使用训练的分类器对训练数据进行分类
福芙 沙普利值
testckfold 通过重复的交叉验证比较两个分类模型的精度

例子

全部折叠

为Fisher的虹膜数据集创建朴素贝叶斯分类器。然后,在训练分类器后指定先验概率。

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

负载fisheririsx = meas;y =物种;

使用预测训练朴素贝叶斯分类器X和类标签yfitcnb假设每个预测器是独立的,并且默认情况下使用正常分布适合每个预测器。

mdl = fitcnb(x,y)
MDL = ClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors:[]类名:{ 'setosa' '云芝' '锦葵'} ScoreTransform: '无' NumObservations:150个DistributionNames:{ '正常' '正常' '正常' '正常'} DistributionParameters{3×4电池}属性,方法

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

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

Mdl。Classnames.
ans =3 x1细胞{'setosa'} {'versicolor'} {'virginica'}
Mdl。P.rior
ans =1×30.3333 0.3333 0.3333

课程的顺序概率Mdl。P.rior中类的顺序Mdl。Classnames..默认情况下,先前概率是数据中类的相应相对频率。或者,您可以在呼叫时设置先前概率fitcnb通过使用'事先的'名称值对参数。

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

Mdl.Prior = [0.5 0.2 0.3]。

您现在可以使用此培训的分类器来执行其他任务。例如,您可以使用标记新测量预测或使用交叉验证分类器横梁

训练和交叉验证一个朴素的贝叶斯分类器。fitcnb默认情况下实现10倍交叉验证。然后估计交叉验证的分类误差。

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

负载电离层X = X(:, 3:结束);rng ('默认'重复性的%

使用预测器训练和交叉验证朴素贝叶斯分类器X和类标签y.推荐的做法是指定类名。fitcnb假设每个预测器是有条件地和通常分布的。

cvmdl = fitcnb(x,y,“类名”,{“b”'G'},“CrossVal”'在'
cvmdl = classificationededmodel crossvalidatedmodel:'naivebayes'predictornames:{1x32 cell} racatectename:'y'numobservations:351 kfold:10分区:[1x1 cvpartition] classnames:{'b'g'} scoreTransform:'无'属性,方法

cvmdl.是A.ClassificationPartitionedModel交叉验证的朴素贝叶斯分类器。或者,您可以交叉验证一个经过培训的ClassificationNaiveBayes通过它传递给模型横梁

显示第一个训练折叠cvmdl.使用点符号。

CVMdl。训练有素的{1}
ANS = CompactClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors:[]类名:{ 'B' 的 'g'} ScoreTransform: '无' DistributionNames:{1×32细胞} DistributionParameters:{2×32细胞}属性,方法

每个折叠是CompactClassificationNaiveBayes模型培训了90%的数据。

完整且紧凑的天真贝贝斯模型不用于预测新数据。相反,使用它们来估计通过传递来估计泛化误差cvmdl.kfoldLoss

genError = kfoldLoss (CVMdl)
generror = 0.1852

平均而言,泛化误差约为19%。

您可以为预测指定不同的条件分布,或调整条件分布参数来减少泛化误差。

更多关于

展开全部

算法

展开全部

参考

[1] Hastie,Trevor,Robert Tibshirani和Jerome Friedman。统计学习的要素:数据挖掘、推理和预测.第二次。Springer系列统计数据。纽约,纽约:Springer,2009. https://doi.org/10.1007/978-0-387-84858-7。

[2] Manning,Christopher D.,Prabhakar Raghavan和HinrichSchütze。信息检索介绍,纽约:剑桥大学出版社,2008。

扩展功能

介绍了R2014b