ClassificationNaiveBayes
朴素贝叶斯分类的多类分类
描述
ClassificationNaiveBayes
是一个朴素贝叶斯对多类分类器的学习。训练有素的ClassificationNaiveBayes
分类器存储训练数据,参数值,数据分布和先验概率。使用这些分类器来执行任务,比如估算resubstitution预测(见resubPredict
)和预测新数据(见标签或后验概率预测
)。
创建
创建一个ClassificationNaiveBayes
对象的使用fitcnb
。
属性
预测性能
PredictorNames
- - - - - -预测的名字
单元阵列的特征向量
这个属性是只读的。
预测指标名称,指定为一个单元阵列的特征向量。元素的顺序PredictorNames
对应的顺序预测的名字出现在训练数据X
。
ExpandedPredictorNames
- - - - - -扩大了预测的名字
单元阵列的特征向量
这个属性是只读的。
扩展预测名称,指定为一个单元阵列的特征向量。
如果模型使用哑变量编码为分类变量ExpandedPredictorNames
包括名称,描述变量扩展。否则,ExpandedPredictorNames
是一样的PredictorNames
。
CategoricalPredictors
- - - - - -分类预测指标
向量的正整数|[]
这个属性是只读的。
分类预测指标,指定为一个向量的正整数。CategoricalPredictors
包含索引值表明相应的预测分类。索引值介于1和p
,在那里p
预测的数量被用来训练模型。如果所有的预测都直言,那么这个属性是空的([]
)。
数据类型:单
|双
CategoricalLevels
- - - - - -多元多项式的水平
单元阵列
这个属性是只读的。
多元多项式的水平,指定为一个单元阵列。的长度CategoricalLevels
等于预测的数量(大小(X, 2)
)。
的细胞CategoricalLevels
对应于你指定的预测因子“mvmn”
在培训期间,也就是说,他们有一个多元多项式分布。细胞不对应于一个多元多项式分布是空的([]
)。
如果预测j是多元多项式,然后CategoricalLevels {
j}
是一个列表的所有不同值的预测j在样例。南
s是远离独特的(X (:, j))
。
X
- - - - - -Unstandardized预测
数字矩阵
这个属性是只读的。
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 和类k |
---|---|
内核 |
一个KernelDistribution 模型。使用细胞显示属性索引和点符号。例如,显示带宽预测2的核密度估计在第三类,使用Mdl.DistributionParameters {3 2} .Bandwidth 。 |
锰 |
一个标量表示令牌的概率j出现在课堂上k。有关详细信息,请参见估计概率多项式分布。 |
mvmn |
一个数值向量包含每个可能的概率预测的水平j在课堂上k。软件订单的概率顺序的所有独特的预测水平j(存储在属性中CategoricalLevels )。更多细节,请参阅多元多项式估计概率分布。 |
正常的 |
一个2×1数值向量。第一个元素是样本均值和样本标准差是第二个元素。更多细节,请参阅正态分布估计 |
内核
- - - - - -内核流畅的类型
“正常”
(默认)|“盒子”
|单元阵列|……
这个属性是只读的。
内核平滑类型,指定为内核的名称或一个细胞内核名字的数组。的长度内核
等于预测的数量(大小(X, 2)
)。内核{
j}
对应的预测j并包含一个特征向量描述内核平滑的类型。如果单元格为空([]
),然后fitcnb
不符合一个内核分配到相应的预测。
这个表描述了支持内核流畅的类型。金宝app我{u}表示指标函数。
价值 | 内核 | 公式 |
---|---|---|
“盒子” |
框(统一) |
|
“epanechnikov” |
Epanechnikov |
|
“正常” |
高斯 |
|
“三角形” |
三角 |
|
例子:“盒子”
例子:{“epanechnikov”、“正常”}
数据类型:字符
|字符串
|细胞
金宝app
- - - - - -内核光滑密度支持金宝app
单元阵列
这个属性是只读的。
内核光滑密度的支持,指定为一个单元阵列。金宝app的长度金宝app
等于预测的数量(大小(X, 2)
)。细胞代表的地区fitcnb
应用内核密度。如果单元格为空([]
),然后fitcnb
不符合一个内核分配到相应的预测。
此表描述了支持选项。金宝app
价值 | 描述 |
---|---|
1×2数字行向量 | 密度支持适用于指定的界限金宝app,例如(L U) ,在那里l 和U 分别是有限的上下界限。 |
“积极” |
密度支持适用于所有积极的金宝app实际价值。 |
“无限” |
密度支持适用于所有真正的金宝app价值观。 |
宽度
- - - - - -内核平滑窗口宽度
数字矩阵
这个属性是只读的。
内核平滑窗口宽度,指定为一个数字矩阵。宽度
是一个K——- - - - - -P矩阵,K在数据类的数量,然后呢P预测的数量(大小(X, 2)
)。
宽度(
是内核平滑窗口宽度的内核平滑密度预测k
,j
)j
内部类k
。南
在列j
表明,fitcnb
不符合预测j
使用一个内核密度。
响应特性
一会
- - - - - -独特的类名
分类数组|字符数组|逻辑向量|数值向量|单元阵列的特征向量
这个属性是只读的。
独特的培训模式中使用类名称,指定为一个类别或字符数组,逻辑或数值向量,或单元阵列的特征向量。
一会
有相同的数据类型Y
,并已K字符数组的元素(或行)。(软件对字符串数组作为细胞阵列特征向量)。
数据类型:分类
|字符
|字符串
|逻辑
|双
|细胞
ResponseName
- - - - - -响应变量名
特征向量
这个属性是只读的。
响应变量名称,指定为一个特征向量。
数据类型:字符
|字符串
Y
- - - - - -类标签
分类数组|字符数组|逻辑向量|数值向量|单元阵列的特征向量
这个属性是只读的。
类标签用于训练朴素贝叶斯分类器,分类或字符数组,指定逻辑或者数值向量、数组或单元的特征向量。每一行的Y
代表观察到的分类对应的行X
。
Y
具有相同数据类型的数据Y
用于训练模型。(软件对字符串数组作为细胞阵列特征向量)。
数据类型:单
|双
|逻辑
|字符
|字符串
|细胞
|分类
训练属性
ModelParameters
- - - - - -参数值用来训练模型
对象
这个属性是只读的。
参数值用于训练ClassificationNaiveBayes
模型,指定为一个对象。ModelParameters
包含名称-值对参数值等参数值用于训练朴素贝叶斯分类器。
访问的属性ModelParameters
通过使用点符号。例如,访问内核支持使用金宝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
如果它真正的类我
。行对应于真实的类和列对应预测类。的行和列的顺序成本
对应于类的顺序一会
。
对角线上的误分类代价矩阵一定是零。
的价值成本
不影响训练。你可以重置成本
训练后Mdl
使用点符号。
例子:Mdl。成本=(0 0.5 ; 1 0]
数据类型:双
|单
HyperparameterOptimizationResults
- - - - - -交叉验证优化hyperparameters
BayesianOptimization
对象|表
这个属性是只读的。
交叉验证优化hyperparameters,指定为一个BayesianOptimization
对象或一个表hyperparameters和相关联的值。这个属性是否非空的“OptimizeHyperparameters”
名称-值对参数非空的当你创建模型。的价值HyperparameterOptimizationResults
取决于的设置优化器
字段HyperparameterOptimizationOptions
当您创建结构模型。
的价值优化器 场 |
的价值HyperparameterOptimizationResults |
---|---|
“bayesopt” (默认) |
对象的类BayesianOptimization |
“gridsearch” 或“randomsearch” |
hyperparameters表使用,观察目标函数值(交叉验证损失)和从最低(最好的)最高等级的观察(坏的) |
ScoreTransform
- - - - - -分类得分转换
“没有”
(默认)|“doublelogit”
|“invlogit”
|“ismax”
|分对数的
|函数处理|……
分类得分变换,指定为一个特征向量或函数句柄。这个表总结了可用的特征向量。
价值 | 描述 |
---|---|
“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
和类标签Y
。fitcnb
假设每个预测是独立的,适合每个默认使用正态分布预测。
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%。
完整的和紧凑的朴素贝叶斯模型用于预测新数据。相反,使用它们来估计泛化误差通过CVMdl
来kfoldLoss
。
genError = kfoldLoss (CVMdl)
genError = 0.1852
泛化误差平均为19%左右。
您可以指定一个不同的条件分布预测,或调整条件分布参数降低泛化误差。
更多关于
Bag-of-Tokens模型
在bag-of-tokens模型中,预测的价值j出现次数非负的令牌j在观察。类别的数量(箱)多项式模型是不同的令牌的数量(预测)。
朴素贝叶斯
朴素贝叶斯是一个密度估计适用于数据分类算法。
该算法利用贝叶斯定理,和(天真)假设预测是条件独立的,考虑到类。虽然假设通常是违反了在实践中,朴素贝叶斯分类器会产生强劲的后验分布偏向类密度估计,尤其是后是0.5(决策边界)[1]。
朴素贝叶斯分类器分配观测最可能的类(换句话说,最大后验决策规则)。明确,算法需要以下步骤:
在每个类的密度估计预测。
根据贝叶斯规则模型的后验概率。也就是说,k= 1,…,K,
地点:
Y是相对应的随机变量类指标的观察。
X1、……XP是一个观察的随机预测。
是一个类的先验概率指数吗k。
分类的观察评估每个类的后验概率,然后分配观测到的最大后验概率的类。
如果预测组合多项分布,那么后验概率 在哪里 概率质量函数的多项式分布。
算法
正态分布估计
如果预测变量j
有条件正态分布(见DistributionNames
属性),软件符合该职业专用分布到数据通过计算加权平均和加权标准差的无偏估计。为每一个类k:
预测的加权平均数j是
在哪里w我是观察的重量吗我。软件可实现重量在一个类,这样他们的先验概率和类。
加权标准差的无偏估计量的预测j是
在哪里z1 |k在类是权重的总和k和z2 |k是在类的权重值的平方之和k。
估计概率多项式分布
如果所有的预测变量组成一个条件多项式分布(见DistributionNames
属性),软件符合分配使用Bag-of-Tokens模型。软件商店令牌的概率j
出现在课堂上k
在房地产DistributionParameters {
。与添加剂平滑[2],估计概率k
,j
}
地点:
出现次数加权的令牌是什么j在课堂上k。
nk在课堂观察的数量吗k。
是观察的重量吗我。软件可实现重量在一个类,这样他们和这个类的先验概率。
的总加权数在课堂上出现的所有令牌k。
多元多项式估计概率分布
如果预测变量j
有一个有条件的多元多项式分布(见DistributionNames
属性),软件遵循这个过程:
软件收集一系列独特的水平,存储排序列表
CategoricalLevels
,认为每个级别一个本。每个预测和类是一个独立,独立随机变量多项式。为每一个类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,特雷弗,罗伯特•Tibshirani和杰罗姆·弗里德曼。统计学习的元素:数据挖掘、推理和预测。第二版,施普林格系列统计。纽约:施普林格出版社,2009年。https://doi.org/10.1007/978 - 0 - 387 - 84858 - 7。
[2]曼宁,克里斯托弗·D。,Prabhakar Raghavan, and Hinrich Schütze.信息检索概论》,纽约:剑桥大学出版社,2008年。
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
的
预测
函数支持代码生成。金宝app当你训练一个朴素贝叶斯模型通过使用
fitcnb
以下限制适用。的值
“DistributionNames”
不能包含名称-值对的论点“锰”
。的值
“ScoreTransform”
名称-值对的论点不能一个匿名函数。
有关更多信息,请参见介绍代码生成。
版本历史
介绍了R2014b
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。