NLTK 和 scikit-learn 中的伯努利朴素贝叶斯结果不同

Posted

技术标签:

【中文标题】NLTK 和 scikit-learn 中的伯努利朴素贝叶斯结果不同【英文标题】:Different results between the Bernoulli Naive Bayes in NLTK and in scikit-learn 【发布时间】:2013-03-21 21:32:10 【问题描述】:

在使用 NLTK 中的伯努利朴素贝叶斯算法和 scikit-learn 模块中的算法对文本(仅分为两类)进行分类时,我得到了完全不同的结果。尽管两者之间的总体准确度相当(尽管远非相同),但 I 型和 II 型错误的差异是显着的。特别是,NLTK 朴素贝叶斯分类器给出的 I 类错误多于 II 类错误,而 scikit-learn 则相反。这种“异常”似乎在不同的特征和不同的训练样本中是一致的。是否有一个原因 ?两者哪个更值得信赖?

【问题讨论】:

【参考方案1】:

NLTK 没有实现伯努利朴素贝叶斯。它实现多项朴素贝叶斯,但只允许二元特征。

【讨论】:

以上是关于NLTK 和 scikit-learn 中的伯努利朴素贝叶斯结果不同的主要内容,如果未能解决你的问题,请参考以下文章

Python机器学习之垃圾短信分类(用朴素贝叶斯算法的伯努利模型和多项式模型分类垃圾短信数据集SMSSpamCollection.txt)

Python 模拟伯努利试验和二项分布

概率论-常见分布

二项分布(Binomial Distribution)

当预测变量不是二进制时,Sklearn 朴素贝叶斯伯努利分类器如何工作?

逻辑回归和最大熵模型