我比较了 NLTK 和 Scikit 中 Naive Bayes 的两个实现的性能(伯努利版本,类先验并不重要,因为我为每个类使用完全相同数量的训练示例)通过绘制它们的相应学习曲线来为我的 3 类问题绘制它们。X 轴是训练数据集大小(忘记实际值),Y 轴是精度。这是我得到的。
这种性能差异的任何原因?
NLTK不实现Bernoulli Naive Bayes。相反,它的NaiveBayesClassifier
使用多项式 NB 决策规则和布尔特征。
虽然这种多项式和伯努利NB部分的组合实际上有时被推荐(例如,由Jurafsky和Manning用于情感分析),但它通常代表了两个世界中最糟糕的情况,并且很可能是错误的结果。