紧凑的朴素贝叶斯分类器对多类分类
CompactClassificationNaiveBayes
是一个紧凑版本的朴素贝叶斯分类器。紧凑的分类器不包括数据用于训练朴素贝叶斯分类器。因此,您不能执行一些任务,比如交叉验证,使用紧凑的分类器。使用一个紧凑的朴素贝叶斯分类器预测数据的标签等任务。
创建一个CompactClassificationNaiveBayes
模型从一个完整的训练ClassificationNaiveBayes
分类器通过使用紧凑的
。
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))
。
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
- - - - - -响应变量名这个属性是只读的。
响应变量名称,指定为一个特征向量。
数据类型:字符
|字符串
之前
- - - - - -先验概率先验概率,指定为一个数值向量。元素的顺序之前
对应的元素Mdl.ClassNames
。
fitcnb
规范了先验概率设置使用“之前”
名称-值对的论点,这样总和(前)
=1
。
的价值之前
不影响最佳拟合模型。因此,您可以复位之前
训练后Mdl
使用点符号。
例子:Mdl。Prior = [0.2 0.8]
数据类型:双
|单
成本
- - - - - -误分类代价误分类代价,指定为一个数字方阵,成本(i, j)
是一个指向类分类的成本j
如果它真正的类我
。行对应于真实的类和列对应预测类。的行和列的顺序成本
对应于类的顺序一会
。
对角线上的误分类代价矩阵一定是零。
的价值成本
不影响训练。你可以重置成本
训练后Mdl
使用点符号。
例子:Mdl。成本=(0 0.5 ; 1 0]
数据类型:双
|单
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 |
比较两种分类模型使用新数据的精度 |
边缘 |
朴素贝叶斯分类器的分类边界 |
石灰 |
本地可model-agnostic解释(石灰) |
logp |
朴素贝叶斯分类器的日志无条件概率密度 |
损失 |
朴素贝叶斯分类器分类损失 |
保证金 |
朴素贝叶斯分类器的分类的利润率 |
partialDependence |
计算部分依赖 |
plotPartialDependence |
创建部分依赖图(PDP)和个人条件期望(ICE)情节 |
预测 |
观察使用朴素贝叶斯分类器进行分类 |
沙普利 |
沙普利值 |
减少大小的一个完整的朴素贝叶斯分类器的训练数据。完整的朴素贝叶斯分类器训练数据。您可以使用一个紧凑的朴素贝叶斯分类器来提高记忆效率。
加载电离层
数据集。删除前两个稳定的预测因子。
负载电离层X = X(:, 3:结束);
使用预测训练朴素贝叶斯分类器X
和类标签Y
。推荐的做法是指定类名。fitcnb
假定每一个预测是有条件和正态分布。
Mdl = fitcnb (X, Y,“类名”,{“b”,‘g’})
Mdl = ClassificationNaiveBayes ResponseName:‘Y’CategoricalPredictors:[]类名:{b ' g '} ScoreTransform:“没有一个”NumObservations: 351 DistributionNames: {1} x32细胞DistributionParameters: {2} x32细胞属性,方法
Mdl
是一个培训ClassificationNaiveBayes
分类器。
减少朴素贝叶斯分类器的大小。
CMdl =紧凑(Mdl)
CMdl = CompactClassificationNaiveBayes ResponseName:‘Y’CategoricalPredictors:[]类名:{b ' g '} ScoreTransform:“没有一个”DistributionNames: {1} x32细胞DistributionParameters: {2} x32细胞属性,方法
CMdl
是一个培训CompactClassificationNaiveBayes
分类器。
显示每个分类器所使用的内存数量。
谁(“Mdl”,“CMdl”)
类属性名称大小字节CMdl 1 x1 15060 classreg.learning.classif。111190 ClassificationNaiveBayes CompactClassificationNaiveBayes Mdl 1 x1
完整的朴素贝叶斯分类器(Mdl
)超过7倍紧凑的朴素贝叶斯分类器(CMdl
)。
标签新观测效率,您可以删除Mdl
从MATLAB®工作区,然后通过CMdl
和新的值来预测指标预测
。
火车和旨在朴素贝叶斯分类器。fitcnb
默认实现10倍交叉验证。然后,估计旨在分类错误。
加载电离层
数据集。删除前两个稳定的预测因子。
负载电离层X = X(:, 3:结束);rng (“默认”)%的再现性
火车和旨在使用预测朴素贝叶斯分类器X
和类标签Y
。推荐的做法是指定类名。fitcnb
假定每一个预测是有条件和正态分布。
CVMdl = fitcnb (X, Y,“类名”,{“b”,‘g’},“CrossVal”,“上”)
CVMdl = ClassificationPartitionedModel CrossValidatedModel:“NaiveBayes”PredictorNames: {1} 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模型中,预测的价值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年。
使用笔记和限制:
的预测
函数支持代码生成。金宝app
当你训练一个朴素贝叶斯模型通过使用fitcnb
以下限制适用。
的值“DistributionNames”
不能包含名称-值对的论点“锰”
。
的值“ScoreTransform”
名称-值对的论点不能一个匿名函数。
有关更多信息,请参见介绍代码生成。
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。