Árvore de decisão vs. floresta aleatória

Conteúdo

Uma analogia simples para explicar a árvore de decisão versus a floresta aleatória

Vamos começar com um experimento de pensamento que ilustrará a diferença entre uma árvore de decisão e um modelo florestal aleatório..

Suponha que um banco tenha que aprovar uma pequena quantia de empréstimo para um cliente e o banco precisa tomar uma decisão rapidamente.. O banco verifica o histórico de crédito da pessoa e a situação financeira e descobre que ainda não pagou o empréstimo anterior. Por tanto, O banco rejeita o pedido.

Mas aqui está o problema: O valor do empréstimo era muito pequeno para os imensos cofres do banco e eles poderiam facilmente tê-lo aprovado em uma extensão de risco muito baixo.. Portanto, O banco perdeu a oportunidade de ganhar algum dinheiro..

Agora, Outro pedido de empréstimo chegará em poucos dias, Mas desta vez o banco apresenta uma estratégia diferente: Múltiplos processos de tomada de decisão. As vezes, primeiro verificar histórico de crédito e, as vezes, Primeiro verifique a condição financeira do cliente e o valor do empréstimo. Mais tarde, O banco combina os resultados desses múltiplos processos de tomada de decisão e decide conceder o empréstimo ao cliente.

Mesmo que esse processo demorou mais do que o anterior, O banco se beneficiou desse método. Este é um exemplo clássico em que a tomada de decisões coletivas superou um único processo de tomada de decisão.. Agora, Aqui está minha pergunta para você.: Sabe o que esses dois processos representam??

featured_image-5499677

São árvores de decisão e uma floresta aleatória!! Vamos explorar essa ideia em detalhes aqui, Vamos aprofundar as principais diferenças entre esses dois métodos e responder à pergunta-chave.: Que algoritmo de aprendizagem de máquina devo usar?

Tabela de conteúdo

  1. Breve introdução às árvores de decisão
  2. Uma visão geral das florestas aleatórias
  3. Floresta aleatória e choque de árvore de decisão (Em código!)
  4. Por que a floresta aleatória superou uma árvore de decisão?
  5. Árvore de decisão vs. floresta aleatória: Quando você deve escolher qual algoritmo?

Breve introdução às árvores de decisão

Uma árvore de decisão é um algoritmo de aprendizagem de máquina supervisionado que pode ser usado para problemas de classificação e regressão.. Uma árvore de decisão é simplesmente uma série de decisões sequenciais que são tomadas para alcançar um resultado específico.. Aqui está uma ilustração de uma árvore de decisão em ação (Usando nosso exemplo acima):

rfc_vs_dt11-2312239

Vamos entender como essa árvore funciona..

Primeiro, Verifique se o cliente tem um bom histórico de crédito. Com base nisso, Classifique o cliente em dois grupos, quer dizer, clientes com bom histórico de crédito e clientes com histórico de crédito ruim. Mais tarde, Verifica a receita do cliente e novamente classifica-os em dois grupos. Finalmente, Verifique o valor do empréstimo solicitado pelo cliente. De acordo com os resultados da verificação dessas três características, A árvore de decisão decide se o empréstimo do cliente deve ou não ser aprovado.

Características / atributos e condições podem mudar dependendo dos dados e complexidade do problema, Mas a ideia geral permanece a mesma. Então, Uma árvore de decisão toma uma série de decisões baseadas em um conjunto de características / atributos presentes nos dados, que, neste caso, foram o histórico de crédito, renda e valor do empréstimo.

Agora, Você deve estar se perguntando:

Por que a decisão da árvore verificar o score de crédito primeiro, não renda?

Isso é conhecido como importância de recurso e a sequência de atributos a serem verificados é decidida com base em critérios como Índice de impureza de Gini o Ganho de informação. A explicação desses conceitos está além do escopo do nosso artigo aqui, Mas você pode conferir qualquer um dos recursos abaixo para saber tudo sobre árvores de decisão.:

Observação: A ideia por trás deste artigo é comparar árvores de decisão e florestas aleatórias.. Portanto, Eu não vou entrar em detalhes do básico, mas eu vou fornecer os links relevantes no caso de você querer explorar mais.

Uma visão geral da Floresta Aleatória

O algoritmo da árvore de decisão é bastante fácil de entender e interpretar. Mas muitas vezes, Uma única árvore não é suficiente para produzir resultados efetivos. É aqui que o algoritmo da Floresta Aleatória entra em jogo.

meme1-300x219-9214124

Random Forest é um algoritmo de aprendizagem de máquina baseado em árvores que aproveita o poder de múltiplas árvores de decisão para tomar decisões.. Como o nome sugere, É um “floresta” de árvores!

Mas, Por que chamamos de floresta? “aleatória”? Isso é porque é uma floresta de Árvores de decisão criadas aleatoriamente. Cada nó na árvore de decisão funciona em um subconjunto aleatório de recursos para calcular a saída. A floresta aleatória então combina a saída de árvores de decisão individuais para gerar a saída final..

Em palavras simples:

Algoritmo florestal aleatório combina saída de múltiplas árvores de decisão (aleatoriamente criado) Para gerar a saída final.

rfc_vs_dt1-1197889

Este processo de combinação da saída de vários modelos individuais (Também conhecidos como estudantes fracos) se chama Aprendizado conjunto. Se você quiser ler mais sobre como a floresta aleatória e outros algoritmos de aprendizado de conjunto funcionam, Veja os artigos a seguir:

Agora a questão é, Como podemos decidir qual algoritmo escolher entre uma árvore de decisão e uma floresta aleatória?? Vamos vê-los em ação antes de tirar conclusões precipitadas!!

Floresta aleatória e choque de árvore de decisão (Em código!)

Nesta secção, usaremos python para resolver um problema de classificação binária usando uma árvore de decisão e uma floresta aleatória. Então vamos comparar seus resultados e ver qual se adequa melhor ao nosso problema..

Nós vamos estar trabalhando no Conjunto de dados de previsão de empréstimos por DataPeaker Plataforma DataHack. Este é um problema de classificação binária onde temos que determinar se uma pessoa deve ou não receber um empréstimo com base em um determinado conjunto de características..

Observação: Você pode ir para o DataHack plataforma e competir com outras pessoas em várias competições de aprendizado de máquina online e ter a chance de ganhar prêmios emocionantes.

Pronto para codificar?

Paso 1: Carregar as bibliotecas e conjuntos de dados

Vamos começar importando as bibliotecas Python necessárias e nosso conjunto de dados.:

rfc_vs_dt2-9985018

O conjunto de dados consiste em 614 linhas e 13 caracteristicas, incluindo histórico de crédito, Estado civil, valor do empréstimo e gênero. Aqui, a variável de destino es Loan_Status, indicando se uma pessoa deve ou não receber um empréstimo.

Paso 2: pré-processamento de dados

Agora vem a parte mais crucial de qualquer projeto de ciência de dados: DPré-processamento ata e Engenharia Natural. Nesta secção, Vou lidar com as variáveis categóricas nos dados e também imputar os valores faltantes.

Vou imputar os valores perdidos nas variáveis categóricas com a moda, e para variáveis contínuas, com a média (para as respectivas colunas). O que mais, Vamos rotular codificando os valores categóricos nos dados. Você pode ler este artigo para saber mais sobre Codificação de rótulo.

rfc_vs_dt3-8777668

Paso 3: Criando suítes de teste e trens

Agora, Vamos dividir o conjunto de dados em um 80:20 Relacionamento para treinamento e testes, respectivamente:

Vamos dar uma olhada na forma do trem criado e conjuntos de testes:

rfc_vs_dt12-8100068

Excelente! Estamos prontos para a próxima etapa onde criaremos a árvore de decisão e modelos florestais aleatórios!!

Paso 4: Construção e avaliação do modelo

Uma vez que temos os conjuntos de treinamento e testes, É hora de treinar nossos modelos e classificar pedidos de empréstimo. Primeiro, Vamos treinar uma árvore de decisão neste conjunto de dados:

A seguir, vamos avaliar este modelo usando F1-Score. F1-Score é a média harmônica de precisão e recuperação dada pela fórmula:

rfc_vs_dt14-300x49-8808308

Você pode aprender mais sobre esta e outras métricas de avaliação aqui:

Vamos avaliar o desempenho do nosso modelo usando a pontuação da F1:

rfc_vs_dt15-8217328

rfc_vs_dt16-7652169

Aqui, Você pode ver que a árvore de decisão funciona bem na avaliação dentro da amostra, mas seu desempenho diminui drasticamente na avaliação fora da amostra. Por que acha que é esse o caso?? Infelizmente, Nosso modelo de árvore de decisão é superequipado para dados de treinamento. A floresta aleatória resolverá esse problema??

Construindo um modelo florestal aleatório

Vamos ver um modelo de floresta aleatória em ação:

rfc_vs_dt17-8735788

rfc_vs_dt18-6723471

Aqui, Podemos ver claramente que o modelo florestal aleatório teve um desempenho muito melhor do que a árvore de decisão na avaliação fora da amostra.. Vamos discutir as razões por trás disso na próxima seção..

Por que nosso modelo de floresta aleatória superou a árvore de decisão?

Floresta aleatória aproveita o poder de múltiplas árvores de decisão. Sim, é verdade. não dependem da importância do recurso dado por uma única árvore de decisão. Vamos dar uma olhada na importância do recurso dado por diferentes algoritmos para diferentes características.:

rfc_vs_dt19-7030045

Como você pode ver claramente no gráfico acima, O modelo de árvore de decisão coloca grande importância em um determinado conjunto de características. Mas a floresta aleatória escolhe características aleatoriamente durante o processo de treinamento.. Portanto, não depende muito de nenhum conjunto específico de recursos. Esta é uma característica especial da floresta aleatória em árvores ensacadas.. Você pode ler mais sobre o saco.Classificador de árvores ING aqui.

Portanto, A floresta aleatória pode generalizar os dados de uma maneira melhor. Esta seleção aleatória de características torna a floresta aleatória muito mais precisa do que uma árvore de decisão..

Então, Qual você deve escolher: Árvore de decisão ou floresta aleatória?

Random Forest é adequado para situações em que temos um grande conjunto de dados e a interpretabilidade não é uma grande preocupação..

Árvores de decisão são muito mais fáceis de interpretar e entender. Uma vez que uma floresta aleatória combina várias árvores de decisão, torna-se mais difícil de interpretar. Aqui está a boa notícia.: Não é impossível interpretar uma floresta aleatória. Aqui está um artigo que fala sobre interpretar os resultados de um modelo florestal aleatório:

O que mais, Random Forest tem um tempo de treinamento maior do que uma única árvore de decisão. Você precisa ter isso em mente, porque à medida que aumentamos o número de árvores em uma floresta aleatória, O tempo que leva para treinar cada um deles também aumenta. Isso muitas vezes pode ser crucial quando você está trabalhando com um prazo apertado em um projeto de aprendizado de máquina..

Mas eu vou dizer isso: apesar da instabilidade e dependência de um conjunto particular de características, Árvores de decisão são realmente úteis porque são mais fáceis de interpretar e mais rápidas de treinar. Qualquer pessoa com muito pouco conhecimento em ciência de dados também pode usar árvores de decisão para tomar decisões rápidas e baseadas em dados..

Notas finais

Isso é essencialmente o que você precisa saber na árvore de decisão versus o debate florestal aleatório.. Pode ficar complicado quando você é novo no aprendizado de máquina, Mas este artigo deveria ter esclarecido as diferenças e semelhanças para você..

Você pode me contatar com suas dúvidas e pensamentos na seção de comentários abaixo.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.