Árvores de Decisão

Prof. Letícia Raposo

CARACTERÍSTICAS O que é uma árvore de decisão?

  • Aprendizado supervisionado.
  • Usada principalmente em classificação (mas também em regressão).
  • Estratégia “dividir para conquistar”: o problema é quebrado em subproblemas menores.
  • Produz regras do tipo SE–ENTÃO.
  • Divide o espaço das variáveis em subespaços.
  • Abordagem “de cima para baixo” (top-down).
  • Gulosa: em cada passo, olha apenas para a melhor divisão atual.

CARACTERÍSTICAS Da probabilidade às regras

k-NN
decide por distância

Naïve Bayes
decide por probabilidade

Árvore de decisão
decide por perguntas

Em vez de medir distâncias ou multiplicar probabilidades, a árvore faz uma sequência de perguntas sobre as variáveis até chegar a uma resposta:

“O dia está ensolarado?” → “A umidade está alta?” → não jogar tênis.

É o primeiro modelo da sequência que pode ser lido diretamente como um conjunto de regras.

ESTRUTURA Representação de uma árvore de decisão

< a₂

> a₂

< a₄

> a₄

< a₁

> a₁

< a₃

> a₃

X₁ · raiz

X₂ · pai

X₂

4

X₁ · filho

1

2

5 · folha

3

  • Nó raiz: toda a amostra.
  • Nó de decisão: um teste sobre um atributo.
  • Folha (nó terminal): uma classe ou um valor contínuo.

Cada percurso da raiz até uma folha corresponde a uma regra.

ESTRUTURA A árvore divide o espaço em retângulos

  • As regiões são disjuntas (interseção vazia) e sua união é todo o espaço.
  • Atributos testados perto da raiz costumam ser os mais importantes.

ESTRUTURA Classificação × regressão

Árvores de classificação

  • Variável dependente categórica.
  • A folha prevê a moda: a classe mais frequente na região.

Árvores de regressão

  • Variável dependente contínua.
  • A folha prevê a média das respostas na região.

Folha com 7 Sim e 2 Não

prevê Sim (moda)

Folha com y = 30, 34, 38

prevê 34 (média)

CONSTRUÇÃO Como construir uma árvore de decisão

não: repetir
em cada filho

sim

Exemplos

① Escolher o
melhor atributo

② Dividir
em ramos

③ Parar?

Folha

Objetivo: uma sequência de divisões, de cima para baixo, até criar folhas em que as classes estão bem separadas (classificação) ou o erro quadrático médio é pequeno (regressão).

CONSTRUÇÃO O que é uma boa divisão?

O critério é a utilidade do atributo para a classificação/regressão.

10 Sim / 10 Não

5 Sim / 5 Não

5 Sim / 5 Não

Inútil: mantém as mesmas proporções de classes em todas as partições.

10 Sim / 10 Não

10 Sim / 0 Não

0 Sim / 10 Não

Utilidade máxima: cada partição contém exemplos de uma só classe.

MEDIDAS DE PARTIÇÃO Como medir a qualidade de uma divisão

  • A maioria dos algoritmos usa divisão univariável: cada nó interno testa um único atributo.
  • Os critérios se baseiam em medidas de impureza, distância e dependência.
  • Nem todas as variáveis precisam ser usadas — e uma mesma variável pode aparecer várias vezes, em níveis diferentes.

Medidas de partição

Classificação

Regressão

Ganho de informação
(entropia)

Índice Gini

SDR
redução do desvio-padrão

GANHO DE INFORMAÇÃO Entropia: quão misturado está um nó?

A entropia mede a aleatoriedade (o grau de impureza) da variável resposta:

\[\text{Entropia}(X) = -\sum_{i} p_i \log_2 p_i\]

em que \(p_i\) é a proporção de exemplos da classe \(i\).

  • 0 → nó puro (uma só classe).
  • Máxima (= 1, com duas classes) → nó heterogêneo (50% / 50%).
  • Convenção: \(\lim_{p \to 0^+} p \log p = 0\).

GANHO DE INFORMAÇÃO Ganho de informação

Dado um conjunto de exemplos, qual atributo escolher para realizar a partição?

O ganho de informação mede a redução da entropia causada pela partição dos exemplos segundo os valores do atributo:

\[\text{Ganho}(Exs, Atr) = \underbrace{\text{Entropia}(Exs)}_{\text{nó pai}} \;-\; \underbrace{\sum_{x \in P(Atr)} \frac{\#Exs_x}{\#Exs}\, \text{Entropia}(Exs_x)}_{\text{nós filhos (média ponderada)}}\]

  • \(P(Atr)\): valores que o atributo pode assumir; \(Exs_x\): exemplos em que \(Atr = x\).
  • Escolhemos o atributo de maior ganho: a construção de uma árvore de classificação é guiada pelo objetivo de diminuir a entropia.

EXEMPLO Jogar tênis: qual atributo vai na raiz?

Dia Aparência Jogar tênis
1 Ensolarado Não
2 Ensolarado Não
3 Nublado Sim
4 Chuva Sim
5 Chuva Sim
6 Chuva Não
7 Nublado Sim
8 Ensolarado Não
9 Ensolarado Sim
10 Chuva Sim
11 Ensolarado Sim
12 Nublado Sim
13 Nublado Sim
14 Chuva Não

Começamos pelo atributo Aparência:

Ensolarado Nublado Chuva
Sim 2 4 3
Não 3 0 2
Total 5 4 5

No total: 9 Sim e 5 Não.

EXEMPLO Passo 1: entropia do nó pai

Todos os 14 dias
9 Sim / 5 Não

\[\text{Entropia}(\text{Jogar}) = -\frac{5}{14}\log_2\frac{5}{14} - \frac{9}{14}\log_2\frac{9}{14} = 0{,}940\]

O nó raiz está bastante misturado — a entropia máxima, com duas classes, seria 1.

EXEMPLO Passo 2: entropia dos nós filhos

Ensolarado

Nublado

Chuva

9 Sim / 5 Não

2 Sim / 3 Não
entropia 0,971

4 Sim / 0 Não
entropia 0 (puro!)

3 Sim / 2 Não
entropia 0,971

\[\begin{aligned} &\tfrac{5}{14}\Big(-\tfrac{2}{5}\log_2\tfrac{2}{5}-\tfrac{3}{5}\log_2\tfrac{3}{5}\Big) + \tfrac{4}{14}\Big(-\tfrac{4}{4}\log_2\tfrac{4}{4}-\tfrac{0}{4}\log_2\tfrac{0}{4}\Big) \\ &+ \tfrac{5}{14}\Big(-\tfrac{3}{5}\log_2\tfrac{3}{5}-\tfrac{2}{5}\log_2\tfrac{2}{5}\Big) = 0{,}694 \end{aligned}\]

EXEMPLO Passo 3: ganho e escolha do atributo

\[\text{Ganho}(\text{Aparência}) = 0{,}940 - 0{,}694 = 0{,}247\]

Definido o atributo de maior ganho, ele inicia a partição. O processo se repete em cada nó filho até o fim da construção.

GANHO DE INFORMAÇÃO E os atributos numéricos?

  • O teste produz uma partição binária: valor \(<\) ponto de referência vs. valor \(\geq\) ponto de referência.
  • Como escolher o ponto de referência?
    1. Ordenar os exemplos pelo valor do atributo.
    2. Qualquer ponto entre dois valores consecutivos e diferentes pode ser candidato.
    3. É usual usar o valor médio entre eles.
    4. Calcular o ganho de cada candidato e ficar com o melhor.

Ordenar
64 · 65 · 68 · …

Candidatos
64,5 · 66,5 · …

Ganho de
cada um

Melhor
limiar

EXEMPLO Temperatura (°F)

Temperatura Jogar tênis
64 Sim
65 Não
68 Sim
69 Sim
70 Sim
71 Não
72 Não
72 Sim
75 Sim
75 Sim
80 Não
81 Sim
83 Sim
85 Não

Exemplo de candidato: Temperatura < 70,5

< 70,5 ≥ 70,5
Sim 4 5
Não 1 4

Ganho de 70,5: 0,045. Todos os candidatos são avaliados; vence o de maior ganho.

EXEMPLO A árvore final e suas regras

Ensolarado

Nublado

Chuva

Alta

Normal

Forte

Fraco

Aparência

Umidade

Jogar

Vento

Não jogar

Jogar

Não jogar

Jogar

  • SE Ensolarado E umidade Alta ENTÃO não jogar.
  • SE Ensolarado E umidade Normal ENTÃO jogar.
  • SE Nublado ENTÃO jogar.
  • SE Chuva E vento Forte ENTÃO não jogar.
  • SE Chuva E vento Fraco ENTÃO jogar.

Repare que Temperatura nem foi usada.

ÍNDICE GINI Índice Gini

  • Mede o grau de heterogeneidade dos dados → usado para medir a impureza de um nó:

\[\text{Gini} = 1 - \sum_{i=1}^{c} p_i^2\]

em que \(p_i\) é a frequência relativa de cada classe no nó e \(c\) é o número de classes.

  • Gini = 0 → nó puro. Quanto mais próximo de 1, mais impuro.
  • A qualidade de uma divisão é a redução do Gini:

\[\Delta\text{Gini}_{Atr} = \underbrace{\text{Gini}(Exs)}_{\text{nó pai}} - \underbrace{\sum_{x \in P(Atr)} \frac{\#Exs_x}{\#Exs}\,\text{Gini}(Exs_x)}_{\text{nós filhos}}\]

EXEMPLO Gini no exemplo do tênis

Nó pai:

\[\text{Gini}(Exs) = 1 - \left(\tfrac{5}{14}\right)^2 - \left(\tfrac{9}{14}\right)^2 = 0{,}4592\]

Nós filhos (Aparência):

\[\begin{aligned} &\tfrac{5}{14}\Big(1 - \big(\tfrac{2}{5}\big)^2 - \big(\tfrac{3}{5}\big)^2\Big) + \tfrac{4}{14}\Big(1 - \big(\tfrac{4}{4}\big)^2 - \big(\tfrac{0}{4}\big)^2\Big) \\ &+ \tfrac{5}{14}\Big(1 - \big(\tfrac{3}{5}\big)^2 - \big(\tfrac{2}{5}\big)^2\Big) = 0{,}3429 \end{aligned}\]

Redução:

\[\Delta\text{Gini}_{\text{Aparência}} = 0{,}4592 - 0{,}3429 = 0{,}1163\]

Para atributos numéricos, o procedimento é o mesmo do ganho de informação.

ÍNDICE GINI Entropia ou Gini?

  • As duas medidas quase sempre levam à mesma árvore.
  • O Gini é um pouco mais rápido de calcular (não usa logaritmo) — é o critério do CART.

REGRESSÃO SDR — Standard Deviation Reduction

Quando a resposta \(y\) é contínua, medimos a dispersão com o desvio-padrão:

\[sd(Exs) = \sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_i - \bar{y})^2}\]

O desvio-padrão dentro das partições é sempre menor ou igual ao de antes da divisão. Estimamos essa redução por

\[SDR_{Atr} = \underbrace{sd(Exs)}_{\text{nó pai}} - \underbrace{\sum_{x \in P(Atr)} \frac{\#Exs_x}{\#Exs}\, sd(Exs_x)}_{\text{nós filhos}}\]

O teste que provoca a maior redução no desvio-padrão é escolhido para o nó.

EXEMPLO SDR: horas jogadas

Dia Aparência Horas
1 Ensolarado 45
2 Ensolarado 52
3 Nublado 46
4 Chuva 25
5 Chuva 30
6 Chuva 35
7 Nublado 43
8 Ensolarado 23
9 Ensolarado 46
10 Chuva 38
11 Ensolarado 30
12 Nublado 52
13 Nublado 44
14 Chuva 48

\(sd(Exs) = 9{,}32 \quad (\bar{y} = 39{,}8)\)

\(\tfrac{5}{14}\,sd_{\text{chuva}} + \tfrac{4}{14}\,sd_{\text{nublado}} + \tfrac{5}{14}\,sd_{\text{sol}} = 7{,}66\)

\(SDR_{\text{Aparência}} = 9{,}32 - 7{,}66 = 1{,}66\)

EXEMPLO SDR para todos os atributos

  • Mesmos dias, outra resposta: a melhor divisão depende do alvo — Aparência era a melhor para jogar ou não, mas Temperatura é a melhor para quantas horas.

REGRESSÃO A árvore de regressão prevê em “degraus”

Quanto mais profunda a árvore, mais degraus — e mais perto de decorar os dados de treino.

PARADA Critérios de parada

Quando parar de dividir?

  • Número mínimo de observações em um nó para que ele possa ser dividido.
  • Número mínimo de observações em uma folha (nó terminal).
  • Profundidade máxima da árvore (profundidade vertical).
  • Número máximo de folhas (pode substituir a profundidade).
  • Medida de partição (ganho, redução do Gini, SDR) menor que um valor pré-definido.

PODA Por que árvores sem restrição sofrem overfitting?

Sem restrições, a árvore cresce até decorar o treino — inclusive o ruído.

PODA Por que podar? A visão gulosa

Relembrando: o algoritmo é guloso → escolhe a melhor divisão naquele instante e avança até que um critério de parada seja atingido.

Com critérios de parada, a árvore não vê o caminhão à frente e vira à esquerda de forma gananciosa. Com a poda, olhamos alguns passos à frente antes de decidir.

PODA Pré-poda × pós-poda

Métodos de poda detectam e excluem ramos e subárvores para melhorar a taxa de acerto em novos exemplos — e a árvore podada fica mais simples de interpretar.

Poda

Pré-poda
= critérios de parada
interrompe o crescimento

Pós-poda
cresce a árvore completa
e depois corta ramos

mais rápida, mas pode
parar cedo demais
(árvore subótima)

mais cara, mas em geral
mais eficiente

PÓS-PODA Métodos de pós-poda

A pós-poda busca o tamanho adequado da árvore depois que ela foi induzida por completo: avalia a confiabilidade de cada subárvore e poda os ramos não confiáveis.

  • Redução de erros (Reduced Error Pruning) ← veremos
  • Custo-complexidade (Cost-Complexity Pruning) ← veremos
  • Erro pessimista (Pessimistic Error Pruning)
  • Valor crítico (Critical Value Pruning)
  • Erro mínimo (Minimum Error Pruning)
  • Poda por estimativa de erro (Error-Based Pruning)

PÓS-PODA Redução de erros (Reduced Error Pruning)

Método simples e rápido, de orientação bottom-up. Antes de tudo, separamos o treino em crescimento (para construir a árvore) e validação (para decidir as podas).

sim

não

Árvore
completa

Testar a poda
de cada nó

Melhora a
validação?

Podar de vez
a melhor

Árvore
final

Testar a poda de um nó = trocar temporariamente a subárvore abaixo dele por uma folha com a classe majoritária e medir a acurácia na validação.

PÓS-PODA Redução de erros: exemplo

Ensolarado

Nublado

Chuva

Forte

Fraco

Aparência

Não jogar

Jogar

Vento

Não jogar

Jogar

Podando Umidade → acurácia na validação: 0,78

Ensolarado

Nublado

Chuva

Alta

Normal

Aparência

Umidade

Jogar

Jogar

Não jogar

Jogar

Podando Vento → acurácia na validação: 0,67

A poda de Umidade dá a maior acurácia e é mantida. O processo continua até que podar reduza a acurácia na validação. (Acurácias ilustrativas.)

PÓS-PODA Custo-complexidade

Método em duas etapas, mais complexo que a redução de erros — é o usado pelo CART.

T₀
árvore completa

T₁

T₂

…

Tₖ
só a raiz

  1. Constrói-se uma sequência de árvores cada vez menores, de \(T_0\) (sem poda) até \(T_K\) (só a raiz).
  2. Escolhe-se a melhor delas, pesando o erro e a complexidade (número de folhas \(|\tilde{T}|\)):

\[R_\alpha(T) = \underbrace{R(T)}_{\text{custo de erro}} + \underbrace{\alpha\,|\tilde{T}|}_{\text{complexidade}}, \qquad \alpha > 0\]

Para cada \(\alpha\), buscamos a subárvore \(T(\alpha) \preceq T_{max}\) que minimiza \(R_\alpha(T)\), avaliada na validação.

PÓS-PODA Escolhendo o tamanho da árvore

α grande → árvores pequenas (pouco ajuste); α pequeno → árvores grandes (overfitting). A validação escolhe o meio-termo.

ALGORITMOS Principais algoritmos

ID3 · 1986

C4.5 · 1993

C5.0

CART · 1984

ID3 C4.5 CART
Tarefas classificação classificação classificação e regressão
Critério de divisão ganho de informação razão de ganho índice Gini (SDR/variância na regressão)
Atributos contínuos não (discretizar antes) sim (limiar binário) sim
Valores desconhecidos não trata trata (“?”) trata
Divisões múltiplas múltiplas sempre binárias
Pós-poda não sim sim (custo-complexidade)

Dependendo do problema, um algoritmo pode ser mais eficiente que outro.

ALGORITMOS ID3, C4.5 e CART em detalhe

ID3

  • Pioneiro: recursivo e baseado em busca gulosa.
  • Só atributos categóricos não-ordinais.
  • Não trata valores desconhecidos → muito pré-processamento.
  • Sem pós-poda.

C4.5

  • Evolução do ID3.
  • Atributos categóricos (ordinais ou não) e contínuos.
  • Usa a razão de ganho, que penaliza atributos com muitos valores:

\[\frac{\text{Ganho}}{-\sum_x \frac{\#Exs_x}{\#Exs}\log_2\frac{\#Exs_x}{\#Exs}}\]

CART

  • Árvores sempre binárias (perguntas sim/não).
  • Expande a árvore exaustivamente e faz pós-poda por custo-complexidade.
  • Usa o índice Gini.
  • É o tipo de árvore mais comum (ex.: pacote rpart, scikit-learn).

USO PRÁTICO Vantagens

  • Fácil de entender.
  • Representação gráfica intuitiva.
  • Útil na exploração de dados.
  • Faz seleção de variáveis (só usa as que ajudam a dividir).
  • Sensibilidade reduzida a outliers.
  • Manipula variáveis numéricas e categóricas, sem precisar padronizar.
  • Método não paramétrico (não assume uma distribuição para os dados).

USO PRÁTICO Desvantagens

  • Overfitting: exige restrições nos parâmetros do modelo e poda.
  • Instabilidade: uma pequena mudança nos dados pode causar uma grande mudança na árvore final.
  • Menor acurácia que modelos mais complexos.
  • Fronteiras sempre paralelas aos eixos (regiões retangulares).

Próximos passos

Instabilidade e baixa acurácia motivam os comitês de árvores: bagging, random forest e boosting combinam muitas árvores para obter previsões mais estáveis.

Resumo

  • Algoritmo de aprendizado supervisionado, usado principalmente em classificação.
  • Funciona com variáveis de entrada e saída categóricas e contínuas.
  • Divide a amostra em conjuntos cada vez mais homogêneos, escolhendo em cada nó o atributo mais informativo (ganho de informação, Gini ou SDR).
  • Cresce de forma gulosa e precisa de critérios de parada e poda para evitar overfitting.
  • Tipo de árvore mais comum: CART.

Referências

  • BREIMAN, L.; FRIEDMAN, J.; OLSHEN, R.; STONE, C. Classification and Regression Trees. Wadsworth, 1984.
  • FACELI, K. et al. Inteligência Artificial: uma abordagem de aprendizado de máquina. Rio de Janeiro: LTC, 2011.
  • HASTIE, T.; TIBSHIRANI, R.; FRIEDMAN, J. The Elements of Statistical Learning. 2. ed. New York: Springer, 2009.
  • JAMES, G.; WITTEN, D.; HASTIE, T.; TIBSHIRANI, R. An Introduction to Statistical Learning. 2. ed. New York: Springer, 2021.
  • QUINLAN, J. R. C4.5: Programs for Machine Learning. Morgan Kaufmann, 1993.
  • WITTEN, I. H.; FRANK, E.; HALL, M. A. Data Mining: Practical Machine Learning Tools and Techniques. 3. ed. Morgan Kaufmann, 2011.