3

在我的学士论文中,我应该在文本分类问题上使用 AdaBoostM1 和 MultinomialNaiveBayes 分类器。问题在于,在大多数情况下,M1 在没有提升的情况下比 MultinomialNaiveBayes 更差或相等。

我使用以下代码:

AdaBoostM1 m1 = new AdaBoostM1();
m1.setClassifier(new NaiveBayesMultinomial());
m1.buildClassifier(training);

所以我不明白 AdaBoost 怎么不能改善结果?不幸的是,由于大多数人似乎对 AdaBoost 非常满意,我在网上找不到其他任何相关信息。

4

3 回答 3

5

AdaBoost 是一个二元/二分法/2 类分类器,旨在提升仅优于 1/2 精度的弱学习器。AdaBoostM1 是一个 M 类分类器,但仍然要求弱学习器的准确率优于 1/2,而人们预计机会水平约为 1/M。最初使用平衡/加权来获得相等的流行等级,但 AdaBoost 固有的重新加权可以迅速破坏这一点。一个解决方案是基于机会校正的措施,如 Kappa 或 Informedness (AdaBook)。

随着 M 的增长,例如文本分类,这种不匹配会增长,因此需要一个比机会强得多的分类器。因此,当 M=100 时,几率约为 1%,但 AdaBoostM1 需要 50% 的最低准确度。

随着基本分类器变得更强大(即不再勉强超越机会),提升以改进事物的范围缩小 - 它已经将我们拉到了搜索空间的一个非常特定的部分。它越来越有可能过度拟合错误和异常值,因此无法平衡各种变体。

一些关于知情的资源(包括 matlab 代码和 xls 表和早期论文)在这里:http ://david.wardpowers.info/BM与其他机会校正 kappa 度量的比较在这里:http ://aclweb.org /anthology-new/E/E12/E12-1035.pdf

Adaboost 的 weka 实现和实验使用 Bookmaker 通知可用 - 联系作者。

于 2013-03-11T01:47:20.310 回答
4

在文本分类上很难击败朴素贝叶斯。此外,boosting 是为具有高偏差的弱分类器设计的,这就是 boosting 表现良好的地方。提升会减少偏差但会增加方差。因此,如果您希望 AdaBoost + 朴素贝叶斯组合的性能优于朴素贝叶斯,您必须拥有一个大的训练数据集并跨越边界,其中训练集的扩大不会进一步提高朴素贝叶斯的性能(而 AdaBoost 仍然受益于扩大的训练数据集)。

于 2012-08-19T19:03:46.970 回答
2

您可能想阅读以下检查朴素贝叶斯提升的论文。它表明,在一组自然域中,boosting 不会像通常预期的那样提高朴素贝叶斯分类器的准确性:

http://onlinelibrary.wiley.com/doi/10.1111/1467-8640.00219/abstract

希望它提供一个很好的见解。

于 2013-11-26T07:08:59.600 回答