用于多类分类的朴素贝叶斯分类
分类朴素贝叶斯
是一个朴素贝叶斯多类学习的分类器。训练有素的分类朴素贝叶斯
分类器存储训练数据、参数值、数据分布和先验概率。使用这些分类器来执行一些任务,例如估计再替换预测(参见resubPredict
)和预测新数据的标签或后验概率(见预测
).
创建一个分类朴素贝叶斯
通过使用对象fitcnb
.
PredictorNames
- - - - - -预测的名字此属性是只读的。
预测器名称,指定为字符向量的单元格数组。元素的顺序PredictorNames
对应于预测器名称在训练数据中出现的顺序X
.
ExpandedPredictorNames
- - - - - -扩展预测器名称此属性是只读的。
扩展预测器名,指定为字符向量的单元阵列。
如果该机型采用虚拟变量编码分类变量,然后ExpandedPredictorNames
包括描述扩展变量的名称。否则,ExpandedPredictorNames
是一样的PredictorNames
.
CategoricalPredictors
- - - - - -分类预测指数[]
此属性是只读的。
分类预测指数,指定为正整数向量。CategoricalPredictors
包含指示相应预测值是分类的索引值。索引值介于1和之间p
,在那里p
为用于训练模型的预测器数量。如果没有任何预测器是绝对的,则此属性为空([]
).
数据类型:单一的
|双
CategoricalLevels
- - - - - -多元多项式的水平此属性是只读的。
多元多项级,指定为单元阵列。的长度CategoricalLevels
等于预测数(尺寸(X,2)
).
细胞CategoricalLevels
对应于指定为的预测值“mvmn”
在训练中,他们有一个多元多项式分布。不符合多元多项分布的单元格为空([]
).
如果预测j是多元多项式吗分类级别{
j}
是所有不同的预测值的列表吗j在样品中。南
S从唯一(X(:,j))
.
X
- - - - - -非标准预测因子此属性是只读的。
用于训练朴素贝叶斯分类器的非标准化预测器,指定为一个数字矩阵。每一行的X
对应一个观察值,每一列对应一个变量。该软件排除包含至少一个缺失值的观察值,并从Y中删除相应的元素。
分配名称
- - - - - -预测分布“正常”
(默认)|'核心'
|“锰”
|“mvmn”
|字符向量的单元格数组此属性是只读的。
预测器分布,指定为字符向量或字符向量的单元数组。fitcnb
使用预测器分布来模拟预测器。该表列出了可用的发行版。
价值观 | 描述 |
---|---|
'核心' |
核平滑密度估计 |
“锰” |
多项分布。如果您指定锰 ,则所有特征都是多项式分布的组成部分。因此,不能包含“锰” 作为字符串数组或字符向量的单元格数组的元素。有关详细信息,请参见多项式分布的估计概率. |
“mvmn” |
多变量多项分布。有关详细信息,请参见多元多项式分布的估计概率. |
“正常” |
正态(高斯)分布 |
如果分配名称
是1 -P字符向量的单元格数组fitcnb
为该功能建模j使用元素中的分布j单元格数组的。
例子:“锰”
例子:{“内核”、“正常”、“内核”}
数据类型:char
|字符串
|细胞
分布参数
- - - - - -分布参数估计此属性是只读的。
分布参数估计,指定为单元阵列。分布参数
是一个K-经过-D单元格数组,其中单元格(k,d)包含预测器实例的分布参数估计d在课堂上k.行的顺序与属性中类的顺序相对应一会
,并且预测器的顺序对应于X
.
如果类k
没有对预测器的观察吗j
,然后{分布
是空的(k
,j
}[]
).
要素分布参数
取决于预测值的分布。此表描述了DistributionParameters {
.k
,j
}
分布的预测j | 预测器单元数组的值j 和类k |
---|---|
内核 |
一个KernelDistribution 模型。使用单元格索引和点符号显示属性。例如,要显示第三类预测器2的核密度的估计带宽,使用Mdl.分配参数{3,2}.带宽 . |
锰 |
表示该标记的概率的标量j出现在课堂上k.有关详细信息,请参见多项式分布的估计概率. |
mvmn |
一个数值向量,包含每个可能的预测水平的概率j在课堂上k.软件按照所有唯一预测级别的排序顺序对概率进行排序j(存储在财产中)CategoricalLevels ).有关详细信息,请参阅多元多项式分布的估计概率. |
正常的 |
一个2乘1的数字向量。第一个元素是样本平均值,第二个元素是样本标准偏差。有关更多详细信息,请参阅正态分布估计 |
内核
- - - - - -内核流畅的类型“正常”
(默认)|“盒子”
|单元阵列| ...此属性是只读的。
内核平滑器类型,指定为内核的名称或内核名称的单元格数组内核
等于预测数(尺寸(X,2)
).内核{
j}
对应的预测j并包含一个描述平滑内核类型的字符向量。如果单元格为空([]
),然后fitcnb
未将内核分布适配到相应的预测器。
此表描述了支持的内核平滑器类型。金宝app我{u}表示指示器功能。
价值观 | 内核 | 公式 |
---|---|---|
“盒子” |
框(统一) |
|
'epanechnikov' |
Epanechnikov |
|
“正常” |
高斯 |
|
“三角形” |
三角 |
|
例子:“盒子”
例子:{'epanechnikov','normal'}
数据类型:char
|字符串
|细胞
金宝app
- - - - - -核平滑密度支持金宝app此属性是只读的。
内核平滑密度支持,指定为单元数组金宝app金宝app
等于预测数(尺寸(X,2)
).这些单元格代表了这些区域fitcnb
应用核密度。如果单元格为空([]
),然后fitcnb
未将内核分布适配到相应的预测器。
该表描述了支持的选项。金宝app
价值观 | 描述 |
---|---|
1乘2的数字行向量 | 密度支持适用于指定范围中金宝app,例如[鲁] ,在那里l 和U 分别为有限的上界和下界。 |
“肯定的” |
密度支持适用于所有正实值金宝app。 |
“无限” |
密度支持适用于所有真实值金宝app。 |
宽度
- - - - - -核平滑窗宽此属性是只读的。
内核平滑窗口宽度,指定为数值矩阵。宽度
是一个K-经过-P矩阵,其中K数据中类的数量,和P是预测值的数量(尺寸(X,2)
).
宽度(
核平滑窗宽是否代表预测器的核平滑密度k
,j
)j
内部类k
.南
在列j
表明,fitcnb
不适合预测j
使用内核密度。
一会
- - - - - -独特的类名此属性是只读的。
训练模型中使用的惟一类名,指定为类别数组或字符数组、逻辑向量或数字向量或字符向量的单元数组。
一会
具有与相同的数据类型Y
,并已K字符数组的元素(或行)。(该软件将字符串数组视为字符向量的单元格数组。)
数据类型:明确的
|char
|字符串
|逻辑
|双
|细胞
ResponseName
- - - - - -响应变量名此属性是只读的。
响应变量名称,指定为字符向量。
数据类型:char
|字符串
Y
- - - - - -类标签此属性是只读的。
类标签用于训练朴素贝叶斯分类器,指定为类别数组或字符数组、逻辑或数字向量或字符向量的单元数组。每一行的Y
表示的对应行的观察分类X
.
Y
中的数据类型与Y
用于训练模型。(该软件将字符串数组视为字符向量的单元格数组。)
数据类型:单一的
|双
|逻辑
|char
|字符串
|细胞
|明确的
ModelParameters
- - - - - -参数值用来训练模型此属性是只读的。
参数值用于训练分类朴素贝叶斯
模型,指定为对象。ModelParameters
包含参数值,例如用于训练朴素贝叶斯分类器的名称-值对参数值。
访问ModelParameters
通过使用点符号。例如,使用金宝appMdl.ModelParameters.金宝appSupport
.
NumObservations
- - - - - -培训的意见数量此属性是只读的。
在训练数据中存储的训练观察数X
和Y
,指定为数字标量。
先前的
- - - - - -事前机率先验概率,指定为数字向量。元素的顺序先前的
对应的元素Mdl.ClassNames
.
fitcnb
规范化使用'事先的'
名称-值对参数,以便金额(以前)
=1
.
的价值先前的
不影响最佳拟合模型。因此,可以进行复位先前的
训练结束后Mdl
使用点符号。
例子:Mdl.优先=[0.2 0.8]
数据类型:双
|单一的
W
- - - - - -观测权重此属性是只读的。
观察权值,指定为具有相同行数的非负值向量Y
.中的每个条目W
指定中相应观测值的相对重要性Y
.fitcnb
的值进行正常化“重量”
名称-值对参数,以便特定类中的权重总和为该类的先验概率。
成本
- - - - - -误分类代价错误分类成本,指定为数值平方矩阵,其中成本(i, j)
是将一个点分类为类的成本j
如果它真正的阶级是我
.行对应真正的类,列对应预测的类。的行和列的顺序成本
中类的顺序一会
.
误分类代价矩阵对角上必须为零。
的价值成本
不影响培训。你可以重置成本
训练结束后Mdl
使用点符号。
例子:Mdl。成本=[0 0.5 ; 1 0]
数据类型:双
|单一的
HyperparameterOptimizationResults
- - - - - -超参数的交叉验证优化贝叶斯优化
对象|表格此属性是只读的。
超参数的交叉验证优化,指定为贝叶斯优化
对象或包含超参数和关联值的表。该属性是非空的“OptimizeHyperparameters”
在创建模型时,名称-值对参数是非空的。的价值HyperparameterOptimizationResults
要看的设置优化器
野外超参数优化选项
结构,当您创建模型时。
的价值优化器 场 |
的价值HyperparameterOptimizationResults |
---|---|
“bayesopt” (默认) |
对象的类贝叶斯优化 |
“gridsearch” 或“randomsearch” |
使用超参数的表,观察到的目标函数值(交叉验证损失),以及观测的秩从最低(最好)至最高(最差) |
ScoreTransform
- - - - - -分类分数变换“没有”
(默认)|“双重逻辑”
|“invlogit”
|“ismax”
|分对数的
|函数处理| ...分类分数转换,指定为字符向量或函数句柄。该表总结了可用的字符向量。
价值观 | 描述 |
---|---|
“doublelogit” |
1 /(1 +e–2x) |
“invlogit” |
日志(x/ (1 –x)) |
“ismax” |
将得分最高的类的分数设置为1,并将所有其他类的分数设置为0 |
“分对数” |
1 /(1 +e- - - - - -x) |
“没有” 或“身份” |
x(转换) |
“标志” |
–1人x< 0 0代表x= 0 1为x> 0 |
“对称” |
2x- 1 |
“symmetricismax” |
将分数最大的班级的分数设置为1,并将所有其他班级的分数设置为-1 |
“symmetriclogit” |
2 / (1 +e- - - - - -x) - 1 |
对于一个MATLAB®函数或您定义的函数,使用其函数句柄进行分数转换。函数句柄必须接受一个矩阵(原始分数)并返回相同大小的矩阵(转换后的分数)。
例子:Mdl.ScoreTransform='logit'
数据类型:char
|字符串
|函数处理
袖珍的 |
减少机器学习模型的规模 |
compareHoldout |
使用新数据比较两个分类模型的精度 |
crossval |
交叉验证机器学习模型 |
边缘 |
朴素贝叶斯分类器的分类边缘 |
incrementalLearner |
将朴素贝叶斯分类模型转化为增量学习器 |
酸橙 |
局部可解释的模型不可知解释(LIME) |
logp |
朴素贝叶斯分类器的对数无条件概率密度 |
损失 |
朴素贝叶斯分类器的分类损失 |
边缘 |
朴素贝叶斯分类器的分类边缘 |
partialDependence |
计算部分相关性 |
plotPartialDependence |
创建部分依赖图(PDP)和个人条件期望图(ICE) |
预测 |
使用朴素贝叶斯分类器对观察结果进行分类 |
resubEdge |
Resubstitution分类边缘 |
resubLoss |
Resubstitution分类损失 |
resubMargin |
Resubstitution分类保证金 |
resubPredict |
使用训练的分类器对训练数据进行分类 |
沙普利 |
夏普利值 |
testckfold |
通过重复交叉验证比较两种分类模型的准确率 |
为Fisher的虹膜数据集创建朴素贝叶斯分类器。然后,在训练分类器后指定先验概率。
加载f伊舍里里斯
数据集。创建X
作为一个数字矩阵,包含四个花瓣测量150鸢尾。创建Y
作为字符向量的细胞阵列,包含相应的虹膜种类。
负载fisheririsX =量;Y =物种;
使用预测训练朴素贝叶斯分类器X
和类别标签Y
.fitcnb
假设每个预测器是独立的,默认情况下使用正态分布拟合每个预测器。
Mdl = fitcnb (X, Y)
MDL = ClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors:[]类名:{ 'setosa' '云芝' '锦葵'} ScoreTransform: '无' NumObservations:150个DistributionNames:{ '正常' '正常' '正常' '正常'} DistributionParameters{3×4电池}属性,方法
Mdl
他是一个训练有素的人分类朴素贝叶斯
分类。一些Mdl
属性显示在命令窗口中。
显示的属性Mdl
使用点符号。例如,显示类名和先验概率。
Mdl.ClassNames
ans =3 x1细胞{'setosa'} {'versicolor'} {'virginica'}
Mdl.优先
ans =1×30.3333 0.3333 0.3333
类先验概率的顺序Mdl.优先
中类的顺序Mdl.ClassNames
.默认情况下,先验概率是数据中类的相对频率。或者,您可以在调用时设置先验概率fitcnb
通过使用'之前的
名称-值对的论点。
使用点符号训练分类器后设置先验概率。例如,将先验概率分别设置为0.5、0.2和0.3。
Mdl.Prior = [0.5 0.2 0.3]。
现在可以使用这个经过训练的分类器执行其他任务。例如,您可以使用预测
或者使用crossval
.
训练和交叉验证一个朴素的贝叶斯分类器。fitcnb
默认情况下执行10次交叉验证。然后,估计交叉验证的分类错误。
加载电离层
数据集。删除前两个预测稳定性的指标。
负载电离层X=X(:,3:end);rng('默认')%的再现性
使用预测器训练和交叉验证朴素贝叶斯分类器X
和类别标签Y
.推荐的做法是指定类名。fitcnb
假设每个预测器都是有条件的正态分布。
CVMdl = fitcnb (X, Y,“类名”,{“b”,‘g’},“CrossVal”,“上”)
CVMdl = ClassificationPartitionedModel CrossValidatedModel: 'NaiveBayes' PredictorNames: {1x32 cell} ResponseName: 'Y' NumObservations: 351 KFold: 10 Partition: [1x1 cvpartition] ClassNames: {'b' ' 'g'} ScoreTransform: 'none'属性,方法
CVMdl
是一个ClassificationPartitionedModel
交叉验证的朴素贝叶斯分类器。或者,您可以交叉验证经过训练的分类朴素贝叶斯
通过它传递给模型crossval
.
显示的第一个训练折叠CVMdl
使用点符号。
CVMdl.Trained{1}
ANS = CompactClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors:[]类名:{ 'B' 的 'g'} ScoreTransform: '无' DistributionNames:{1×32细胞} DistributionParameters:{2×32细胞}属性,方法
每个折叠是紧分类朴素贝叶斯
模型训练了90%的数据。
完全和紧凑朴素贝叶斯模型不能用于新的数据来预测。相反,使用它们通过传递来估计泛化误差CVMdl
到kfoldLoss
.
genError=kfoldLoss(CVMdl)
genError = 0.1852
平均而言,泛化误差约为19%。
您可以为预测指定不同的条件分布,或调整条件分布参数来减少泛化误差。
在代币袋模型中,预测值j是令牌的非负出现次数j在观察。多项式模型中的类别(箱子)的数量就是不同标记的数量(预测器的数量)。
朴素贝叶斯是应用于密度估计于该数据的分类算法。
该算法利用了贝叶斯定理,并且(天真地)假设,给定类,预测器是有条件独立的。尽管这个假设在实践中经常被违背,朴素贝叶斯分类器倾向于产生后验分布,这对偏置的类密度估计是稳健的,特别是当后验分布为0.5(决策边界)时。[1].
朴素贝叶斯分类器将观测值分配给最有可能的类(换句话说,就是最大后验概率决策规则)。显然,该算法采取以下步骤:
估计每个类中预测因子的密度。
根据贝叶斯规则建立后验概率模型。也就是说,对于所有k= 1,…,K,
地点:
Y是对应于一个观测值的类索引的随机变量。
X1、……XP是对一个观测结果的随机预测。
类别索引的先验概率是多少k.
通过估计每个类别的后验概率对一个观察进行分类,然后将该观察分配给产生最大后验概率的类别。
如果预测因子组成一个多项分布,则后验概率 哪里 是多项式分布的概率质量函数。
如果预测变量j
具有条件正态分布(请参见分配名称
属性),该软件通过计算类别加权平均值和加权标准差的无偏估计来拟合数据的分布。为每一个类k:
预测器的加权平均数j是
哪里w我观察的重量是多少我.该软件将一个类中的权重标准化,这样它们的总和就等于该类的先验概率。
预测的加权标准差的无偏估计j是
哪里z1|k是类内权重的总和吗k和z2|k平方和是否在类内k.
如果所有预测变量组成一个条件多项分布(见分配名称
属性),该软件适合使用Bag-of-Tokens模型.软件存储该令牌的概率j
出现在课堂上k
在属性DistributionParameters {
.与添加剂平滑[2],估计的概率是k
,j
}
地点:
令牌的加权出现次数是多少j在课堂上k.
nk课堂上观察的次数是多少k.
观察的重量是多少我.该软件归一个类中的权重,使他们总结到该类的先验概率。
哪个是类中所有令牌出现的加权总数k.
如果预测变量j
有一个条件多元多项式分布(见分配名称
属性),软件遵循以下程序:
该软件收集了一个独特的关卡列表,并将排序后的列表存储在其中CategoricalLevels
,并将每一层视为一个容器。每个预测器和类的组合都是一个独立的、独立的多项随机变量。
为每一个类k,该软件使用存储的列表计算每个类别级别的实例分类级别{
.j
}
软件储存预测的概率j
在课堂上k
有水平l在属性DistributionParameters {
,适用于k
,j
}分类级别{
.与添加剂平滑[2],估计的概率是j
}
地点:
哪个预测器的加权观测数是多少j=l在课堂上k.
nk课堂上观察的次数是多少k.
如果xij=l,否则为0。
观察的重量是多少我.该软件归一个类中的权重,使他们总结到该类的先验概率。
米j预测器中不同水平的数量j.
米k是课堂上观察的加权数k.
哈斯蒂,特雷弗,罗伯特·蒂布希拉尼和杰罗姆·弗里德曼。统计学习的要素:数据挖掘、推理和预测.第二次。斯普林格系列统计。纽约:施普林格,2009年https://doi.org/10.1007/978-0-387-84858-7。
[2] Manning, Christopher D., Prabhakar Raghavan, Hinrich Schütze。信息检索概论,纽约:剑桥大学出版社,2008。
使用注意事项及限制:
的预测
功能支持代码生成。金宝app
当您使用fitcnb
,以下限制适用。
价值'DistributionNames'
名称-值对参数不能包含“锰”
.
价值“ScoreTransform”
名称-值对参数不能是匿名函数。
有关更多信息,请参见代码生成简介.
您已经有了geänderte版本死亡Beispiels。Möchten您是谁? Änderungen öffnen?
在进入该项目之前,您必须遵守以下规定:
Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus。Webbrowser unterstützen keine MATLAB-Befehle。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。