O que é uma floresta aleatória?

Floresta aleatória (random forest) é um algoritmo de aprendizado de máquina supervisionado. É um dos algoritmos mais utilizados devido à sua precisão, simplicidade e flexibilidade. O fato de poder ser usado para tarefas de classificação e regressão, combinado com sua natureza não linear, torna-o altamente adaptável a uma variedade de dados e situações.

Diagrama de floresta aleatória

O termo “floresta de decisão aleatória” foi proposto pela primeira vez em 1995 por Tin Kam Ho. Ho desenvolveu uma fórmula para usar dados aleatórios para criar previsões. Então, em 2006, Leo Breiman e Adele Cutler estenderam o algoritmo e criaram florestas aleatórias como as conhecemos hoje. Isso significa que essa tecnologia, e a matemática e a ciência por trás dela, ainda são relativamente novas.

É chamado de “floresta” porque desenvolve uma floresta de árvores de decisão. Os dados dessas árvores são então mesclados para garantir as previsões mais precisas. Enquanto uma árvore de decisão individual tem um resultado e uma gama estreita de grupos, a floresta garante um resultado mais preciso, com um número maior de grupos e decisões. Ela tem o benefício adicional de trazer aleatoriedade ao modelo, encontrando o melhor recurso em um subconjunto aleatório de recursos. No geral, esses benefícios criam um modelo com ampla diversidade que muitos cientistas de dados favorecem.

O que é uma árvore de decisão?

Uma árvore de decisão é algo que você provavelmente usa todos os dias em sua vida. É como se você pedisse aos seus amigos recomendações sobre qual sofá comprar. Seus amigos vão perguntar o que é importante para você. Tamanho? Cor? Tecido ou couro? Com base nessas decisões, você pode procurar o sofá perfeito com base em suas escolhas. Uma árvore de decisão basicamente faz uma série de perguntas com resposta de tipo verdadeiro ou falso que levam a uma determinada conclusão.

Cada “teste” (couro ou tecido?) é chamado de nó. Cada ramo representa o resultado dessa escolha (tecido). Cada nó folha é um rótulo dessa decisão. Obviamente, em cenários reais, cada nó divide observações para que grupos inteiros sejam diferentes, resultando em subgrupos semelhantes entre si, mas diferentes dos outros grupos.

A diferença entre árvores de decisão e florestas aleatórias

Uma floresta aleatória é um grupo de árvores de decisão. No entanto, existem algumas diferenças entre os dois. Uma árvore de decisão tende a criar regras, que ela usa para tomar decisões. Uma floresta aleatória escolherá aleatoriamente os recursos e fará observações, construirá uma floresta de árvores de decisão e, em seguida, calculará a média dos resultados.

A teoria é que um grande número de árvores não correlacionadas criará previsões mais precisas do que uma árvore de decisão individual. Isso ocorre porque o volume de árvores trabalha em conjunto para proteger cada uma de erros individuais e overfitting.

Para que uma floresta aleatória tenha um bom desempenho, ela precisa de três coisas:

  • Um sinal identificável, para que os modelos não tentem apenas adivinhar
  • As previsões feitas pelas árvores precisam ter baixos níveis de correlação com as outras árvores
  • Recursos que possuem algum nível de poder preditivo: GI=GO
Visualizações / tabelas com Spotfire
Visualizações / tabelas com Spotfire
Confira esta demonstração para ver como o Spotfire torna fácil começar a visualizar todos os aspectos de seus dados.

Como um algoritmo de floresta aleatória é usado nos negócios?

Existem muitas aplicações para uma floresta aleatória em configurações de negócios. Por exemplo, uma única árvore de decisão pode classificar um conjunto de dados relacionado a vinho, separando diversos vinhos em vinhos leves ou encorpados.

A floresta aleatória cria muitas árvores, tornando as previsões do resultado final muito mais sofisticadas. Pode ter várias árvores para os vinhos, comparando preços, taninos, acidez, teor alcoólico, açúcar, disponibilidade e toda uma gama de outras características. Então, calculando a média dos resultados, pode fazer previsões sobre os (possivelmente) melhores vinhos em geral, com base em um grande número de critérios.

Em uma empresa, um algoritmo de floresta aleatória pode ser usado em um cenário em que há uma variedade de dados de entrada e um conjunto complexo de circunstâncias. Por exemplo, identificar quando um cliente vai deixar uma empresa. O churn de clientes é complexo e geralmente envolve uma série de fatores: custo dos produtos, satisfação com o produto final, eficiência do suporte ao cliente, facilidade de pagamento, duração do contrato, recursos extras oferecidos, bem como dados demográficos como sexo, idade e localização. Um algoritmo de floresta aleatória cria árvores de decisão para todos esses fatores e pode prever com precisão quais clientes da organização estão em alto risco de churn.

Outro exemplo complexo seria tentar prever quais clientes terão os maiores gastos em um ano. Uma ampla gama de variáveis e atributos são analisados, e podem ser feitas previsões sobre quem o departamento de marketing precisa atingir naquele ano.

Bagging em florestas de decisão

O bagging, também conhecido como agregação bootstrap, permite que as árvores de decisão individuais obtenham amostras aleatoriamente do conjunto de dados e substituam os dados, criando resultados muito diferentes em árvores individuais. Isso significa que, em vez de incluir todos os dados disponíveis, cada árvore recebe apenas alguns dos dados. Essas árvores individuais tomam decisões com base nos dados que possuem e preveem resultados com base apenas nesses pontos de dados.

Isso significa que em cada floresta aleatória, existem árvores que são treinadas em dados diferentes e que usaram recursos diferentes para tomar decisões. Isso fornece um buffer para as árvores, protegendo-as de erros e previsões incorretas.

O processo de bagging usa apenas cerca de dois terços dos dados, de modo que o terço restante pode ser usado como um conjunto de teste.

Benefícios da floresta aleatória

Importância relativa fácil de medir

É simples medir a importância de um recurso observando os nós que usam esse recurso para reduzir a impureza em todas as árvores dessa floresta. É fácil ver a diferença antes e depois de permutar a variável, e isso dá uma medida da importância dessa variável.

Versátil

Como uma floresta aleatória pode ser usada para tarefas de classificação e regressão, ela é muito versátil. Ela pode lidar facilmente com recursos binários e numéricos, bem como categóricos, sem necessidade de transformação ou reescalonamento. Ao contrário de quase todos os outros modelos, é incrivelmente eficiente com todos os tipos de dados.

Sem overfitting

Enquanto houver árvores suficientes na floresta, há pouco ou nenhum risco de overfitting. As árvores de decisão também podem acabar se sobrepondo. Florestas aleatórias evitam isso construindo árvores de tamanhos diferentes a partir de subconjuntos e combinando os resultados.

Altamente precisa

O uso de várias árvores com diferenças significativas entre os subgrupos torna as florestas aleatórias uma ferramenta de previsão altamente precisa.

Reduz o tempo gasto no gerenciamento de dados

Com o processamento de dados tradicional, uma grande parte do tempo valioso é gasto na limpeza dos dados. Uma floresta aleatória minimiza isso, pois lida bem com dados ausentes. Testes feitos comparando previsões resultantes de dados completos e incompletos mostraram níveis de desempenho quase idênticos. Dados atípicos e recursos não lineares são essencialmente descartados.

As técnicas de floresta aleatória também funcionam para equilibrar erros em populações e outros conjuntos de dados desequilibrados. Ela faz isso minimizando a taxa de erro, de modo que uma classe maior terá uma taxa de erro menor, e uma classe menor terá uma taxa maior.

Rapidez de treinamento

Como as florestas aleatórias usam um subconjunto de recursos, elas podem avaliar rapidamente centenas de recursos diferentes. Isso significa que a velocidade de previsão também é maior do que com outros modelos, pois as florestas geradas podem ser salvas e reutilizadas no futuro.

Desafios da floresta aleatória

Resultados mais lentos

Como o algoritmo está construindo muitas árvores, ele aumenta a sofisticação e a precisão das previsões. No entanto, diminui a velocidade do processo, pois está construindo centenas ou milhares de árvores. Isso o torna ineficaz para previsões em tempo real.

Solução: a amostragem out-of-bag (OOB) pode ser usada se apenas dois terços dos dados forem usados para fazer previsões. O processo de floresta aleatória também é paralelizável; portanto, o processo pode ser dividido em várias máquinas, sendo executado muito mais rapidamente do que em um sistema solo.

Não é possível extrapolar

Uma previsão de floresta aleatória depende de uma média de rótulos observados anteriormente. Seu intervalo é limitado pelos rótulos mais baixos e mais altos nos dados de treinamento. Embora isso seja um problema apenas em um cenário em que as entradas de treinamento e previsão tenham alcance e distribuições diferentes, essa mudança de covariável significa que um modelo diferente deve ser usado em algumas situações.

Baixa interpretabilidade

Modelos de floresta aleatória são a caixa-preta definitiva. Eles não são explicáveis, e por isso é difícil entender como ou por que eles chegaram a uma determinada decisão. Essa impenetrabilidade significa que o modelo simplesmente precisa ser confiável como está e os resultados aceitos como estão.

Alternativas à floresta aleatória

Redes neurais (NN)

Uma rede neural é uma série de algoritmos que trabalham juntos para identificar relacionamentos nos dados. Ela foi projetada para tentar replicar como o cérebro humano funciona, sempre mudando e se adaptando para se adequar aos dados recebidos. Ela tem benefícios significativos em relação à floresta aleatória, pois pode trabalhar com dados diferentes do formato de tabela, como áudio e imagens. Ela também pode ser ajustada com muitos hiperparâmetros que podem ser ajustados para se adequarem aos dados e resultados necessários.

No entanto, se os dados que estão sendo trabalhados forem apenas tabulares, é melhor ficar com a floresta aleatória, pois é mais simples e ainda produz bons resultados. As redes neurais podem exigir muito trabalho e computação e, para muitos cálculos, o detalhe granular pode simplesmente não ser necessário. Para dados tabulares simples, tanto as redes neurais quanto as florestas aleatórias têm desempenho semelhante em termos de previsões.

Gradient boosting eXtreme (XGBoost)

O Gradient boosting eXtreme é considerado mais preciso e poderoso do que as florestas aleatórias. Ele combina uma floresta aleatória e um gradient boosting (GBM) para criar um conjunto de resultados muito mais preciso. O XGBoost dá passos mais lentos, prevendo sequencialmente em vez de independentemente. Utiliza os padrões de resíduos, fortalecendo o modelo. Isso significa que o erro previsto é menor do que as previsões de floresta aleatória.

Modelos lineares

Os modelos de previsão linear são uma das técnicas de aprendizado de máquina mais simples. Eles são amplamente usados e, quando executados no conjunto de dados correto, são uma poderosa ferramenta de previsão. Eles também são fáceis de interpretar e não têm o efeito caixa-preta de uma floresta aleatória. No entanto, são significativamente menos ágeis do que uma floresta aleatória, pois usam apenas dados lineares. Se os dados não forem lineares, as florestas aleatórias produzirão as melhores previsões.

Modelos de cluster

Os cinco principais métodos de clustering incluem clustering difuso, clustering baseado em densidade, métodos de particionamento, clustering baseado em modelo e clustering hierárquico. Todos eles, de alguma forma, funcionam reunindo objetos em clusters ou grupos semelhantes. É uma técnica usada em muitos campos da ciência de dados e faz parte da mineração de dados, do reconhecimento de padrões e do aprendizado de máquina. Embora você possa usar o clustering em uma floresta aleatória, ele é uma técnica independente.

Os modelos de cluster são excelentes para se adaptar a novos exemplos, generalizando tamanhos e formas de cluster, e seus resultados fornecem informações valiosas sobre os dados.

No entanto, o clustering não lida bem com outliers e a distribuição não gaussiana. O clustering pode ter problemas de dimensionamento ao processar um grande número de amostras. Finalmente, o número de características pode ser alto, mais ainda do que o número de amostras.

Máquina de vetores de suporte (SVM)

As máquinas de vetores de suporte analisam dados, que são usados para análise de regressão e classificação. É um método de previsão robusto que cria modelos de forma confiável que categorizam pontos de dados. Esses modelos se baseiam na ideia de distância entre pontos, embora isso possa não ser significativo em todos os casos. Enquanto uma floresta aleatória informa a probabilidade de pertencer a uma classe em um problema de classificação, a máquina de vetores de suporte fornece uma distância para um limite; portanto, ainda requer uma conversão para torná-la uma probabilidade.

Rede Bayesiana

Uma rede Bayesiana é um modelo gráfico que mostra variáveis, dependências e probabilidades. Ela é usada para construir modelos a partir de dados, prever resultados, detectar anomalias, fornecer raciocínio, executar diagnósticos e auxiliar na tomada de decisões. As redes Bayesianas são generativas e modelam a distribuição de probabilidade de determinadas variáveis aleatórias. São mais adequadas para consultas complexas em variáveis aleatórias.

Florestas aleatórias são modelos descritivos e geralmente são usados para classificação. Se a causalidade for importante, então as redes Bayesianas podem ser mais adequadas do que as florestas aleatórias. Se o pool de dados for grande, florestas aleatórias são preferíveis.

Experimente TIBCO Spotfire - Teste Grátis
Experimente TIBCO Spotfire - Teste Grátis
O Spotfire possui ferramentas de floresta aleatória para permitir o aprendizado de máquina com árvore de decisão para classificação e regressão. Experimente gratuitamente hoje!

O futuro da floresta aleatória

Altamente eficaz, adaptável e ágil, a floresta aleatória é o modelo de aprendizado de máquina supervisionado preferido por muitos cientistas de dados. Ela oferece uma gama de benefícios que muitas alternativas não oferecem e fornece previsões e classificações precisas. No entanto, é em grande parte inexplicável e pode ser uma espécie de caixa-preta em termos de como os resultados são alcançados.

No futuro, é possível que a combinação da floresta aleatória clássica com outras estratégias torne as previsões mais precisas e otimize ainda mais os resultados. Além disso, o salto para o aprendizado de máquina explicável está se tornando mais uma realidade agora e pode ajudar a desvendar alguns dos mistérios das previsões de florestas aleatórias.