在我的学士学位论文中,我应该使用带有MultinomialNaiveBayes分类器的AdaBoostM1来解决文本分类问题。问题是在大多数情况下,在没有提升的情况下,M1更差或等于MultinomialNaiveBayes。
我使用以下代码:
AdaBoostM1 m1 = new AdaBoostM1();
m1.setClassifier(new NaiveBayesMultinomial());
m1.buildClassifier(training);所以我不明白AdaBoost为什么不能改进结果?不幸的是,我在网上找不到任何关于这一点的东西,因为大多数人似乎对AdaBoost非常满意。
发布于 2013-03-11 09:47:20
AdaBoost是一种二进制/二分式/两类分类器,旨在提高仅优于1/2准确率的弱学习者。AdaBoostM1是一个M级分类器,但当人们期望机会水平在1/M左右时,仍然要求弱学习者的准确率高于1/2。平衡/加权最初用于获得相同的流行类别,但AdaBoost固有的重新加权可能会很快破坏这一点。一种解决方案是将提升建立在Kappa或信息(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
一个weka实现和使用Bookmaker信息的Adaboost实验是可用的-联系作者。
发布于 2012-08-20 03:03:47
在文本分类方面,很难击败朴素贝叶斯。此外,boosting是为具有高bias的弱分类器设计的,这就是boosting表现良好的地方。Boosting减少了偏差,但增加了方差。因此,如果你希望组合AdaBoost +朴素贝叶斯优于朴素贝叶斯,你必须有一个大的训练数据集,并跨越边界,其中训练集的扩大不会进一步提高朴素贝叶斯的性能(而AdaBoost仍然受益于扩大的训练数据集)。
发布于 2013-11-26 15:09:00
你可能想阅读下面的文章,它研究了朴素贝叶斯的boosting。它证明了boosting并不能提高朴素贝叶斯分类器的准确性,因为在一组自然领域中通常会有更多的期望:
http://onlinelibrary.wiley.com/doi/10.1111/1467-8640.00219/abstract
希望它能提供一个很好的见解。
https://stackoverflow.com/questions/10591092
复制相似问题