You are on page 1of 51

rvores de Deciso

Sistemas Inteligentes
Uma Abordagem tpicas em
aprendizagem simblica

rvores de deciso: inductive decision trees


(ID3)
Instncias (exemplos) so representadas por pares
atributo-valor
Fceis de serem implementadas e utilizadas
aprendizagem no incremental
estatstica (admite excees)
rvores de Deciso
Uma rvore de deciso utiliza uma estratgia
de dividir-para-conquistar:
Um problema complexo decomposto em sub-
problemas mais simples.
Recursivamente a mesma estratgia aplicada a
cada sub-problema.
A capacidade de discriminao de uma rvore
vem da:
Diviso do espao definido pelos atributos em sub-
espaos.
A cada sub-espao associada uma classe.
rvores de Deciso

Crescente interesse
CART (Breiman, Friedman, et.al.)
C4.5 (Quinlan), C5
S plus , Statistica, SPSS, SAS, WEKA
rvores de Deciso

X1 X2
<a1 >a1
N
a3
X2 X2
<a3 >a3 >a2
<a2

a2
X1
<a4 >a4

a4 a1 X1
O que uma rvore de Deciso
Representao por rvores
Raz
Regra de deciso:
X1
<a1 >a1
Cada n de deciso contem
N
um teste num atributo.
X2 X2
<a3 >a3 >a2 Cada ramo descendente
<a2
corresponde a um possvel
valor deste atributo.
X1
<a4 >a4 Cada Folha est associada a
Folhas uma classe.
Cada percurso na rvore (da
raiz folha) corresponde a
uma regra de classificao.
rvores de Deciso
No espao definido pelos
X2
atributos:
Cada folha corresponde a
a3
uma regio: Hiper-retngulo
A interseco dos hiper -
retngulos vazia
a2
A unio dos hiper-retngulos
o espao completo

a4 a1 X1
Quando usar rvores de deciso?

Instncias (exemplos) so representadas por pares


atributo-valor
Funo objetivo assume apenas valores discretos
Conjunto de treinamento possivelmente corrompido por
rudo
Exemplos:
Diagnstico mdico, diagnstico de equipamentos,
anlise de crdito
Construo de uma
rvore de Deciso
A idia base:
1. Escolher um atributo.
2. Estender a rvore adicionando um ramo para cada
valor do atributo.
3. Passar os exemplos para as folhas (tendo em conta
o valor do atributo escolhido)
4. Para cada folha
1. Se todos os exemplos so da mesma classe,
associar essa classe folha
2. Seno repetir os passos 1 a 4
Exemplo
O conjunto de dados original
Exemplo
Seleciona um atributo

Qual o melhor
atributo?
Critrios para Escolha do Atributo
Como medir a habilidade de um dado atributo
discriminar as classes?
Existem muitas medidas.
Todas concordam em dois pontos:
Uma diviso que mantm as propores de classes
em todas as parties intil.
Uma diviso onde em cada partio todos os
exemplos so da mesma classe tem utilidade mxima.
Critrios para Escolha do Atributo
Qual o melhor atributo?

[29+ , 35-] [29+ , 35-]


A1=? A2=?

[21+, 5-] [8+, 30-] [18+ , 33-] [11+ , 2-]


Entropia

S uma amostra dos exemplos de treinamento


p a proporo de exemplos positivos em S
p a proporo de exemplos negativos em S
Entropia mede a impureza de S:
Entropia(S)=- p log2 p - p log2 p
Entropia - Exemplo I
Se p 1, o destinatrio sabe que o exemplo selecionado ser
positivo
Nenhuma mensagem precisa ser enviada
Entropia 0 (mnima)
Se p 0.5, um bit necessrio para indicar se o exemplo
selecionado ou
Entropia 1 (mxima)
Entropia - Grfico
Entropia
Entropia uma medida da aleatoriedade
(impureza) de uma varivel.
A entropia de uma varivel nominal X que pode
tomar i valores:
entropia( X ) pi log 2 pi
i

A entropia tem mximo (log2 i) se pi = pj para


qualquer i j
A entropia(x) = 0 se existe um i tal que pi = 1
assumido que 0 * log2 0 = 0
Entropia - Exemplo II
Suponha que S uma coleo de 14 exemplos, incluindo 9 positivos e 5
negativos
Notao: [9+,5-]
A entropia de S em relao a esta classificao booleana dada por:

Entropy([9,5]) (9 / 14) log 2 (9 / 14) (5 / 14) log 2 (5 / 14)


0.940
Ganho de Informao
No contexto das rvores de deciso a entropia
usada para estimar a aleatoriedade da varivel a
prever (classe).
Dado um conjunto de exemplos, que atributo
escolher para teste?
Os valores de um atributo definem parties do
conjunto de exemplos.
O ganho de informao mede a reduo da entropia
causada pela partio dos exemplos de acordo com os
valores do atributo.
Ganho de Informao

# Exs
ganho( Exs, Atri ) entropia( Exs) entropia( Exs )
# Exs

A construo de uma rvore de deciso guiada


pelo objetivo de diminuir a entropia ou seja a
aleatoriedade - dificuldade de previso- da varivel
que define as classes.
Clculo do Ganho de Informao
de um atributo nominal
Informao da Classe:
p(sim) = 9/14
p(no) = 5/14
Ent(joga) = - 9/14 log2 9/14
5/14 log2 5/14 = 0.940
Informao nas parties:
p(sim|tempo=sol) = 2/5
p(no|tempo=sol) = 3/5
Clculo do Ganho de Informao
de um atributo nominal
Informao nas parties:
Ent(joga|tempo=sol)
= -2/5 log2 2/5 3/5 log2 3/5 =
0.971
Ent(joga|tempo=nublado) = 0.0
Ent(joga|tempo=chuva) = 0.971
Info(tempo) = 5/14*0.971 +
4/14*0+5/14*0.971= 0.693
Ganho de Informao obtida neste
atributo:
Ganho(tempo) = Ent(joga)-Info(tempo)
Ganho(tempo) = 0.940 0.693 = 0.247
Ganho (vento)

Values (Wind ) Weak , Strong


S [9,5]
SW eak [6,2]
S Strong [3,3]
| Sv |
Gain( S , Wind ) Entropy( S )
v{W eak, Strong} | S |
Entropy( S v )

Entropy( S ) (8 / 14) Entropy( SW eak ) (6 / 14) Entropy( S Strong )


0.940 (8 / 14) * 0.811 (6 / 14) * 1.00
0.048
Critrio de ganho
Exemplos de treinamento
Considere a tarefa de aprendizagem representada pelos exemplos
de treinamento na tabela abaixo, onde o objetivo prever o
atributo PlayTenis baseando-se nos outros atributos

Day Outlook Temperature Humidity Wind PlayTennis


D1 Sunny Hot High Weak No
D2 Sunny Hot High Strong No
D3 Overcast Hot High Weak Yes
D4 Rain Mild High Weak Yes
D5 Rain Cool Normal Weak Yes
D6 Rain Cool Normal Strong No
D7 Overcast Cool Normal Strong Yes
D8 Sunny Mild High Weak No
D9 Sunny Cool Normal Weak Yes
D10 Rain Mild Normal Weak Yes
D11 Sunny Mild Normal Strong Yes
D12 Overcast Mild High Strong Yes
D13 Overcast Hot Normal Weak Yes
D14 Rain Mild High Strong No
Exemplos de treinamento

Que atributo deve ser selecionado para ser a raiz da


rvore?
Gain(S,Outlook) = 0.247
Gain(S,Humidity) = 0.151
Gain(S,Wind) = 0.048
Gain(S,Temperature) = 0.029
onde S denota a coleo de exemplos na tabela anterior
Clculo do Ganho para
Atributos Numricos
Um teste num atributo numrico produz uma
partio binria do conjunto de exemplos:
Exemplos onde valor_do_atributo < ponto_referncia
Exemplos onde valor_do_atributo > ponto_referncia
Escolha do ponto de referncia:
Ordenar os exemplos por ordem crescente dos
valores do atributo numrico.
Qualquer ponto intermedirio entre dois valores
diferentes e consecutivos dos valores observados no
conjunto de treinamento pode ser utilizado como
possvel ponto de referncia.
Clculo do Ganho para
Atributos Numricos
usual considerar o valor mdio entre dois valores
diferentes e consecutivos.
Fayyard e Irani (1993) mostram que de todos os
possveis pontos de referncia aqueles que
maximizam o ganho de informao separam dois
exemplos de classes diferentes.
Clculo do Ganho para
Atributos Numricos
Considere o ponto de referncia
temperatura = 70.5
Um teste usando este ponto de
referncia divide os exemplos
em duas classes:
Exemplos onde temperatura
< 70.5
Exemplos onde temperatura
> 70.5
Como medir o ganho de
informao desta partio?
Clculo do Ganho para
Atributos Numricos
Como medir o ganho de informao desta
partio?
Informao nas parties
p(sim | temperatura<70.5)=4/5
p(no | temperatura<70.5)=1/5
p(sim | temperatura>70.5)=5/9
p(no | temperatura>70.5)=4/9
Clculo do Ganho para
Atributos Numricos
Info(joga | temperatur<70.5) = -4/5 log2 4/5 1/5 log2 1/5 =
0.721
Info(joga | temperatura >70.5) = -5/9 log2 5/9 4/9 log2 4/9 =
0.991
Info(temperatura) = 5/14*0.721+9/14*0.991 = 0.895
Ganho(temperatura) = 0.940 0.895 = 0.045
Critrios de Parada

Quando parar a diviso dos exemplos?


Todos os exemplos pertencem a mesma classe.
Todos os exemplos tm os mesmos valores dos
atributos (mas diferentes classes).
O nmero de exemplos inferior a um certo limite.
O mrito de todos os possveis testes de partio
dos exemplos muito baixo.
Construo de uma
rvore de Deciso
Input:
Um conjunto de exemplos
Output: Uma rvore de deciso
Funo Gerarvore(Exs)
Se criterio_parada(Exs) = TRUE: retorna Folha
Escolhe o atributo que maximiza o
critrio_diviso(Exs)
Para cada partio i dos exemplos baseada no
atributo escolhido: rvorei = Gerarvore(Exsi)
Retorna um n de deciso baseado no atributo
escolhido e com descendentes rvorei.
Fim
Construo de uma
rvore de Deciso
O problema de construir uma rvore de
deciso:
Consistente com um conjunto de exemplos
Com o menor nmero de ns
um problema NP completo.
Dois problemas:
Que atributo selecionar para teste num n?
Quando parar a diviso dos exemplos ?
Construo de uma
rvore de Deciso
Os algoritmos mais populares:
Utilizam heursticas que tomam decises olhando
para a frente um passo.
No reconsideram as opes tomadas
No h backtracking
Mnimo local
Sobre-ajustamento (Overfitting)
O algoritmo de partio recursiva do conjunto
de dados gera estruturas que podem obter um
ajuste aos exemplos de treinamento perfeito.
Em domnios sem rudo o nr. de erros no conjunto
de treinamento pode ser 0.
Em problemas com rudo esta capacidade
problemtica:
A partir de uma certa profundidade as decises
tomadas so baseadas em pequenos conjuntos de
exemplos.
A capacidade de generalizao para exemplos no
utilizados no crescimento da rvore diminui.
Variao do erro com o nr. de ns


Sobre-ajustamento (overfitting)
Definio:
Uma rvore de deciso d faz sobre-ajustamento aos
dados se existir uma rvore d tal que:
d tem menor erro que d no conjunto de treinamento
mas d tem menor erro na populao.
Como pode acontecer:
Rudo nos dados;
O nmero de parmetros de uma rvore de
deciso cresce linearmente com o nmero de
exemplos.
Uma rvore de deciso pode obter um ajuste perfeito
aos dados de treinamento.
Sobre-ajustamento (overfitting)
Occams razor: preferncia pela hiptese mais
simples.
Existem menos hipteses simples do que complexas.
Se uma hiptese simples explica os dados pouco
provvel que seja uma coincidncia.
Uma hiptese complexa pode explicar os dados
apenas por coincidncia.
Simplificar a rvore

Duas possibilidades:
Parar o crescimento da rvore mais cedo (pre-
pruning).
Construir uma rvore completa e podar a rvore
(pos-pruning).
Growing and pruning is slower but more reliable
Quinlan, 1988
Um algoritmo bsico de pruning

Percorre a rvore em profundidade


Para cada n de deciso calcula:
Erro no n
Soma dos erros nos ns descendentes
Se o erro no n menor ou igual soma dos
erros dos ns descendentes, o n
transformado em folha.
Um algoritmo bsico de pruning
Exemplo do n B:
Erro no n = 2
Soma dos erros
nos ns
descendentes:
2 + 0

Transforma o n
em folha
Elimina os ns

descendentes.
Critrios de como escolher a
melhor rvore.

Obterestimativas confiveis do erro a partir do


conjunto de treinamento.
Otimizar o erro num conjunto de validao
independente do utilizado para construir a
rvore.
Minimizar:
erro no treinamento + dimenso da rvore
Cost Complexity pruning (Cart)

dimenso da rvore + quantidade de exemplos mal


classificados
MDL pruning (Quinlan)
Estimativas de Erro

O problema fundamental do algoritmo de poda


a estimativa de erro num determinado n.
O erro estimado a partir do conjunto de treino no
um estimador confivel.
O reduced error pruning
consiste em obter estimativas de erro a partir de um
conjunto de validao independente do conjunto de
treino.
Reduz o volume de informao disponvel para
crescer a rvore.
Valores de atributo desconhecidos
E se valores do atributo A esto faltando para
alguns exemplos?
Substituir o valor desconhecido durante o pr-
processamento pelo valor mais provvel (ex. mdia)
Mesmo assim use os exemplos de treinamento, e
organize a rvore como segue:
Se um n n testa A, atribua um valor para A
que seja o mais comum entre os outros
exemplos classificados n n
Atribua para A um valor que seja o mais
comum entre os outros exemplos com o mesmo
valor objetivo (target value)
Transformao de rvores
em regras de deciso
Regraspodem ser auto-interpretadas.
Uma transformao:
Cada ramo d origem a uma regra
A regra prediz a classe associada folha

A parte condicional da regra obtida pela

conjuno das condies de cada n.


Em cada regra testado a eliminao de
condies. Uma condio eliminada se:
O erro no aumenta
A estimativa de erro no aumenta
Convertendo uma rvore em regras
Convertendo uma rvore em regras

IF (Outlook = Sunny) (Humidity = High) THEN


PlayTennis = No

IF (Outlook = Sunny) (Humidity = Normal) THEN


PlayTennis = YES

..........
Porqu Regras ?

Permite eliminar um teste numa regra, mas


pode reter o teste em outra regra.
Elimina a distino entre testes perto da raiz e
testes perto das folhas.
Maior grau de interpretabilidade.
Referncias

Machine Learning. Tom Mitchell. McGraw-Hill.1997.

You might also like