Esta unidade examina os seguintes tópicos:
- Interpretação de florestas aleatórias
- treinamento de florestas aleatórias
- prós e contras das florestas aleatórias
Interpretação de florestas aleatórias
As florestas aleatórias são mais complexas de interpretar do que as árvores de decisão. Florestas aleatórias contêm árvores de decisão treinadas com ruído aleatório. Portanto, é mais difícil fazer julgamentos sobre a estrutura da árvore de decisão. No entanto, podemos interpretar modelos de florestas aleatórias de algumas maneiras.
Uma abordagem para interpretar uma floresta aleatória é simplesmente treinar e interpretar uma árvore de decisão com o algoritmo CART. Como a floresta aleatória e a CART são treinadas com o mesmo algoritmo principal, elas "compartilham a mesma visualização global" do conjunto de dados. Essa opção funciona bem para conjuntos de dados simples e para entender a interpretação geral do modelo.
A importância das variáveis é outra boa abordagem de interpretabilidade. Por exemplo, a tabela a seguir classifica a importância variável de diferentes atributos para um modelo de floresta aleatória treinado no conjunto de dados do censo (também conhecido como Adult).
Tabela 8. Importância variável de 14 recursos diferentes.
Recurso | Soma da pontuação | Redução média na precisão | Redução média na AUC | Profundidade média mínima | Num nodes | Média de redução no PR-AUC | Num como raiz |
---|---|---|---|---|---|---|---|
relação | 4203592,6 |
0,0045 |
0,0172 |
4,970 |
57040 |
0,0093 |
1095 |
capital_gain | 3363045.1 |
0,0199 |
0,0194 |
2.852 |
56468 |
0,0655 |
457 |
marital_status | 3128996.3 |
0,0018 |
0,0230 |
6.633 |
52391 |
0,0107 |
750 |
idade | 2520658,8 |
0,0065 |
0,0074 |
4,969 |
356784 |
0,0033 |
200 |
education | 2015905.4 |
0,0018 |
-0,0080 |
5,266 |
115751 |
-0,0129 |
205 |
occupation | 1939409,3 |
0,0063 |
-0,0040 |
5,017 |
221935 |
-0,0060 |
62 |
education_num | 1673648,4 |
0,0023 |
-0,0066 |
6,009 |
58303 |
-0,0080 |
197 |
fnlwgt | 1564189.0 |
-0,0002 |
-0,0038 |
9,969 |
431987 |
-0,0049 |
0 |
hours_per_week | 1333976,3 |
0,0030 |
0,0007 |
6,393 |
206526 |
-0,0031 |
20 |
capital_loss | 866863,8 |
0,0060 |
0,0020 |
8,076 |
58531 |
0,0118 |
1 |
workclass | 644208.4 |
0,0025 |
-0,0019 |
9,898 |
132196 |
-0,0023 |
0 |
native_country | 538841.2 |
0,0001 |
-0,0016 |
9,434 |
67211 |
-0,0058 |
0 |
sex | 226049.3 |
0.0002 |
0.0002 |
10.911 |
37754 |
-0,0011 |
13 |
race | 168180.9 |
-0,0006 |
-0,0004 |
11,571 |
42262 |
-0,0031 |
0 |
Como você pode ver, diferentes definições de importância das variáveis têm escalas diferentes e podem levar a diferenças na classificação dos recursos.
As importâncias das variáveis que vêm da estrutura do modelo (por exemplo, pontuação da soma, profundidade mínima média, número de nós e número como raiz na tabela acima) são calculadas de maneira semelhante para árvores de decisão (consulte a seção "Carrinho | Importância das variáveis") e florestas aleatórias.
A importância da variável de permutação (por exemplo, a média de diminuição em {accuracy, auc, pr-auc} na tabela acima) são medidas independentes do modelo que podem ser computadas em qualquer modelo de aprendizado de máquina com um conjunto de dados de validação. No entanto, com a floresta aleatória, em vez de usar um conjunto de dados de validação, é possível calcular a importância da variável de permutação com a avaliação fora do saco.
SHAP (SHapley Additive exPlanations, em inglês) é um método independente de modelo para explicar previsões individuais ou interpretação de modelo. Consulte Interpretable Machine Learning (link em inglês) de Molnar para uma introdução à interpretação independente de modelo. O SHAP geralmente é caro para calcular, mas pode ser acelerado significativamente para florestas de decisão. Portanto, é uma boa maneira de interpretar florestas de decisão.
Exemplo de uso
Na lição anterior, treinamos uma árvore de decisão CART em um pequeno conjunto de dados
chamando tfdf.keras.CartModel
. Para treinar um modelo de floresta aleatória,
substitua tfdf.keras.CartModel
por tfdf.keras.RandomForestModel
:
model = tfdf.keras.RandomForestModel()
model.fit(tf_train_dataset)
Prós e contras
Esta seção contém um resumo rápido dos prós e contras das florestas aleatórias.
Vantagens:
- Assim como as árvores de decisão, as florestas aleatórias oferecem suporte a atributos numéricos e categóricos nativos e, geralmente, não precisam de pré-processamento de atributos.
- Como as árvores de decisão são independentes, as florestas aleatórias podem ser treinadas em paralelo. Consequentemente, é possível treinar florestas aleatórias rapidamente.
- Florestas aleatórias têm parâmetros padrão que geralmente produzem ótimos resultados. O ajuste desses parâmetros geralmente tem pouco efeito no modelo.
Desvantagens:
- Como as árvores de decisão não são podadas, elas podem ser grandes. Modelos com mais de 1 milhão de nós são comuns. O tamanho (e, portanto, a velocidade de inferência) da floresta aleatória às vezes pode ser um problema.
- Florestas aleatórias não podem aprender e reutilizar representações internas. Cada árvore de decisão (e cada ramo de cada árvore de decisão) precisa reaprender o padrão do conjunto de dados. Em alguns conjuntos de dados, principalmente em conjuntos não tabulares (por exemplo, imagem, texto), isso leva as florestas aleatórias a resultados piores do que outros métodos.