用于多类分类的朴素贝叶斯分类
ClassificationNaiveBayes
是A.朴素贝叶斯多类学习的分类器。训练有素的ClassificationNaiveBayes
分类器存储培训数据,参数值,数据分发和先前概率。使用这些分类器执行任务,例如估计resubstitute预测(参见resubPredict
)和预测新数据的标签或后验概率(参见预测
).
创建一个ClassificationNaiveBayes
通过使用对象fitcnb
.
PredictorNames
-预测的名字此属性是只读的。
预测名称,指定为字符向量的单元数组。元素的顺序PredictorNames
对应于预测器名称在培训数据中出现的顺序X
.
ExpandedPredictorNames.
-扩大了预测的名字此属性是只读的。
扩展预测器名,指定为字符向量的单元阵列。
如果该机型采用虚拟变量编码分类变量,然后ExpandedPredictorNames.
包括描述扩展变量的名称。否则,ExpandedPredictorNames.
是一样的PredictorNames
.
分类预测器
-分类预测指标[]
|正整数向量此属性是只读的。
分类预测指标,指定为一个正整数向量。分类预测器
包含与包含分类预测器的预测器数据列对应的索引值。如果没有任何预测器是绝对的,则此属性为空([]
).
数据类型:单
|双倍的
CategoricalLevels
-多变量多项级水平此属性是只读的。
多变量多项级等级,指定为单元阵列。的长度CategoricalLevels
等于预测器的数量(大小(X, 2)
).
的细胞CategoricalLevels
对应于指定为的预测器'mvmn'
在培训期间,也就是说,它们具有多变量多项式分布。不对应于多变量多变量分布的细胞是空的([]
).
如果预测j是多元多项式吗CategoricalLevels {
j}
是预测器的所有不同值的列表j在样例。南
S从独特的(X (:, j))
.
X
-Unstandardized预测此属性是只读的。
用于培训Naive Bayes分类器的非标准化预测因子,指定为数字矩阵。每一排X
对应于一个观察,并且每列对应于一个变量。该软件排除了包含至少一个缺失值的观察,并从Y中删除相应的元素。
DistributionNames
-预测分布'普通的'
(默认)|'核心'
|“锰”
|'mvmn'
|字符向量的单元格阵列此属性是只读的。
预测器分布,指定为字符向量或字符向量的单元数组。fitcnb
使用预测器分布来模拟预测器。该表列出了可用的发行版。
价值 | 描述 |
---|---|
'核心' |
核平滑密度估计 |
“锰” |
多项分布。如果您指定锰 ,则所有特征都是多项式分布的组成部分。因此,不能包含“锰” 作为字符串数组或字符向量的单元格数组的元素。有关详细信息,请参见多项分布的估计概率. |
'mvmn' |
多变量多项式分布。有关详细信息,请参见多元多项式分布的估计概率. |
'普通的' |
正常(高斯)分布 |
如果DistributionNames
是一个1-by-P.然后,字符向量阵列fitcnb
模型的特性j使用元素中的分布j细胞阵列。
例子:“锰”
例子:{'kernel','normal','kernel'}
数据类型:char
|字符串
|细胞
DistributionParameters
-分布参数估计此属性是只读的。
分布参数估计,指定为单元阵列。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一世{你}表示指示函数。
价值 | 内核 | 公式 |
---|---|---|
“盒子” |
盒子(制服) |
|
'Epanechnikov' |
Epanechnikov. |
|
'普通的' |
高斯 |
|
'三角形' |
三角形 |
|
例子:“盒子”
例子:{“epanechnikov”、“正常”}
数据类型:char
|字符串
|细胞
金宝app
-核平滑密度支持金宝app此属性是只读的。
内核平滑密度支持,指定为单元阵列。金宝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.
-独特的类名此属性是只读的。
训练模型中使用的惟一类名,指定为类别数组或字符数组、逻辑向量或数字向量或字符向量的单元数组。
Classnames.
具有相同的数据类型y
,并有K.字符数组的元素(或行)。(该软件将字符串数组视为字符向量的单元格阵列。)
数据类型:分类
|char
|字符串
|逻辑
|双倍的
|细胞
ResponseName
-响应变量名称此属性是只读的。
响应变量名,指定为字符向量。
数据类型:char
|字符串
y
-类标签此属性是只读的。
用于培训Naive Bayes分类的类标签,指定为分类或字符阵列,逻辑或数字矢量或字符向量的单元格数组。每一排y
表示的对应行的观察分类X
.
y
具有与数据相同的数据类型y
用于训练模型。(该软件将字符串数组视为字符向量的单元格阵列。)
数据类型:单
|双倍的
|逻辑
|char
|字符串
|细胞
|分类
模特分析者
-参数值用来训练模型此属性是只读的。
用于训练的参数值ClassificationNaiveBayes
模型,指定为对象。模特分析者
包含参数值,例如用于培训Naive Bayes分类器的名称值对参数值。
访问属性模特分析者
通过使用点符号。例如,使用金宝appMdl.ModelParameters.金宝appSupport
.
numobservations.
-培训的意见数量此属性是只读的。
在训练数据中存储的训练观察数X
和y
,指定为数字标量。
之前
-先验概率先验概率,指定为数字向量。元素的顺序之前
对应于元素Mdl。Classnames.
.
fitcnb
将你设置的先验概率标准化'事先的'
名称-值对参数,以便总和(前)
=1
.
的价值之前
不影响最佳拟合模型。因此,您可以重置之前
训练结束后Mdl
使用点符号。
例子:mdl.prior = [0.2 0.8]
数据类型:双倍的
|单
W.
-观察权重此属性是只读的。
观察权重,指定为具有相同行数的非负值的向量y
.每个条目W.
中相应观测值的相对重要性y
.fitcnb
为您设置的值标准化'重量'
名称-值对参数,以便特定类中的权重与该类的先验概率之和。
成本
-错误分类成本误分类代价,用数值方阵表示,其中成本(i, j)
将一个点分类的成本是多少j
如果它的真实课程是一世
.行对应于真实类,列对应于预测类。行和列的顺序成本
中类的顺序Classnames.
.
误分类代价矩阵对角上必须为零。
的价值成本
不影响培训。你可以重置成本
训练结束后Mdl
使用点符号。
例子:mdl.cost = [0 0.5;1 0]
数据类型:双倍的
|单
HyperParameterOptimationResults.
-超参数交叉验证优化BayesianOptimization
目的|表格此属性是只读的。
超参数的交叉验证优化,指定为BayesianOptimization
对象或包含超参数和关联值的表。该属性是非空的'OptimizeHyperParameters'
在创建模型时,名称-值对参数是非空的。的价值HyperParameterOptimationResults.
要看的设置优化器
字段HyperparameterOptimizationOptions
创建模型时的结构。
的价值优化器 场 |
的价值HyperParameterOptimationResults. |
---|---|
'Bayesopt' (默认) |
类的对象BayesianOptimization |
“gridsearch” 或'randomsearch' |
使用超参数的表,观察到的目标函数值(交叉验证损失),以及观测的秩从最低(最好)至最高(最差) |
scoretransform.
-分类得分转换“没有”
(默认)|“doublelogit”
|'invlogit'
|“ismax”
|分对数的
|功能手柄|……分数转换,指定为字符向量或功能句柄。此表总结了可用的字符向量。
价值 | 描述 |
---|---|
“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
和类标签y
.fitcnb
假设每个预测器是独立的,并且默认情况下使用正常分布适合每个预测器。
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%。
您可以为预测指定不同的条件分布,或调整条件分布参数来减少泛化误差。
在令牌袋模型中,预测器的值j令牌出现的次数是否为非负数j在观察中。多项式模型中的类别(箱)的数量是不同令牌的数量(预测器的数量)。
朴素贝叶斯是应用于密度估计于该数据的分类算法。
该算法利用贝叶斯定理,并且(天真)假设预测器是有条件独立的,鉴于类。虽然在实践中通常违反假设,但是朴素的贝叶斯分类器倾向于产生对偏置阶级密度估计的稳健的后分布,特别是在后后部为0.5(决策边界)[1].
天真的贝叶斯分类器将观察分配给最可能的课程(换句话说,最大后验决策规则)。显式,算法需要以下步骤:
估计每个类中预测因子的密度。
根据贝叶斯规则建立后验概率模型。也就是说,对所有人来说K.= 1,......,K.那
地点:
y是对应于一个观测值的类索引的随机变量。
X1,......,XP.是对一个观测结果的随机预测。
类别索引的先验概率是多少K..
通过估计每个类别的后验概率对一个观察进行分类,然后将该观察分配给产生最大后验概率的类别。
如果预测因子组成一个多项分布,则后验概率 在哪里 是多项式分布的概率质量函数。
如果您指定'分发名称','mvmn'
当训练Mdl
使用fitcnb
,然后软件采用以下步骤:
对于每个预测器,软件会收集一个独特关卡的列表,并将排序后的列表存储在其中CategoricalLevels
,并将每一层视为一个容器。每个预测器和类的组合都是一个独立的、独立的多项随机变量。
为预测j
在班上K.,软件使用存储在中的列表计算每个分类级别的实例CategoricalLevels {
.j
}
该软件存储预测器的概率j
在班上K.
有水平L.在属性分发参数{
,为所有层次K.
那j
}CategoricalLevels {
.添加剂平滑[2],估计的概率是j
}
地点:
哪个预测器的加权观测数是多少j=L.在班上K..
NK.课堂上观察的次数是多少K..
如果Xij=L.和0否则。
重量是用于观察的吗一世.该软件在类中规范权重,以便它们总和到该类的先前概率。
mj是预测器中的不同水平的数量j.
mK.是课堂上的加权观察数吗K..
[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。
使用说明和限制:
这预测
功能支持代码生成。金宝app
当你用fitcnb
,适用以下限制。
价值'DistributionNames'
名称值对参数不能包含“锰”
.
价值“ScoreTransform”
名称 - 值对参数不能是匿名函数。
有关更多信息,请参阅代码生成简介.
你点击一个链接对应于这个MATLAB命令:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。