Когда можно использовать AdaBoost?


14

Как я слышал о классификаторе AdaBoost, который неоднократно упоминался на работе, я хотел лучше понять, как он работает и когда его можно использовать. Я прочитал несколько статей и учебных пособий, которые я нашел в Google, но есть некоторые аспекты классификатора, которые я до сих пор не могу понять:

  1. Большинство уроков, которые я видел, говорят об AdaBoost как о поиске наилучшей взвешенной комбинации из многих классификаторов. Это имеет смысл для меня. Что не имеет смысла, так это реализации (то есть MALLET), где AdaBoost, кажется, принимает только одного слабого ученика. Как это имеет смысл? Если AdaBoost предоставлен только один классификатор, не должен ли он просто вернуть тот же классификатор с весом 1? Как он производит новые классификаторы из первого классификатора?

  2. Когда на самом деле захочется использовать AdaBoost? Я читал, что это должен быть один из лучших готовых классификаторов, но когда я попытался повысить классификатор MaxEnt, я получил f-баллы на 70% +, AdaBoost убил его и дал мне оценки около 15% с очень высокой степенью отзыва и очень низкой точностью. Так что теперь я в замешательстве. Когда я захочу использовать AdaBoost? Я ищу более интуитивный, а не строго статистический ответ, если это возможно.

Ответы:


11

Adaboost может использовать несколько экземпляров одного и того же классификатора с разными параметрами. Таким образом, ранее линейный классификатор может быть объединен в нелинейные классификаторы. Или, как любят говорить люди из AdaBoost, несколько слабых учеников могут сделать одного сильного ученика. Хорошую картину можно найти здесь , внизу.

По сути, это происходит как с любым другим алгоритмом обучения: в некоторых наборах данных он работает, а в некоторых - нет. Там наверняка есть наборы данных там, где он превосходит. И, возможно, вы еще не выбрали правильного слабого ученика. Вы пробовали логистическую регрессию? Представляете ли вы, как границы решений меняются при добавлении учеников? Может быть, вы можете сказать, что происходит не так.


(+1). Дополнительное замечание: Даже параметры слабых учеников не различаются, поведение (то есть то, что они предсказывают) изменяется, когда изменяется структура набора данных (как это делается при форсировании).
Штеффен

MaxEnt - это логистическая регрессия. Визуализация того, как границы принятия решений будут действительно полезны. Как можно это сделать? Кроме того, я до сих пор не понимаю, как работает AdaBoost, когда ему предоставляется только один набор функций и один тип классификатора (как в MALLET). Мне это кажется совершенно нелогичным.
YuliaPro

Просто подготовьте свой набор данных. Кроме того, нарисуйте сетку, где вы выбираете цвет для каждой точки, как он классифицируется вашей системой. Я думаю, это работает только для 2D. Вы все еще можете построить наиболее важные оси или что-то в этом роде. Если у вас есть только один набор функций и один классификатор, он сводится только к одному классификатору. У меня сложилось впечатление, что максимальная энтропия - это парадигма, а не конкретный классификатор. Тем не мение.
Bayerj
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.