在我的学士论文中,我应该将AdaBoostM1与MultinomialNaiveBayes分类器一起用于文本分类问题。问题在于,在大多数情况下,M1在没有提升的情况下更糟或等于MultinomialNaiveBayes。
我使用以下代码:
AdaBoostM1 m1 = new AdaBoostM1();
m1.setClassifier(new NaiveBayesMultinomial());
m1.buildClassifier(training);
所以我不知道AdaBoost如何无法改善结果?不幸的是,由于大多数人似乎对AdaBoost感到非常满意,因此我在网上找不到其他有关它的信息。
最佳答案
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
我们提供了使用Bookmaker信息技术进行Adaboost的Weka实现和实验的方法-联系作者。