Ensemble
Por que usar apenas um modelo de machine learning, por que apenas uma forma de fazer previsão? Imagine que você poderia aproveitar o melhor de cada mundo, usar os pontos fortes de cada modelo e seu estimador e até mesmo combiná-los entre si.
No notebook que elaborei é apenas uma introdução de um conceito conhecido como Métodos de Ensemble, já que a documentação é vasta e não caberia apenas em um post.
A documentação original sobre a metodologia pode ser consultada neste link.
Me inspirei no post do Marcelo Randolfo para elaborar esse notebook, porém no post originial ele utiliza a base de dados da competição do Kaggle sobre sobreviventes ao naufrágio do Titanic.
O dataset
Como desafio pessoal, preferi utilizar outro dataset no meu exemplo. Os dados aqui foi retirado da UC Irvine Machine Learning Repository e representa uma abordagem baseada em dados para prever o sucesso do campanha de marketing de um banco Português.
A página com maiores informações sobre os dados pode ser acessada aqui.
O dataset é composto por 17 variáveis (colunas) e 45.211 entradas (linhas).
Na primeira parte do notebook esclareço como importá-lo diretamente do site para um dataframe e começá-lo a usar de pronto.
Na sequência são executados os comandos para conversão das variáveis categóricas a fim de utilizá-las nos demais modelos. Para entender mais sobre conversões de variáveis consulte aqui
Ensemble
Você entenderá a importância do método de Ensemble
ao entrar no universo do Machine Learning e ficar perdido com a quantidade de modelos diferentes que temos a disposição. Temos regressão linear, polinomial e logística, gradiente descendente, XGBoost, máquina de vetores de suporte, naive bayes, árvores de decisão, Random Forest, entre outros.
Observe abaixo o resultado do classificador de votação para os diferentes modelos. No caso, o VotingClassifier
fez a combinação dos modelos.
No notebook também são apresentados brevemente cada modelo de machine learning que foi utilizado para fazer a previsão.
Deixarei no post o detalhamento utilizado da método:
A partir do modelo acima os resultados de acurácia obtidos foram:
Ainda podemos gerar o report para avaliarmos o modelo obtido:
Do report anterior podemos verificar que o nosso modelo acertou 90% das previsões onde a resposta a campanha de marketing foi negativa e acertou 71% das vezes onde foi positiva.
Para saber mais sobre as métricas de classificação e avaliação de modelos pode acessar meu post sobre o assunto.
Conclusão
No nosso modelo em questão, a Acurácia nos mostra que 89% das vezes em que o modelo previu sim ou não estava correto.
Mesmo cometendo erros, o classificador geralmente consegue performar melhor do que os estimadores individualmente. De acordo com Aurélien Géron:,
Mesmo que cada estimador seja um aprendiz fraco (o que significa que sua classificação é apenas um pouco melhor do que adivinhações aleatórias), o conjunto ainda pode ser um forte aprendiz (alcançando alta acurácia).
Para o nosso exemplo, o modelo XGBoost é o que performa melhor entre os modelos individuais, mas ainda assim é uma performance próxima ao classificador de votação.
Data Science na Prática
O material aqui desenvolvido é parte da provocação feita no curso de Data Science na Prática onde fui desafiado a tentar explicar os passos e ferramentas aplicadas durante a evolução do material. Todo o material a ser desenvolvido no curso será centralizado no GitHub.