Algoritmo AdaBoost

A tradução do artigo foi preparada às vésperas do início do curso avançado "Matemática para Ciência de Dados" .



Introdução


O algoritmo AdaBoost pode ser usado para melhorar o desempenho de qualquer algoritmo de aprendizado de máquina. O aprendizado de máquina se tornou uma ferramenta poderosa para fazer previsões com base em grandes quantidades de dados. Tornou-se tão popular hoje em dia que os aplicativos de aprendizado de máquina encontram aplicativos mesmo nas tarefas diárias. Um dos exemplos mais comuns são recomendações de produtos com base em compras anteriores feitas por um cliente. O aprendizado de máquina, geralmente chamado de análise preditiva ou modelagem preditiva, pode ser definido como a capacidade dos computadores de aprender sem programação explícita. O aprendizado de máquina usa algoritmos pré-criados para analisar dados de entrada e fazer previsões com base em determinados critérios.

Qual é o algoritmo AdaBoost?


No aprendizado de máquina, é necessário impulsionar para converter classificadores fracos em fortes. Um algoritmo ou classificador de aprendizado fraco é um algoritmo de aprendizado que funciona melhor que a adivinhação aleatória e funcionará bem em caso de reciclagem, pois com um grande conjunto de classificadores fracos, qualquer classificador fraco funcionará melhor que a amostragem aleatória. Como classificador fraco, o habitual é frequentemente usado de thresholdacordo com um determinado critério. Se o sinal estiver mais alto threshold(valor limite) do que o previsto, ele se refere à área positiva, caso contrário - ao negativo.

AdaBoost significa "reforço adaptativo" ou reforço adaptativo. Transforma algoritmos fracos de aprendizado em fortes para resolver problemas de classificação.

A equação final para a classificação pode ser a seguinte:



Aqui f m é o m-ésimo classificador fraco, onde m é responsável pelo peso correspondente.

Como o algoritmo AdaBoost funciona?


O AdaBoost pode ser usado para melhorar o desempenho dos algoritmos de aprendizado de máquina . Funciona melhor com algoritmos de treinamento fracos, para que esses modelos possam obter precisão muito acima do aleatório ao resolver o problema de classificação. Os algoritmos mais comuns usados ​​com o AdaBoost são árvores de decisão de nível único . Um algoritmo de aprendizado fraco é um classificador ou algoritmo de previsão que funciona relativamente pouco em termos de precisão. Além disso, podemos dizer que classificadores fracos são fáceis de calcular; portanto, você pode combinar muitas entidades do algoritmo para criar um classificador mais forte usando o boosting.

Se tivermos um conjunto de dados em que n é o número de pontos e



Onde -1 é a classe negativa e 1 é a positiva. Em seguida, o peso de cada ponto será inicializado, conforme mostrado abaixo:



Cada m na expressão a seguir variará de 1 a M.
Primeiro, você precisa selecionar um classificador fraco com o menor erro de classificação ponderada, aplicando o classificador ao conjunto de dados.



Em seguida, calculamos o peso do mésimo segundo classificador fraco, como mostrado abaixo:



O peso é positivo para qualquer classificador com precisão acima de 50%. Quanto mais peso, mais preciso o classificador. O peso se torna negativo quando a precisão cai abaixo de 50%. As previsões podem ser combinadas invertendo o sinal. Assim, um classificador com precisão de 40% pode ser convertido em um classificador com precisão de 60%. Portanto, o classificador contribuirá para a previsão final, mesmo que funcione pior do que a estimativa aleatória. No entanto, o resultado final não será alterado sob a influência de um classificador cuja precisão é de 50%.

O expoente no numerador sempre será maior que 1 em caso de classificação incorreta do classificador com um peso positivo. Após a iteração, o peso dos objetos classificados incorretamente aumentará. Classificadores com peso negativo se comportarão de maneira semelhante. Há uma diferença na inversão de sinais: a classificação correta ficará incorreta. A previsão final pode ser calculada levando em consideração a contribuição de cada classificador e calculando a soma de suas previsões ponderadas.

O peso de cada ponto será atualizado da seguinte forma:



Aqui Z m é um parâmetro de normalização. É necessário garantir que a soma de todos os pesos de instância seja 1.

Onde o algoritmo AdaBoost é usado?


O AdaBoost pode ser usado para reconhecimento de faces, pois é um algoritmo padrão para essas tarefas. Ele usa uma cascata de rejeição que consiste em várias camadas de classificadores. Quando a área de reconhecimento não detecta faces em nenhuma camada, ela é rejeitada. O primeiro classificador da região descarta a região negativa para minimizar o custo da computação. Embora o AdaBoost seja usado para combinar classificadores fracos, os princípios do AdaBoost também são usados ​​para encontrar os melhores recursos para cada camada na cascata.

Vantagens e desvantagens do algoritmo AdaBoost


Uma das muitas vantagens do algoritmo AdaBoost é que é fácil, rápido e fácil de programar. Além disso, é flexível o suficiente para combiná-lo com qualquer algoritmo de aprendizado de máquina sem definir parâmetros, exceto o parâmetro T. É expansível para tarefas de aprendizado mais complicadas que a classificação binária e é universal o suficiente porque pode ser usado com dados numéricos ou textuais.

O AdaBoost também possui várias desvantagens, pelo menos o fato de que esse algoritmo é comprovado empiricamente e é muito vulnerável a ruídos distribuídos uniformemente. Classificadores fracos se forem muito fracos podem levar a maus resultados e reciclagem.

Exemplo de algoritmo AdaBoost


Como exemplo, considere a campanha de admissão da universidade, na qual um candidato pode ser admitido ou não na universidade. Aqui você pode obter vários dados quantitativos e qualitativos. Por exemplo, o resultado da admissão, que pode ser expresso como "sim" ou "não", pode ser quantificado, enquanto as habilidades e hobbies dos alunos podem ser quantificados. Podemos facilmente encontrar a classificação correta dos dados de treinamento. Suponha que, se um aluno se mostrou bem em uma determinada disciplina, ele será aceito com uma maior probabilidade. No entanto, prever com alta precisão é uma questão complicada e é aqui que os classificadores fracos ajudam.

Conclusão


O AdaBoost ajuda a escolher um conjunto de treinamento para cada classificador, que é treinado com base nos resultados do classificador anterior. Quanto à combinação dos resultados, o algoritmo determina quanto peso deve ser dado a cada classificador, dependendo da resposta recebida. Ele combina classificadores fracos para criar erros de classificação fortes e corretos e também é um algoritmo de aumento extremamente bem-sucedido para problemas de classificação binária.



Saiba mais sobre o curso.



All Articles