主要内容

CompactClassificationNaiveBayes

用于多类分类的紧实朴素贝叶斯分类器

描述

CompactClassificationNaiveBayes是朴素贝叶斯分类器的紧凑版本。紧凑分类器不包括用于训练朴素贝叶斯分类器的数据。因此,您不能使用紧凑分类器执行某些任务,例如交叉验证。对于预测数据标签之类的任务,使用简洁朴素的贝叶斯分类器。

创建

创建一个CompactClassificationNaiveBayes从一个完整的,训练有素的模型ClassificationNaiveBayes分类器通过使用紧凑的

特性

展开全部

预测性能

此属性是只读的。

预测器名称,指定为字符向量的单元格数组。元素的顺序PredictorNames对应于预测器名称在训练数据中出现的顺序X

此属性是只读的。

扩展的预测器名称,指定为字符向量的单元格数组。

如果模型对分类变量采用哑变量编码,则ExpandedPredictorNames包括描述扩展变量的名称。除此以外,ExpandedPredictorNames是一样的PredictorNames

此属性是只读的。

分类预测指标,指定为一个正整数向量。CategoricalPredictors包含指示相应预测器是分类的索引值。索引值在1之间p, 在哪里p为用于训练模型的预测器数量。如果没有任何预测器是绝对的,则此属性为空([]).

数据类型:单身的|双倍的

此属性是只读的。

多元多项式的水平,指定为单元阵列。的长度CategoricalLevels等于预测数(尺寸(X,2)).

的细胞CategoricalLevels对应于预测您指定为“mvmn”培训期间,也就是他们有一个多变量多项分布。不符合多元多项分布细胞是空的([]).

如果预测j是多元多项式吗CategoricalLevels {j是预测的所有不同值的列表j该样本。S从唯一的(X(:,J))

预测分布属性

此属性是只读的。

预测器分布,指定为字符向量或字符向量的单元数组。fitcnb使用预测器分布来模拟预测器。该表列出了可用的发行版。

价值 描述
“内核” 核平滑密度估计
“锰” 多项分布。如果您指定,则所有特征都是多项式分布的组成部分。因此,不能包含“锰”作为字符串数组或字符向量的单元格数组的元素。有关详细信息,请参见估计概率的多项分布
“mvmn” 多元多项式分布。有关详细信息,请参见估计概率多元多项分布
“正常” 正态(高斯)分布

如果DistributionNames是1 -P字符向量的单元格数组fitcnb机型特点j使用元素的分布j单元格数组的。

例子:“锰”

例子:{“内核”、“正常”、“内核”}

数据类型:字符|细绳|细胞

此属性是只读的。

分布参数估计,指定为单元阵列。DistributionParameters是A.K——- - - - - -D单元格数组,其中单元格(kd)包含了预测的情况下,分布参数估计d在课堂上k.行的顺序与属性中类的顺序相对应一会以及预测的顺序对应于的列的顺序X

如果类k没有对预测器的观察吗j,那么{分布kj是空的([]).

的元素DistributionParameters取决于预测器的分布。中的值DistributionParameters {kj

分布的预测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不适合内核分配到相应的预测。

下表介绍了支持的内核平滑类型。万博1manbetxu}表示指示函数。

价值 内核 公式
“盒子” 框(统一)

f x 0.5 | x | ≤. 1

“epanechnikov” Epanechnikov

f x 0.75 1 x 2 | x | ≤. 1

“正常” 高斯

f x 1 2 π 经验值 0.5 x 2

“三角形” 三角

f x 1 | x | | x | ≤. 1

例子:“盒子”

例子:{“epanechnikov”、“正常”}

数据类型:字符|细绳|细胞

此属性是只读的。

内核平滑密度支持,指定为单元阵列。万博1manbetx的长度万博1manbetx等于预测数(尺寸(X,2)).细胞代表该区域fitcnb应用核密度。如果单元格为空([]), 然后fitcnb不适合内核分配到相应的预测。

该表描述了支持的选项。万博1manbetx

价值 描述
1乘2的数字行向量 例如,密度支持应用于指定万博1manbetx的边界(L U), 在哪里lU被有限分别降低和上限。
“积极” 密度支持适用于所有正实值万博1manbetx。
“无限” 密度支持适用于所有的实际万博1manbetx值。

此属性是只读的。

内核平滑窗口宽度,指定为数值矩阵。宽度是A.K——- - - - - -P矩阵,K数据中类的数量,和P是(预测变量数尺寸(X,2)).

宽度(kj是内核平滑预测的密度内核平滑窗口宽度j内部类k在列j表明,fitcnb与预测因子不匹配j使用内核密度。

响应特性

此属性是只读的。

训练模型中使用的惟一类名,指定为类别数组或字符数组、逻辑向量或数字向量或字符向量的单元数组。

一会具有相同的数据类型Y,并已K字符数组的元素(或行)。(该软件将字符串数组视为字符向量的单元格数组。)

数据类型:分类|字符|细绳|逻辑|双倍的|细胞

此属性是只读的。

响应变量名,指定为字符向量。

数据类型:字符|细绳

训练属性

先验概率,指定为数字向量。元素的顺序之前对应的元素Mdl。一会

fitcnb将你设置的先验概率标准化“之前”名称-值对参数,以便总和(前)1

的价值之前不影响最佳拟合模型。因此,可以进行复位之前训练后Mdl使用点符号。

例子:Mdl。Prior = [0.2 0.8]

数据类型:双倍的|单身的

分类器性能

误分类代价,用数值方阵表示,其中成本(i, j)是将一个点分类为课程的成本j如果它的真实类.行对应真正的类,列对应预测的类。的行和列的顺序成本中类的顺序一会

误分类代价矩阵对角上必须为零。

的价值成本不影响培训。你可以重置成本训练后Mdl使用点符号。

例子:Mdl。成本=[0 0.5 ; 1 0]

数据类型:双倍的|单身的

分类得分变换,指定为字符向量或功能句柄。此表总结了可用的特征向量。

价值 描述
“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%的数据。

完整和紧凑朴素贝叶斯模型不用于对新数据进行预测。相反,使用它们通过传递来估计泛化误差CVMdlkfoldLoss

genError = kfoldLoss(CVMdl)
genError = 0.1852

平均而言,泛化误差约为19%。

您可以为预测器指定一个不同的条件分布,或调整条件分布参数以减少泛化误差。

更多关于

展开全部

算法

展开全部

参考文献

哈斯蒂,特雷弗,罗伯特·蒂布希拉尼和杰罗姆·弗里德曼。统计学习的要素:数据挖掘、推理和预测.第二版施普林格统计系列。纽约,纽约:施普林格,2009。https://doi.org/10.1007/978 - 0 - 387 - 84858 - 7。

[2] Manning, Christopher D., Prabhakar Raghavan, Hinrich Schütze。信息检索概论,纽约:剑桥大学出版社,2008。

扩展能力

介绍了R2014b