Quando alguém gostaria de usar o AdaBoost?

14

Como ouvi falar do classificador AdaBoost mencionado repetidamente no trabalho, queria ter uma idéia melhor de como ele funciona e quando alguém pode usá-lo. Fui em frente e li vários artigos e tutoriais que encontrei no Google, mas há aspectos do classificador que ainda estou tendo problemas para entender:

  1. A maioria dos tutoriais que vi falam do AdaBoost como a melhor combinação ponderada de muitos classificadores. Isso faz sentido para mim. O que não faz sentido são implementações (por exemplo, MALLET) em que o AdaBoost parece aceitar apenas um aluno fraco. Como isso faz algum sentido? Se houver apenas um classificador fornecido ao AdaBoost, ele não deve retornar o mesmo classificador com um peso de 1? Como ele produz novos classificadores a partir do primeiro classificador?

  2. Quando alguém realmente gostaria de usar o AdaBoost? Eu li que ele deveria ser um dos melhores classificadores prontos para uso, mas quando tento aprimorar um classificador MaxEnt, obtive f-score de 70% + com o AdaBoost o mata e me dá f- pontuações de algo como 15% com recall muito alto e precisão muito baixa. Então agora estou confuso. Quando eu gostaria de usar o AdaBoost? Estou procurando uma resposta mais intuitiva do que estritamente estatística, se possível.

YuliaPro
fonte

Respostas:

11

O Adaboost pode usar várias instâncias do mesmo classificador com parâmetros diferentes. Assim, um classificador anteriormente linear pode ser combinado em classificadores não lineares. Ou, como as pessoas do AdaBoost gostam de dizer, vários alunos fracos podem formar um aluno forte. Uma bela foto pode ser encontrada aqui , na parte inferior.

Basicamente, funciona como qualquer outro algoritmo de aprendizado: em alguns conjuntos de dados ele funciona, em outros não. Certamente existem conjuntos de dados por aí, onde ele se destaca. E talvez você ainda não tenha escolhido o aluno fraco certo. Você tentou regressão logística? Você visualizou como os limites da decisão evoluem durante a adição de alunos? Talvez você possa dizer o que está errado.

bayerj
fonte
(+1). Observação adicional: Mesmo os parâmetros dos alunos fracos para não diferirem, o comportamento (isto é, o que eles prevêem) muda quando a estrutura do conjunto de dados (como é feita no aprimoramento) muda.
Steffen
MaxEnt é regressão logística. Visualizar como os limites de decisão evoluem seria realmente bastante útil. Como alguém pode fazer isso? Além disso, ainda não entendo como o AdaBoost ainda funciona quando recebe apenas um conjunto de recursos e um tipo de classificador (como em MALLET). Para mim, isso parece completamente contra-intuitivo.
YuliaPro
Apenas plote seu conjunto de dados. Além disso, plote uma grade em que você escolha uma cor para cada ponto em que ela será classificada pelo seu sistema. Isso funciona apenas para 2D, eu acho. Você ainda pode traçar os eixos mais importantes ou algo assim. Se você tiver apenas um conjunto de recursos e um classificador, ele será reduzido para apenas um classificador. Fiquei com a impressão de que a entropia máxima era um paradigma e não um classificador concreto. De qualquer forma.
bayerj