Sei sulla pagina 1di 124

Induo de rvores de Deciso

Vrias aplicaes em Inteligncia Artificial em tarefas de importncia prtica so baseadas na construo de um modelo de conhecimento que utilizado por um especialista humano O objetivo desta aula fornecer conceitos bsicos sobre induo de rvores de deciso
Jos Augusto Baranauskas Departamento de Fsica e Matemtica FFCLRP-USP Sala 226 Bloco P2 Fone (16) 3602-4361 E-mail: augusto@fmrp.usp.br URL: http://www.fmrp.usp.br/augusto

Histrico
1960 s
1966: Hunt e colegas em psicologia usaram mtodos de busca exaustiva em rvores de deciso para modelar o aprendizado de conceitos humanos

1970 s
1977: Breiman, Friedman, e colegas em estatstica desenvolveram Classification And Regression Trees (CART) 1979: Primeiro trabalho de Quinlan com proto-ID3 (Induction of Decision Trees)

1980 s
1984: primeira publicao em massa do software CART (presente atualmente em vrios produtos comerciais) 1986: Artigo de Quinlan sobre ID3 Variedade de melhorias: tratamento de rudo, atributos contnuos, atributos com valores desconhecidos, rvores oblquas (no paralelas aos eixos), etc

1990 s
1993: Algoritmo atualizado de Quinlan: C4.5 (release 8) Maior poder, heursticas de controle de overfitting (C5.0, etc.); combinando DTs

TDIDT
Os algoritmos de classificao cujo conhecimento adquirido representado como rvore de Deciso (DT) pertencem a famlia TDIDT (Top Down Induction of Decision Trees) rvore de Deciso: estrutura recursiva definida como:
um n folha que indica uma classe, ou um n de deciso contm um teste sobre o valor de um atributo. Cada resultado do teste leva a uma subrvore. Cada sub-rvore tem a mesma estrutura da rvore
3

DT para Jogar Tnis


Atributos:
Aparncia: Sol, Nublado, Chuva Umidade: Alta, Normal Ventando: Forte, Fraco Temperatura: Quente, Mdia, Fria Classe (Conceito Alvo) jogar tnis: Sim, No

DT para Jogar Tnis


Aparncia

Sol
Umidade

Nublado
Sim

Chuva
Ventando

Alta
No

Normal
Sim

Forte
No

Fraco
Sim
5

DT para Jogar Tnis


Aparncia

Sol
Umidade

Nublado

Chuva

Cada n interno (deciso) testa um atributo Cada ramo corresponde a um valor do atributo testado Cada n folha atribui uma classe
6

Alta
No

Normal
Sim

DT para Jogar Tnis


Aparncia

Aparncia Temperatura Umidade Ventando JogarTnis Sol Quente Alta Fraco ?

Sol
Umidade

Nublado
Sim

Chuva
Ventando

Alta
No

Normal
Sim

Forte
No

Fraco
Sim
7

DT para Jogar Tnis


Aparncia

Aparncia Temperatura Umidade Ventando JogarTnis Sol Quente Alta Fraco ?

Sol
Umidade

Nublado
Sim

Chuva
Ventando

Alta
No

Normal
Sim

Forte
No

Fraco
Sim
8

DT para Jogar Tnis


Aparncia

Aparncia Temperatura Umidade Ventando JogarTnis Sol Quente Alta Fraco ?

Sol
Umidade

Nublado
Sim

Chuva
Ventando

Alta
No

Normal
Sim

Forte
No

Fraco
Sim
9

DT para Jogar Tnis


Aparncia

Aparncia Temperatura Umidade Ventando JogarTnis Sol Quente Alta Fraco ?

Sol
Umidade

Nublado
Sim

Chuva
Ventando

Alta
No

Normal
Sim

Forte
No

Fraco
Sim
10

DT para Jogar Tnis


Aparncia

Aparncia Temperatura Umidade Ventando JogarTnis Sol Quente Alta Fraco ?

Sol
Umidade

Nublado
Sim

Chuva
Ventando

Alta
No

Normal
Sim

Forte
No

Fraco
Sim
11

DT para Jogar Tnis


Aparncia

Aparncia Temperatura Umidade Ventando JogarTnis Sol Quente Alta Fraco ? No

Sol
Umidade

Nublado
Sim

Chuva
Ventando

Alta
No

Normal
Sim

Forte
No

Fraco
Sim
12

DTs Representam Disjunes de Conjunes


Aparncia

Sol
Umidade

Nublado
Sim

Chuva
Ventando

Alta
No

Normal
Sim

Forte
No

Fraco
Sim

(Aparncia=Sol Umidade=Normal) (Aparncia=Nublado) (Aparncia=Chuva Ventando=Fraco)

(Aparncia=Sol Umidade=Alta) (Aparncia=Chuva Ventando=Forte)

Sim

No
13

Exemplo: rvore de Deciso


Paciente se sente bem

sim

no

saudvel

Paciente tem dor

Paciente se sente bem = sim : saudvel Paciente se sente bem = no : :...Paciente tem dor = no : :...Temperatura do paciente <= 37: saudvel : Temperatura do paciente > 37: doente Paciente tem dor = sim : doente

no Temperatura do paciente 37 > 37 doente

sim doente

saudvel

14

Representao da DT como um Conjunto de Regras


Uma rvore pode ser representada como um conjunto de regras Cada regra comea na raiz da rvore e caminha para baixo, em direo s folhas
Cada n de deciso acrescenta um teste s premissas (condies) da regra O n folha representa a concluso da regra

15

Representao da DT como um Conjunto de Regras


Paciente se sente bem sim saudvel

no Paciente tem dor no Temperatura do paciente 37 saudvel > 37 doente sim doente

if Paciente se sente bem = sim then classe = saudvel else if Paciente tem dor = no if Temperatura do paciente 37 then classe = saudvel else {Temperatura do Paciente > 37} classe = doente end if else {Paciente tem dor = sim} classe = doente end if end if

16

Representao da DT como um Conjunto de Regras Disjuntas


As regras representadas por uma rvore de deciso so disjuntas Assim, elas podem ser escritas como regras separadas, comeando pela raiz, e, consequentemente, o else no necessrio

17

Representao da DT como um Conjunto de Regras Disjuntas


Paciente se sente bem sim saudvel

if Paciente se sente bem = sim then classe = saudvel end if if Paciente se sente bem = no and Paciente tem dor = no and Temperatura do paciente 37 then classe = saudvel end if if Paciente se sente bem = no and Paciente tem dor = no and Temperatura do paciente > 37 then classe = doente end if if Paciente se sente bem = no and Paciente tem dor = sim then classe = doente end if

no Paciente tem dor no Temperatura do paciente 37 saudvel > 37 doente sim doente

18

Algoritmo TDIDT
Seja T um conjunto de exemplos de treinamento com classes {C1, C2, ..., Ck}. H trs possibilidades:
1) T contm um ou mais exemplos, todos pertencendo a uma mesma classe Cj: a rvore de deciso para T uma folha identificando a classe Cj 2) T no contm exemplos: a rvore de deciso novamente uma folha, mas a classe associada com a folha deve ser determinada por alguma informao alm de T. Por exemplo, a folha pode ser escolhida de acordo com algum conhecimento do domnio, tal como a classe majoritria. C4.5 utiliza a classe mais freqente do n pai deste n (folha) 3) T contm exemplos que pertencem a uma mistura de classes: nesta situao a idia refinar T em subconjuntos que so (ou aparentam ser) colees de exemplos de uma nica classe. Um teste escolhido, baseado em um nico atributo, com resultados mutuamente exclusivos. Sejam os possveis resultados do teste denotados por {O1,O2, ...,Or}. T ento particionado em subconjuntos T1, T2, ..., Tr, nos quais cada Ti contm todos os exemplos em T que possuem como resultado daquele teste o valor Oi. A rvore de deciso para T consiste em um n (interno) identificado pelo teste escolhido e uma aresta para cada um dos resultados possveis. Para cada partio, pode-se exigir que cada Ti contenha um nmero mnimo de exemplos, evitando parties com poucos exemplos. O default de C4.5 de 2 exemplos

Os passos 1, 2 e 3 so aplicados recursivamente para cada subconjunto de exemplos de treinamento de forma que, em cada n, as arestas levam para as sub-rvores construdas a partir do subconjunto de exemplos Ti Aps a construo da rvore de deciso, a poda pode ser realizada para melhorar sua capacidade de generalizao
19

Algoritmo TDIDT
[C4.5, Quinlan, 1993] Generate_tree(R, C, T)
// R: set of non-categorical attribute // C: categorical attribute, T: training data 1. if T has the same categorical value then return a single node with the value 2. if R={} then return a single node with most frequent categorical value in T 3. A = attribute with highest information gain, Gain(T,A) among R 4. Let A1, A2, .., Am the attribute values of A 5. Let T1, T2, .., Tm the subsets of T partitioned by of Ai 6. return a node with A and m links as follows 7. for i = 1 to m do
1. Generate_tree(R-{A}, C, Ti)
20

Classificando Novos Exemplos


Uma DT pode ser usada para classificar novos exemplos (nunca vistos) A partir da raiz basta descer atravs dos ns de deciso at encontrar um n folha: a classe correspondente a esse n folha a classe do novo exemplo Um exemplo (sem valores desconhecidos) classificado apenas por uma regra (subrvore)
21

Exemplo (adaptado de Quinlan, 93)


Neste exemplo, vamos considerar um conjunto de exemplos que contm medies dirias sobre condies meteorolgicas Atributos
aparncia: sol , nublado ou chuva temperatura: temperatura em graus Celsius umidade: umidade relativa do ar ventando: sim ou no

Cada exemplo foi rotulado com bom se nas condies meteorolgicas daquele dia aconselhvel fazer uma viagem fazenda e ruim , caso contrrio
22

O Conjunto de Dados Viagem

23

Escolhendo Aparncia para Particionar

[9b,6r] Aparncia
sol nublado chuva

24

Escolhendo Umidade para Particionar Aparncia=sol

[9b,6r] Aparncia
sol nublado chuva

[2b,3r]

Umidade 78 > 78 ruim 25

bom

Escolhendo Umidade para Particionar Aparncia=nublado

[9b,6r] Aparncia
sol nublado Umidade 70 ruim ruim > 70 bom 26 chuva

[2b,3r]

Umidade 78 > 78

[4b,1r]

bom

Escolhendo Ventando para Particionar Aparncia=chuva

[9b,6r] Aparncia
sol nublado Umidade 70 ruim ruim > 70 bom bom chuva

[2b,3r]

Umidade 78 > 78

[4b,1r]

[3b,2r]

Ventando no sim ruim 27

bom

rvore de Deciso Induzida (sem poda)

Aparncia

sol Umidade 78 bom > 78 ruim ruim

nublado Umidade 70 > 70 bom

chuva Ventando no bom sim ruim 28

rvore de Deciso Induzida (sem poda)

[9b,6r] Aparncia
sol nublado Umidade chuva

[2b,3r]

Umidade 78 > 78 ruim E2,E4,E5

[4b,1r]

[3b,2r]

Ventando sim ruim E12,E13 29

bom E1,E3

70 > 70 ruim bom E8 E6,E7,E9,E10

no bom E11,E14,E15

rvore de Deciso Induzida (podada)

Aparncia

sol Umidade 78 bom > 78 ruim

nublado bom

chuva Ventando no bom sim ruim 30

(Ps-)Poda
Uma rvore maior induzida de forma a superajustar os exemplos e ento ela podada at obter uma rvore menor (mais simples) A poda evita overfitting

31

Relao entre Tamanho da rvore de Deciso e a Taxa de Erro


Taxa de Erro

Exemplos de Teste

Exemplos de Treinamento
N1 N2 N3

Nmero de ns (testes)
32

Escolha do Atributo
A maioria dos algoritmos de construo de rvores de deciso so sem retrocesso (sem backtracking) ou seja, gulosos (greedy) Uma vez que um teste foi selecionado para particionar o conjunto atual de exemplos, a escolha fixada e escolhas alternativas no so exploradas

33

Escolha do Atributo
A chave para o sucesso de um algoritmo de aprendizado por rvores de deciso depende do critrio utilizado para escolher o atributo que particiona o conjunto de exemplos em cada iterao Algumas possibilidades para escolher esse atributo so:
aleatria: seleciona qualquer atributo aleatoriamente menos valores: seleciona o atributo com a menor quantidade de valores possveis mais valores: seleciona o atributo com a maior quantidade de valores possveis ganho mximo: seleciona o atributo que possui o maior ganho de informao esperado, isto , seleciona o atributo que resultar no menor tamanho esperado das subrvores, assumindo que a raiz o n atual; razo de ganho ndice Gini
34

Entropia
Seja S um subconjunto de T A informao esperada (ou entropia) do subconjunto S (em bits) dado por

Quando aplicado a todo o conjunto de treinamento T, info (T) mede a quantidade mdia de informao necessria para identificar a classe de um exemplo em T Lembrar que logb(a) = ln(a) / ln(b), ou seja, log2(x) = ln (x) / ln(2) Observao: assumir 0*log2(0) = 0
35

Exerccio
Calcule info(T) para
Um conjunto T de 64 exemplos, sendo 29 exemplos da classe positiva e 35 da classe negativa, ou seja, [29+,35-] Um conjunto T de 64 exemplos, sendo 20 exemplos da classe positiva, 32 da classe negativa e 12 da classe asterisco, ou seja, [20+,32-,12*] Idem para T=[20+,32-,6*,6$]

36

Soluo
T = [29+,35-]
info(T) = info([29+,35-]) = 29/64 log2 29/64 35/64 log2 35/64 = 0.99

T = [20+,32-,12*]
info(T) = info([20+,32-,12*]) = 20/64 log2 20/64 32/64 log2 32/64 12/64log2 12/64 = 1.48

T = [20+,32-,6*,6$]
info(T) = info([20+,32-,6*,6$]) = 20/64 log2 20/64 32/64 log2 32/64 6/64 log2 6/64 6/64 log2 6/64 = 1.66
37

Entropia
Considere agora que T foi particionado de acordo com r valores do atributo X, ou seja X = O1, X = O2, ..., X = Or, gerando os subconjuntos T1, T2, ..., Tr, respectivamente
Ti o formado pelos exemplos de T nos quais o atributo X = Oi, ou seja, Ti = {z T: X = Oi}

A informao esperada para este particionamento a soma ponderada sobre todos os subconjuntos Ti:

lembrando que |T| a cardinalidade do conjunto T


38

Exerccio
[29+,35-] X1=? X2=? [29+,35-]

True
[21+, 5-]

False
[8+, 30-]

A
[18+, 32-]

B
[7+, 1-]

C
[4+, 2-]

Calcule info(X1,T) e info(X2,T), T = [29+,35-]

39

Soluo
[29+,35-] X1=? X2=? [29+,35-]

True
[21+, 5-]

False
[8+, 30-]

A
[18+, 32-]

B
[7+, 1-]

C
[4+, 2-]

info([21+,5-]) = 0.71 info([8+,30-]) = 0.74 info(X1,[29+,35-]) = -26/64*info([21+,5-]) -38/64*info([8+,30-]) = 0.73

info([18+,32-]) = 0.94 info([7+,1-]) = 0.54 info([4+,2-]) = 0.92 info(X2,[29+,35-]) = -50/64*info([18+,32-]) -8/64*info([7+,1-]) -6/64*info([4+,2-]) = 0.89
40

Ganho de Informao
A quantidade
gain(X,T) = info(T) info(X,T) mede o ganho de informao pela partio de T de acordo com o atributo X

O critrio de ganho (ganho mximo) seleciona o atributo XT (ou seja, X{X1, X2, ..., Xm}) que maximiza o ganho de informao

41

Exerccio
[29+,35-] X1=? X2=? [29+,35-]

True
[21+, 5-]
T = [29+,35-]

False
[8+, 30-]

A
[18+, 32-]

B
[7+, 1-]

C
[4+, 2-]

Qual o ganho de X1? E de X2? Com qual atributo obtm-se o ganho mximo?

info([29+,35-]) = 0.99 info(X1,[29+,35-]) = 0.73 info(X2,[29+,35-]) = 0.89

42

Soluo
[29+,35-] X1=? X2=? [29+,35-]

True
[21+, 5-]
T = [29+,35-]

False
[8+, 30-]

A
[18+, 32-]

B
[7+, 1-]

C
[4+, 2-]

gain(X1,T) = info(T) info(X1,T) = 0.99 0.73 = 0.26 gain(X2,T) = info(T) info(X2,T) = 0.99 0.89 = 0.10 Ganho mximo obtido com X1
43

info([29+,35-]) = 0.99 info(X1,[29+,35-]) = 0.73 info(X2,[29+,35-]) = 0.89

Exemplo

44

Exemplo

45

46

47

48

49

50

51

Escolha do Atributo para Particionar todo o Conjunto de Exemplos

52

O Subconjunto Aparncia=nublado possui Apenas Exemplos de uma Mesma Classe...


[9s,5n] Aparncia
sol nublado chuva

[2s,3n]

[3s,2n]

[4s,0n]

53

...o que Leva a um N Folha


[9s,5n] Aparncia
sol nublado chuva

[2s,3n] [4s,0n] sim

[3s,2n]

54

Escolha do Atributo para Particionar Aparncia=sol


[9s,5n] Aparncia
sol nublado chuva

[2s,3n] [4s,0n] sim

[3s,2n]

55

Escolha do Atributo para Particionar Aparncia=sol


[9s,5n] Aparncia
sol nublado chuva

[2s,3n] [4s,0n] sim

[3s,2n]

56

Escolha do Atributo Umidade para Particionar Aparncia=sol


[9s,5n] Aparncia
sol nublado chuva

[2s,3n] [4s,0n] sim


Umidade alta normal sim [2s,0n]

[3s,2n]

[0s,3n] no

57

Escolha do Atributo para Particionar Aparncia=chuva


[9s,5n] Aparncia
sol nublado chuva

[2s,3n] [4s,0n] sim


Umidade alta normal sim [2s,0n]

[3s,2n]

[0s,3n] no

58

Escolha do Atributo para Particionar Aparncia=chuva


[9s,5n] Aparncia
sol nublado chuva

[2s,3n] [4s,0n] sim


Umidade alta normal sim [2s,0n]

[3s,2n]

[0s,3n] no

59

Escolha do Atributo Ventando para Particionar Aparncia=chuva


[9s,5n] Aparncia
sol nublado chuva

[2s,3n] [4s,0n] sim


Umidade alta normal sim [2s,0n]

[3s,2n]

Ventando falso verdadeiro no [0s,2n]

[0s,3n] no

[3s,0n]

sim

60

rvore de Deciso Induzida


Aparncia sol nublado sim Umidade alta no normal sim Ventando falso sim verdadeiro no chuva

61

Exerccio
Calcule o ganho para o atributo Dia , ou seja, gain (Dia,T), sabendo que info(T)=0.94
gain(Dia,T) = info(T) info(Dia,T)

62

Razo de Ganho
Vimos que o ganho mximo interessante para particionar os exemplos, fornecendo bons resultados Entretanto, ele tem uma tendncia (bias) em favor de testes com muitos valores Por exemplo, considere um conjunto de exemplos de diagnstico mdico no qual um dos atributos contm o cdigo de identificao do paciente (ID) Uma vez que cada cdigo ID nico, particionando o conjunto de treinamento nos valores deste atributo levar a um grande nmero de subconjuntos, cada um contendo somente um caso Como todos os subconjuntos (de 1 elemento) necessariamente contm exemplos de uma mesma classe, info(ID,T)=0, assim o ganho de informao deste atributo ser mximo
63

Razo de Ganho
info(ID,T) = 0 T=[1a,1b,1c,...,1o,1p]

ID

...

No

No

Sim

Sim

No

64

Razo de Ganho
Para solucionar esta situao, em analogia definio de info(T), vamos definir a informao potencial gerada pela partio de T em r subconjuntos

A razo de ganho definida como:

A razo de ganho expressa a proporo de informao gerada pela partio que til, ou seja, que aparenta ser til para a classificao
65

Razo de Ganho
Usando o exemplo anterior para o atributo Aparncia que produz trs subconjuntos com 5, 4 e 5 exemplos, respectivamente

Para este teste, cujo ganho gain(Aparncia,T) =0.24675 (mesmo valor anterior), a razo de ganho
gain-ratio(Aparncia,T) = 0.24675 / 1.57741 = 0.156428
66

Atributos Numricos
Se um atributo X assume valores reais (numricos), gerado um teste binrio cujos resultados so X <= Z e X > Z O limite Z pode ser encontrado da seguinte forma
Os exemplos de T so inicialmente ordenados considerando os valores do atributo X sendo considerado H apenas um conjunto finito de valores, que podemos denotar (em ordem) por {v1, v2, ..., vL} Qualquer limite caindo entre vi e vi+1 tem o mesmo efeito que particionar os exemplos cujos valores do atributo X encontra-se em {v1, v2, ..., vi} e em {vi+1, vi +2, ..., vL} Assim, existem apenas L-1 divises possveis para o atributo X, cada uma devendo ser examinada Isso pode ser obtido (uma vez ordenados os valores) em uma nica passagem, atualizando as distribuies de classes para a esquerda e para a direita do limite Z durante o processo Alguns indutores podem escolher o valor de limite como sendo o ponto mdio de cada intervalo Z=(vi+vi+1)/2 C4.5, entretanto, escolhe o maior valor de Z entre todo o conjunto de treinamento que no excede o ponto mdio acima, assegurando que todos os valores que aparecem na rvore de fato ocorrem nos dados
67

Exemplo

68

Escolha do Atributo para Particionar todo o Conjunto de Exemplos

69

Escolha do Atributo para Particionar todo o Conjunto de Exemplos


Z=(83+85)/2=84

70

Escolha do Atributo para Particionar todo o Conjunto de Exemplos


Z=(80+85)/2=82.5

71

Escolha do Atributo para Particionar todo o Conjunto de Exemplos

72

O Subconjunto Aparncia=nublado possui Apenas Exemplos de uma Mesma Classe, Levando a um N Folha
[9s,5n] Aparncia
sol nublado chuva

[4s,0n] sim

73

Escolha do Atributo para Particionar Aparncia=sol


[9s,5n] Aparncia
sol nublado chuva

[4s,0n] sim

74

Escolha do Atributo para Particionar Aparncia=sol


Z=(75+80)/2=77.5

75

Escolha do Atributo para Particionar Aparncia=sol


Z=(70+85)/2=77.5

76

Escolha do Atributo para Particionar Aparncia=sol


[9s,5n] Aparncia
sol nublado chuva

[4s,0n] sim

77

Escolha do Atributo Umidade para Particionar Aparncia=sol


[9s,5n] Aparncia
sol nublado chuva

[2s,3n] [4s,0n] sim


Umidade <=75 >75 no [0s,3n]

[2s,0n]

sim

78

Escolha do Atributo para Particionar Aparncia=chuva


[9s,5n] Aparncia
sol nublado chuva

[2s,3n] [4s,0n] sim


Umidade <=75 >75 no [0s,3n]

[2s,0n]

sim

79

Escolha do Atributo para Particionar Aparncia=chuva


Z=(65+68)/2=66.5

80

Escolha do Atributo para Particionar Aparncia=chuva


Z=(70+80)/2=75

81

Escolha do Atributo para Particionar Aparncia=chuva


[9s,5n] Aparncia
sol nublado chuva

[2s,3n] [4s,0n] sim


Umidade <=75 >75 no [0s,3n]

[2s,0n]

sim

82

Escolha do Atributo Ventando para Particionar Aparncia=chuva


[9s,5n] Aparncia
sol nublado chuva

[2s,3n] [4s,0n] sim


Umidade <=75 >75 no [0s,3n]

[3s,2n]

Ventando falso verdadeiro no [0s,2n]

[2s,0n]

sim

[3s,0n]

sim

83

rvore de Deciso Induzida


Aparncia sol nublado sim Umidade <=75 sim >75 no falso sim Ventando verdadeiro no chuva

84

Atributos com Valores Desconhecidos (Missing Values)


O algoritmo bsico para construo da DT assume que o valor de um teste para cada exemplo de treinamento possa ser determinado Alm disso, o processo de classificao de novos exemplos requer uma escolha em cada ramo da rvore, escolha esta baseada em um atributo, cujo valor deve ser conhecido Entretanto, em dados do mundo real freqente o fato que um atributo apresente valores desconhecidos
O valor no relevante para aquele exemplo particular O valor no foi armazenado quando os exemplos foram coletados O valor no pde ser decifrado (se escrito mo) pela pessoa que digitou os dados

85

Atributos com Valores Desconhecidos


Por exemplo, Quinlan (1993) reporta que em um conjunto de 3000 dados mdicos sobre tireide, muitos exemplos no possuem o sexo do paciente, mesmo sabendo que esta informao seja usualmente relevante para a interpretao; mais de 30% dos exemplos apresentam valores desconhecidos Assim, a falta de completeza tpica em dados do mundo real Diante disso, h algumas escolhas possveis
Descartar uma parte (significante) dos exemplos de treinamento e assumir alguns dos novos exemplos (teste) como sendo inclassificveis Pr-processar os dados, substituindo os valores desconhecidos (o que geralmente altera o processo de aprendizado) Alterar os algoritmos apropriadamente para tratar atributos contendo valores desconhecidos
86

Atributos com Valores Desconhecidos


A alterao dos algoritmos para tratar atributos contendo valores desconhecidos requer a seguinte anlise:
A escolha de um teste para particionar o conjunto de treinamento: se dois testes utilizam atributos com diferentes nmeros de valores desconhecidos, qual o mais desejvel? Uma vez que um teste tenha sido escolhido, exemplos de treinamento com valores desconhecidos de um atributo no podem ser associados a um particular ramo (outcome) do teste e, portanto, no pode ser atribudo a um subconjunto particular Ti. Como esses exemplos devem ser tratados no particionamento? Quando a rvore utilizada para classificar um novo exemplo, como o classificador deve proceder se o exemplo tem um valor desconhecido para o atributo testado no n de deciso atual?

Veremos nos prximos slides a estratgia adotada pelo indutor C4.5


87

Escolha de um Teste
Como mencionado, o ganho de informao de um teste mede a informao necessria para identificar uma classe que pode ser esperada por meio do particionamento do conjunto de exemplos, calculado como a subtrao da informao esperada requerida para identificar a classe de um exemplo aps o particionamento da mesma informao antes do particionamento evidente que um teste no fornece informao alguma sobre a pertinncia a uma classe de um exemplo cujo valor do atributo de teste desconhecido

The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the le again. If the red x still appears, you may have to delete the image and then insert it again.

88

Escolha de um Teste
Assumindo que uma frao F de exemplos tenha seu valor conhecido para o atributo X, a definio de ganho pode ser alterada para
gain(X,T) = probabilidade de X ser conhecido * (info(T) info(X,T)) + probabilidade de X ser desconhecido * 0 gain(X,T) = F * (info(T) info(X,T))
The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the le again. If the red x still appears, you may have to delete the image and then insert it again.

De forma similar, a definio de split-info(X,T) pode ser alterada considerando os exemplos com valores desconhecidos como um grupo adicional. Se o teste tem r valores, seu split-info calculado como se o teste dividisse os exemplos em r+1 subconjuntos
89

Exerccio

90

Exerccio

Calcular info(T), info(Aparncia,T), gain(Aparncia,T), split-info(Aparncia,T), gain-ratio(Aparncia,T)


91

Soluo

92

Soluo

93

Particionando o Conjunto de Treinamento


Um teste pode ser selecionado dentre os possveis testes como antes, utilizando as definies modificadas de gain e split-info Se o atributo selecionado X possui valores desconhecidos, o conceito de particionamento do conjunto T generalizado da seguinte forma:
Assumindo que X assume r valores, ou seja X = O1, X = O2, ..., X=Or, cada teste particiona o conjunto T nos subconjuntos T1, T2, ..., Tr, respectivamente Quando um exemplo de T com valor conhecido atribudo ao subconjunto Ti isto indica que a probabilidade daquele exemplo pertencer ao subconjunto Ti 1 e em todos os demais subconjuntos 0
94

Particionando o Conjunto de Treinamento


Quando um exemplo possui valor desconhecido, apenas um grau de pertinncia probabilstico pode ser feito Assim a cada exemplo em cada subconjunto Ti associado um peso representando a probabilidade do exemplo pertencer a cada subconjunto
Se o exemplo tem seu valor conhecido para o teste, o peso 1 Se o exemplo tem seu valor desconhecido para o teste, o peso a probabilidade do teste X=Oi naquele ponto; cada subconjunto Ti agora uma coleo de exemplos fracionrios de forma que |Ti| deve ser interpretado como a soma dos pesos fracionrios dos exemplos no subconjunto

95

Particionando o Conjunto de Treinamento


Os exemplos em T podem ter pesos no unitrios, uma vez que T pode ser um subconjunto de uma partio anterior Em geral, um exemplo de T com peso w cujo valor de teste desconhecido atribudo a cada subconjunto Ti com peso
w * probabilidade de X=Oi

A probabilidade estimada como a soma dos pesos dos exemplos em T que tm seu valor (conhecido) igual a Oi dividido pela soma dos pesos dos exemplos em T que possuem valores conhecidos para o atributo X
96

Exemplo
Quando os 14 exemplos so particionados pelo atributo Aparncia, os 13 exemplos para os quais o valor conhecido no apresentam problemas O exemplo remanescente atribudo para todas as parties, correspondendo aos valores sol, nublado e chuva, com pesos 5/13, 3/13 e 5/13, respectivamente

97

Exemplo
Vamos analisar a primeira partio, correspondendo a Aparncia=sol

Se este subconjunto for particionado novamente pelo mesmo teste anterior, ou seja, utilizando o atributo Umidade, teremos as seguintes distribuies de classes
Umidade <= 75 Umidade > 75 [2s, 0n] [5/13s, 3n]
98

Exemplo
Distribuies de classes
Umidade <= 75 Umidade > 75 [2s, 0n] [5/13s, 3n]

A primeira partio contm exemplos de uma nica classe (sim) A segunda ainda contm exemplos de ambas as classes mas o algoritmo no encontra nenhum teste que melhore sensivelmente esta situao De maneira similar, o subconjunto correspondendo a Aparncia=chuva e cujo teste esteja baseado no atributo Ventando (como anteriormente) no pode ser particionado em subconjuntos de uma nica classe
99

Exemplo
A DT assume a forma:
aparencia = sol :...umidade <= 75: sim (2.0) : umidade > 75: no (3.4/0.4) aparencia = nublado: sim (3.2) aparencia = chuva :...ventando = verdadeiro: no (2.4/0.4) : ventando = falso: sim (3.0)

Os nmero nas folhas da forma (N) ou (N/E) significam


N a soma de exemplos fracionrios que atingiram a folha E o nmero de exemplos que pertencem a classes diferentes daquela predita pela folha (em rvores no podadas)

100

Classificando um Novo Exemplo


Uma abordagem similar utilizada quando a DT usada para classificar um novo exemplo Se um n de deciso encontrado para o qual o valor do atributo desconhecido (ou seja, o valor do teste no pode ser determinado), o algoritmo explorar todos os valores possveis de teste, combinando o resultado das classificaes aritmeticamente Uma vez que agora podem haver mltiplos caminhos da raiz da rvore ou sub-rvore at as folhas, a classificao uma distribuio de classes ao invs de uma nica classe Quando a distribuio total de classes para o novo exemplo estabelecida, a classe com a maior probabilidade rotulada como sendo a classe predita
101

Exemplo

aparencia = sol :...umidade <= 75: sim (2.0) : umidade > 75: no (3.4/0.4) aparencia = nublado: sim (3.2) aparencia = chuva :...ventando = verdadeiro: no (2.4/0.4) : ventando = falso: sim (3.0)

O valor de Aparncia assegura que o exemplo mova-se para a primeira sub-rvore mas no possvel determinar se Umidade <= 75 Entretanto, podemos notar que:
Se Umidade <= 75 o exemplo poderia ser classificado como sim Se Umidade > 75, o exemplo poderia ser classificado como no com probabilidade 3/3.4 (88%) e sim com probabilidade 0.4/3.4 (12%)

Quando a DT foi construda, as parties para estes testes tinham 2.0 e 3.4 exemplos, respectivamente As concluses condicionais so combinadas com os mesmos pesos relativos 2.0/5.4 e 3.4/5.4 de forma que a distribuio final de classes para o exemplo
sim: 2.0/5.4 * 100% + 3.4/5.4 * 12% = 44% no: 3.4/5.4 * 88% = 56%
102

Poda
H duas formas de produzir rvores mais simples
pr-poda: decide-se no mais particionar o conjunto de treinamento, utilizando algum critrio ps-poda: induz-se a rvore completa e ento remove-se alguns dos ramos

A poda invariavelmente causar a classificao incorreta de exemplos de treinamento Conseqentemente, as folhas no necessariamente contero exemplos de uma nica classe
103

Pr-Poda
Evita gastar tempo construindo estruturas (sub-rvores) que no sero usada na rvore final simplificada O mtodo usual consiste em analisar a melhor forma de particionar um subconjunto, mensurando-a sob o ponto de vista de significncia estatstica, ganho de informao, reduo de erro ou outra mtrica qualquer Se a medida encontrada encontrar-se abaixo de um valor limite (threshold) o particionamento interrompido e a rvore para aquele subconjunto apenas a folha mais apropriada Entretanto, a definio do valor limite no simples de ser definido
Um valor muito grande pode terminar o particionamento antes que os benefcios de divises subseqentes tornem-se evidentes Um valor muito pequeno resulta em pouca simplificao
104

Ps-Poda
O processo de induo (dividir-e-conquistar) da rvore continua de forma livre e ento a rvore super-ajustada (overfitted tree) produzida ento podada O custo computacional adicional investido na construo de partes da rvore que sero posteriormente descartadas pode ser substancial Entretanto, esse custo compensador devido a uma maior explorao das possveis parties Crescer e podar rvores mais lento, mas mais confivel
105

Ps-Poda
Existem vrias forma de avaliar a taxa de erro de rvores podadas, dentre elas
avaliar o desempenho em um subconjunto separado do conjunto de treinamento (o que implica que uma parte dos exemplos devem ser reservada para a poda e, portanto, a rvore tem que ser construda a partir de um conjunto de exemplos menor) avaliar o desempenho no conjunto de treinamento, mas ajustando o valore estimado do erro, j que ele tem a tendncia de ser menor no conjunto de treinamento

106

Ps-Poda (C4.5)
Quando N exemplos de treinamento so cobertos por uma folha, E dos quais incorretamente, a taxa de erro de resubstituio para esta folha E/N Entretanto, isso pode ser visto como a observao de E eventos em N tentativas Se esse conjunto de N exemplos de treinamento forem vistos como uma amostra (o que de fato no ), podemos analisar o que este resultado indica sobre a probabilidade de um evento (erro) na populao inteira de exemplos cobertos por aquela folha A probabilidade no pode ser determinada exatamente, mas tem uma distribuio de probabilidade (posterior) que usualmente resumida por um par de limites de confiana Para um dado nvel de confiana CF, o limite superior desta probabilidade pode ser encontrado a partir dos limites de confiana de uma distribuio binomial denotado por UCF(E,N)

107

Anlise de Complexidade
Vamos assumir que a profundidade da rvore para n exemplos O (log n) (assumindo rvore balanceada) Vamos considerar o esforo para um atributo para todos os ns da rvore; nem todos os exemplos precisam ser considerados em cada n mas certamente o conjunto completo de n exemplos deve ser considerado em cada nvel da rvore Como h log n nveis na rvore, o esforo para um nico atributo O (n log n) Assumindo que em cada n todos os atributos so considerados, o esforo para construir a rvore torna-se O(mn log n)
Se os atributos so numricos, eles devem ser ordenados, mas apenas uma ordenao inicial necessria, o que toma O(n log n) para cada um dos m atributos: assim a complexidade acima permanece a mesma Se os atributos so nominais, nem todos os atributos precisam ser considerados em cada n uma vez que atributos utilizados anteriormente no podem ser reutilizados; entretanto, se os atributos so numricos eles podem ser reutilizados e, portanto, eles devem ser considerados em cada nvel da rvore
108

Anlise de Complexidade
Na poda (subtree replacement), inicialmente uma estimativa de erro deve ser efetuada em cada n
Assumindo que contadores sejam apropriadamente mantidos, isto realizado em tempo linear ao nmero de ns na rvore

Aps isso, cada n deve ser considerado para substituio


A rvore possui no mximo n folhas, uma para cada exemplo Se a rvore for binria (cada atributo sendo numrico ou nominal com dois valores apenas) isso resulta em 2n-1 ns (rvores com multi-ramos apenas diminuem o nmero de ns internos)

Assim, a complexidade para a poda O(n)


109

Interpretao Geomtrica
Consideramos exemplos como um vetor de m atributos Cada vetor corresponde a um ponto em um espao m-dimensional A DT corresponde a uma diviso do espao em regies, cada regio rotulada como uma classe

110

Interpretao Geomtrica: AtributoValor


Um teste para um atributo da forma Xi op Valor onde Xi um atributo, op {=,,<,,>,} e valor uma constante vlida para o atributo O espao de descrio particionado em regies retangulares, nomeadas hiperplanos, que so ortogonais aos eixos As regies produzidas por DT so todas hiperplanos Enquanto a rvore est sendo formada, mais regies so adicionadas ao espao

111

Interpretao Geomtrica p/ DT
X2

o o o o o o o o o o + + o o o o + + o + o o

o o oo

+ + +

+ + + +

+ +
5

+ + +

10

X1

112

Interpretao Geomtrica p/ DT
X2

o o o o o o o o o o + + o o o o + + o + o o

o o oo

+ + +

+ + + +

X1 10 >10 +

+ +
5

+ + +

10

X1

113

Interpretao Geomtrica p/ DT
X2

o o o o o o o o o o + + o o o o + + o + o o

o o oo

+ + +

+ + + +

+
X2 8 >8

X1 10 >10 +

+ +
5

+ + +

10

X1

114

Interpretao Geomtrica p/ DT
X2

o o o o o o o o o o + + o o o o + + o + o o

o o oo

+ + +

+ + +

+
X2 8 X1 5 o >5 + >8

X1 10 >10 +

+ +
5

+ + +

+
10 X1

115

Combinao Linear de Atributos


Produzem rvores de deciso oblquas A representao para os testes so da forma onde ai uma constante, Xi um atributo real, op {<,,>,} e Valor uma constante O espao de descrio particionado hiperplanos que no so necessariamente ortogonais ao eixos
116

rvore de Deciso Oblqua


X2

o o o o o o o o o o + + o o o o + + o + o o

o o oo

+ + +

+ +

+
X1-X2 4 >4 +

+ +
5

+ + +

+ +

10

X1

X1 117

Resumo
rvores de deciso, em geral, possuem um tempo de aprendizado relativamente rpido rvores de deciso permitem a classificao de conjuntos com milhes de exemplos e centenas de atributos a uma velocidade razovel possvel converter para regras de classificao, podendo ser interpretadas por seres humanos Preciso comparvel a outros mtodos
118

taxa-producao-lagrimas

reduzida nenhuma (12)

normal astigmatismo nao sim

idade jovem adulto idoso

prescricao miope rigida (3) hipermetrope idade jovem miope nenhuma (1) hipermetrope gelatinosa (1) rigida (1) adulto nenhuma (1) nenhuma (1) 119 idoso

gelatinosa (2)

gelatinosa (2)

prescricao

taxa-producao-lagrimas

reduzida nenhuma (12)

normal astigmatismo nao sim

idade jovem adulto idoso

prescricao miope rigida (3) hipermetrope rigida (3/2)

gelatinosa (2)

gelatinosa (2)

gelatinosa (2/1)

120

taxa-producao-lagrimas

reduzida nenhuma (12)

normal astigmatismo nao sim

gelat, f=1/6, perr=0.4272


idade jovem adulto rigida (3) gelatinosa (2) gelatinosa (2) gelatinosa (2/1) idoso

rig, f=2/6, perr=0.5921


prescricao miope hipermetrope rigida (3/2)

f=1/2, perr=0.837

f=2/3, perr=0.895

121

taxa-producao-lagrimas

reduzida nenhuma (12)

normal astigmatismo nao

gelat, f=7/12, perr=0.7455 rg, f=8/12, perr=0.8121

sim

f=1/6, perr=0.4272
gelatinosa (6/1)

f=2/6, perr=0.5921
rigida (6/2)

122

7 6 5 4 3 2 1

B D

10
123

7 6 5 4 3 2 1

E D

10
124

Potrebbero piacerti anche