首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于高斯朴素贝叶斯的多类分类

基于高斯朴素贝叶斯的多类分类
EN

Stack Overflow用户
提问于 2017-11-25 22:45:12
回答 1查看 3.1K关注 0票数 2

我知道朴素贝叶斯擅长二进制分类,但我想知道多类分类是如何工作的。

例如:我之前使用朴素贝叶斯进行文本分类,对文本进行矢量化以查找文档中每个单词的概率,然后使用矢量化数据来适应朴素贝叶斯分类器。

现在,我正在处理如下数据:

A、B、C、D、E、F、G

210,203,0,30,710,2587452,0

273,250,0,30,725,3548798,1

283,298,0,31,785,3987452,3

在上述数据中,有6个特征( and ),G是具有值(0、1或2)的类。

我在dataset中有将近70000个条目具有类(输出) 1、2或3。

在将数据分成测试数据和训练数据后,我将训练数据拟合为sklearn GaussianNB algo。在拟合之后,当我试图预测测试数据时,它只对0或2进行分类。

因此,我的问题是,在文本分类过程中,我在对navie分类器进行拟合之前进行了矢量化,在用训练数据对GaussianNB分类器进行拟合之前,是否需要对上述数据进行预处理,以便它能够预测多类(0、1和2)而不是仅(0和2)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-26 00:20:25

我知道朴素贝叶斯擅长二进制分类,但我想知道多类分类是如何工作的。

在朴素贝叶斯中没有任何特定于二进制分类的东西,它被设计用来进行多类分类。

因此,我的问题是,在文本分类过程中,我在对navie分类器进行拟合之前进行了矢量化,在用训练数据对GaussianNB分类器进行拟合之前,是否需要对上述数据进行预处理,以便它能够预测多类(0、1和2)而不是仅(0和2)。

不,对于多类位没有预处理。但是,对于高斯位,顾名思义,该模型将尝试将高斯pdf适合于每个特性。因此,如果您的特性不遵循高斯分布-它可能会失败。如果您能够计算出每个特性的转换(基于您所拥有的数据),以使它们更像高斯,它将有助于模型。例如,您的一些特性似乎是巨大的数字,如果它们不遵循高斯分布,可能会造成严重的困难。您可能希望将数据规范化,甚至放弃这些功能。

是你的模型从未预测1的唯一原因,因为在朴素的Bayes假设下,并且提供了数据--这是不可能被考虑的。如上文所述,您可以尝试将功能标准化。如果失败,您还可以人为地“超重”选定的类,方法是提供自己的prior属性给sklearn (通常从数据中估计为“遇到X类的样本的频率”,如果将其更改为更高的数目-一个类将被认为更有可能)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47491234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档