朴素贝叶斯分类的多类分类
ClassificationNaiveBayes
是朴素贝叶斯分类为多类学习。熟练ClassificationNaiveBayes
分类器存储训练数据、参数值、数据分布和先验概率。使用这些分类器来执行诸如估计重新替换预测之类的任务(参见resubPredict
)和预测新的数据标签或后验概率(见预测
)。
创建一个ClassificationNaiveBayes
对象的使用fitcnb
。
PredictorNames
- - - - - -预测名此属性是只读的。
预测器的名称,指定为字符向量的单元阵列。元件的顺序PredictorNames
对应预测器名称在训练数据中出现的顺序X
。
ExpandedPredictorNames
- - - - - -扩大了预测的名字此属性是只读的。
扩展预测器名称,指定为字符向量的单元格数组。
如果模型对分类变量使用哑变量编码,则ExpandedPredictorNames
包括描述扩展变量的名称。否则,ExpandedPredictorNames
是相同的PredictorNames
。
CategoricalPredictors
- - - - - -分类预测指标[]
|正整数的向量此属性是只读的。
直言预测指标,指定为正整数的向量。CategoricalPredictors
包含与包含分类预测器的预测器数据列对应的索引值。如果没有谓词是范畴性的,则此属性为空([]
)。
数据类型:单
|双
CategoricalLevels
- - - - - -多元多项水平此属性是只读的。
多元多项式的水平,指定为单元阵列。的长度CategoricalLevels
等于预测者的数目(大小(X, 2)
)。
的细胞CategoricalLevels
对应于您指定为的预测器“mvmn”
培训期间,也就是他们有一个多变量多项分布。不符合多元多项分布细胞是空的([]
)。
如果预测j是多元多项,然后CategoricalLevels {
j}
是预测的所有不同值的列表j在样例。为NaN
s是删除独特的(X (:, j))
。
X
- - - - - -Unstandardized预测此属性是只读的。
用于训练朴素贝叶斯分类器的非标准化预测器,指定为一个数值矩阵。每一行的X
对应于一个观察值,每一列对应于一个变量。该软件排除了包含至少一个缺失值的观测值,并从Y中删除相应的元素。
DistributionNames
- - - - - -预测分布“正常”
(默认)|“内核”
|“百万”
|“mvmn”
|字符向量的单元阵列此属性是只读的。
预测器分布,指定为字符向量或字符向量的单元数组。fitcnb
使用预测分布的预测模型。该表列出了可用的分布。
价值 | 描述 |
---|---|
“内核” |
核平滑密度估计 |
“百万” |
多项分布。如果您指定锰 ,那么所有的功能都是多项分布组件。因此,你可以不包括“百万” 作为一个字符串数组的一个元素或特征向量的单元阵列。有关详细信息,请参阅估计概率的多项分布。 |
“mvmn” |
多变量多项分布。有关详细信息,请参阅多元多项式分布的估计概率。 |
“正常” |
正态(高斯)分布 |
如果DistributionNames
是1 -P字符向量的单元数组,则fitcnb
模型的特性j使用元素的分布j单元阵列的。
例:“百万”
例:{“内核”、“正常”、“内核”}
数据类型:烧焦
|串
|细胞
DistributionParameters
- - - - - -分布参数估计此属性是只读的。
分布参数估计值,指定为单元阵列。DistributionParameters
是K-通过-D单元数组,其中单元格(k,d)包含了预测的情况下,分布参数估计d在课堂上k。行的顺序对应于属性中类的顺序一会
,而谓词的顺序对应于的列的顺序X
。
如果类k
有预测没有意见j
,那么{分布
是空的 (k
,j
}[]
)。
的元素DistributionParameters
取决于预测因子的分布。中的值DistributionParameters {
。k
,j
}
预测分布j | 预测器的细胞阵列的值j 和Classk |
---|---|
内核 |
一个KernelDistribution 模型。使用细胞索引和点符号显示属性。例如,在第三类中,使用显示内核密度的估计带宽预测器2Mdl.DistributionParameters {3,2} .BandWidth 。 |
锰 |
表示令牌的概率的标量j出现在课堂上k。有关详细信息,请参阅估计概率的多项分布。 |
mvmn |
一种数值向量,包含预测器的每个可能级别的概率j在课堂上k。该软件根据所有唯一级别的预测器的排序顺序对概率进行排序j(储存在物业内CategoricalLevels )。有关更多细节,请参见多元多项式分布的估计概率。 |
正常 |
A 2×1数值向量。第一元件是样品平均值和所述第二元件是所述样本的标准偏差。 |
内核
- - - - - -核平滑型“正常”
(默认)|“盒子”
|单元阵列|……此属性是只读的。
内核平滑类型,指定为内核名称或内核名称的单元数组。的长度内核
等于预测者的数目(大小(X, 2)
)。内核{
j}
对应的预测j并包含描述内核平滑类型的字符向量。如果单元格为空([]
), 然后fitcnb
没有将核分布拟合到相应的预测器。
该表描述了支持的内核平滑类型。万博1manbetx我{u}为指标函数。
价值 | 内核 | 式 |
---|---|---|
“盒子” |
框(统一) |
|
'epanechnikov' |
Epanechnikov |
|
“正常” |
高斯 |
|
“三角形” |
三角形的 |
|
例:“盒子”
例:{“epanechnikov”、“正常”}
数据类型:烧焦
|串
|细胞
万博1manbetx
- - - - - -核心平滑密度支持万博1manbetx此属性是只读的。
内核平滑密度支持,指定为单元数组。万博1manbetx的长度万博1manbetx
等于预测者的数目(大小(X, 2)
)。的细胞代表的区域,其fitcnb
应用核密度。如果单元格为空([]
), 然后fitcnb
没有将核分布拟合到相应的预测器。
此表描述了支持的选项。万博1manbetx
价值 | 描述 |
---|---|
1×2数字行向量 | 例如,密度支持应用于指定万博1manbetx的边界(L U) ,其中l 和U 被有限分别降低和上限。 |
“积极” |
密度支持适用于所有正实值万博1manbetx。 |
“无限” |
密度支持适用于所有的实际万博1manbetx值。 |
宽度
- - - - - -内核平滑窗口的宽度此属性是只读的。
内核平滑窗口宽度,指定为数值矩阵。宽度
是K-通过-P矩阵,K数据中类的数量,和P为预测因子的数目(大小(X, 2)
)。
宽度(
是内核平滑预测的密度内核平滑窗口宽度k
,j
)j
类中k
。为NaN
■在列j
表明,fitcnb
不符合预测因子j
使用核密度。
一会
- - - - - -唯一的类名此属性是只读的。
在训练模型中使用的唯一的类名,指定为绝对或字符阵列,逻辑或数字载体,或字符向量的单元阵列。
一会
与?的数据类型相同Y
,并已K字符数组的元素(或行)。(该软件将字符串数组视为字符向量的单元数组。)
数据类型:明确的
|烧焦
|串
|逻辑
|双
|细胞
ResponseName
- - - - - -响应变量名此属性是只读的。
响应变量名,指定为字符向量。
数据类型:烧焦
|串
Y
- - - - - -类标签此属性是只读的。
类标签用于训练朴素贝叶斯分类器,指定为分类器或字符数组、逻辑或数字向量或字符向量的单元数组。每一行的Y
的对应行观察到的分类X
。
Y
具有相同的数据类型中的数据Y
用于训练模型。(该软件将字符串数组视为字符向量的单元数组。)
数据类型:单
|双
|逻辑
|烧焦
|串
|细胞
|明确的
ModelParameters
- - - - - -参数值用于训练模型此属性是只读的。
参数值用于训练ClassificationNaiveBayes
模型,指定为结构数组。ModelParameters
包含参数值,例如用于训练朴素贝叶斯分类器的名-值对参数值。
的字段ModelParameters
通过使用点符号。例如,使用访问内核支持万博1manbetxMdl.ModelParameters.万博1manbetxSupport
。
NumObservations
- - - - - -训练观察次数此属性是只读的。
训练观察中存储的训练数据数X
和Y
,指定为数值标量。
之前
- - - - - -先验概率先验概率,指定为数值向量。元件的顺序之前
的元素Mdl.ClassNames
。
fitcnb
,规范化你设置的先验概率“之前”
名称 - 值对的参数,以便总和(前)
=1
。
的价值之前
不影响最佳拟合模型。因此,你可以重置之前
训练后Mdl
使用点符号。
例:Mdl.Prior=[0.2 0.8]
数据类型:双
|单
W
- - - - - -观察权重此属性是只读的。
观察权重,指定为非负值的具有相同的行数作为载体Y
。中的每个条目W
中指定相应观察的相对重要性Y
。fitcnb
你归为设定值“重量”
名称-值对参数,以便特定类内的权重与该类的先验概率之和。
成本
- - - - - -误分类代价误分类代价,指定为一个数值方阵,其中成本(I,J)
将一个分数分类的成本是多少j
如果它的真实类我
。行对应于真实的类,列对应于预测的类。的行和列的顺序成本
对应于类的顺序一会
。
误分类成本矩阵必须在对角线上的零。
的价值成本
不会影响训练。你可以重置成本
训练后Mdl
使用点符号。
例:Mdl。成本=[0 0.5 ; 1 0]
数据类型:双
|单
HyperparameterOptimizationResults
- - - - - -超参数的交叉验证优化BayesianOptimization
对象|表此属性是只读的。
交叉验证优化的超参数,指定为BayesianOptimization
对象或超参数和相关联的值的表。这个属性不为空,如果“OptimizeHyperparameters”
当你创建模型名称 - 值对的说法是空的。的价值HyperparameterOptimizationResults
取决于设置优化器
字段HyperparameterOptimizationOptions
当您创建模型时,结构。
的价值优化器 领域 |
的价值HyperparameterOptimizationResults |
---|---|
“bayesopt” (默认) |
对象的类BayesianOptimization |
'gridsearch' 或'randomsearch' |
使用的超参数表,观察到的目标函数值(交叉验证损失),以及观察值从最低(最佳)到最高(最差)的排序 |
ScoreTransform
- - - - - -分类得分转换'没有'
(默认)|“doublelogit”
|'invlogit'
|“ismax”
|'Logit模型'
|函数处理|……分类得分变换,指定为字符向量或功能句柄。此表总结了可用的特征向量。
价值 | 描述 |
---|---|
“doublelogit” |
1 / (1 +e2x) |
'invlogit' |
日志(x/ (1 -x)) |
“ismax” |
将得分最高的类的得分设置为1,并将所有其他类的得分设置为0 |
'Logit模型' |
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 = '分对数'
数据类型:烧焦
|串
|函数处理
紧凑 |
减少朴素贝叶斯分类器的大小 |
crossval |
交叉验证朴素贝叶斯分类器 |
边缘 |
对于朴素贝叶斯分类分级刃 |
logp |
登录无条件概率密度朴素贝叶斯分类器 |
失利 |
对于朴素贝叶斯分类分级损失 |
保证金 |
朴素贝叶斯分类器的分类裕度 |
partialDependence |
计算部分依赖 |
plotPartialDependence |
创建局部依赖图(PDP)和个体条件期望(ICE)地块 |
预测 |
使用朴素贝叶斯分类器对观测值进行分类 |
resubEdge |
朴素贝叶斯分类器的分类边缘替换 |
resubLoss |
对于朴素贝叶斯分类器Resubstitution分类损失 |
resubMargin |
Resubstitution分类利润率朴素贝叶斯分类器 |
resubPredict |
使用朴素贝叶斯分类器对观测值进行分类 |
创建一个朴素贝叶斯分类器对费舍尔的虹膜数据集。然后,训练分类后指定先验概率。
加载fisheriris
数据集创建。X
作为包含150和虹膜4次花瓣测量的数值矩阵。创造Y
作为字符向量的单元阵列,它包含相应的虹膜物种。
加载fisheririsX = MEAS;Y =物种;
使用预测器训练一个朴素贝叶斯分类器X
和类标签Y
。fitcnb
假定每个预测是独立的并且适合使用由默认正态分布每个预测。
MDL = fitcnb(X,Y)
Mdl = ClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' virginica'} ScoreTransform: 'none' NumObservations: 150 DistributionNames: {'normal' 'normal' 'normal' '} DistributionParameters: {3x4 cell}属性、方法
Mdl
是一个培训ClassificationNaiveBayes
分类器。的一些Mdl
属性出现在命令窗口中。
显示的属性Mdl
使用点符号。例如,显示类名和先验概率。
Mdl.ClassNames
ANS =3X1细胞{ 'setosa'} { '云芝'} { '锦葵'}
Mdl.Prior
ANS =1×30.3333 0.3333 0.3333
类先验概率的顺序Mdl.Prior
对应于类的顺序Mdl.ClassNames
。默认情况下,先验概率是在数据中的类的相应的相对的频率。或者,你可以调用时设置的先验概率fitcnb
通过使用"之前的
名称-值对的论点。
通过点标记法训练分类器,设置先验概率。例如,将先验概率分别设置为0.5、0.2和0.3。
Mdl.Prior=[0.5 0.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: {1x32 cell} ResponseName: 'Y' NumObservations: 351 KFold: 10 Partition: [1x1 cvpartition]类名:{'b' 'g'} ScoreTransform: 'none'属性,方法
CVMdl
是ClassificationPartitionedModel
交叉验证,朴素贝叶斯分类器。或者,您可以交叉验证一个训练过的ClassificationNaiveBayes
通过将其传递给crossval
。
显示的第一训练折CVMdl
使用点符号。
CVMdl.Trained {1}
ans = CompactClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' DistributionNames: {1x32 cell} DistributionParameters: {2x32 cell}属性,方法
每一次折叠都是CompactClassificationNaiveBayes
模型训练了90%的数据。
完整而紧凑的朴素贝叶斯模型不用于对新数据进行预测。相反,使用它们通过传递来估计泛化误差CVMdl
来kfoldLoss
。
genError = kfoldLoss (CVMdl)
genError = 0.1852
平均而言,泛化误差约为19%。
您可以为预测器指定不同的条件分布,或者调整条件分布参数以减少泛化误差。
在标记袋模型中,预测器的值j令牌出现的次数是否为非负数j在观察。在多项式模型类别(条块)的数量是不同的令牌(预测的数量)的数量。
朴素贝叶斯是一种对数据进行密度估计的分类算法。
该算法利用贝叶斯定理,和(天真)假定预测器条件独立,给定的类。虽然假设在实践中通常侵犯,朴素贝叶斯分类往往以产生具有鲁棒性来偏置类密度估计,特别是在后为0.5(决策边界)后验分布[1]。
朴素贝叶斯分类器分配观测最可能的类(在换句话说,最大后验决策规则)。明确地,算法采取以下步骤:
估计每个类中预测的密度。
根据贝叶斯规则建立后验概率模型。也就是说,对所有人来说k= 1,...,K,
哪里:
Y是与某一观测的类指数相对应的随机变量。
X1,...,XP是一个观测值的随机预测因子。
是先验概率,一个类索引是k。
通过估计每一类的后验概率进行分类的观察,然后分配在观察到类产生最大后验概率。
如果预测器组成一个多项分布,则该后验概率 在哪里 是一个多项分布的概率质量函数。
如果您指定“DistributionNames”、“mvmn”
当训练Mdl
使用fitcnb
,那么软件采取下列步骤操作:
对于每一个预测,该软件收集了独特级别的列表,存储在排序列表CategoricalLevels
,并认为每级的Bin。预测器和类的每个组合是单独的,独立的多项式的随机变量。
对于预测j
在课堂上k,该软件使用存储的列表计算每个分类级别的实例CategoricalLevels {
。j
}
该软件存储该预测的概率j
在课堂上k
有水平l在房地产DistributionParameters {
,为所有的层次k
,j
}CategoricalLevels {
。与添加剂平滑[2]中,估计的概率是j
}
哪里:
这是观测的加权数,其为预测j等于l在课堂上k。
nk是在类的观测数k。
如果xIJ=l,否则为0。
是观察的重量吗我。该软件归一个类中的权重,使他们总结到该类的先验概率。
米j不同水平的数量是预测器吗j。
米k课堂观察的加权数是多少k。
[1] Hastie的特雷弗,罗伯特·蒂希雷尼,和Jerome弗里德曼。统计学习的要素:数据挖掘、推理和预测。第2版。斯普林格系列统计。纽约:施普林格,2009年https://doi.org/10.1007/978-0-387-84858-7。
Manning, Christopher D., Prabhakar Raghavan和Hinrich Schutze。信息检索导论,纽约:剑桥大学出版社,2008年。
使用注意事项和限制:
的预测
函数支持代码生成。万博1manbetx
当你训练一个朴素的贝叶斯模型使用fitcnb
,适用以下限制。
类别标签输入自变量值(Y
)不能是分类数组。
代码生成不支持范畴谓词(万博1manbetx逻辑
,明确的
,烧焦
,串
,或细胞
)。如果您提供的表格训练数据,该预测必须是数字(双
或单
)。此外,您不能使用“CategoricalPredictors”
名称-值对的论点。
的价值“DistributionNames”
名称-值对参数不能包含“百万”
或“mvmn”
。
的价值“类名”
名称 - 值对参数不能为一个分类数组。
的价值'ScoreTransform'
名称-值对参数不能是匿名函数。
欲了解更多信息,请参阅代码生成简介。
您单击对应于该MATLAB命令的链接:
在MATLAB命令窗口中输入它运行的命令。Web浏览器不支持MATLAB的命令。万博1manbetx
您还可以选择从下面的列表中的网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。