SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
31/3/2009
1
SCC5871 – Introdução ao
Aprendizado de Máquina
Aula 5 – Classificação: Árvores de
Decisão e Bias Indutivo
Prof. Ricardo J. G. B. Campello
PPG-CCMC / ICMC / USP
2
Créditos
O material a seguir consiste de adaptações e extensões
dos originais:
gentilmente cedidos pelo Prof. André C. P. L. F. de Carvalho
de (Tan et al., 2006)
0 1 1 0 0 1 1 0
1 1 0 0 1 0 0 1
0 1 1 0 1 1 1 1
1 0 1 0 0 1 0 0
31/3/2009
2
3
Aula de Hoje
Introdução
Algoritmo Básico de Hunt
Medidas para Escolha de Atributos
Divisão de Atributos de Diferentes Tipos
Regras de Decisão
Espaço de Hipóteses e Bias Indutivo
Overfitting e Simplificação de ADs
Características de ADs
4
Introdução
Árvores de Decisão (ADs) são algoritmos de
classificação e tomada de decisão que utilizam a
estratégia de divisão e conquista
Divide problemas difíceis em problemas mais simples
Problema complexo é decomposto em sub-problemas menores
Estratégia é aplicada recursivamente a cada subproblema
31/3/2009
3
5
Árvores de Decisão
Uma das técnicas de classificação mais utilizadas
Eficaz, eficiente e produz modelos interpretáveis
Árvore é composta por:
Nó raiz
Nenhuma aresta de entrada e n ≥ 0 arestas de saída
Nós intermediários
1 aresta de entrada e n > 1 arestas de saída
Nós folhas (terminais)
1 aresta de entrada e nenhuma aresta de saída
6
Exemplo Simples
SorriSorri
Segura
nãosim
espada bandeira
Inimigo Amigo
Inimigo
31/3/2009
4
7
Outro Exemplo Simples
a
0 1
1b
0 1
10
a OR b
a b a v b
0 0 0
0 1 1
1 0 1
1 1 1
8
Exercício
Encontrar árvore de decisão para:
A AND b
A XOR b
(a AND b) OR (b AND c)
31/3/2009
5
9
Exemplo de AD
Credor
Estado
Renda
SimNão
Não
Não
Sim Não
CasadoSolteiro, Divorciado
< 80K > 80K
Atributos de Decisão
Modelo: Árvore de DecisãoDados de Treinamento
Id É
Credor
Estado
Civil
Salário Calote
1 Sim Solteiro 125K Não
2 Não Casado 100K Não
3 Não Solteiro 70K Não
4 Sim Casado 120K Não
5 Não Divorciado 95K Sim
6 Não Casado 60K Não
7 Sim Divorciado 220K Não
8 Não Solteiro 85K Sim
9 Não Casado 75K Não
10 Não Solteiro 90K Sim
10
Outro Exemplo de AD
Estado
Credor
Renda
SimNão
Não
Não
Sim Não
Casado Solteiro, Divorciado
< 80K > 80K
Diferentes árvores podem ser ajustadas
para os mesmos dados !
Id É
Credor
Estado
Civil
Salário Calote
1 Sim Solteiro 125K Não
2 Não Casado 100K Não
3 Não Solteiro 70K Não
4 Sim Casado 120K Não
5 Não Divorciado 95K Sim
6 Não Casado 60K Não
7 Sim Divorciado 220K Não
8 Não Solteiro 85K Sim
9 Não Casado 75K Não
10 Não Solteiro 90K Sim
31/3/2009
6
11
Treinamento e Teste
Indução
Dedução
Modelo
Algoritmo de
indução de árvore
Aprendizado
Teste
Conjunto de
treinamento
Conjunto de
teste
Id É
Credor
Estado
Civil
Salário Calote
11 Não Casado 80K ?
12 Não Solteiro 100K ?
13 Sim Solteiro 100K ?
14 Não Casado 120K ?
15 Sim Solteiro 80K ?
Id É
Credor
Estado
Civil
Salário Calote
1 Sim Solteiro 125K Não
2 Não Casado 100K Não
3 Não Solteiro 70K Não
4 Sim Casado 120K Não
5 Não Divorciado 95K Sim
6 Não Casado 60K Não
7 Sim Divorciado 220K Não
8 Não Solteiro 85K Sim
9 Não Casado 75K Não
10 Não Solteiro 90K Sim
12
Classificação de Novos Dados
Credor
Estado
Salário
SimNão
Não
Não
Sim Não
CasadoSolteiro, Divorciado
< 80K > 80K
Dados de TesteComeçar da Raiz
Id Credor Estado
Civil
Salário Calote
11 Não Casado 80K ???
31/3/2009
7
13
Classificação de Novos Dados
Credor
Estado
Salário
SimNão
Não
Não
Sim Não
CasadoSolteiro, Divorciado
< 80K > 80K
Id Credor Estado
Civil
Salário Calote
11 Não Casado 80K ???
Dados de Teste
14
Classificação de Novos Dados
Credor
Estado
Salário
SimNão
Não
Não
Sim Não
CasadoSolteiro, Divorciado
< 80K > 80K
Id Credor Estado
Civil
Salário Calote
11 Não Casado 80K ???
Dados de Teste
31/3/2009
8
15
Classificação de Novos Dados
Credor
Estado
Salário
SimNão
Não
Não
Sim Não
CasadoSolteiro, Divorciado
< 80K > 80K
Atribui classe Não
Id Credor Estado
Civil
Salário Calote
11 Não Casado 80K ???
Dados de Teste
16
Indução de ADs
Existem vários algoritmos
Hunt’s Concept Learning System
Um dos primeiros
Base de vários algoritmos atuais
ID3, C4.5, J4.8, C5.0
CART, Random-Forest
...
31/3/2009
9
17
Algoritmo de Hunt
Seja Dt o conjunto de objetos que atingem o nó t
porque ainda não foram classificados em um nó folha acima na árvore
Algoritmo Rudimentar:
Passo 1. Se todos os objetos de Dt pertencem à mesma classe ct,
então t é um nó folha rotulado como ct
Passo 2. Se Dt contém objetos que pertencem a mais de uma classe,
então t deve ser um nó interno
Passo 2.1. O nó deve conter uma condição de teste sobre algum dos
atributos que não houverem sido selecionados acima na árvore
Passo 2.2. Um nó filho é criado para cada possível saída da condição de
teste (valor do atributo) e os objetos em Dt são distribuídos neles
Passo 2.3. O algoritmo é aplicado recursivamente para cada nó filho
18
Algoritmo de Hunt
Dt = {1, …, 10}
?
Id Crédito Estado
Civil
Renda Deve
1 Sim Solteiro 125K Não
2 Não Casado 100K Não
3 Não Solteiro 70K Não
4 Sim Casado 120K Não
5 Não Divorciado 95K Sim
6 Não Casado 60K Não
7 Sim Divorciado 220K Não
8 Não Solteiro 85K Sim
9 Não Casado 75K Não
10 Não Solteiro 90K Sim
31/3/2009
10
19
Algoritmo de Hunt
crédito
Sim Não
Id Crédito Estado
Civil
Renda Deve
1 Sim Solteiro 125K Não
2 Não Casado 100K Não
3 Não Solteiro 70K Não
4 Sim Casado 120K Não
5 Não Divorciado 95K Sim
6 Não Casado 60K Não
7 Sim Divorciado 220K Não
8 Não Solteiro 85K Sim
9 Não Casado 75K Não
10 Não Solteiro 90K Sim
Dt = {1,4,7} Dt = {2,3,5,6,8,9,10}
Não ?
20
Algoritmo de Hunt
crédito
EstadoNão
Não
Sim Não
CasadoSolteiro, Divorciado
?
crédito
Sim Não
Dt = {1,4,7} Dt = {2,3,5,6,8,9,10}
Não ?
Id Crédito Estado
Civil
Renda Deve
1 Sim Solteiro 125K Não
2 Não Casado 100K Não
3 Não Solteiro 70K Não
4 Sim Casado 120K Não
5 Não Divorciado 95K Sim
6 Não Casado 60K Não
7 Sim Divorciado 220K Não
8 Não Solteiro 85K Sim
9 Não Casado 75K Não
10 Não Solteiro 90K Sim
Dt = {3,5,8,10}
Dt = {1,4,7}
Dt = {2,6,9}
31/3/2009
11
21
Algoritmo
de Hunt
crédito
Estado
Renda
SimNão
Não
Não
Sim Não
CasadoSolteiro, Divorciado
< 80K > 80K
Id Crédito Estado
Civil
Renda Deve
1 Sim Solteiro 125K Não
2 Não Casado 100K Não
3 Não Solteiro 70K Não
4 Sim Casado 120K Não
5 Não Divorciado 95K Sim
6 Não Casado 60K Não
7 Sim Divorciado 220K Não
8 Não Solteiro 85K Sim
9 Não Casado 75K Não
10 Não Solteiro 90K Sim
crédito
EstadoNão
Não
Sim Não
CasadoSolteiro, Divorciado
?
Dt = {3,5,8,10} Dt = {2,6,9}
Dt = {1,4,7}
Dt = {3}
Dt = {1,4,7}
Dt = {5,8,10}
Dt = {2,6,9}
22
Algoritmo de Hunt
Problema: o algoritmo rudimentar apresentado
anteriormente funciona apenas se:
1. Houver ao menos um objeto para cada combinação possível
dos valores dos atributos preditores; e
2. Havendo mais de um, devem pertencer todos à mesma classe
Solução (dada que essas hipóteses são muito restritivas):
Se Dt for vazio para um determinado nó t, rotular o nó com a
classe majoritária dos objetos do nó pai
Se Dt for composto de objetos pertencentes a classes distintas
em um dado nó t e não há mais atributos disponíveis, rotular o
nó com a classe majoritária desses objetos
31/3/2009
12
23
Critério de Parada
Indução da árvore pode ser finalizada quando:
Quando os dados do nó atual têm o mesmo rótulo
Quando os dados do nó atual têm os mesmos valores
para os atributos de entrada
Mas rótulos de classes diferentes
Todos os atributos já foram incluídos no caminho
24
Indução de ADs
Geralmente usa estratégia gulosa
Divide progressivamente objetos com base em uma
condição de teste sobre os valores de um atributo
escolhido para maximizar ou minimizar algum critério
Decisões importantes
Como dividir os objetos
Como escolher o atributo de divisão
Qual a melhor divisão para aquele atributo
Quando parar de dividir os objetos
31/3/2009
13
25
Condição de Teste
Depende do tipo do atributo
Binário
Nominal
Ordinal
Contínuo
Depende do número de divisões
2 divisões
Mais que 2 divisões
26
Atributos Binários
Teste mais simples
Apenas dois possíveis resultados
Universidade
Pública Privada
31/3/2009
14
27
Atributos Nominais
Pode assumir mais que dois valores
Duas formas de condição de teste
Usar tantos ramos quantos forem os
possíveis valores do atributo
Unir valores em cada ramo
disjunção lógica
28
Atributos Nominais
Tipo de carro
{Esporte, Família} Luxo
Tipo de carro
{Esporte, Luxo} Família
...
Tipo de carro
Esporte Familia Luxo
31/3/2009
15
29
Atributos Ordinais
Duas alternativas
Usar tantos ramos quantos forem os
possíveis valores do atributo
Unir valores em cada ramo
sem violar relação de ordem
Refrigerante
{Pequeno, Médio} {Grande, Gigante}
30
Atributos Contínuos
Condição de teste pode ser expressa por:
Comparação: Ai < x
Escolher valor x de Ai que gera melhor divisão
Ponto de referência
Consultas sobre intervalos: x < Ai < y
Usar estratégia de discretização
31/3/2009
16
31
Atributos Contínuos
Peso < 60 Kg
Não Sim
Peso
< 10Kg {50Kg, 70Kg} {70Kg, 80Kg} > 90Kg
32
Atributos
Contínuos
Consultas sobre Intervalos: x < Ai < y
Vantagem:
Com a discretização, o atributo pode ser manipulado pelo
algoritmo como um atributo nominal qualquer
não requer modificações no algoritmo básico de indução de ADs
Desvantagens:
Tenta esgotar a capacidade de divisão do atributo de uma vez
Tende a gerar muitos ramos desnecessários na árvore
antes que parte dos objetos do nó da árvore em questão possam ser
melhor pré-classificados por outro atributo
Qual o número ideal de intervalos...???
Peso
< 10Kg {50Kg, 70Kg} {70Kg, 80Kg} > 90Kg
31/3/2009
17
33
Atributos
Contínuos
Qual seria uma boa discretização supervisionada dos
dados abaixo para cada atributo separadamente ?
Quantos intervalos são necessários para obter o máximo grau
possível de pureza de classe(s) dentro de cada intervalo ?
Peso
< 10Kg {50Kg, 70Kg} {70Kg, 80Kg} > 90Kg
Sim
Não
Idade
34
Atributos
Contínuos
Comparações: Ai < x
Atributo não é removido do conjunto de candidatos à divisão
Pode gerar ramos mais profundos (regras mais complexas)
requer modificações no algoritmo básico de indução, em especial no
que diz respeito à interrupção ou poda da árvore (p. ex. algo. C4.5)
Porém:
escolha do atributo e do valor de comparação é “por demanda”
árvore mais flexível ⇒ maior poder de discriminação
escolha do atributo e do valor de comparação é muito mais simples
1 ponto de discretização ⇒ no. fixo de intervalos = 2
tendência a minimizar a largura da árvore
Peso < 60 Kg
Não Sim
31/3/2009
18
35
Sim
Não
Idade
Idade < 25
Sim Não
Sim Renda > 1k
Sim Não
SimIdade > 45
Sim Não
Sim
Renda > 5k
Sim Não
Sim Não
Atributos
Contínuos
Peso < 60 Kg
Não Sim
36
Medidas para Escolha de Atributo
Existem várias medidas para determinar a
melhor forma de dividir os objetos
Medidas de impureza
Definidas em termos da distribuição de classes dos
dados antes e após a divisão
Baseadas na idéia que:
Quanto mais balanceadas as classes em uma partição, pior
A partição mais útil é aquela em que todos os exemplos
pertencem a uma mesma classe
31/3/2009
19
37
Medidas para Escolha de Atributo
38
Medidas para Escolha de Atributo
Medidas diferentes geram partições
diferentes dos dados
Exemplos de medidas de impureza
Entropia
Gini
Erro de classificação
Qui-quadrado
31/3/2009
20
39
Medidas para Escolha de Atributo
Supor que D possui antes da divisão:
10 exemplos da classe 0 (C0: 10)
10 exemplos da classe 1 (C1: 10)
C0: 6
C1: 4
C0: 4
C1: 6
C0: 1
C1: 3
C0: 8
C1: 0
C0: 1
C1: 7
C0: 1
C1: 0
C0: 1
C1: 0
C0: 0
C1: 1
...C0: 0
C1: 1
...
Sexo Carro Identidade
M F Família Esporte Luxo i1 i12 i13 i20
Qual o melhor
atributo para
iniciar divisão?
40
Medidas para Escolha de Atributo
Abordagem gulosa
Prefere nós com distribuição mais
homogênea (pura) de classes
Necessário uma medida de (im)pureza
Muito heterogênea
Alto grau de impureza
Muito homogênea
Baixo grau de impureza
31/3/2009
21
41
Medidas para Escolha de Atributo
∑=
−=
c
i
tiptipt
1
2 )|(log)|()(Entropia
[ ]∑=
−=
c
i
tipt
1
2
)|(1)(Gini_Index
[ ])|(max1)(Erro_Class
},...,1{
tipt
ci∈
−=
onde:
p(i|t) = fração de dados pertencente à classe i em um nó t
c = número de classes
0 log2 0 = 0
42
Comparação: Duas Classes
Erro de classificação
31/3/2009
22
43
Comparação
Valor máximo:
Entropia: (log2 c)
Gini e Erro de classificação: (1 – 1/c)
Quando os dados estão igualmente distribuídos
entre todas as classes
Informação menos interessante (menos informação)
Valor mínimo: 0 (para todos)
Quando todos os dados pertencem a uma classe
Informação mais interessante
44
Exemplo
Calcular a medida de impureza Gini
para os dados abaixo
C1 0
C2 6
Gini=?
C1 2
C2 4
Gini=?
C1 3
C2 3
Gini=?
C1 1
C2 5
Gini=?
[ ]∑=
−=
c
i
tipt
1
2
)|(1)(Gini_Index
31/3/2009
23
45
Exemplo
C1 0
C2 6
Gini=0.000
C1 2
C2 4
Gini=0.444
C1 3
C2 3
Gini=0.500
C1 1
C2 5
Gini=0.278
P(C1) = 0/6 = 0 P(C2) = 6/6 = 1
Gini = 1 – P(C1)2 – P(C2)2 = 1 – 0 – 1 = 0
P(C1) = 1/6 P(C2) = 5/6
Gini = 1 – (1/6)2 – (5/6)2 = 0.278
P(C1) = 2/6 P(C2) = 4/6
Gini = 1 – (2/6)2 – (4/6)2 = 0.444
P(C1) = 3/6 P(C2) = 3/6
Gini = 1 – (3/6)2 – (3/6)2 = 0.500
[ ]∑=
−=
c
i
tipt
1
2
)|(1)(Gini_Index
46
Exercício
Fazer os mesmos cálculos para as medidas de
entropia e de erro de classificação
C1 0
C2 6
E=?
C1 2
C2 4
E=?
C1 3
C2 3
E=?
C1 1
C2 5
E=?
C1 0
C2 6
Class=?
C1 2
C2 4
Class=?
C1 3
C2 3
Class=?
C1 1
C2 5
Class=?
∑=
−=
c
i
tiptipt
1
2 )|(log)|()(Entropia
[ ])|(max1)(Erro_Class
},...,1{
tipt
ci∈
−=
31/3/2009
24
47
As medidas de impureza são usadas para avaliar
a qualidade de cada condição de teste candidata
Compara-se o grau de impureza antes e após a divisão
Quanto maior a diferença, melhor o atributo
Exemplos:
Ganho de Informação: usada, por exemplo, pelo algoritmo ID3
Média Ponderada de Gini: usada, por exemplo, pelo algoritmo CART
Medidas para Escolha de Atributo
48
Medida de Ganho
)(
)(
)(
1
t
k
t
t
pai vI
N
vN
vI ∑=
−=∆
onde:
I(vt): mede o grau de impureza do nó filho vt
N(vt): no. de objetos do nó filho vt
N: no. de objetos do nó original (vpai)
Quando a medida de impureza é Entropia,
∆ mede o Ganho de Informação (∆info)
Soma ponderada
pela proporção de
objetos em cada um
dos k nós filhos
31/3/2009
25
49
Medida de Ganho
)(
)(
)(
1
t
k
t
t
pai vI
N
vN
vI ∑=
−=∆
Note que o primeiro termo será constante para
todos os atributos e, portanto, poderia ser omitido
para comparar os ∆s associados a cada atributo
Isso é feito no critério da média ponderada de Gini
50
Média Ponderada de Gini
Quando um nó é dividido em k filhos, a
qualidade da divisão é definida por:
onde
N(vt): no. de objetos do nó filho vt
N: no. de objetos do nó original (pai)
( )∑=
=
k
t
t
t
divisão v
N
vN
1
Gini
)(
Gini
Quanto menor
melhor
31/3/2009
26
51
Divisão de Atributos Binários
Sim Não
A
Nó 1 Nó 2
Sim Não
B
Nó 1 Nó 2
Pai
C1 6
C2 6
Gini = 0.500
Nó 1 Nó 2
C1 4 2
C2 3 3
Gini_d = 0.486
Nó 1 Nó 2
C1 1 5
C2 4 2
Gini_d = 0.375
Ginidivisão = (7/12)x0.49 + (5/12)x0.48
= 0.486
Ginidivisão = (exercício)
= 0.375
Divisão de Atributos Nominais
Duas alternativas
Divisão binária (k = 2):
requer busca pela melhor binarização
custo computacional adicional
Divisão múltipla (k > 2):
Tende a produzir partições mais puras
Porém, tende a privilegiar atributos com muitos valores...
Tipo de carro
Esporte Familiar Luxo
Tipo de carro
{Esporte, Luxo} Familiar
31/3/2009
27
53
Exercício
Definir a melhor divisão considerando
divisão binária e divisão múltipla para:
Tipo de Carro
{Esporte,
Luxo}
{Família}
C1 3 1
C2 2 4
Ginid ???
Tipo de Carro
{Esporte}
{Família,
Luxo}
C1 2 2
C2 1 5
Ginid ???
Tipo de Carro
Família Esporte Luxo
C1 1 2 1
C2 4 1 1
Ginid ???
54
Divisão de Atributos Contínuos
Id Crédito Estado
Civil
Renda Deve
1 Sim Solteiro 125K Não
2 Não Casado 100K Não
3 Não Solteiro 70K Não
4 Sim Casado 120K Não
5 Não Divorced 95K Sim
6 Não Casado 60K Não
7 Sim Divorced 220K Não
8 Não Solteiro 85K Sim
9 Não Casado 75K Não
10 Não Solteiro 90K Sim
Renda > x
Não Sim
31/3/2009
28
55
Divisão de Atributos
Contínuos
Por comparação
Vários candidatos para ponto de referência
No. possíveis divisões = no. valores distintos
Cada valor candidato x possui uma matriz de
contagens associada a ele
Contagens das classes em cada uma das duas
partições (Ai ≤ x e Ai > x)
Renda > x
Não Sim
56
Divisão de Atributos Contínuos
Determinação de x por Força Bruta
Método mais simples
Testar todos os valores x presentes nos dados para
o atributo
Para cada x, calcular sua medida de ganho (∆info ou Ginid)
usando as matrizes de contagens das partições resultantes
Computacionalmente ineficiente:
O(N2)
Trabalho repetitivo
31/3/2009
29
57
Divisão de Atributos Contínuos
Determinação de x por Cálculo Cumulativo
Método mais eficiente: O(N log N)
Ordenar os valores do atributo em questão
Para o menor valor
Calcular matriz de contagens
Calcular medida de ganho associada (∆info ou Ginid)
Para cada valor, a partir do menor
Atualizar matriz de contagens cumulativamente
Calcular medida de ganho associada
Escolher a posição com medida de ganho ótima
Maior ∆info ou menor Ginid
58
Exemplo
Candidatos
a pto. de ref.
Deve Não Não Não Sim Sim Sim Não Não Não Não
Renda
60 70 75 85 90 95 100 120 125 220
55 65 72 80 87 92 97 110 122 172 230
<= > <= > <= > <= > <= > <= > <= > <= > <= > <= > <= >
Sim 0 3 0 3 0 3 0 3 1 2 2 1 3 0 3 0 3 0 3 0 3 0
Não 0 7 1 6 2 5 3 4 3 4 3 4 3 4 4 3 5 2 6 1 7 0
Ginid 0.420 0.400 0.375 0.343 0.417 0.400 0.300 0.343 0.375 0.400 0.420
Valores
ordenados
* Nota: O exemplo acima assume o uso de desigualdades estritas (< e >) no teste, por isso
toma valores candidatos intermediários aos valores do atributo, ao invés desses próprios
31/3/2009
30
59
Exemplo
Primeiro Candidato: x = 55
< 55
Classe sim: 0
Classe não: 0
Gini N1 = 0
> 55
Classe sim: 3
Classe não: 7
Gini N2 = 0.420
Ginid = 0x0 + 1x0.420 = 0.420
60
Exemplo
Segundo Candidato: x = 65
Atualiza distribuição do último candidato
< 65
Classe sim: 0
Classe não: 1 (0 + 1)
Gini N1 = ?
> 65
Classe sim: 3
Classe não: 6 (7 – 1)
Gini N2 = ?
Ginid = 0.400
31/3/2009
31
61
Divisão de Atributos Contínuos
Cálculo Cumulativo Melhorado:
Só é preciso considerar valores entre dois
objetos adjacentes com classes diferentes !
Não – Sim ou Sim – Não
Reduz de 11 para 2 o número de pontos de
referência candidatos no exemplo anterior !
62
Taxa de Ganho (Gain Ratio)
Medidas como Entropia e Gini favorecem atributos com muitos valores
podem gerar muitos subconjuntos dos dados de treinamento
subconjuntos menores tendem a ser mais puros
porém, são mais susceptíveis a se especializar nos dados de treinamento
preditores ruins da função de classificação para dados não vistos
exemplo extremo: no. do RG ou CPF para classificação de risco de crédito
Alternativas para minimizar este problema
Usar apenas divisões binárias (abordagem usada pelo algoritmo CART)
Usar alguma punição para a quantidade de valores do atributo
Exemplo: Taxa de Ganho (abordagem usada pelo algoritmo C4.5)
31/3/2009
32
63
Taxa de Ganho (Gain Ratio)
Definida para a Entropia:
info
info
GanhodeTaxa
S
∆
=
)(log)( 2
1
info t
k
t
t vpvpS ∑=
=
onde:
• k: número de divisões (valores do atributo Ai)
• p(vt) = fração de objetos cujo valor do atributo Ai = vt
• Sinfo = entropia do conjunto de objetos com relação aos valores do atributo Ai
↑↑↑↑ no. objetos com valores distintos ↑↑↑↑ Sinfo ↓↓↓↓ taxa de ganho
64
Árvores e Regras
Cada percurso da raiz a um nó folha representa
uma regra de classificação
Cada nó folha
Está associado a uma classe
Corresponde a uma região do domínio dos atributos
Hiper-retângulo
Interseção de hiper-retângulos é um conjunto vazio
União é o espaço total
31/3/2009
33
65
Árvores e Regras
A
B
> a1≤ a1
> b2≤ b2
A
> a4≤ a4
B
> b3≤ b3
a4 a1 A
B
b2
b3
66
Árvores e Regras
A
B
> a1≤ a1
> b2≤ b2
A
> a4≤ a4
B
> b3≤ b3
1. Se A ≤ a1 E B ≤ b2 Então Classe = Vermelha
OU
2. Se A > a1 E B ≤ b3 Então Classe = Laranja
OU
...
Exercício: complete as regras !
Regras: disjunções de conjunções lógicas
31/3/2009
34
67
Espaço de Hipóteses
Uma árvore de decisão específica ou o conjunto de regras
correspondente representa uma hipótese no espaço de
hipóteses para a função de classificação a ser aproximada
Em AM em geral, qualquer realização particular de um
modelo é uma hipótese no espaço de hipóteses da tarefa
que se deseja aprender a partir de um conjunto de dados
68
Bias Indutivo
Informalmente, o bias indutivo de um algoritmo de AM é
uma tendência deste em privilegiar uma ou um conjunto
de hipóteses frente às demais
Definiremos o bias indutivo de maneira formal em um
material auxiliar disponibilizado para leitura extra-classe
Vide sugestões de leitura e exercícios nos slides finais
31/3/2009
35
69
Bias Indutivo
Para a presente discussão, basta saber que o bias
indutivo de um classificador pode ser de dois tipos:
De restrição (ou linguagem): modelo não é capaz de
representar qualquer função de classificação dos dados
diz-se nesse caso que o espaço de hipóteses não é completo
por exemplo, classificador linear para problema não linear
De busca (ou preferência): aprendizado não irá garantidamente
encontrar a melhor realização do modelo dentre as possíveis
melhor hipótese do espaço de hipóteses (seja este completo ou não)
70
Bias Indutivo de ADs
O bias indutivo varia para cada algoritmo de AD
Mas algoritmos cuja base são os procedimentos discutidos aqui
(por exemplo os clássicos ID3 e C4.5) possuem bias similares
Esses algoritmos executam sobre modelos que representam
um espaço de hipóteses completo (não existe bias restritivo)
árvores / regras podem ser tão precisas quanto necessário
O bias desses algoritmos é de preferência:
preferem árvores cujos atributos com maior ganho de informação estão
acima na árvore, sem retroagir depois na decisão (sem backtracking)
Conforme discutido em (Mitchell, 1997), seção 3.6, esse bias também
implica uma tendência para árvores mais curtas / simples que longas
31/3/2009
36
71
Overfitting
Ausência de bias restritivo em ADs significa que pode
haver um ajuste perfeito aos dados de treinamento
Alto risco de overfitting se conjunto de dados não for muito
representativo e/ou estiver contaminado com ruído
Partição recursiva dos dados:
Decisões são baseadas em conjuntos cada vez menores de objetos
Níveis mais profundos podem ter muito poucos objetos
Presença de ruído afeta cada vez mais a decisão para esses nós
Reduz capacidade de generalização (desempenho em objetos não vistos)
72
Overfitting
Navalha de Occam (Occam’s razor)
Quanto mais simples a solução, melhor
Preferir as hipóteses mais simples
Quando hipótese mais simples explica os
dados, é pouco provável que seja coincidência
Explicação dos dados por uma hipótese mais
complexa pode ser apenas uma coincidência
Árvore de decisão pode ser simplificada...
31/3/2009
37
73
Simplificação de ADs
Duas Abordagens:
Interromper a priori o crescimento da árvore
com base no desempenho em dados de teste
com base em um compromisso entre desempenho
em dados de teste e complexidade do modelo
Podar o modelo a posteriori
poda da árvore
poda das regras
74
Interrupção do Crescimento
Interromper o crescimento da árvore
quando o desempenho em dados não usados no
treinamento não mais melhora de forma significativa
que justifique a maior complexidade do modelo
muito comum em
redes neurais, não
se mostra a melhor
abordagem em ADs
31/3/2009
38
75
Poda da Árvore
Poda da Árvore
Elimina sub-árvores cujas existências reduzem
o desempenho do modelo em dados de teste
Demanda calcular, para cada nó, a variação
no desempenho de classificação após a
eliminação dos seus descendentes
Em geral mais eficaz que interrupção, porém
com um preço computacional associado
76
Algoritmo Simples de Poda
1. Tomar um conjunto de dados de teste (não vistos no treinamento)
2. Percorrer a árvore segundo percurso pós-fixado. Para cada nó t,
calcular:
- Et: o erro de classificação dos objetos de teste que chegam até aquele
nó, como se o nó fosse uma folha associada à classe da maioria
- St: a soma dos erros Ei de cada uma das folhas descendentes de t
- Vt: variação do erro após poda dos descendentes (Vt = St – Et)
3. Podar os descendentes daquele nó t com maior valor positivo de Vt
4. Atualizar os valores de St e Vt para os nós ancestrais de t
5. Retornar ao passo 3 enquanto houver valores positivos de Vt
* Nota: A estratégia acima é similar àquela utilizada pelo algoritmo ID3.
31/3/2009
39
77
Poda de Regras
Poda de Regras
A poda da árvore possui a desvantagem de se restringir a
eliminar ou não toda uma sub-árvore de um nó t
não é possível eliminar apenas alguns ramos
Algoritmos como o C4.5 utilizam a poda de proposições
individuais nos antecedentes das regras
Por exemplo: Se A ≤ a1 E B ≤ b2 Então Classe = Vermelha
Ambas as proposições A ≤ a1 e B ≤ b2 seriam consideradas
individualmente como candidatas a serem eliminadas
Após a poda, regras são ordenadas segundo a precisão de cada
uma e a ordem é utilizada para resolver possíveis conflitos
78
Vantagens das ADs
Rápida classificação de novos dados
Interpretação da hipótese induzida
Fácil para árvores relativamente pequenas
ou seja, com poucas regras...
Determina quais atributos são importantes
Seleção de atributos embarcada !!!
Pode ser estendida para também levar em conta o
custo financeiro da utilização de cada atributo...
31/3/2009
40
79
Vantagens das ADs
Principais algoritmos tratam tanto atributos
categóricos como atributos numéricos
Desempenho muitas vezes comparável ou até
superior a outros bons classificadores
depende da natureza dos dados
Algoritmos podem ser adaptados para tratar
instâncias com valores ausentes (e.g. C4.5)
tanto no treinamento como na classificação
vide (Quinlan, 1993) ou (Mitchell, 1997)
80
Desvantagens das ADs
Limitação de hipótese a hiper-retângulos
Exceto para Árvores Oblíquas (mais complexas...)
Baixo desempenho em problemas com muitas
classes e poucos dados
Representatividade das regiões hiper-retangulares...
Custo computacional de indução e simplificação
do modelo pode ser elevado
especialmente para os algoritmos mais sofisticados
31/3/2009
41
81
Exemplo: Algoritmo ID3
Precursor do famoso C4.5
Foi proposto por Quinlan em 1986
Trata apenas atributos categóricos
Usa ganho de informação para seleção
Faz simplificação por poda da árvore
82
Exemplo: Algoritmo C4.5
Sucessor do ID3
Proposto pelo mesmo autor – vide (Quinlan, 1993)
Manipula qualquer tipo de atributo
Usa taxa de ganho e heurísticas para seleção
Faz simplificação por poda das regras
Pode ser baixado em:
http://www.cse.unsw.edu.au/~quinlan/c4.5r8.tar.gz
31/3/2009
42
83
Outros Algoritmos
J4.8
Versão Java do C4.5 implementada no software Weka
Permite desabilitar poda do modelo
PART
Variante do J4.8 também disponível no Weka
Possui bias indutivo para regras mais simples
84
Outros Algoritmos
C5.0
Sucessor do C4.5 também desenvolvido por Quinlan
Comercial (detalhes são segredo industrial – não publicados)
CART (Classification and Regression Trees)
Árvores Oblíquas !
Decisões podem envolver combinações de atributos (e.g. A1 < A2)
Hipóteses não mais restritas a partições hiper-retangulares
31/3/2009
43
85
Exercício
Seja o seguinte cadastro de pacientes:
Nome Febre Enjôo Manchas Dores Diagnóstico
João sim sim pequenas sim doente
Pedro não não grandes não saudável
Maria sim sim pequenas não saudável
José sim não grandes sim doente
Ana sim não pequenas sim saudável
Leila não não grandes sim doente
86
Exercício
Usando medida de entropia:
Induzir uma árvore de decisão capaz de distinguir:
Pacientes potencialmente saudáveis
Pacientes potencialmente doentes
Testar a árvore para novos casos
(Luis, não, não, pequenas, sim)
(Laura, sim, sim, grandes, sim)
31/3/2009
44
87
Exercício Computacional
Baixar da UCI as bases de dados IRIS e GLASS
Induzir uma árvore de decisão com o algoritmo C4.5
Dividir os dados da seguinte forma:
50% para treinamento
25% para teste
25% para validação
Fazer o mesmo para outros algoritmos vistos
anteriormente no curso e comparar resultados
K-NN, Naïve Bayes, 1Rule
Ajustar parâmetros (p. ex. k do K-NN) por tentativa-e-erro
88
Leitura e Outros Exercícios
(Mitchell, 1997):
Capítulo 3
(Tan et al., 2006):
Seções 4.1 a 4.4
Material auxiliar sobre bias indutivo (CoTeia)
31/3/2009
45
89
Referências
Mitchell, T. M., Machine Learning, McGraw-
Hill, 1997
P.-N. Tan, Steinbach, M., and Kumar, V.,
Introduction to Data Mining, Addison-Wesley,
2006
Quinlan, J. R., C4.5: Programs for Machine
Learning, Morgan Kaufmann, 1993

Mais conteúdo relacionado

Mais procurados

Papratnjače građa i način života
Papratnjače građa i način životaPapratnjače građa i način života
Papratnjače građa i način života
Vesna Milenovic
 
Economia da natureza ricklefs - 6ªed - cap. 18
Economia da natureza   ricklefs - 6ªed - cap. 18Economia da natureza   ricklefs - 6ªed - cap. 18
Economia da natureza ricklefs - 6ªed - cap. 18
Bruno Rodrigues
 
бодљокошци
бодљокошцибодљокошци
бодљокошци
Maja Simic
 

Mais procurados (19)

Pljosnati crvi
Pljosnati crviPljosnati crvi
Pljosnati crvi
 
Papratnjače građa i način života
Papratnjače građa i način životaPapratnjače građa i način života
Papratnjače građa i način života
 
Slide zoologia agrícola thysanoptera tripes
Slide zoologia agrícola  thysanoptera tripesSlide zoologia agrícola  thysanoptera tripes
Slide zoologia agrícola thysanoptera tripes
 
Economia da natureza ricklefs - 6ªed - cap. 18
Economia da natureza   ricklefs - 6ªed - cap. 18Economia da natureza   ricklefs - 6ªed - cap. 18
Economia da natureza ricklefs - 6ªed - cap. 18
 
002 Skeletni Sistem Kicmenjaka
002 Skeletni Sistem Kicmenjaka002 Skeletni Sistem Kicmenjaka
002 Skeletni Sistem Kicmenjaka
 
Raznovrsnost riba
Raznovrsnost ribaRaznovrsnost riba
Raznovrsnost riba
 
Gimnospermas e angiospermas
Gimnospermas e angiospermasGimnospermas e angiospermas
Gimnospermas e angiospermas
 
Folha agronomia
Folha  agronomiaFolha  agronomia
Folha agronomia
 
Mahovine
MahovineMahovine
Mahovine
 
Skrivenosemenice-utvrdjivanje
Skrivenosemenice-utvrdjivanjeSkrivenosemenice-utvrdjivanje
Skrivenosemenice-utvrdjivanje
 
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídosAula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
Aula02 Sistemas Distribuídos - Caracterização de sistemas distribuídos
 
Mahovine
MahovineMahovine
Mahovine
 
бодљокошци
бодљокошцибодљокошци
бодљокошци
 
зглавкари Arthropoda
зглавкари  Arthropodaзглавкари  Arthropoda
зглавкари Arthropoda
 
Dispersão de Sementes por Animais
Dispersão de Sementes por AnimaisDispersão de Sementes por Animais
Dispersão de Sementes por Animais
 
Ekologija i zaštita životne sredine ponavljanje
Ekologija i zaštita životne sredine ponavljanjeEkologija i zaštita životne sredine ponavljanje
Ekologija i zaštita životne sredine ponavljanje
 
Vegetativno razmnožavanje biljaka
Vegetativno razmnožavanje biljakaVegetativno razmnožavanje biljaka
Vegetativno razmnožavanje biljaka
 
Reino Plantae
Reino PlantaeReino Plantae
Reino Plantae
 
E3 Pljosnati i valjkasti crvi
E3 Pljosnati i valjkasti crviE3 Pljosnati i valjkasti crvi
E3 Pljosnati i valjkasti crvi
 

Classificação: Árvores de Decisão e Bias Indutivo

  • 1. 31/3/2009 1 SCC5871 – Introdução ao Aprendizado de Máquina Aula 5 – Classificação: Árvores de Decisão e Bias Indutivo Prof. Ricardo J. G. B. Campello PPG-CCMC / ICMC / USP 2 Créditos O material a seguir consiste de adaptações e extensões dos originais: gentilmente cedidos pelo Prof. André C. P. L. F. de Carvalho de (Tan et al., 2006) 0 1 1 0 0 1 1 0 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 1 1 0 1 0 0 1 0 0
  • 2. 31/3/2009 2 3 Aula de Hoje Introdução Algoritmo Básico de Hunt Medidas para Escolha de Atributos Divisão de Atributos de Diferentes Tipos Regras de Decisão Espaço de Hipóteses e Bias Indutivo Overfitting e Simplificação de ADs Características de ADs 4 Introdução Árvores de Decisão (ADs) são algoritmos de classificação e tomada de decisão que utilizam a estratégia de divisão e conquista Divide problemas difíceis em problemas mais simples Problema complexo é decomposto em sub-problemas menores Estratégia é aplicada recursivamente a cada subproblema
  • 3. 31/3/2009 3 5 Árvores de Decisão Uma das técnicas de classificação mais utilizadas Eficaz, eficiente e produz modelos interpretáveis Árvore é composta por: Nó raiz Nenhuma aresta de entrada e n ≥ 0 arestas de saída Nós intermediários 1 aresta de entrada e n > 1 arestas de saída Nós folhas (terminais) 1 aresta de entrada e nenhuma aresta de saída 6 Exemplo Simples SorriSorri Segura nãosim espada bandeira Inimigo Amigo Inimigo
  • 4. 31/3/2009 4 7 Outro Exemplo Simples a 0 1 1b 0 1 10 a OR b a b a v b 0 0 0 0 1 1 1 0 1 1 1 1 8 Exercício Encontrar árvore de decisão para: A AND b A XOR b (a AND b) OR (b AND c)
  • 5. 31/3/2009 5 9 Exemplo de AD Credor Estado Renda SimNão Não Não Sim Não CasadoSolteiro, Divorciado < 80K > 80K Atributos de Decisão Modelo: Árvore de DecisãoDados de Treinamento Id É Credor Estado Civil Salário Calote 1 Sim Solteiro 125K Não 2 Não Casado 100K Não 3 Não Solteiro 70K Não 4 Sim Casado 120K Não 5 Não Divorciado 95K Sim 6 Não Casado 60K Não 7 Sim Divorciado 220K Não 8 Não Solteiro 85K Sim 9 Não Casado 75K Não 10 Não Solteiro 90K Sim 10 Outro Exemplo de AD Estado Credor Renda SimNão Não Não Sim Não Casado Solteiro, Divorciado < 80K > 80K Diferentes árvores podem ser ajustadas para os mesmos dados ! Id É Credor Estado Civil Salário Calote 1 Sim Solteiro 125K Não 2 Não Casado 100K Não 3 Não Solteiro 70K Não 4 Sim Casado 120K Não 5 Não Divorciado 95K Sim 6 Não Casado 60K Não 7 Sim Divorciado 220K Não 8 Não Solteiro 85K Sim 9 Não Casado 75K Não 10 Não Solteiro 90K Sim
  • 6. 31/3/2009 6 11 Treinamento e Teste Indução Dedução Modelo Algoritmo de indução de árvore Aprendizado Teste Conjunto de treinamento Conjunto de teste Id É Credor Estado Civil Salário Calote 11 Não Casado 80K ? 12 Não Solteiro 100K ? 13 Sim Solteiro 100K ? 14 Não Casado 120K ? 15 Sim Solteiro 80K ? Id É Credor Estado Civil Salário Calote 1 Sim Solteiro 125K Não 2 Não Casado 100K Não 3 Não Solteiro 70K Não 4 Sim Casado 120K Não 5 Não Divorciado 95K Sim 6 Não Casado 60K Não 7 Sim Divorciado 220K Não 8 Não Solteiro 85K Sim 9 Não Casado 75K Não 10 Não Solteiro 90K Sim 12 Classificação de Novos Dados Credor Estado Salário SimNão Não Não Sim Não CasadoSolteiro, Divorciado < 80K > 80K Dados de TesteComeçar da Raiz Id Credor Estado Civil Salário Calote 11 Não Casado 80K ???
  • 7. 31/3/2009 7 13 Classificação de Novos Dados Credor Estado Salário SimNão Não Não Sim Não CasadoSolteiro, Divorciado < 80K > 80K Id Credor Estado Civil Salário Calote 11 Não Casado 80K ??? Dados de Teste 14 Classificação de Novos Dados Credor Estado Salário SimNão Não Não Sim Não CasadoSolteiro, Divorciado < 80K > 80K Id Credor Estado Civil Salário Calote 11 Não Casado 80K ??? Dados de Teste
  • 8. 31/3/2009 8 15 Classificação de Novos Dados Credor Estado Salário SimNão Não Não Sim Não CasadoSolteiro, Divorciado < 80K > 80K Atribui classe Não Id Credor Estado Civil Salário Calote 11 Não Casado 80K ??? Dados de Teste 16 Indução de ADs Existem vários algoritmos Hunt’s Concept Learning System Um dos primeiros Base de vários algoritmos atuais ID3, C4.5, J4.8, C5.0 CART, Random-Forest ...
  • 9. 31/3/2009 9 17 Algoritmo de Hunt Seja Dt o conjunto de objetos que atingem o nó t porque ainda não foram classificados em um nó folha acima na árvore Algoritmo Rudimentar: Passo 1. Se todos os objetos de Dt pertencem à mesma classe ct, então t é um nó folha rotulado como ct Passo 2. Se Dt contém objetos que pertencem a mais de uma classe, então t deve ser um nó interno Passo 2.1. O nó deve conter uma condição de teste sobre algum dos atributos que não houverem sido selecionados acima na árvore Passo 2.2. Um nó filho é criado para cada possível saída da condição de teste (valor do atributo) e os objetos em Dt são distribuídos neles Passo 2.3. O algoritmo é aplicado recursivamente para cada nó filho 18 Algoritmo de Hunt Dt = {1, …, 10} ? Id Crédito Estado Civil Renda Deve 1 Sim Solteiro 125K Não 2 Não Casado 100K Não 3 Não Solteiro 70K Não 4 Sim Casado 120K Não 5 Não Divorciado 95K Sim 6 Não Casado 60K Não 7 Sim Divorciado 220K Não 8 Não Solteiro 85K Sim 9 Não Casado 75K Não 10 Não Solteiro 90K Sim
  • 10. 31/3/2009 10 19 Algoritmo de Hunt crédito Sim Não Id Crédito Estado Civil Renda Deve 1 Sim Solteiro 125K Não 2 Não Casado 100K Não 3 Não Solteiro 70K Não 4 Sim Casado 120K Não 5 Não Divorciado 95K Sim 6 Não Casado 60K Não 7 Sim Divorciado 220K Não 8 Não Solteiro 85K Sim 9 Não Casado 75K Não 10 Não Solteiro 90K Sim Dt = {1,4,7} Dt = {2,3,5,6,8,9,10} Não ? 20 Algoritmo de Hunt crédito EstadoNão Não Sim Não CasadoSolteiro, Divorciado ? crédito Sim Não Dt = {1,4,7} Dt = {2,3,5,6,8,9,10} Não ? Id Crédito Estado Civil Renda Deve 1 Sim Solteiro 125K Não 2 Não Casado 100K Não 3 Não Solteiro 70K Não 4 Sim Casado 120K Não 5 Não Divorciado 95K Sim 6 Não Casado 60K Não 7 Sim Divorciado 220K Não 8 Não Solteiro 85K Sim 9 Não Casado 75K Não 10 Não Solteiro 90K Sim Dt = {3,5,8,10} Dt = {1,4,7} Dt = {2,6,9}
  • 11. 31/3/2009 11 21 Algoritmo de Hunt crédito Estado Renda SimNão Não Não Sim Não CasadoSolteiro, Divorciado < 80K > 80K Id Crédito Estado Civil Renda Deve 1 Sim Solteiro 125K Não 2 Não Casado 100K Não 3 Não Solteiro 70K Não 4 Sim Casado 120K Não 5 Não Divorciado 95K Sim 6 Não Casado 60K Não 7 Sim Divorciado 220K Não 8 Não Solteiro 85K Sim 9 Não Casado 75K Não 10 Não Solteiro 90K Sim crédito EstadoNão Não Sim Não CasadoSolteiro, Divorciado ? Dt = {3,5,8,10} Dt = {2,6,9} Dt = {1,4,7} Dt = {3} Dt = {1,4,7} Dt = {5,8,10} Dt = {2,6,9} 22 Algoritmo de Hunt Problema: o algoritmo rudimentar apresentado anteriormente funciona apenas se: 1. Houver ao menos um objeto para cada combinação possível dos valores dos atributos preditores; e 2. Havendo mais de um, devem pertencer todos à mesma classe Solução (dada que essas hipóteses são muito restritivas): Se Dt for vazio para um determinado nó t, rotular o nó com a classe majoritária dos objetos do nó pai Se Dt for composto de objetos pertencentes a classes distintas em um dado nó t e não há mais atributos disponíveis, rotular o nó com a classe majoritária desses objetos
  • 12. 31/3/2009 12 23 Critério de Parada Indução da árvore pode ser finalizada quando: Quando os dados do nó atual têm o mesmo rótulo Quando os dados do nó atual têm os mesmos valores para os atributos de entrada Mas rótulos de classes diferentes Todos os atributos já foram incluídos no caminho 24 Indução de ADs Geralmente usa estratégia gulosa Divide progressivamente objetos com base em uma condição de teste sobre os valores de um atributo escolhido para maximizar ou minimizar algum critério Decisões importantes Como dividir os objetos Como escolher o atributo de divisão Qual a melhor divisão para aquele atributo Quando parar de dividir os objetos
  • 13. 31/3/2009 13 25 Condição de Teste Depende do tipo do atributo Binário Nominal Ordinal Contínuo Depende do número de divisões 2 divisões Mais que 2 divisões 26 Atributos Binários Teste mais simples Apenas dois possíveis resultados Universidade Pública Privada
  • 14. 31/3/2009 14 27 Atributos Nominais Pode assumir mais que dois valores Duas formas de condição de teste Usar tantos ramos quantos forem os possíveis valores do atributo Unir valores em cada ramo disjunção lógica 28 Atributos Nominais Tipo de carro {Esporte, Família} Luxo Tipo de carro {Esporte, Luxo} Família ... Tipo de carro Esporte Familia Luxo
  • 15. 31/3/2009 15 29 Atributos Ordinais Duas alternativas Usar tantos ramos quantos forem os possíveis valores do atributo Unir valores em cada ramo sem violar relação de ordem Refrigerante {Pequeno, Médio} {Grande, Gigante} 30 Atributos Contínuos Condição de teste pode ser expressa por: Comparação: Ai < x Escolher valor x de Ai que gera melhor divisão Ponto de referência Consultas sobre intervalos: x < Ai < y Usar estratégia de discretização
  • 16. 31/3/2009 16 31 Atributos Contínuos Peso < 60 Kg Não Sim Peso < 10Kg {50Kg, 70Kg} {70Kg, 80Kg} > 90Kg 32 Atributos Contínuos Consultas sobre Intervalos: x < Ai < y Vantagem: Com a discretização, o atributo pode ser manipulado pelo algoritmo como um atributo nominal qualquer não requer modificações no algoritmo básico de indução de ADs Desvantagens: Tenta esgotar a capacidade de divisão do atributo de uma vez Tende a gerar muitos ramos desnecessários na árvore antes que parte dos objetos do nó da árvore em questão possam ser melhor pré-classificados por outro atributo Qual o número ideal de intervalos...??? Peso < 10Kg {50Kg, 70Kg} {70Kg, 80Kg} > 90Kg
  • 17. 31/3/2009 17 33 Atributos Contínuos Qual seria uma boa discretização supervisionada dos dados abaixo para cada atributo separadamente ? Quantos intervalos são necessários para obter o máximo grau possível de pureza de classe(s) dentro de cada intervalo ? Peso < 10Kg {50Kg, 70Kg} {70Kg, 80Kg} > 90Kg Sim Não Idade 34 Atributos Contínuos Comparações: Ai < x Atributo não é removido do conjunto de candidatos à divisão Pode gerar ramos mais profundos (regras mais complexas) requer modificações no algoritmo básico de indução, em especial no que diz respeito à interrupção ou poda da árvore (p. ex. algo. C4.5) Porém: escolha do atributo e do valor de comparação é “por demanda” árvore mais flexível ⇒ maior poder de discriminação escolha do atributo e do valor de comparação é muito mais simples 1 ponto de discretização ⇒ no. fixo de intervalos = 2 tendência a minimizar a largura da árvore Peso < 60 Kg Não Sim
  • 18. 31/3/2009 18 35 Sim Não Idade Idade < 25 Sim Não Sim Renda > 1k Sim Não SimIdade > 45 Sim Não Sim Renda > 5k Sim Não Sim Não Atributos Contínuos Peso < 60 Kg Não Sim 36 Medidas para Escolha de Atributo Existem várias medidas para determinar a melhor forma de dividir os objetos Medidas de impureza Definidas em termos da distribuição de classes dos dados antes e após a divisão Baseadas na idéia que: Quanto mais balanceadas as classes em uma partição, pior A partição mais útil é aquela em que todos os exemplos pertencem a uma mesma classe
  • 19. 31/3/2009 19 37 Medidas para Escolha de Atributo 38 Medidas para Escolha de Atributo Medidas diferentes geram partições diferentes dos dados Exemplos de medidas de impureza Entropia Gini Erro de classificação Qui-quadrado
  • 20. 31/3/2009 20 39 Medidas para Escolha de Atributo Supor que D possui antes da divisão: 10 exemplos da classe 0 (C0: 10) 10 exemplos da classe 1 (C1: 10) C0: 6 C1: 4 C0: 4 C1: 6 C0: 1 C1: 3 C0: 8 C1: 0 C0: 1 C1: 7 C0: 1 C1: 0 C0: 1 C1: 0 C0: 0 C1: 1 ...C0: 0 C1: 1 ... Sexo Carro Identidade M F Família Esporte Luxo i1 i12 i13 i20 Qual o melhor atributo para iniciar divisão? 40 Medidas para Escolha de Atributo Abordagem gulosa Prefere nós com distribuição mais homogênea (pura) de classes Necessário uma medida de (im)pureza Muito heterogênea Alto grau de impureza Muito homogênea Baixo grau de impureza
  • 21. 31/3/2009 21 41 Medidas para Escolha de Atributo ∑= −= c i tiptipt 1 2 )|(log)|()(Entropia [ ]∑= −= c i tipt 1 2 )|(1)(Gini_Index [ ])|(max1)(Erro_Class },...,1{ tipt ci∈ −= onde: p(i|t) = fração de dados pertencente à classe i em um nó t c = número de classes 0 log2 0 = 0 42 Comparação: Duas Classes Erro de classificação
  • 22. 31/3/2009 22 43 Comparação Valor máximo: Entropia: (log2 c) Gini e Erro de classificação: (1 – 1/c) Quando os dados estão igualmente distribuídos entre todas as classes Informação menos interessante (menos informação) Valor mínimo: 0 (para todos) Quando todos os dados pertencem a uma classe Informação mais interessante 44 Exemplo Calcular a medida de impureza Gini para os dados abaixo C1 0 C2 6 Gini=? C1 2 C2 4 Gini=? C1 3 C2 3 Gini=? C1 1 C2 5 Gini=? [ ]∑= −= c i tipt 1 2 )|(1)(Gini_Index
  • 23. 31/3/2009 23 45 Exemplo C1 0 C2 6 Gini=0.000 C1 2 C2 4 Gini=0.444 C1 3 C2 3 Gini=0.500 C1 1 C2 5 Gini=0.278 P(C1) = 0/6 = 0 P(C2) = 6/6 = 1 Gini = 1 – P(C1)2 – P(C2)2 = 1 – 0 – 1 = 0 P(C1) = 1/6 P(C2) = 5/6 Gini = 1 – (1/6)2 – (5/6)2 = 0.278 P(C1) = 2/6 P(C2) = 4/6 Gini = 1 – (2/6)2 – (4/6)2 = 0.444 P(C1) = 3/6 P(C2) = 3/6 Gini = 1 – (3/6)2 – (3/6)2 = 0.500 [ ]∑= −= c i tipt 1 2 )|(1)(Gini_Index 46 Exercício Fazer os mesmos cálculos para as medidas de entropia e de erro de classificação C1 0 C2 6 E=? C1 2 C2 4 E=? C1 3 C2 3 E=? C1 1 C2 5 E=? C1 0 C2 6 Class=? C1 2 C2 4 Class=? C1 3 C2 3 Class=? C1 1 C2 5 Class=? ∑= −= c i tiptipt 1 2 )|(log)|()(Entropia [ ])|(max1)(Erro_Class },...,1{ tipt ci∈ −=
  • 24. 31/3/2009 24 47 As medidas de impureza são usadas para avaliar a qualidade de cada condição de teste candidata Compara-se o grau de impureza antes e após a divisão Quanto maior a diferença, melhor o atributo Exemplos: Ganho de Informação: usada, por exemplo, pelo algoritmo ID3 Média Ponderada de Gini: usada, por exemplo, pelo algoritmo CART Medidas para Escolha de Atributo 48 Medida de Ganho )( )( )( 1 t k t t pai vI N vN vI ∑= −=∆ onde: I(vt): mede o grau de impureza do nó filho vt N(vt): no. de objetos do nó filho vt N: no. de objetos do nó original (vpai) Quando a medida de impureza é Entropia, ∆ mede o Ganho de Informação (∆info) Soma ponderada pela proporção de objetos em cada um dos k nós filhos
  • 25. 31/3/2009 25 49 Medida de Ganho )( )( )( 1 t k t t pai vI N vN vI ∑= −=∆ Note que o primeiro termo será constante para todos os atributos e, portanto, poderia ser omitido para comparar os ∆s associados a cada atributo Isso é feito no critério da média ponderada de Gini 50 Média Ponderada de Gini Quando um nó é dividido em k filhos, a qualidade da divisão é definida por: onde N(vt): no. de objetos do nó filho vt N: no. de objetos do nó original (pai) ( )∑= = k t t t divisão v N vN 1 Gini )( Gini Quanto menor melhor
  • 26. 31/3/2009 26 51 Divisão de Atributos Binários Sim Não A Nó 1 Nó 2 Sim Não B Nó 1 Nó 2 Pai C1 6 C2 6 Gini = 0.500 Nó 1 Nó 2 C1 4 2 C2 3 3 Gini_d = 0.486 Nó 1 Nó 2 C1 1 5 C2 4 2 Gini_d = 0.375 Ginidivisão = (7/12)x0.49 + (5/12)x0.48 = 0.486 Ginidivisão = (exercício) = 0.375 Divisão de Atributos Nominais Duas alternativas Divisão binária (k = 2): requer busca pela melhor binarização custo computacional adicional Divisão múltipla (k > 2): Tende a produzir partições mais puras Porém, tende a privilegiar atributos com muitos valores... Tipo de carro Esporte Familiar Luxo Tipo de carro {Esporte, Luxo} Familiar
  • 27. 31/3/2009 27 53 Exercício Definir a melhor divisão considerando divisão binária e divisão múltipla para: Tipo de Carro {Esporte, Luxo} {Família} C1 3 1 C2 2 4 Ginid ??? Tipo de Carro {Esporte} {Família, Luxo} C1 2 2 C2 1 5 Ginid ??? Tipo de Carro Família Esporte Luxo C1 1 2 1 C2 4 1 1 Ginid ??? 54 Divisão de Atributos Contínuos Id Crédito Estado Civil Renda Deve 1 Sim Solteiro 125K Não 2 Não Casado 100K Não 3 Não Solteiro 70K Não 4 Sim Casado 120K Não 5 Não Divorced 95K Sim 6 Não Casado 60K Não 7 Sim Divorced 220K Não 8 Não Solteiro 85K Sim 9 Não Casado 75K Não 10 Não Solteiro 90K Sim Renda > x Não Sim
  • 28. 31/3/2009 28 55 Divisão de Atributos Contínuos Por comparação Vários candidatos para ponto de referência No. possíveis divisões = no. valores distintos Cada valor candidato x possui uma matriz de contagens associada a ele Contagens das classes em cada uma das duas partições (Ai ≤ x e Ai > x) Renda > x Não Sim 56 Divisão de Atributos Contínuos Determinação de x por Força Bruta Método mais simples Testar todos os valores x presentes nos dados para o atributo Para cada x, calcular sua medida de ganho (∆info ou Ginid) usando as matrizes de contagens das partições resultantes Computacionalmente ineficiente: O(N2) Trabalho repetitivo
  • 29. 31/3/2009 29 57 Divisão de Atributos Contínuos Determinação de x por Cálculo Cumulativo Método mais eficiente: O(N log N) Ordenar os valores do atributo em questão Para o menor valor Calcular matriz de contagens Calcular medida de ganho associada (∆info ou Ginid) Para cada valor, a partir do menor Atualizar matriz de contagens cumulativamente Calcular medida de ganho associada Escolher a posição com medida de ganho ótima Maior ∆info ou menor Ginid 58 Exemplo Candidatos a pto. de ref. Deve Não Não Não Sim Sim Sim Não Não Não Não Renda 60 70 75 85 90 95 100 120 125 220 55 65 72 80 87 92 97 110 122 172 230 <= > <= > <= > <= > <= > <= > <= > <= > <= > <= > <= > Sim 0 3 0 3 0 3 0 3 1 2 2 1 3 0 3 0 3 0 3 0 3 0 Não 0 7 1 6 2 5 3 4 3 4 3 4 3 4 4 3 5 2 6 1 7 0 Ginid 0.420 0.400 0.375 0.343 0.417 0.400 0.300 0.343 0.375 0.400 0.420 Valores ordenados * Nota: O exemplo acima assume o uso de desigualdades estritas (< e >) no teste, por isso toma valores candidatos intermediários aos valores do atributo, ao invés desses próprios
  • 30. 31/3/2009 30 59 Exemplo Primeiro Candidato: x = 55 < 55 Classe sim: 0 Classe não: 0 Gini N1 = 0 > 55 Classe sim: 3 Classe não: 7 Gini N2 = 0.420 Ginid = 0x0 + 1x0.420 = 0.420 60 Exemplo Segundo Candidato: x = 65 Atualiza distribuição do último candidato < 65 Classe sim: 0 Classe não: 1 (0 + 1) Gini N1 = ? > 65 Classe sim: 3 Classe não: 6 (7 – 1) Gini N2 = ? Ginid = 0.400
  • 31. 31/3/2009 31 61 Divisão de Atributos Contínuos Cálculo Cumulativo Melhorado: Só é preciso considerar valores entre dois objetos adjacentes com classes diferentes ! Não – Sim ou Sim – Não Reduz de 11 para 2 o número de pontos de referência candidatos no exemplo anterior ! 62 Taxa de Ganho (Gain Ratio) Medidas como Entropia e Gini favorecem atributos com muitos valores podem gerar muitos subconjuntos dos dados de treinamento subconjuntos menores tendem a ser mais puros porém, são mais susceptíveis a se especializar nos dados de treinamento preditores ruins da função de classificação para dados não vistos exemplo extremo: no. do RG ou CPF para classificação de risco de crédito Alternativas para minimizar este problema Usar apenas divisões binárias (abordagem usada pelo algoritmo CART) Usar alguma punição para a quantidade de valores do atributo Exemplo: Taxa de Ganho (abordagem usada pelo algoritmo C4.5)
  • 32. 31/3/2009 32 63 Taxa de Ganho (Gain Ratio) Definida para a Entropia: info info GanhodeTaxa S ∆ = )(log)( 2 1 info t k t t vpvpS ∑= = onde: • k: número de divisões (valores do atributo Ai) • p(vt) = fração de objetos cujo valor do atributo Ai = vt • Sinfo = entropia do conjunto de objetos com relação aos valores do atributo Ai ↑↑↑↑ no. objetos com valores distintos ↑↑↑↑ Sinfo ↓↓↓↓ taxa de ganho 64 Árvores e Regras Cada percurso da raiz a um nó folha representa uma regra de classificação Cada nó folha Está associado a uma classe Corresponde a uma região do domínio dos atributos Hiper-retângulo Interseção de hiper-retângulos é um conjunto vazio União é o espaço total
  • 33. 31/3/2009 33 65 Árvores e Regras A B > a1≤ a1 > b2≤ b2 A > a4≤ a4 B > b3≤ b3 a4 a1 A B b2 b3 66 Árvores e Regras A B > a1≤ a1 > b2≤ b2 A > a4≤ a4 B > b3≤ b3 1. Se A ≤ a1 E B ≤ b2 Então Classe = Vermelha OU 2. Se A > a1 E B ≤ b3 Então Classe = Laranja OU ... Exercício: complete as regras ! Regras: disjunções de conjunções lógicas
  • 34. 31/3/2009 34 67 Espaço de Hipóteses Uma árvore de decisão específica ou o conjunto de regras correspondente representa uma hipótese no espaço de hipóteses para a função de classificação a ser aproximada Em AM em geral, qualquer realização particular de um modelo é uma hipótese no espaço de hipóteses da tarefa que se deseja aprender a partir de um conjunto de dados 68 Bias Indutivo Informalmente, o bias indutivo de um algoritmo de AM é uma tendência deste em privilegiar uma ou um conjunto de hipóteses frente às demais Definiremos o bias indutivo de maneira formal em um material auxiliar disponibilizado para leitura extra-classe Vide sugestões de leitura e exercícios nos slides finais
  • 35. 31/3/2009 35 69 Bias Indutivo Para a presente discussão, basta saber que o bias indutivo de um classificador pode ser de dois tipos: De restrição (ou linguagem): modelo não é capaz de representar qualquer função de classificação dos dados diz-se nesse caso que o espaço de hipóteses não é completo por exemplo, classificador linear para problema não linear De busca (ou preferência): aprendizado não irá garantidamente encontrar a melhor realização do modelo dentre as possíveis melhor hipótese do espaço de hipóteses (seja este completo ou não) 70 Bias Indutivo de ADs O bias indutivo varia para cada algoritmo de AD Mas algoritmos cuja base são os procedimentos discutidos aqui (por exemplo os clássicos ID3 e C4.5) possuem bias similares Esses algoritmos executam sobre modelos que representam um espaço de hipóteses completo (não existe bias restritivo) árvores / regras podem ser tão precisas quanto necessário O bias desses algoritmos é de preferência: preferem árvores cujos atributos com maior ganho de informação estão acima na árvore, sem retroagir depois na decisão (sem backtracking) Conforme discutido em (Mitchell, 1997), seção 3.6, esse bias também implica uma tendência para árvores mais curtas / simples que longas
  • 36. 31/3/2009 36 71 Overfitting Ausência de bias restritivo em ADs significa que pode haver um ajuste perfeito aos dados de treinamento Alto risco de overfitting se conjunto de dados não for muito representativo e/ou estiver contaminado com ruído Partição recursiva dos dados: Decisões são baseadas em conjuntos cada vez menores de objetos Níveis mais profundos podem ter muito poucos objetos Presença de ruído afeta cada vez mais a decisão para esses nós Reduz capacidade de generalização (desempenho em objetos não vistos) 72 Overfitting Navalha de Occam (Occam’s razor) Quanto mais simples a solução, melhor Preferir as hipóteses mais simples Quando hipótese mais simples explica os dados, é pouco provável que seja coincidência Explicação dos dados por uma hipótese mais complexa pode ser apenas uma coincidência Árvore de decisão pode ser simplificada...
  • 37. 31/3/2009 37 73 Simplificação de ADs Duas Abordagens: Interromper a priori o crescimento da árvore com base no desempenho em dados de teste com base em um compromisso entre desempenho em dados de teste e complexidade do modelo Podar o modelo a posteriori poda da árvore poda das regras 74 Interrupção do Crescimento Interromper o crescimento da árvore quando o desempenho em dados não usados no treinamento não mais melhora de forma significativa que justifique a maior complexidade do modelo muito comum em redes neurais, não se mostra a melhor abordagem em ADs
  • 38. 31/3/2009 38 75 Poda da Árvore Poda da Árvore Elimina sub-árvores cujas existências reduzem o desempenho do modelo em dados de teste Demanda calcular, para cada nó, a variação no desempenho de classificação após a eliminação dos seus descendentes Em geral mais eficaz que interrupção, porém com um preço computacional associado 76 Algoritmo Simples de Poda 1. Tomar um conjunto de dados de teste (não vistos no treinamento) 2. Percorrer a árvore segundo percurso pós-fixado. Para cada nó t, calcular: - Et: o erro de classificação dos objetos de teste que chegam até aquele nó, como se o nó fosse uma folha associada à classe da maioria - St: a soma dos erros Ei de cada uma das folhas descendentes de t - Vt: variação do erro após poda dos descendentes (Vt = St – Et) 3. Podar os descendentes daquele nó t com maior valor positivo de Vt 4. Atualizar os valores de St e Vt para os nós ancestrais de t 5. Retornar ao passo 3 enquanto houver valores positivos de Vt * Nota: A estratégia acima é similar àquela utilizada pelo algoritmo ID3.
  • 39. 31/3/2009 39 77 Poda de Regras Poda de Regras A poda da árvore possui a desvantagem de se restringir a eliminar ou não toda uma sub-árvore de um nó t não é possível eliminar apenas alguns ramos Algoritmos como o C4.5 utilizam a poda de proposições individuais nos antecedentes das regras Por exemplo: Se A ≤ a1 E B ≤ b2 Então Classe = Vermelha Ambas as proposições A ≤ a1 e B ≤ b2 seriam consideradas individualmente como candidatas a serem eliminadas Após a poda, regras são ordenadas segundo a precisão de cada uma e a ordem é utilizada para resolver possíveis conflitos 78 Vantagens das ADs Rápida classificação de novos dados Interpretação da hipótese induzida Fácil para árvores relativamente pequenas ou seja, com poucas regras... Determina quais atributos são importantes Seleção de atributos embarcada !!! Pode ser estendida para também levar em conta o custo financeiro da utilização de cada atributo...
  • 40. 31/3/2009 40 79 Vantagens das ADs Principais algoritmos tratam tanto atributos categóricos como atributos numéricos Desempenho muitas vezes comparável ou até superior a outros bons classificadores depende da natureza dos dados Algoritmos podem ser adaptados para tratar instâncias com valores ausentes (e.g. C4.5) tanto no treinamento como na classificação vide (Quinlan, 1993) ou (Mitchell, 1997) 80 Desvantagens das ADs Limitação de hipótese a hiper-retângulos Exceto para Árvores Oblíquas (mais complexas...) Baixo desempenho em problemas com muitas classes e poucos dados Representatividade das regiões hiper-retangulares... Custo computacional de indução e simplificação do modelo pode ser elevado especialmente para os algoritmos mais sofisticados
  • 41. 31/3/2009 41 81 Exemplo: Algoritmo ID3 Precursor do famoso C4.5 Foi proposto por Quinlan em 1986 Trata apenas atributos categóricos Usa ganho de informação para seleção Faz simplificação por poda da árvore 82 Exemplo: Algoritmo C4.5 Sucessor do ID3 Proposto pelo mesmo autor – vide (Quinlan, 1993) Manipula qualquer tipo de atributo Usa taxa de ganho e heurísticas para seleção Faz simplificação por poda das regras Pode ser baixado em: http://www.cse.unsw.edu.au/~quinlan/c4.5r8.tar.gz
  • 42. 31/3/2009 42 83 Outros Algoritmos J4.8 Versão Java do C4.5 implementada no software Weka Permite desabilitar poda do modelo PART Variante do J4.8 também disponível no Weka Possui bias indutivo para regras mais simples 84 Outros Algoritmos C5.0 Sucessor do C4.5 também desenvolvido por Quinlan Comercial (detalhes são segredo industrial – não publicados) CART (Classification and Regression Trees) Árvores Oblíquas ! Decisões podem envolver combinações de atributos (e.g. A1 < A2) Hipóteses não mais restritas a partições hiper-retangulares
  • 43. 31/3/2009 43 85 Exercício Seja o seguinte cadastro de pacientes: Nome Febre Enjôo Manchas Dores Diagnóstico João sim sim pequenas sim doente Pedro não não grandes não saudável Maria sim sim pequenas não saudável José sim não grandes sim doente Ana sim não pequenas sim saudável Leila não não grandes sim doente 86 Exercício Usando medida de entropia: Induzir uma árvore de decisão capaz de distinguir: Pacientes potencialmente saudáveis Pacientes potencialmente doentes Testar a árvore para novos casos (Luis, não, não, pequenas, sim) (Laura, sim, sim, grandes, sim)
  • 44. 31/3/2009 44 87 Exercício Computacional Baixar da UCI as bases de dados IRIS e GLASS Induzir uma árvore de decisão com o algoritmo C4.5 Dividir os dados da seguinte forma: 50% para treinamento 25% para teste 25% para validação Fazer o mesmo para outros algoritmos vistos anteriormente no curso e comparar resultados K-NN, Naïve Bayes, 1Rule Ajustar parâmetros (p. ex. k do K-NN) por tentativa-e-erro 88 Leitura e Outros Exercícios (Mitchell, 1997): Capítulo 3 (Tan et al., 2006): Seções 4.1 a 4.4 Material auxiliar sobre bias indutivo (CoTeia)
  • 45. 31/3/2009 45 89 Referências Mitchell, T. M., Machine Learning, McGraw- Hill, 1997 P.-N. Tan, Steinbach, M., and Kumar, V., Introduction to Data Mining, Addison-Wesley, 2006 Quinlan, J. R., C4.5: Programs for Machine Learning, Morgan Kaufmann, 1993