Machine Learning · Insper

Árvores de Decisão

Abordagem fundamental

Como uma árvore escolhe as perguntas, como responde e por que precisa ser parada

Vinte perguntas

Um bom jogador não pergunta "é o bule da minha avó?"; pergunta "é um ser vivo?": qualquer resposta elimina metade das possibilidades.

  • Uma árvore faz o mesmo com dados: cada nó pergunta atributo ≤ limiar?
  • Cada resposta manda o exemplo por um ramo; cada folha guarda uma previsão.
  • Aprender uma árvore é escolher as perguntas.
Uma boa pergunta é aquela cujas respostas deixam grupos mais puros — menos misturados — que o grupo de partida.

O caminho desta parte

  1. Medir a impurezavinte perguntas; Gini e entropia
  2. Achar o melhor cortetodo atributo, todo ponto médio, pontuado
  3. Crescer e preverrecursão gulosa; a folha guarda proporções
  4. Parar a temposobreajuste e pré-poda
  5. Ler as regrascada caminho é uma regra
Cada etapa responde a uma pergunta: o que torna uma pergunta boa? → qual pergunta o nó deve fazer? → como os cortes viram um modelo que responde? → quando a árvore deve parar de crescer? → o que a árvore nos diz?
Etapa 1 · o que torna uma pergunta boa?

12 clientes, uma pergunta

ABCDEFGHIJKL
tenure (meses)2356811141924303850
bill (R$)951206011045130701155512510065
churn110101000100

Cinco dos 12 cancelaram. Procure uma pergunta que separe quem cancelou dos demais.

Todo cliente que paga menos de R$ 75 ficou. O resto da aula transforma essa intuição num número, para que o computador encontre a pergunta sem olhar.

As partes de uma árvore

A árvore completa dos 12 clientes com raiz, nós internos, ramos, folhas e profundidade

Impureza: quão misturado está um nó?

Gini (CART)

\[ G = 1 - \sum_c p_c^2 \]

chance de dois exemplos sorteados serem de classes diferentes

Entropia (ID3, C4.5)

\[ H = -\sum_c p_c \log_2 p_c \]

bits para codificar a classe de um exemplo

As duas valem 0 num nó puro e são máximas em 50/50 (\(G = 0{,}5\), \(H = 1\)). Na raiz, 7 ficaram e 5 cancelaram:

\[ G = 1 - \left(\tfrac{7}{12}\right)^2 - \left(\tfrac{5}{12}\right)^2 = 0{,}486 \qquad H = 0{,}980 \]
Etapa 2 · qual pergunta o nó deve fazer?

A melhor pergunta: todos os cortes

Os 12 clientes na reta da conta, 11 limiares candidatos e o Gini ponderado de cada um
\[ \Delta = I(\text{pai}) - \tfrac{n_L}{n} I(L) - \tfrac{n_R}{n} I(R) \]

A conta do vencedor: bill ≤ 82,5

  • Esquerda: 5 ficaram, 0 cancelaram → Gini 0.
  • Direita: 2 ficaram, 5 cancelaram → \(G_R = 1 - (2/7)^2 - (5/7)^2 = 0{,}408\).
\[ \tfrac{5}{12}\cdot 0 + \tfrac{7}{12}\cdot 0{,}408 = 0{,}238 \qquad \Delta = 0{,}486 - 0{,}238 = 0{,}248 \]
  • Nenhum outro limiar de bill chega perto; o melhor de tenure (≤ 4) fica em 0,350.
  • Entre dois valores vizinhos, todo limiar dá o mesmo corte: o CART testa só os pontos médios.
DecisionTreeClassifier(max_depth=1) encontra o mesmo atributo, o mesmo limiar e os mesmos três Gini: 0,486, 0 e 0,408.
Etapa 3 · como os cortes viram um modelo que responde?

Guloso e recursivo


GROW(nó):
  se nó puro, profundidade máxima
  ou poucos exemplos: vira folha
  para cada atributo j e
  cada ponto médio t:
    pontue x_j ≤ t pela queda Δ
  aplique o melhor corte
  GROW(esquerdo); GROW(direito)
    
A árvore de profundidade 2 como partição do plano e como fluxograma
Recursivo: cada filho é o mesmo problema, menor. Guloso: o melhor corte agora, sem olhar adiante — a árvore ótima é NP-completa.

Prever é seguir um caminho; a folha guarda proporções

clientetenurebillfolhaP(fica)P(cancela)
M6705 ficaram · 0 cancelaram1,0000,000
N41150 · 40,0001,000
O251102 · 10,6670,333
predict_proba devolve as proporções de classe dos exemplos de treino da folha. Uma árvore com 3 folhas só produz 3 probabilidades distintas.

Crescida até a pureza

A árvore crescendo da profundidade 0 à 3, com acurácia de treino 7/12, 10/12, 11/12 e 12/12

O terceiro corte existe por causa de um cliente (J). 100% no treino, nada aprendido.

Simulador: uma árvore crescendo, um corte por vez

Preveja. Aumente a profundidade de 0 a 8. A impureza de treino chega a subir? Como ficam as regiões na profundidade 8?

Etapa 4 · quando a árvore deve parar de crescer?

Num conjunto real: uma árvore completa decora

Spambase: 4.207 e-mails (sem as 394 linhas duplicadas), 57 atributos.

restriçãotreinovalidaçãofolhas
nenhuma (até o fim)1,0000,906181
max_depth=30,8900,8808
max_depth=100,9670,91586
min_samples_leaf=500,9020,89230
max_leaf_nodes=400,9500,90640
Pré-poda: max_depth, min_samples_leaf, max_leaf_nodes. Com 40 folhas, a mesma validação da árvore de 181: as outras 140 só memorizavam.
Etapa 5 · o que a árvore nos diz?

Um caminho é uma regra

Árvore de profundidade 2 no Spambase (contagens: não spam, spam):

  • $ raro e remove raro → não é spam (1.770 contra 356)
  • $ raro, mas remove aparece → spam (211 contra 19)
  • $ frequente e hp raro → spam (687 contra 50)
  • $ frequente, mas hp aparece → não é spam (57 contra 5): os dados vêm da Hewlett-Packard
4 regras, 0,863 no teste, contra 0,923 da árvore completa com 221 folhas. A última regra é verdadeira neste conjunto e inútil fora dele — e só lendo você descobre.

Resumo

  1. Uma árvore faz perguntas atributo ≤ limiar, uma de cada vez; prever é seguir um caminho.
  2. Uma boa pergunta deixa os filhos mais puros: Gini ou entropia, ponderados.
  3. O melhor corte sai por força bruta: todos os atributos, todos os pontos médios.
  4. O crescimento é guloso e recursivo.
  5. Sem regra de parada, a árvore decora; a validação cruzada escolhe quanto segurá-la.
sintomao que fazer
treino 1,000, validação bem abaixolimitar profundidade ou tamanho de folha
árvore pequena quase tão boa quanto a grandeficar com a pequena: ela se lê
Lab fundamental · cerca de 30 min, em duplas

Uma chave para pinguins, passos 1 a 5

  • Palmer penguins: 344 aves, três espécies, medidas do bico e da nadadeira, massa, sexo e ilha.
  • Uma chave dicotômica de guia de campo é uma árvore de decisão escrita à mão: vamos construir uma e lê-la.
  • Notebook no Colab: nada para baixar. Salve uma cópia no seu Drive.
  • Em cada passo, responda o Preveja antes de rodar.
  • Simulações: a raiz, escolhida por você (passo 4) e uma árvore decora até rótulos aleatórios (passo 5).

Ritmo: passos 1 a 3 em 8 min; passo 4 e a primeira simulação em 12 min; passo 5 e a segunda em 10 min.