Tópicos
Técnica amplamente utilizada com o objetivo de juntar, de diversas formas (exploradas mais em baixo), o potencial de diferentes modelos ou execuções de modelos para formar um único e melhor modelo final.
Max Voting
Cada modelo realiza um voto (isto é, vota na classe que previu). A opção é mais votada é selecionada.
Existem dois tipos de votação:
Hard voting
- Modelo 1 prevê classe A
- Modelo 2 prevê classe B
- Modelo 3 prevê classe B
Como 2/3 dos modelos previram B ⇒ classe B é a decisão final
Soft voting
- Modelo 1 prevê classe A com probabilidade de 99%
- Modelo 2 prevê classe A com probabilidade 49%
- Modelo 3 prevê classe A com probabilidade 49%
Desta forma, a média das probabilidades que dizem respeito à classe A é de 65.67%. A classe com uma maior média é a decisão final, neste caso a A por maioria absoluta.
Bagging
A ideia aqui é criar múltiplas instâncias de dados para treino, onde podemos ter samples repetidas. Cada instância irá dar aso a um modelo treinado.
Finalmente, agregamos os resultados de todos os modelos e escolhemos o melhor.
Exemplo:
- Random Forest, que é um conjunto de árvores de decisão
A accuracy de modelos como estes é baseada no erro “out-of-bag”, que é a proporção de “out-of-bag” samples mal classificadas. Estas são as samples que ficaram de fora dos dados de treino.
Boosting
Este método consiste em correr diversos modelos, em que o modelo atual tenta corrigir os erros dos modelos anteriores.
Essencialmente, atribui-se um peso maior aos pontos que foram classificados incorretamente e volta-se a correr o modelo.
AdaBoost
Mais conhecido como adaptive boosting. A ideia principal é combinar árvores de decisão (Random Forest).
XGBoost
Baseado no AdaBoost, mas mais completo. A minimização de erro entre modelos é feita através de gradient descent.
Stacking
Enquanto que eu ensembles anteriores se utilizavam sempre modelos da mesma tipologia, aqui podemos utilizar diferentes modelos (Decision Tree, Random Forest e XGBoost, por exemplo).
Cada um dos modelos fica com uma parte dos dados de treino, um bucket.
De notar que os modelos fazem previsões tanto nos dados de treino como de teste. Isto é, os dados de teste são, também, divididos (por exemplo, 80% para treino e 20% para validação). Estas previsões são, depois, alimentadas ao que chamamos de meta learner.
Blending
As previsões efetuadas por cada um dos modelos são guardadas (a par do target vindo dos 20% de treino) e essas são alimentadas ao que chamamos de meta learner.
O meta learner é, normalmente, uma regressão. Logística ou linear vai depender do tipo do problema.
Tipos de Execução
Quando falamos da forma de execução, existem dois principais grupos de ensemble learners.
Paralelos
A lógica é tirar proveito da independência entre os modelos base. Assim, os erros cometidos por uns modelos são diferentes dos cometidos por outro independente.
Nesta abordagem, o modelo ensemble calcula a média dos erros. Por exemplo, Random Forest com árvores de decisão independentes.
Atenção que o XGBoost não é paralelo neste sentido. Tira proveito de paralelismo durante a construção de uma árvore.
Sequenciais
Neste caso, os modelos aprendem com os erros dos anteriores, então não é possível gozar de paralelismo. Por exemplo, ADABoost é sequencial.