用于多类分类的紧实朴素贝叶斯分类器
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
是A.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 ).有关更多详细信息,请参阅估计概率多元多项分布. |
普通的 |
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值。 |
宽度
- - - - - -核平滑窗宽此属性是只读的。
内核平滑窗口宽度,指定为数值矩阵。宽度
是A.K——- - - - - -P矩阵,K数据中类的数量,和P是(预测变量数尺寸(X,2)
).
宽度(
是内核平滑预测的密度内核平滑窗口宽度k
,j
)j
内部类k
.南
在列j
表明,fitcnb
与预测因子不匹配j
使用内核密度。
一会
- - - - - -唯一的类名此属性是只读的。
训练模型中使用的惟一类名,指定为类别数组或字符数组、逻辑向量或数字向量或字符向量的单元数组。
一会
具有相同的数据类型Y
,并已K字符数组的元素(或行)。(该软件将字符串数组视为字符向量的单元格数组。)
数据类型:分类
|字符
|细绳
|逻辑
|双倍的
|细胞
ResponseName
- - - - - -响应变量名此属性是只读的。
响应变量名,指定为字符向量。
数据类型:字符
|细绳
之前
- - - - - -先验概率先验概率,指定为数字向量。元素的顺序之前
对应的元素Mdl。一会
.
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 +e-2x) |
“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 |
使用新数据比较两个分类模型的准确性 |
边缘 |
朴素贝叶斯分类器的分类边缘 |
石灰 |
局部可解释的模型不可知解释(LIME) |
logp |
登录无条件概率密度朴素贝叶斯分类器 |
损失 |
朴素贝叶斯分类器的分类损失 |
保证金 |
朴素贝叶斯分类器的分类边缘 |
partialDependence |
计算部分依赖 |
plotPartialDependence |
创建部分依赖图(PDP)和个人条件期望图(ICE) |
预测 |
使用朴素贝叶斯分类器对观察结果进行分类 |
沙普利 |
沙普利值 |
通过移除训练数据减少一个完整的朴素贝叶斯分类器的大小。全朴素贝叶斯分类保存训练数据。您可以使用一个紧凑的朴素贝叶斯分类器,以提高记忆效率。
加载电离层
数据集。删除前两个预测稳定性的指标。
负载电离层X = X(:, 3:结束);
使用预测器训练朴素贝叶斯分类器X
和类标签Y
.推荐的做法是指定类名。fitcnb
假设每个预测器都是有条件的正态分布。
MDL = fitcnb(X,Y,“类名”,{'B','G'})
Mdl = ClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' ' 'g'} ScoreTransform: 'none' NumObservations: 351 DistributionNames: {1x32 cell} DistributionParameters: {2x32 cell}属性,方法
Mdl
是一个训练有素的ClassificationNaiveBayes
分类器。
减小朴素贝叶斯分类器的大小。
CMdl =紧凑(Mdl)
CMdl = CompactClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' ' 'g'} ScoreTransform: 'none' DistributionNames: {1x32 cell} DistributionParameters: {2x32 cell}属性,方法
CMDL
是一个训练有素的CompactClassificationNaiveBayes
分类器。
显示每个分类器使用的内存数量。
谁(“Mdl”,'CMDL')
Name Size Bytes Class Attributes CMdl 1x1 15060 classreg.learning. Class . compactclassificationnaivebayes Mdl 1x1 111190 ClassificationNaiveBayes
完整的朴素贝叶斯分类器(Mdl
)比紧实朴素贝叶斯分类器(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: {1x32 cell} ResponseName: 'Y' NumObservations: 351 KFold: 10 Partition: [1x1 cvpartition] ClassNames: {'b' ' 'g'} ScoreTransform: 'none'属性,方法
CVMdl
是A.ClassificationPartitionedModel
交叉验证,朴素贝叶斯分类器。另外,您也可以交叉验证训练的ClassificationNaiveBayes
模型通过传递给crossval
.
显示的第一训练折CVMdl
使用点符号。
CVMdl。训练有素的{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.
通过估计每个类别的后验概率对一个观察进行分类,然后将该观察分配给产生最大后验概率的类别。
如果预测因子组成一个多项分布,则后验概率 在哪里 是多项式分布的概率质量函数。
如果预测变量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.
哈斯蒂,特雷弗,罗伯特·蒂布希拉尼和杰罗姆·弗里德曼。统计学习的要素:数据挖掘、推理和预测.第二版施普林格统计系列。纽约,纽约:施普林格,2009。https://doi.org/10.1007/978 - 0 - 387 - 84858 - 7。
[2] Manning, Christopher D., Prabhakar Raghavan, Hinrich Schütze。信息检索概论,纽约:剑桥大学出版社,2008。
使用说明和限制:
的预测
函数支持代码生成。万博1manbetx
当你用fitcnb
,适用以下限制。
价值“DistributionNames”
名称-值对参数不能包含“锰”
.
价值“ScoreTransform”
名称-值对参数不能是匿名函数。
有关更多信息,请参见代码生成简介.
다음MATLAB명령에해당하는링크를클릭했습니다。
명령을실행하려면MATLAB명령창에입력하십시오。웹브라우저는MATLAB명령을지원하지않습니다。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。