Florestas aleatórias
Uma floresta aleatória (RF, na sigla em inglês) é um conjunto de árvores de decisão em que cada árvore é treinada com um ruído aleatório específico. Florestas aleatórias são a forma mais conhecida de conjunto de árvores de decisão. Esta unidade aborda várias técnicas para criar árvores de decisão independentes e melhorar as chances de criar uma floresta aleatória eficaz.
Bagging
Bagging (bootstrap aggregating) significa treinar cada árvore de decisão em um subconjunto aleatório dos exemplos no conjunto de treinamento. Em outras palavras, cada árvore de decisão na floresta aleatória é treinada em um subconjunto diferente de exemplos.
A captura é peculiar. Cada árvore de decisão é treinada com o mesmo número de exemplos do conjunto de treinamento original. Por exemplo, se o conjunto de treinamento original tiver 60 exemplos, cada árvore de decisão será treinada com 60 exemplos. No entanto, o agrupamento treina apenas cada árvore de decisão em um subconjunto (normalmente, 67%) desses exemplos. Portanto, alguns desses 40 exemplos no subconjunto precisam ser reutilizados ao treinar uma determinada árvore de decisão. Essa reutilização é chamada de treinamento "com substituição".
Por exemplo, a Tabela 6 mostra como o agrupamento pode distribuir seis exemplos em três árvores de decisão. Confira se:
- Cada árvore de decisão é treinada com um total de seis exemplos.
- Cada árvore de decisão é treinada com um conjunto diferente de exemplos.
- Cada árvore de decisão reutiliza alguns exemplos. Por exemplo, o exemplo 4 é usado duas vezes no treinamento da árvore de decisão 1. Portanto, o peso aprendido do exemplo 4 é efetivamente duplicado na árvore de decisão 1.
Tabela 6. Agrupar seis exemplos de treinamento em três árvores de decisão. Cada número representa o número de vezes que um determinado exemplo de treinamento (1 a 6) é repetido no conjunto de dados de treinamento de uma determinada árvore de decisão (1 a 3).
exemplos de treinamento | ||||||
---|---|---|---|---|---|---|
#1 | #2 | #3 | #4 | #5 | #6 | |
conjunto de dados original | 1 | 1 | 1 | 1 | 1 | 1 |
árvore de decisão 1 | 1 | 1 | 0 | 2 | 1 | 1 |
árvore de decisão 2 | 3 | 0 | 1 | 0 | 2 | 0 |
árvore de decisão 3 | 0 | 1 | 3 | 1 | 0 | 1 |
No agrupamento, cada árvore de decisão é quase sempre treinada com o número total de exemplos no conjunto de treinamento original. Treinar cada árvore de decisão com mais exemplos ou menos exemplos tende a degradar a qualidade da floresta aleatória.
Embora não esteja presente no artigo original sobre florestas aleatórias, a amostragem de exemplos às vezes é feita "sem substituição", ou seja, um exemplo de treinamento não pode estar presente mais de uma vez em um conjunto de treinamento de árvore de decisão. Por exemplo, na tabela anterior, todos os valores seriam 0 ou 1.
bootstrap_training_dataset=False
Amostragem de atributos
A amostragem de atributos significa que, em vez de procurar a melhor condição em todos os recursos disponíveis, apenas um subconjunto aleatório de recursos é testado em cada nó. O conjunto de recursos testados é amostrado aleatoriamente em cada nó da árvore de decisão.
A árvore de decisão a seguir ilustra a amostragem de atributos / recursos. Aqui, uma árvore de decisão é treinada com cinco recursos (f1-f5). Os nós azuis representam os recursos testados, enquanto os brancos não são testados. A condição é criada com base nos recursos mais bem testados (representados com um contorno vermelho).
Figura 21. Amostragem de atributos.
A proporção da amostragem de atributos é um hiperparâmetro de regularização importante. A figura anterior usou uma proporção de ~⅗. Muitas implementações de floresta aleatória testam, por padrão, 1/3 dos recursos para regressão e sqrt(número de recursos) para classificação.
No TF-DF, os hiperparâmetros a seguir controlam a amostragem de atributos:
num_candidate_attributes
num_candidate_attributes_ratio
Por exemplo, se num_candidate_attributes_ratio=0.5
, metade dos recursos será
testada em cada nó.
Como desativar a regularização da árvore de decisão
As árvores de decisão individuais em uma floresta aleatória são treinadas sem poda. Consulte Overfitting e poda. Isso produz árvores muito complexas com baixa qualidade preditiva. Em vez de regularizar árvores individuais, elas são agrupadas para produzir previsões gerais mais precisas.
Esperamos que a precisão do treinamento e do teste de uma floresta aleatória seja diferente. A precisão de treinamento de uma floresta aleatória é geralmente muito maior (às vezes igual a 100%). No entanto, uma precisão de treinamento muito alta em uma floresta aleatória é normal e não indica que a floresta aleatória está superajustada.
As duas fontes de aleatoriedade (agrupamento e amostragem de atributos) garantem a independência relativa entre as árvores de decisão. Essa independência corrige o ajuste excessivo das árvores de decisão individuais. Consequentemente, o conjunto não é ajustado demais. Vamos ilustrar esse efeito não intuitivo na próxima unidade.
As florestas aleatórias puras são treinadas sem profundidade máxima ou número mínimo de observações por folha. Na prática, limitar a profundidade máxima e o número mínimo de observações por folha é benéfico. Por padrão, muitas florestas aleatórias usam os seguintes padrões:
- Profundidade máxima de ~16
- número mínimo de observações por folha de ~5.
É possível ajustar esses hiperparâmetros.
A clareza do ruído
Por que o ruído aleatório melhora a qualidade de uma floresta aleatória? Para ilustrar os benefícios do ruído aleatório, a Figura 22 mostra as previsões de uma árvore de decisão clássica (reduzida) e uma floresta aleatória treinada com alguns exemplos de problema bidimensional simples com um padrão de elipse.
Os padrões de elipses são notoriamente difíceis para algoritmos de árvores e florestas de decisão aprenderem com condições alinhadas ao eixo, por isso são um bom exemplo. A árvore de decisão podada não pode ter a mesma qualidade de previsão da floresta aleatória.
Figura 22. Informações empíricas x previsões geradas por uma única árvore de decisão podada e previsões geradas por uma floresta aleatória.
O próximo gráfico mostra as previsões das três primeiras árvores de decisão não podadas da floresta aleatória. Ou seja, as árvores de decisão são todas treinadas com uma combinação de:
- sacolas
- amostragem de atributos
- Desativar a poda
As previsões individuais dessas três árvores de decisão são piores do que as previsões da árvore de decisão podada na figura anterior. No entanto, como os erros das árvores de decisão individuais têm uma correlação fraca, as três árvores de decisão se combinam em um conjunto para criar previsões eficazes.
Figura 23. Três árvores de decisão não podadas que vão criar um conjunto eficaz.
Como as árvores de decisão de uma floresta aleatória não são podadas, o treinamento de uma floresta aleatória não requer um conjunto de dados de validação. Na prática, e especialmente em conjuntos de dados pequenos, os modelos precisam ser treinados com todos os dados disponíveis.
Ao treinar uma floresta aleatória, conforme mais árvores de decisão são adicionadas, o erro quase sempre diminui. Ou seja, a qualidade do modelo quase sempre melhora. Sim, adicionar mais árvores de decisão quase sempre reduz o erro da floresta aleatória. Em outras palavras, adicionar mais árvores de decisão não pode causar um ajuste excessivo da floresta aleatória. Em algum momento, o modelo para de melhorar. Leo Breiman disse: "As florestas aleatórias não se ajustam demais, à medida que mais árvores são adicionadas".
Por exemplo, o gráfico a seguir mostra a avaliação do teste de um modelo de floresta aleatória à medida que mais árvores de decisão são adicionadas. A precisão melhora rapidamente até atingir um patamar de cerca de 0,865. No entanto, adicionar mais árvores de decisão não diminui a precisão. Em outras palavras,o modelo não se ajusta demais. Esse comportamento é (quase) sempre verdadeiro e independente dos hiperparâmetros.
Figura 24. A precisão permanece constante à medida que mais árvores de decisão são adicionadas à floresta aleatória.