A 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:
- Amostragem dos dados para cada árvore;
- 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.
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.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 4.17
A 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:
- Amostragem dos dados para cada árvore;
- 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.
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.
Obrigado pelo seu feedback!