2012-05-14 11 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 - это бинарный/дихотомический/2-классный классификатор и предназначен для повышения слабого учащегося, который лучше, чем 1/2 точности. AdaBoostM1 является классификатором M-класса, но по-прежнему требует, чтобы слабый ученик был лучше точности 1/2, когда можно было ожидать, что уровень вероятности будет около 1/M. Балансировка/взвешивание используется для того, чтобы сначала получить классы с равной распространенностью, но переоценка, присущая AdaBoost, может быстро ее уничтожить. Решение должно основываться на повышении шансов исправленных мер, таких как Kappa или Informedness (AdaBook).

По мере роста М, т.е. с классификацией текста, это несоответствие растет, и, следовательно, требуется гораздо более сильный, чем случайный классификатор. Таким образом, при M = 100 вероятность того, что AdaBoostM1 потребуется минимум 50%, составляет около 1%.

Поскольку базовые классификаторы становятся более сильными (а именно, не более чем на первый раз), возможности для повышения качества вещей уменьшаются - это уже привело нас к очень определенной части пространства поиска. Скорее всего, он будет перегружен ошибками и выбросами, поэтому нет возможности сбалансировать самые разные варианты.

Ряд ресурсов по информированности (включая MatLab код и XLS листы и ранние работы) здесь: http://david.wardpowers.info/BM Сравнения с другими мерами каппы случайностей скорректированной здесь: http://aclweb.org/anthology-new/E/E12/E12-1035.pdf

Реализация ВЕКА и экспериментирование для AdaBoost использования Букмекерская информированность доступна - свяжитесь с автором.

4

Трудно побить Наивные Байесы по классификации текста. Кроме того, ускорение было разработано для слабых классификаторов с высоким уровнем bias, и именно здесь повышается производительность. Ускорение уменьшает смещение, но увеличивает дисперсию. Следовательно, если вы хотите, чтобы комбо AdaBoost + Naive Bayes превзошел Naive Bayes, у вас должен быть большой набор данных о тренировках и пересечь границу, где увеличение набора тренировок не приведет к дальнейшему увеличению производительности Наивного Байеса (в то время как AdaBoost по-прежнему выигрывает от увеличенного набор учебных данных).

+0

Спасибо за ваш ответ! Если бы я мог, я бы принял всех троих. –

2

Возможно, вы захотите прочитать следующую статью, в которой рассматривается повышение на Naive Bayes. Это свидетельствует о том, что повышение не улучшить точность наивного байесовского классификатора, насколько обычно ожидается в наборе естественных областей:

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

Надеется, что это дает хорошее представление.