weka AdaBoost不会改善结果

时间:2012-05-14 21:08:43

标签: machine-learning data-mining weka bayesian adaboost

在我的学士论文中,我应该在文本分类问题上使用带有MultinomialNaiveBayes分类器的AdaBoostM1。问题在于,在大多数情况下,M1没有增强的情况下更糟或等于MultinomialNaiveBayes。

我使用以下代码:

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

所以我不明白AdaBoost怎么会无法改善结果呢?不幸的是,我在网上找不到任何其他相关内容,因为大多数人似乎对AdaBoost非常满意。

3 个答案:

答案 0 :(得分:5)

AdaBoost是一个二元/二分/ 2类分类器,旨在提升弱于1/2精度的学习者。 AdaBoostM1是一个M级分类器,但仍需要弱学习者优于1/2精度,当人们预期机会水平约为1 / M.平衡/加权最初用于获得相同的流行类别,但AdaBoost固有的重新加权可以迅速消除这种情况。一个解决方案是以Kappa或Informedness(AdaBook)等机会纠正措施为基础。

随着M的增长,例如通过文本分类,这种不匹配会增加,因此需要比机会分类更强大的功能。因此,当M = 100时,AdaBoostM1需要的概率约为1%,但最低精度为50%。

随着基本分类器越来越强大(即不再勉强超过机会),提升事物的范围也在减少 - 它已经把我们拉到了搜索空间的一个非常特定的部分。它越来越容易出现错误和异常值,因此无法平衡各种变体。

有关知情的大量资源(包括matlab代码,xls表和早期论文)在这里:http://david.wardpowers.info/BM与其他经过机会纠正的kappa指标的比较如下:http://aclweb.org/anthology-new/E/E12/E12-1035.pdf

使用Bookmaker信息为Adaboost提供weka实施和实验 - 联系作者。

答案 1 :(得分:4)

在文本分类上很难击败Naive Bayes。此外,增强是针对具有高bias的弱分类器设计的,并且这是增强效果良好的地方。提升会减少偏差,但会增加差异。因此,如果你想要组合AdaBoost +朴素贝叶斯超越朴素贝叶斯,你必须有一个大的训练数据集并越过边界,扩大训练集不会进一步增加朴素贝叶斯的表现(而AdaBoost仍然受益于扩大训练数据集)。

答案 2 :(得分:2)

您可能需要阅读以下论文,该文章探讨了对朴素贝叶斯的提升。它表明,提升不会提高朴素贝叶斯分类器的准确性,因为通常在一组自然域中可以预期:

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

希望它能提供良好的洞察力。