Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda A Aleatoriedade da Floresta | Random Forest
Classificação com Python

bookA Aleatoriedade da Floresta

Random Forest constrói um grande número de Árvores de Decisão - tipicamente em torno de 100 ou até mais. Criar tantas árvores diferentes não é fácil apenas ajustando configurações, então a aleatoriedade é introduzida para ajudar. Felizmente, Árvores de Decisão são muito sensíveis a pequenas mudanças nos dados e nas configurações, o que naturalmente leva a uma grande variedade de árvores na floresta.

Existem duas fontes de aleatoriedade em um Random Forest:

  1. Amostragem dos dados para cada árvore;
  2. Amostragem das variáveis em cada nó de decisão de cada árvore.

Amostragem dos Dados

Para criar um conjunto de treinamento diferente para cada Árvore de Decisão em uma floresta, utilizamos o método bootstrap (também conhecido como bagging). A ideia é amostrar, com reposição, um conjunto de dados do mesmo tamanho para cada árvore.

Por padrão, o tamanho do conjunto de dados de cada árvore corresponde ao tamanho do conjunto de dados original. A amostragem com reposição pode ser entendida como selecionar aleatoriamente um ponto de dados do conjunto de treinamento - semelhante a tirar uma carta de um baralho. No entanto, diferente do sorteio comum de cartas, cada ponto de dados selecionado não é removido, então o mesmo ponto pode ser escolhido várias vezes.

Cada árvore é treinada em um subconjunto diferente dos dados, o que já contribui para tornar as árvores diversas. Para adicionar ainda mais aleatoriedade e acelerar o treinamento, também é possível limitar o número de variáveis que cada árvore considera ao realizar divisões.

Amostragem das Variáveis

Em uma Árvore de Decisão padrão, cada nó examina todas as variáveis disponíveis para encontrar a melhor divisão - geralmente calculando métricas como a impureza de Gini. Esse processo é computacionalmente custoso.

Em uma Random Forest, apenas um subconjunto aleatório de variáveis é considerado em cada nó. Isso acelera o treinamento e adiciona aleatoriedade, o que ajuda a tornar as árvores mais diversas. Uma abordagem comum é usar a raiz quadrada do número total de variáveis. Por exemplo, se houver 9 variáveis, 3 podem ser escolhidas aleatoriamente em cada nó; se houver 10.000 variáveis, cerca de 100 podem ser selecionadas.

As variáveis são amostradas sem reposição, então a mesma variável não aparecerá mais de uma vez em um único nó. O número de variáveis a considerar pode ser ajustado dependendo do caso de uso.

É possível controlar quantas variáveis são consideradas em cada nó de decisão utilizando o parâmetro max_features na implementação do scikit-learn. Veja algumas opções populares:

  • max_features='sqrt': utiliza a raiz quadrada do número total de variáveis. Este é um padrão comum que equilibra precisão e eficiência;
  • max_features='log2': utiliza o logaritmo de base 2 do número total de variáveis, oferecendo ainda mais aleatoriedade;
  • max_features=0.1: utiliza 10% das variáveis, onde o valor é tratado como uma proporção.
Note
Nota

Também é possível definir max_features para qualquer proporção entre 0 e 1 (por exemplo, max_features=0.1 utiliza 10% das variáveis).

Em resumo, uma Random Forest é projetada para que cada árvore seja treinada com uma amostra diferente dos dados, e cada nó de decisão dentro dessas árvores considere um subconjunto aleatório diferente de características. Essa aleatoriedade incorporada resulta em uma coleção diversificada de árvores, o que melhora o desempenho geral do modelo.

question mark

O que nos ajuda a alcançar a aleatoriedade em uma Random Forest? Selecione todas as opções corretas.

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 2

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 4.17

bookA Aleatoriedade da Floresta

Deslize para mostrar o menu

Random Forest constrói um grande número de Árvores de Decisão - tipicamente em torno de 100 ou até mais. Criar tantas árvores diferentes não é fácil apenas ajustando configurações, então a aleatoriedade é introduzida para ajudar. Felizmente, Árvores de Decisão são muito sensíveis a pequenas mudanças nos dados e nas configurações, o que naturalmente leva a uma grande variedade de árvores na floresta.

Existem duas fontes de aleatoriedade em um Random Forest:

  1. Amostragem dos dados para cada árvore;
  2. Amostragem das variáveis em cada nó de decisão de cada árvore.

Amostragem dos Dados

Para criar um conjunto de treinamento diferente para cada Árvore de Decisão em uma floresta, utilizamos o método bootstrap (também conhecido como bagging). A ideia é amostrar, com reposição, um conjunto de dados do mesmo tamanho para cada árvore.

Por padrão, o tamanho do conjunto de dados de cada árvore corresponde ao tamanho do conjunto de dados original. A amostragem com reposição pode ser entendida como selecionar aleatoriamente um ponto de dados do conjunto de treinamento - semelhante a tirar uma carta de um baralho. No entanto, diferente do sorteio comum de cartas, cada ponto de dados selecionado não é removido, então o mesmo ponto pode ser escolhido várias vezes.

Cada árvore é treinada em um subconjunto diferente dos dados, o que já contribui para tornar as árvores diversas. Para adicionar ainda mais aleatoriedade e acelerar o treinamento, também é possível limitar o número de variáveis que cada árvore considera ao realizar divisões.

Amostragem das Variáveis

Em uma Árvore de Decisão padrão, cada nó examina todas as variáveis disponíveis para encontrar a melhor divisão - geralmente calculando métricas como a impureza de Gini. Esse processo é computacionalmente custoso.

Em uma Random Forest, apenas um subconjunto aleatório de variáveis é considerado em cada nó. Isso acelera o treinamento e adiciona aleatoriedade, o que ajuda a tornar as árvores mais diversas. Uma abordagem comum é usar a raiz quadrada do número total de variáveis. Por exemplo, se houver 9 variáveis, 3 podem ser escolhidas aleatoriamente em cada nó; se houver 10.000 variáveis, cerca de 100 podem ser selecionadas.

As variáveis são amostradas sem reposição, então a mesma variável não aparecerá mais de uma vez em um único nó. O número de variáveis a considerar pode ser ajustado dependendo do caso de uso.

É possível controlar quantas variáveis são consideradas em cada nó de decisão utilizando o parâmetro max_features na implementação do scikit-learn. Veja algumas opções populares:

  • max_features='sqrt': utiliza a raiz quadrada do número total de variáveis. Este é um padrão comum que equilibra precisão e eficiência;
  • max_features='log2': utiliza o logaritmo de base 2 do número total de variáveis, oferecendo ainda mais aleatoriedade;
  • max_features=0.1: utiliza 10% das variáveis, onde o valor é tratado como uma proporção.
Note
Nota

Também é possível definir max_features para qualquer proporção entre 0 e 1 (por exemplo, max_features=0.1 utiliza 10% das variáveis).

Em resumo, uma Random Forest é projetada para que cada árvore seja treinada com uma amostra diferente dos dados, e cada nó de decisão dentro dessas árvores considere um subconjunto aleatório diferente de características. Essa aleatoriedade incorporada resulta em uma coleção diversificada de árvores, o que melhora o desempenho geral do modelo.

question mark

O que nos ajuda a alcançar a aleatoriedade em uma Random Forest? Selecione todas as opções corretas.

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 2
some-alt