![]()
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.

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

Árvores de classificação
Árvores de regressão
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).

O critério é a utilidade do atributo para a classificação/regressão.
Inútil: mantém as mesmas proporções de classes em todas as partições.
Utilidade máxima: cada partição contém exemplos de uma só classe.
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\).

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)}}\]
| 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.
\[\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.
\[\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}\]
\[\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.
| 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.
Repare que Temperatura nem foi usada.
\[\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.
\[\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}}\]
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.

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ó.
| 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\)


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

Quando parar de dividir?

Sem restrições, a árvore cresce até decorar o treino — inclusive o ruído.
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.

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.
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.


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).
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.
Podando Umidade → acurácia na validação: 0,78
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.)
Método em duas etapas, mais complexo que a redução de erros — é o usado pelo CART.
\[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.

α grande → árvores pequenas (pouco ajuste); α pequeno → árvores grandes (overfitting). A validação escolhe o meio-termo.
| 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.
ID3
C4.5
\[\frac{\text{Ganho}}{-\sum_x \frac{\#Exs_x}{\#Exs}\log_2\frac{\#Exs_x}{\#Exs}}\]
CART
rpart, scikit-learn).

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.

