Descubra como funciona esse algoritmo que auxilia empresas na construção de estratégias.
Economize R$320 na compra do seu curso. Use o código e comece a aprender!
Esse curso é para você, se deseja:Iniciar uma carreira de tecnologiaConheça os fundamentos de Machine Learning, Python, programação, análise de dados, cálculos avançados, e dê início à uma promissora carreira na ciência de dados.
Aprenda diferentes abordagens lógicas de visualização e processamento de dados com Machine Learning. A partir de seus conhecimentos de programação, evolua para o domínio da ciência de dados e análise de Big Data.
Quando um(a) cientista de dados quer transformar dados em informações e insights para a empresa onde trabalha, existe uma série de algoritmos de machine learning (aprendizado de máquina, em português) à sua disposição.
Um dos mais úteis é conhecido como Random Forest ou Floresta Aleatória, um algoritmo que pode ser utilizado nos processos de classificação ou regressão de variáveis. Quer entender melhor como ele funciona? Vamos do começo!
O que é Random Forest
Você já ouviu falar em árvore de decisão? Vamos explicar o conceito a fundo mais para frente neste artigo, mas a versão resumida é que, em programação, uma árvore de decisão é uma estrutura de dados que representa uma sequência de decisões e suas consequências.
O Random Forest é um algoritmo de machine learning que usa vários subconjuntos de dados de treinamento para construir uma série de árvores de decisão. A ideia é treinar o sistema para que ele consiga, com base nesse aprendizado, prever o que acontece quando novos dados entram.
Depois de criadas, as árvores são utilizadas pelo sistema para fazer previsões sobre novas amostras de dados. As previsões das várias árvores (que compõe a “floresta” que dá nome ao algoritmo) são analisadas em conjunto para afinar a precisão dos resultados obtidos.
Como dissemos, o sistema pode ser utilizado para classificações e regressões, nas linguagens R e Python. A classificação é uma análise que atribui uma categoria a uma variável: por exemplo, se usada em algum banco, ela pode classificar um cliente como potencial bom ou mau pagador. Já a regressão atribui um valor numérico à variável de saída, como preço, custo, altura.
Para que se utiliza o Random Forest
O Random Forest pode ser usado por cientistas de dados que trabalham para empresas de diversas áreas, como o setor financeiro, de saúde ou de e-commerce, para fazer previsões que podem ajudar na tomada de decisões estratégicas.
Por exemplo, no setor bancário, o Random Forest ajuda a descobrir quais clientes estão mais propensos a serem bons pagadores ou usar os serviços do banco com mais frequência.
No e-commerce, eles podem ser utilizados para prever a demanda em determinado segmento. Na saúde, o algoritmo pode utilizar o histórico do paciente para analisar a chance de desenvolver determinada doença.
Esses, claro, são apenas alguns exemplos simples. Existem muitos outros setores e situações em que o algoritmo pode nos ajudar a fazer previsões e entender possíveis cenários.
Como funciona o algoritmo Random Forest
A versão extremamente resumida do funcionamento do Random Forest é a seguinte:
- Ele seleciona variáveis de forma aleatória;
- Constrói uma árvore de decisão utilizando subconjuntos de dados;
- Repete o processo por diversas vezes.
Vamos entrar agora numa descrição um pouco mais aprofundada, delineando cada elemento e etapa do processo.
- Explicando as Árvores de Decisão
Como a gente já definiu, o Random Forest é um modelo de machine learning que aprende a prever resultados, a partir da criação de uma série de árvores de decisão, que compõem uma “floresta”. O que é, então, essa árvore de decisão?
É um método estatístico de aprendizagem supervisionada, que pode ser utilizado em problemas de classificação e na realização de previsões. Em termos muito simples, é como se fosse um fluxograma que mostra o caminho de uma variável até uma classificação ou resultado.
Para dar um exemplo, vamos pensar numa árvore que começa com uma pergunta muito simples, como “devo sair de casa hoje?”. Esse é um exemplo de problema de classificação, em que os rótulos da árvore de decisão vão ser “sair de casa” ou “ficar em casa”.
Partindo da pergunta, você pode pensar em variáveis que vão ajudá-lo a chegar numa resposta: a temperatura lá fora, a chance de chuva etc. Essas variáveis funcionam como as ramificações da árvore, que vão dividir os dados. As respostas a essas perguntas vão levar a diferentes decisões finais. Algumas observações vão levar à decisão “sim” e aquelas que não se enquadram no critério, levarão a um resultado diferente.
-
Selecionando as amostras
Na hora de montar as árvores de decisão, o primeiro passo do algoritmo é selecionar amostras aleatórias dos dados de treinamento, ao invés de trabalhar com a amostra toda. Nessa etapa, é utilizado um método conhecido como bootstrap, no qual as amostras selecionadas podem ser repetidas.
-
Definindo os nós
Depois de definida a raiz da árvore de decisão, ou seja, a primeira condição a ser verificada, vão sendo criados os ramos. Como dissemos, o algoritmo seleciona aleatoriamente as variáveis. Depois, ele realiza cálculos utilizando as amostras escolhidas para definir qual variável será a raiz.
Depois, ele passa para o próximo nó, onde vai colocar duas ou mais variáveis, sempre excluindo das opções as variáveis que foram utilizadas no nó anterior. Esse processo ocorre sucessivamente, até o último nó. A quantidade de variáveis costuma ser definida no momento de criação do modelo. Feita a primeira árvore, o algoritmo passa para as próximas.
-
Criando as próximas árvores
Para criar as demais árvores, o algoritmo segue esse mesmo processo descrito nos itens anteriores. Como a seleção acontece de forma aleatória, é bem provável que a nova árvore vá ser diferente da primeira. O modelo pode trabalhar com quantas árvores você quiser criar, mas é importante lembrar que mais árvores não necessariamente significam resultados mais precisos.
Existe um ponto em que a eficácia do modelo é otimizada, o que pode ser feito por meio de técnicas como validação cruzada e curvas de aprendizado. Outro lembrete importante é que quanto mais árvores você quiser, mais tempo vai levar para criar o modelo.
- Prevendo novos valores
Ao final, cada árvore da sua floresta terá um resultado, permitindo ao modelo fazer uma previsão. Em regressões, ele costuma apresentar como resultado final a média dos valores previstos pelas árvores. Já para classificações, o resultado final é o que apareceu com mais frequência.
Random Forest: vantagens e desvantagens
O Random Forest é um algoritmo muito utilizado por bons motivos. Os principais são a precisão e eficiência do modelo, além do fato de que ele é relativamente fácil de usar. Em uma base de dados grande, o Random Forest se mostra muito mais preciso do que usar uma única árvore de decisão.
Pela forma como é desenvolvido, o Random Forest consegue se desenvolver rápido e com poucos parâmetros, sendo relativamente mais simples de resolver, se comparado a outros algoritmos como a rede neural.
O método, porém, também tem suas desvantagens. Um dos mais óbvios é que, apesar de ser mais preciso que uma única árvore de decisão, ele é também mais demorado. Outra questão é que cada árvore da floresta é armazenada de forma individual na memória do dispositivo, o que significa que esse algoritmo é mais lento que certas alternativas.
Outro problema é que o método da árvore de decisão pode sofrer com o problema de sobreajuste (overfitting), que é quando o modelo se ajusta excessivamente aos dados de treinamento, capturando padrões específicos que não são generalizáveis para outros grupos de dados. Como o Random Forest seleciona os dados de forma aleatória, esse problema costuma ser evitado, mas nem sempre.
Aplicação do Random Forest
Como a nossa explicação até aqui envolveu termos técnicos e conceitos abstratos, vamos ver como o Random Forest pode ser aplicado numa situação da vida real.
Digamos que você gerencia uma cadeia de hotéis e precisa prever e diminuir o número de cancelamentos de reservas. O Random Forest pode ajudá-lo a prever quais reservas têm maior probabilidade de serem canceladas. Como? Vamos ao passo a passo:
- Coletar dados:
O primeiro passo é reunir dados históricos de reservas, como datas, tipo de quarto, preço, métodos de pagamento, e se a reserva foi cancelada ou não.
- Preparar os dados:
Depois, precisamos fazer a limpeza e transformação dos dados, criar variáveis indicadoras, como antecedência da reserva, período do ano e taxas de cancelamento passadas.
- Treinar o modelo:
Chegou o momento de utilizar o Random Forest para treinar seu modelo. Como variáveis de entrada você tem as características de reserva citadas no passo 1. Seu resultado (a variável de saída) é o indicador de cancelamento.
- Validar o modelo:
Aqui, você avalia a precisão do modelo, usando um conjunto de dados de reserva não utilizado durante o treinamento.
- Implementação:
O modelo finalmente é integrado ao seu sistema de gerenciamento de reservas, para prever a probabilidade de uma reserva ser cancelada. Assim, o hotel pode pensar em estratégias para prevenir esse cancelamento.
Temos, assim, um caso claro de como o Random Forest pode ser utilizado como uma ferramenta que ajuda na tomada de decisões estratégicas e na elaboração de planos de contingência em uma empresa.
***
Em resumo, o Random Forest pode ser uma ferramenta extremamente útil para quem quer ajudar empresas na transformação de conjuntos de dados em decisões estratégicas. Esse tipo de desafio é algo que o move? Então, talvez você tenha interesse em se aprofundar em ciência de dados.
Aqui na EBAC, no curso Profissão: Cientista de Dados, você vai conhecer esse e muitos outros conceitos, além de colocá-los em prática, com tarefas e cases reais. Você ainda aprende com professores atuantes no mercado, todos com passagem por grandes empresas. Quer se jogar nesse universo? Vem conhecer nosso curso!
Para mais conteúdos gratuitos de Programação & Data, participe dos eventos online! Eles acontecem semanalmente e são uma ótima oportunidade para ficar por dentro do que está acontecendo na área. Acesse a agenda e inscreva-se!
Profissão: Cientista de Dados
Economize R$320 na compra do seu curso. Use o código e comece a aprender!
Esse curso é para você, se deseja:Iniciar uma carreira de tecnologiaConheça os fundamentos de Machine Learning, Python, programação, análise de dados, cálculos avançados, e dê início à uma promissora carreira na ciência de dados.
Aprenda diferentes abordagens lógicas de visualização e processamento de dados com Machine Learning. A partir de seus conhecimentos de programação, evolua para o domínio da ciência de dados e análise de Big Data.
Receba artigos do blog, acompanhe as últimas notícias da EBAC e fique por dentro das novidades!