主要内容

CompactClassificationNaiveBayes

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

描述

CompactClassificationNaiveBayes是朴素贝叶斯分类器的精简版本。精简分类器不包含用于训练朴素贝叶斯分类器的数据。因此,您无法使用精简分类器执行某些任务,例如交叉验证。请将精简朴素贝叶斯分类器用于预测数据标签等任务。

创建

创建一个CompactClassificationNaiveBayes从一个训练有素的完整的ClassificationNaiveBayes分类器通过使用契约

属性

全部展开

预测性能

此属性是只读的。

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

此属性是只读的。

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

如果模型对分类变量使用虚拟变量编码,则扩展预测器名称包括描述扩展变量的名称。否则,扩展预测器名称是一样的预测器名称

此属性是只读的。

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

数据类型:|

此属性是只读的。

多元多项级,指定为单元阵列。的长度CategoricalLevels等于预测数(大小(X, 2)).

的细胞CategoricalLevels对应于指定为的预测器“mvmn”在训练中,他们有一个多元多项式分布。不符合多元多项分布的单元格为空([]).

如果预测j是多元多项式吗CategoricalLevels {j是所有不同的预测值的列表吗j在样例。S从独特的(X (:, j))

预测分布属性

此属性是只读的。

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

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

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

例子:“锰”

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

数据类型:烧焦|字符串|细胞

此属性是只读的。

分布参数估计,指定为单元阵列。DistributionParameters是一个K-借-D单元格数组,其中单元格(kd)包含预测器实例的分布参数估计d在课堂上k.行的顺序与属性中类的顺序相对应一会,预测器的顺序与列的顺序相对应X

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

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

分布的预测j 预测器的单元阵列值j和类k
内核 一个核分布模型。使用单元格索引和点符号显示属性。例如,要显示第三类预测器2的核密度的估计带宽,使用Mdl.DistributionParameters {3 2} .Bandwidth
表示该标记的概率的标量j出现在课堂上k。有关详情,请参阅多项式分布的估计概率
mvmn 一个数字向量,包含每个可能级别的预测器的概率j在课堂上k.该软件的概率排序排序的所有唯一级别的预测器j(存放在物业内CategoricalLevels)。有关详细信息,请参阅多元多项式分布的估计概率
正常的 一个2乘1的数字向量。第一个元素是样本均值,第二个元素是样本标准差。有关详细信息,请参见正态分布估计

此属性是只读的。

内核平滑类型,指定为内核的名称或内核名称的单元数组。的长度内核等于预测数(大小(X, 2)).内核{j对应的预测j并包含一个描述平滑内核类型的字符向量。如果单元格为空([]),然后fitcnb没有拟合核分布到相应的预测器。

该表描述了支持的内核平滑类型。金宝appu}表示指示函数。

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

f x 0.5 | x | 1

“埃帕内切尼科夫” 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”、“正常”}

数据类型:烧焦|字符串|细胞

此属性是只读的。

内核平滑密度支持,指定为单元阵列。金宝app的长度金宝app等于预测数(大小(X, 2))。这些单元格表示要连接到的区域fitcnb应用核密度。如果单元格为空([]),然后fitcnb没有拟合核分布到相应的预测器。

该表描述了支持的选项。金宝app

价值 描述
1×2数字行向量 例如,密度支持应用于指定金宝app的边界[L,U],在那里lU分别为有限的上界和下界。
“积极” 密度支持适用于所有正实值金宝app。
“无限” 密度支持适用于所有真实值金宝app。

此属性是只读的。

核平滑窗口宽度,指定为数值矩阵。宽度是一个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 +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 使用新数据比较两种分类模型的准确度
边缘 朴素贝叶斯分类器的分类边缘
石灰 局部可解释的模型不可知解释(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'分类预测值:[]类名称:{'b''g'}ScoreTransform:'none'分配名称:{1x32单元格}分配参数:{2x32单元格}属性、方法

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是一个ClassificationPartitionedModel交叉验证的朴素贝叶斯分类器。或者,您可以交叉验证一个经过培训的ClassificationNaiveBayes通过将其传递给crossval

显示的第一个训练折叠CVMdl使用点表示法。

CVMdl。训练有素的{1}
ans=CompactClassificationNaiveBayes ResponseName:'Y'分类预测值:[]类名:{'b''g'}ScoreTransform:'none'分配名:{1x32单元格}分配参数:{2x32单元格}属性、方法

每个褶皱都是一个褶皱CompactClassificationNaiveBayes模型训练了90%的数据。

完整和紧凑的朴素贝叶斯模型不用于预测新数据,而是通过传递来估计泛化误差CVMdlkfoldLoss

genError = kfoldLoss (CVMdl)
genError = 0.1852

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

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

更多关于

全部展开

算法

全部展开

工具书类

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

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

扩展功能

介绍了R2014b