Clicky

Métodos Ensemble

Nos Métodos Ensemble, encontramos uma das etapas mais interessantes do aprendizado de machine learning. Estes métodos constroem vários modelos de machine learning, utilizando o resultado de cada modelo na definição de um único resultado, obtendo-se assim um valor final único.

Isso significa que a resposta agregada de todos esses modelos é que será dada como o resultado final para cada dado que se está testando. Aqui estamos falando de algoritmos mais robustos e complexos, que envolvem mais operações, com um custo computacional um pouco maior, mas que, geralmente, têm uma performance melhor!

Orquestra de Estátuas

Como funciona

Basicamente, o funcionamento dessa questão de agregar o resultado é o seguinte: vamos imaginar que estamos trabalhando com algoritmos de árvores de decisão: ao invés de criar apenas uma árvore que classifique os dados, e depois utilizar um novo conjunto de dados para receber sua classificação para ver como essa árvore de decisão os classificará, vamos construir várias árvores de decisão, e agregar os resultados de todas elas num resultado final.

Em um problema de classificação, por exemplo, cada árvore de decisão dará o seu voto, se é classe zero ou classe um, e no final, veremos qual recebeu mais votos, sendo esta a classe vencedora. Ou, se for um problema de regressão, podemos fazer a média dos dados.

Ou ainda, ao invés de fazer só uma votação dos resultados, podemos usar os resultados de um algoritmo de uma árvore de decisão e, a partir dele, construir uma nova árvore que vai aprender com os erros da árvore anterior. Então, essa árvore vê onde a árvore anterior errou e tenta corrigir esses erros para, depois, tais erros serem aprendidos pela próxima árvore, sucessivamente.

Portanto, há várias formas que podem ser usadas como métodos ensemble para agregar o resultado de diferentes modelos, separados, para se chegar, por fim, ao resultado, que é uma combinação dos resultados anteriores.

Como aprender

Menino lendo com uma lanterna

Uma dica importante para quem quer aprender sobre estes métodos: vários desses algoritmos dependem do conceito de árvore de decisão. Se, por acaso, você ainda não o conhece, recomendamos que confira os detalhes nesta página, para adquirir uma ideia geral, mas bem sólida, de como se constrói uma árvore de decisão.

A boa notícia é que, apesar desses algoritmos serem mais robustos, mais complexos, e fazerem mais cálculos, para se entender o seu conceito, em muitos casos, será mais simples do que outros mais básicos, como uma regressão linear por exemplo; isto porque já se tem um conhecimento prévio.

Aprender sobre árvore de decisão juntamente com os métodos ensemble geraria confusão de conceitos, porque são vários pontos a serem abordados como, por exemplo, os detalhes dos cálculos, entropia, ganho de informação, índice Gini, etc. Ou seja, é muita informação de uma só vez! Mas, se os conceitos já foram entendidos e já se sabe como construir uma árvore de decisão, será bem mais simples de entender como o método ensemble funciona.

Principais algoritmos

Vamos conhecer os principais algoritmos que utilizam esta estratégia em sua construção:

  • RandomForest: este algoritmo cria uma floresta aleatória, com muitas árvores de decisão, sendo que para construção de cada uma dessas árvores, os dados não são utilizados em sua totalidade. Serão selecionadas algumas amostras dos dados, de maneira aleatória, através de bootstrap, um método de reamostragem que permite amostras repetidas na seleção. Para criação dos nós das árvores, também existirá uma etapa aleatória, onde algumas variáveis serão selecionadas de forma randômica.
  • ExtraTrees: tem um funcionamento muito similar ao RandomForest, com a adição de mais uma etapa aleatória no processo, justificando seu nome: Extremely Randomized Trees (Árvores Extremamente Randômicas). Nele a definição do threshould para split dos dados também acontece de maneira aleatória.
  • AdaBoost: diferente do que vimos nos dois algoritmos anteriores, no AdaBoost não teremos a construção de árvores de decisões, mas sim de “tocos”, ou stumps. Estes tocos são como árvores de decisão com apenas um nó, sendo que a construção de cada um dependerá do toco anterior. Ou seja, existe uma dependência entre cada toco, situação que não acontece nas árvores do RandomForest e do ExtraTrees. Esta é uma característica dos algoritmos de boosting, que utilizam o resultado de um modelo para criação do próximo, buscando um aperfeiçoamento a cada iteração, aprendendo com os erros do modelo anterior.
  • GradientBoosting: um dos mais poderosos algoritmos de boosting. Ele cria árvores decisões com o objetivo de prever o valor dos erros da árvore anterior, e utiliza o valor do erro previsto na definição de seu resultado final.
  • Bagging: seu principal objetivo é evitar o overfitting, através da criação de diferentes modelos de machine learning, utilizando como resultado final a média das respostas encontradas. O Bagging nos permite escolher qualquer algoritmo de machine learning para realizar este processo. Ou seja, poderemos utilizar Regressão Linear, Knn, Árvore de Decisão, e assim por diante, sendo que muitos modelos serão criados com o algoritmo escolhido. Cada modelo criado será diferente dos demais, pois serão escolhidas amostras aleatórias para criação destes modelos, não sendo utilizada a totalidade dos dados de treino em um único modelo.

Métodos Ensemble na prática

Em nossos cursos de Machine Learning construímos cada um destes modelos na prática, utilizando linguagem R e Python, passando também pelo detalhamento teórico dos algoritmos. Clique aqui e confira agora! Abordamos do básico ao avançado, sempre focando na didática, sem enrolações e de maneira objetiva, para possibilitar um aprendizado completo aos alunos.

cursos