主要内容

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是一个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}表示指标函数。

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

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”、“正常”}

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

这个属性是只读的。

内核光滑密度的支持,指定为一个单元阵列。金宝app的长度金宝app等于预测的数量(大小(X, 2))。细胞代表的地区fitcnb应用内核密度。如果单元格为空([]),然后fitcnb不符合一个内核分配到相应的预测。

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

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

这个属性是只读的。

内核平滑窗口宽度,指定为一个数字矩阵。宽度是一个K——- - - - - -P矩阵,K在数据类的数量,然后呢P预测的数量(大小(X, 2))。

宽度(k,j)是内核平滑窗口宽度的内核平滑密度预测j内部类k在列j表明,fitcnb不符合预测j使用一个内核密度。

响应特性

这个属性是只读的。

独特的培训模式中使用类名称,指定为一个类别或字符数组,逻辑或数值向量,或单元阵列的特征向量。

一会有相同的数据类型Y,并已K字符数组的元素(或行)。(软件对字符串数组作为细胞阵列特征向量)。

数据类型:分类|字符|字符串|逻辑||细胞

这个属性是只读的。

响应变量名称,指定为一个特征向量。

数据类型:字符|字符串

训练属性

先验概率,指定为一个数值向量。元素的顺序之前对应的元素Mdl.ClassNames

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 比较两种分类模型使用新数据的精度
边缘 朴素贝叶斯分类器的分类边界
石灰 本地可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%。

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

genError = kfoldLoss (CVMdl)
genError = 0.1852

泛化误差平均为19%左右。

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

更多关于

全部展开

算法

全部展开

引用

[1]Hastie,特雷弗,罗伯特•Tibshirani和杰罗姆·弗里德曼。统计学习的元素:数据挖掘、推理和预测。第二版,施普林格系列统计。纽约:施普林格出版社,2009年。https://doi.org/10.1007/978 - 0 - 387 - 84858 - 7。

[2]曼宁,克里斯托弗·D。,Prabhakar Raghavan, and Hinrich Schütze.信息检索概论》,纽约:剑桥大学出版社,2008年。

扩展功能

介绍了R2014b