2012-05-14 53 views
3

在我的學士論文中,我應該使用AdaBoostM1和MultinomialNaiveBayes分類器來處理文本分類問題。問題在於,在大多數情況下,如果沒有提升,M1會更差或等於MultinomialNaiveBayes。weka AdaBoost不會改進結果

我使用下面的代碼:

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

所以我沒有得到的AdaBoost如何將無法改善的效果?不幸的是,由於大多數人似乎對AdaBoost非常滿意,所以我在網上找不到任何其他內容。

+1

所以看來解決方案是,只有分類器在其自己的訓練數據上犯錯誤時,提升纔有意義。因爲樸素貝葉斯通常達到接近100%的準確度,所以在這裏沒有意義。 –

回答

5

AdaBoost是一個二元/二分類/二類分類器,旨在提高弱於1/2準確度的學習者。 AdaBoostM1是M級分類器,但仍需要弱學習者比1/2準確度更好,當人們期望機會水平在1/M左右時。平衡/加權用於最初獲得平等的流行類別,但AdaBoost固有的重新加權可以快速消除這種情況。一個解決方案是基於提高機會糾正措施,如Kappa或Informedness(AdaBook)。隨着M增長,例如,當M增大時,隨着文本分類,這種不匹配增長,因此比機會分類器更強大。因此,在M = 100的情況下,AdaBoostM1需要約1%的準確度,但最低精度爲50%。

隨着基礎分類變得更加強大(即不再勉強高於機會),推動改進事物的範圍減小了 - 它已經將我們拉到搜索空間的一個非常特定的部分。越來越有可能過度配置錯誤和異常值,所以沒有餘地來平衡各種各樣的變體。

一些關於信息性資源(包括MATLAB代碼和XLS片和早期的論文)在這裏:http://david.wardpowers.info/BM與其他機會校正卡帕措施的比較是在這裏:http://aclweb.org/anthology-new/E/E12/E12-1035.pdf

甲WEKA實施和試驗用於Adaboost算法使用博客通知是可用的 - 聯繫作者。

4

在文本分類上很難擊敗樸素貝葉斯。此外,助推器是針對弱分類器而設計的,具有較高的bias,這就是增強表現良好的地方。助推減少偏差但增加方差。因此,如果您希望組合AdaBoost +樸素貝葉斯超越樸素貝葉斯,您必須擁有大量訓練數據集並跨越邊界,擴大訓練集並不會進一步提高樸素貝葉斯的表現(而AdaBoost仍然受益於放大訓練數據集)。

+0

感謝您的回答!如果可以的話,我會接受他們三人。 –