Machine Learning · Insper

Random Forest

Abordagem avançada

Onde a média para de ajudar, quais botões importam e como (não) ler uma floresta

O caminho desta parte

  1. Por que o voto funcionao júri de Condorcet; o piso ρσ², medido
  2. Ajustar o que importamax_features, min_samples_leaf, árvores suficientes
  3. Ler as importânciasviés da impureza, permutação, crédito dividido
  4. Variantes e limitesExtra-Trees, sem extrapolação, custo
Cada etapa responde a uma pergunta: quando o voto de muitos vence um só? → quais botões vale a pena ajustar? → quais atributos a floresta usa e dá para confiar na resposta? → o que uma floresta não faz e quanto ela custa?
Etapa 1 · quando o voto de muitos vence um só?

O júri de Condorcet (1785)

Cada jurado acerta com \(p = 0{,}6\), independentemente. Com três: \(0{,}6^3 + 3 \times 0{,}6^2 \times 0{,}4 = 0{,}648\).

votantes1111011.001
independentes (\(c = 0\))0,6010,7550,9801,000
copiam com prob. \(c = 0{,}1\)0,6010,7430,9170,998
copiam com prob. \(c = 0{,}3\)0,6010,6780,6180,597
Com \(c = 0{,}3\), a correlação entre dois votantes é só 0,09 — e um comitê de 1.001 acerta como um votante sozinho: o bloco que copia decide toda votação.

Por que o bagging só cortou pela metade

  • Uma árvore do bagging: variância \(\sigma^2 = 0{,}0937\).
  • Duas delas, no mesmo ponto: correlação \(\rho = 0{,}44\) — todas viram os mesmos 100 pontos, ruído incluído.
\[ \rho\sigma^2 + \frac{(1-\rho)\,\sigma^2}{100} = 0{,}44 \times 0{,}0937 + \frac{0{,}56 \times 0{,}0937}{100} = 0{,}0417 \]

Medido: 0,0413.

Quase toda a variância que resta é o piso \(\rho\sigma^2\). Mais árvores não ajudam; árvores menos correlacionadas ajudam — o trabalho de max_features.
Etapa 2 · quais botões vale a pena ajustar?

Hiperparâmetros: um de cada vez, nos dígitos

botãovalores (acurácia de CV)amplitude
n_estimators10: 0,941 · 100: 0,976 · 300: 0,9770,036
max_features1: 0,970 · sqrt: 0,977 · None: 0,9470,030
min_samples_leaf1: 0,977 · 10: 0,947 · 30: 0,9150,062
max_depth3: 0,888 · 10: 0,977 · None: 0,9770,089
criteriongini: 0,977 · entropy: 0,9790,002
Florestas querem árvores fundas. Ajuste max_features e min_samples_leaf; escolha "árvores suficientes" pela curva OOB; o resto quase não importa.
Etapa 3 · quais atributos a floresta usa e dá para confiar na resposta?

Importância por impureza: enviesada

Crédito alemão + duas colunas de puro ruído:

atributovalores distintosrank MDIrank permutação
credit_amount92118
random_id (ruído)1.000214
checking_status451
coin (ruído)21722
A MDI é medida nos dados de treino e premia colunas com muitos limiares, que ajustam ruído no fundo das árvores. Prefira a permutação em dados separados.

Atributos correlacionados dividem o crédito

MDIpermutação
checking_status, sozinho0,0860,144
checking_status, com uma gêmea0,0570,049
checking_copy0,0590,054
Embaralhar uma cópia deixa a outra fazer o trabalho. Um atributo que parece sem importância pode só ter um substituto: permute o grupo inteiro de uma vez.
Etapa 4 · o que uma floresta não faz e quanto ela custa?

Extra-Trees e o que uma floresta não faz

Extra-Trees

Limiares sorteados em vez de buscados; sem bootstrap. Nos dígitos: 0,981 contra 0,977 da floresta (empate), com o dobro de nós por árvore.

Sem extrapolação

Treinada em \(y = 3x\), \(0 \le x \le 10\): prevê 29,6 em \(x = 12\) e em \(x = 20\). O modelo linear: 59,7 (verdade: 60).

Toda previsão é uma média de alvos de treino: fora da faixa vista, a floresta fica plana.

O custo de uma floresta

dígitosacurácianóstamanho salvo
uma árvore0,8292930,04 MB
floresta, 300 árvores0,97798.69614,32 MB
floresta, folhas ≥ 30,97165.7549,57 MB
Bagging constrói árvores independentes, em paralelo e corta variância. O boosting (próxima aula) as constrói em sequência e corta viés.
Lab avançado · cerca de 30 min, em duplas

Ajustar, escolher o limiar e testar, passos 8 a 11

  • Mesmo notebook, mesma sessão: os passos usam X_train, y_train, cv, folds e roc_auc_score.
  • Ajustar max_features e min_samples_leaf; um limiar que manda no máximo 1% do e-mail legítimo para o spam, escolhido out-of-bag; o teste, uma vez; para onde a floresta olha.
  • Notebook no Colab, a partir do passo 8.
  • Simulações: a busca de graça, com o OOB (passo 8) e a importância de um par de gêmeas (passo 11).

Ritmo: passo 8 e a primeira simulação em 10 min; passos 9 e 10 em 10 min; passo 11 e a segunda em 10 min.