Коли хочеться використовувати AdaBoost?


14

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

  1. Більшість навчальних посібників, які я бачив, говорять про AdaBoost як про знаходження найкращої зваженої комбінації багатьох класифікаторів. Це має для мене сенс. Немає сенсу - це реалізація (тобто MALLET), де AdaBoost, схоже, приймає лише одного слабкого учня. Як це має сенс? Якщо у AdaBoost є лише один класифікатор, чи не повинен він просто повернути назад той самий класифікатор вагою 1? Як це створює нові класифікатори з першого класифікатора?

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

Відповіді:


11

Adaboost може використовувати кілька примірників одного і того ж класифікатора з різними параметрами. Таким чином, раніше лінійний класифікатор може бути об'єднаний у нелінійні класифікатори. Або, як люблять AdaBoost люди, кілька слабких учнів можуть зробити одного сильного учня. Гарну картинку можна знайти тут , внизу.

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


(+1). Додаткове зауваження: Навіть параметри слабких учнів не відрізняються, поведінка (тобто те, що вони прогнозують) змінюється, коли змінюється структура набору даних (як це робиться під час прискорення).
steffen

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

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