Machine Learning · Insper

Árvores de Decisão

Abordagem avançada

Onde as árvores brilham, onde falham e por que viram a matéria-prima dos ensembles

O caminho desta parte

  1. Medir o corteimpureza, não erros; variância na regressão
  2. Podar depois de crescerpoda por custo-complexidade e a escolha de α
  3. Encarar a instabilidadeuma pequena mudança nos dados, outra árvore
  4. Forças e limitesescala, escadas, NaN, importância
Cada etapa responde a uma pergunta: o que um corte deve medir? → quanto de uma árvore crescida vale manter? → quanto dá para confiar numa árvore só? → quando a árvore é a ferramenta certa?
Etapa 1 · o que um corte deve medir?

Por que não simplesmente contar erros?

Um pai com 8 negativos e 2 positivos, taxa de erro 0,20 e Gini 0,32, dividido em um filho com 5 negativos, erro 0 e Gini 0, e outro com 3 negativos e 2 positivos, erro 0,40 e Gini 0,48; cada filho pesa 5/10

Taxa de erro

fração fora da classe majoritária do nó

\[ 0{,}20 \;\to\; \tfrac{5}{10}\cdot 0 + \tfrac{5}{10}\cdot 0{,}40 = 0{,}20 \]

não se mexe: o corte parece inútil

Gini

\(1 - \sum_c p_c^2\), \(p_c\) = fração da classe \(c\) no nó

\[ 0{,}32 \;\to\; \tfrac{5}{10}\cdot 0 + \tfrac{5}{10}\cdot 0{,}48 = 0{,}24 \]

cai: um filho já está resolvido

Por que o Gini enxerga e o erro não

Entropia, Gini e taxa de erro em função da fração p de positivos; à direita, o pai em p = 0,2 e os filhos em p = 0 e 0,4: a média ponderada dos filhos fica sobre a reta do erro e abaixo da curva do Gini
  • \(p\) = fração de positivos no nó. ■ o pai na curva (\(p = 0{,}2\)); ● os filhos (\(p = 0\) e \(0{,}4\)); ○ a média ponderada dos filhos, no meio da corda tracejada.
  • A taxa de erro é uma reta até 0,5: a corda fica em cima dela e a queda é zero. O Gini é curvo (estritamente côncavo): a corda passa por baixo e a queda aparece.
Um critério côncavo recompensa o progresso antes de a previsão mudar. É o que faz a busca gulosa funcionar.

Árvores de regressão

A folha prevê a média do alvo; a impureza é o erro quadrático médio (MSE, mean squared error) em torno dela, a variância do alvo no nó: \( I = \frac{1}{n}\sum_{i} (y_i - \bar y)^2 \), com \(n\) apartamentos no nó e \(\bar y\) a média deles.

Oito apartamentos, aluguel contra área. Antes: uma só média, R$ 2,362 mil, resíduos longos, MSE 0,787. Depois do corte área ≤ 67,5: média 1,720 para os 5 pequenos e 3,433 para os 3 grandes, resíduos curtos, MSE ponderado 0,099
O corte é pontuado como antes, pela média ponderada dos filhos: 0,787 → 0,099. Uma pergunta remove 87% da variância (0,688 / 0,787). O mesmo algoritmo, outra impureza.

Uma escada que não extrapola

Em cima, a árvore de profundidade 3 com 8 folhas numeradas, de R$ 1,18 a R$ 3,87 mil. Embaixo, sua previsão contra a área: 8 degraus, um por folha, na mesma cor; acima de 116 m² tudo cai na folha 8 e a previsão fica plana em 3,87 enquanto os aluguéis novos sobem com a reta
Cada folha é um degrau. Acima de 116 m², tudo cai na folha 8: fora da faixa, o RMSE (raiz do erro quadrático médio) é 1,14, contra 0,22 da reta.
Etapa 2 · quanto de uma árvore crescida vale manter?

Pós-poda: o elo mais fraco, passo a passo

Cresça a árvore inteira e cobre \(\alpha\) por folha: \(R_\alpha(T) = R(T) + \alpha|T|\), com \(R(T)\) o Gini das folhas pesado pela fração de linhas. Colapsar \(t\) compensa quando \(\alpha \ge \alpha_{\text{ef}}(t) = \frac{R(t) - R(T_t)}{|T_t| - 1}\).

A poda no Spambase

Acurácia de treino e de validação por profundidade e por número de folhas na poda
  • Sem poda: 221 folhas, 0,906. Melhor \(\alpha\): 109 folhas, 0,915.
  • Regra de um erro padrão (Breiman et al., 1984): 57 folhas, 0,913 — um quarto da árvore.
A poda compra pouca acurácia aqui; seu trunfo é o tamanho: igualmente acurada e muito mais fácil de ler.
Etapa 3 · quanto dá para confiar numa árvore só?

Instabilidade: uma pequena mudança, outra árvore

Três árvores de reamostras bootstrap com fronteiras diferentes

50 reamostras bootstrap do Spambase:

  • a raiz muda: $ em 29, ! em 19, outras duas palavras uma vez cada;
  • 136 a 186 folhas;
  • acurácia 0,895 em média, mas duas árvores discordam em 11,8% dos e-mails.
Deixar as 50 votarem dá 0,950, melhor que a melhor árvore (0,919). A instabilidade é o defeito de uma árvore e a matéria-prima do ensemble.
Etapa 4 · quando a árvore é a ferramenta certa?

O que as árvores dispensam

Escalonamento

Um corte só usa a ordem. Padronizar: as mesmas previsões em 100% do teste. log1p: 99,3% (só os limiares entre valores mudam).

Interações

"O tempo de casa importa quando a conta é alta": a árvore diz isso aninhando perguntas, sem atributo-produto.

Imputação

Desde o scikit-learn 1.3, NaN entra direto: cada corte aprende para que lado mandar o faltante.

Categorias

O DecisionTreeClassifier ainda pede números: one-hot para poucas categorias.

Onde elas sofrem: diagonais viram escadas

Fronteira diagonal aproximada por degraus; logística e árvore com o atributo x2 − x1
16 folhas e 0,932 para o que a regressão logística diz com uma reta (0,985). Com o atributo \(x_2 - x_1\), 2 folhas e 1,000: engenharia de atributos ajuda uma árvore mais que qualquer hiperparâmetro.

Importância de atributos e seu viés

  • feature_importances_ soma a queda de impureza dos cortes de cada atributo, nos dados de treino.
  • Uma coluna de números aleatórios fica em 12º lugar entre 59, à frente de 46 atributos reais; uma moeda aleatória, em 41º.
  • Atributos com muitos valores oferecem muitos limiares; um deles separa algumas linhas ruidosas por acaso (Strobl et al., 2007).
Para medir importância de verdade: permutação em dados separados (próxima aula) ou SHAP (Explicabilidade).

Perfil prático

Pontos fortesregras legíveis; sem escalonamento; interações automáticas; aceita NaN; rápida
Pontos fracossobreajusta sem poda; instável; escadas para diagonais; não extrapola; importância enviesada; probabilidades grosseiras
Use quandoo modelo precisa ser lido, auditado ou aplicado à mão
Uma árvore, raramente; muitas árvores, o tempo todo: random forests (muitas árvores fundas, em média) e gradient boosting (muitas rasas, somadas).
Lab avançado · cerca de 35 min, em duplas

A chave final e o que ela vale, passos 6 a 10

  • Mesmo notebook, mesma sessão: os passos usam X, X_train, y_train, cv e cv_report.
  • Ajustar profundidade, folhas e poda; comparar com regressão logística e k-NN nos mesmos folds; testar uma vez; medir a estabilidade da chave.
  • Notebook no Colab, a partir do passo 6.
  • Simulações: dê a diagonal à árvore (passo 7) e bagging à mão (passo 10).

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