27.07.2013 Views

Indução de Árvores de Decisão

Indução de Árvores de Decisão

Indução de Árvores de Decisão

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Indução</strong> <strong>de</strong> <strong>Árvores</strong> <strong>de</strong><br />

José Augusto Baranauskas<br />

Departamento <strong>de</strong> Física e Matemática – FFCLRP-USP<br />

Sala 226 – Bloco P2 – Fone (16) 3602-4361<br />

<strong>Decisão</strong><br />

Várias aplicações em<br />

Inteligência Artificial em<br />

tarefas <strong>de</strong> importância prática<br />

são baseadas na construção<br />

<strong>de</strong> um mo<strong>de</strong>lo <strong>de</strong><br />

conhecimento que é utilizado<br />

por um especialista humano<br />

O objetivo <strong>de</strong>sta aula é<br />

fornecer conceitos básicos<br />

sobre indução <strong>de</strong> árvores <strong>de</strong><br />

<strong>de</strong>cisão<br />

E-mail: augusto@fmrp.usp.br<br />

URL: http://www.fmrp.usp.br/augusto


TDIDT<br />

Os algoritmos <strong>de</strong> classificação cujo conhecimento<br />

adquirido é representado como Árvore <strong>de</strong><br />

<strong>Decisão</strong> (DT) pertencem a família TDIDT (Top<br />

Down Induction of Decision Trees)<br />

Árvore <strong>de</strong> <strong>Decisão</strong>: estrutura recursiva <strong>de</strong>finida<br />

como:<br />

um nó folha que indica uma classe, ou<br />

um nó <strong>de</strong> <strong>de</strong>cisão contém um teste sobre o valor <strong>de</strong><br />

um atributo. Cada resultado do teste leva a uma subárvore.<br />

Cada sub-árvore tem a mesma estrutura da<br />

árvore<br />

3


DT para Jogar Tênis<br />

Atributos:<br />

Aparência: Sol, Nublado, Chuva<br />

Umida<strong>de</strong>: Alta, Normal<br />

Ventando: Forte, Fraco<br />

Temperatura: Quente, Média, Fria<br />

Classe (Conceito Alvo) – jogar tênis: Sim, Não<br />

4


DT para Jogar Tênis<br />

Sol Nublado Chuva<br />

Umida<strong>de</strong> Sim<br />

Ventando<br />

Alta Normal Forte Fraco<br />

Não Sim<br />

Aparência<br />

Não<br />

Sim<br />

5


DT para Jogar Tênis<br />

Alta Normal<br />

Não Sim<br />

Aparência<br />

Sol Nublado Chuva<br />

Umida<strong>de</strong> Cada nó interno (<strong>de</strong>cisão)<br />

testa um atributo<br />

Cada ramo correspon<strong>de</strong> a um valor<br />

do atributo testado<br />

Cada nó folha atribui uma classe<br />

6


DT para Jogar Tênis<br />

Aparência Temperatura Umida<strong>de</strong> Ventando JogarTênis<br />

Sol Quente Alta Fraco ?<br />

Sol Nublado Chuva<br />

Umida<strong>de</strong> Sim<br />

Ventando<br />

Alta Normal Forte Fraco<br />

Não Sim<br />

Aparência<br />

Não<br />

Sim<br />

7


DT para Jogar Tênis<br />

Aparência Temperatura Umida<strong>de</strong> Ventando JogarTênis<br />

Sol Quente Alta Fraco ?<br />

Sol Nublado Chuva<br />

Umida<strong>de</strong> Sim<br />

Ventando<br />

Alta Normal Forte Fraco<br />

Não Sim<br />

Aparência<br />

Não<br />

Sim<br />

8


DT para Jogar Tênis<br />

Aparência Temperatura Umida<strong>de</strong> Ventando JogarTênis<br />

Sol Quente Alta Fraco ?<br />

Sol Nublado Chuva<br />

Umida<strong>de</strong> Sim<br />

Ventando<br />

Alta Normal Forte Fraco<br />

Não Sim<br />

Aparência<br />

Não<br />

Sim<br />

9


DT para Jogar Tênis<br />

Aparência Temperatura Umida<strong>de</strong> Ventando JogarTênis<br />

Sol Quente Alta Fraco ?<br />

Sol Nublado Chuva<br />

Umida<strong>de</strong> Sim<br />

Ventando<br />

Alta Normal Forte Fraco<br />

Não Sim<br />

Aparência<br />

Não<br />

Sim<br />

10


DT para Jogar Tênis<br />

Aparência Temperatura Umida<strong>de</strong> Ventando JogarTênis<br />

Sol Quente Alta Fraco ?<br />

Sol Nublado Chuva<br />

Umida<strong>de</strong> Sim<br />

Ventando<br />

Alta Normal Forte Fraco<br />

Não Sim<br />

Aparência<br />

Não<br />

Sim<br />

11


DT para Jogar Tênis<br />

Aparência Temperatura Umida<strong>de</strong> Ventando JogarTênis<br />

Sol Quente Alta Fraco ?<br />

Não<br />

Sol Nublado Chuva<br />

Umida<strong>de</strong> Sim<br />

Ventando<br />

Alta Normal Forte Fraco<br />

Não Sim<br />

Aparência<br />

Não<br />

Sim<br />

12


DTs Representam Disjunções <strong>de</strong><br />

Conjunções<br />

Sol Nublado Chuva<br />

Umida<strong>de</strong> Sim<br />

Ventando<br />

Alta Normal Forte Fraco<br />

Não Sim<br />

(Aparência=Sol ∧ Umida<strong>de</strong>=Normal) ∨<br />

(Aparência=Nublado) ∨<br />

(Aparência=Chuva ∧ Ventando=Fraco)<br />

Aparência<br />

Não<br />

Sim<br />

(Aparência=Sol ∧ Umida<strong>de</strong>=Alta) ∨<br />

(Aparência=Chuva ∧ Ventando=Forte)<br />

Sim Não<br />

13


Exemplo: Árvore <strong>de</strong> <strong>Decisão</strong><br />

saudável<br />

sim<br />

Paciente se sente bem = sim : saudável<br />

Paciente se sente bem = não :<br />

:...Paciente tem dor = não :<br />

:...Temperatura do paciente 37: doente<br />

Paciente tem dor = sim : doente<br />

Paciente se<br />

sente bem<br />

Temperatura<br />

do paciente<br />

≤ 37<br />

não<br />

> 37<br />

saudável doente<br />

Paciente tem<br />

dor<br />

não sim<br />

doente<br />

14


Representação da DT como um<br />

Conjunto <strong>de</strong> Regras<br />

Uma árvore po<strong>de</strong> ser representada como<br />

um conjunto <strong>de</strong> regras<br />

Cada regra começa na raiz da árvore e<br />

caminha para baixo, em direção às folhas<br />

Cada nó <strong>de</strong> <strong>de</strong>cisão acrescenta um teste às<br />

premissas (condições) da regra<br />

O nó folha representa a conclusão da regra<br />

15


saudável<br />

Representação da DT como um<br />

Conjunto <strong>de</strong> Regras<br />

sim<br />

Paciente se<br />

sente bem<br />

Temperatura<br />

do paciente<br />

≤ 37<br />

não<br />

> 37<br />

saudável doente<br />

Paciente tem<br />

dor<br />

não sim<br />

doente<br />

if Paciente se sente bem = sim then<br />

classe = saudável<br />

else<br />

if Paciente tem dor = não<br />

if Temperatura do paciente ≤ 37 then<br />

classe = saudável<br />

else {Temperatura do Paciente > 37}<br />

classe = doente<br />

end if<br />

else {Paciente tem dor = sim}<br />

classe = doente<br />

end if<br />

end if<br />

16


Representação da DT como um<br />

Conjunto <strong>de</strong> Regras Disjuntas<br />

As regras representadas por uma árvore<br />

<strong>de</strong> <strong>de</strong>cisão são disjuntas<br />

Assim, elas po<strong>de</strong>m ser escritas como<br />

regras separadas, começando pela raiz, e,<br />

consequentemente, o else não é<br />

necessário<br />

17


saudável<br />

Representação da DT como um<br />

Conjunto <strong>de</strong> Regras Disjuntas<br />

sim<br />

Paciente se<br />

sente bem<br />

Temperatura<br />

do paciente<br />

≤ 37<br />

não<br />

> 37<br />

saudável doente<br />

Paciente tem<br />

dor<br />

não sim<br />

doente<br />

if Paciente se sente bem = sim then<br />

classe = saudável<br />

end if<br />

if Paciente se sente bem = não<br />

and Paciente tem dor = não<br />

and Temperatura do paciente ≤ 37 then<br />

classe = saudável<br />

end if<br />

if Paciente se sente bem = não<br />

and Paciente tem dor = não<br />

and Temperatura do paciente > 37 then<br />

classe = doente<br />

end if<br />

if Paciente se sente bem = não<br />

and Paciente tem dor = sim then<br />

classe = doente<br />

end if<br />

18


Algoritmo TDIDT<br />

Seja T um conjunto <strong>de</strong> exemplos <strong>de</strong> treinamento com classes {C 1 , C 2 , ..., C k }. Há três<br />

possibilida<strong>de</strong>s:<br />

1) T contém um ou mais exemplos, todos pertencendo a uma mesma classe C j : a árvore <strong>de</strong><br />

<strong>de</strong>cisão para T é uma folha i<strong>de</strong>ntificando a classe C j<br />

2) T não contém exemplos: a árvore <strong>de</strong> <strong>de</strong>cisão é novamente uma folha, mas a classe associada<br />

com a folha <strong>de</strong>ve ser <strong>de</strong>terminada por alguma informação além <strong>de</strong> T. Por exemplo, a folha<br />

po<strong>de</strong> ser escolhida <strong>de</strong> acordo com algum conhecimento do domínio, tal como a classe<br />

majoritária. C4.5 utiliza a classe mais freqüente do nó pai <strong>de</strong>ste nó (folha)<br />

3) T contém exemplos que pertencem a uma mistura <strong>de</strong> classes: nesta situação a idéia é refinar<br />

T em subconjuntos que são (ou aparentam ser) coleções <strong>de</strong> exemplos <strong>de</strong> uma única classe.<br />

Um teste é escolhido, baseado em um único atributo, com resultados mutuamente exclusivos.<br />

Sejam os possíveis resultados do teste <strong>de</strong>notados por {O 1 ,O 2 , ...,O r }. T é então particionado<br />

em subconjuntos T 1 , T 2 , ..., T r , nos quais cada T i contém todos os exemplos em T que<br />

possuem como resultado daquele teste o valor O i . A árvore <strong>de</strong> <strong>de</strong>cisão para T consiste em um<br />

nó (interno) i<strong>de</strong>ntificado pelo teste escolhido e uma aresta para cada um dos resultados<br />

possíveis. Para cada partição, po<strong>de</strong>-se exigir que cada T i contenha um número mínimo <strong>de</strong><br />

exemplos, evitando partições com poucos exemplos. O <strong>de</strong>fault <strong>de</strong> C4.5 é <strong>de</strong> 2 exemplos<br />

Os passos 1, 2 e 3 são aplicados recursivamente para cada subconjunto <strong>de</strong> exemplos<br />

<strong>de</strong> treinamento <strong>de</strong> forma que, em cada nó, as arestas levam para as sub-árvores<br />

construídas a partir do subconjunto <strong>de</strong> exemplos T i<br />

Após a construção da árvore <strong>de</strong> <strong>de</strong>cisão, a poda po<strong>de</strong> ser realizada para melhorar sua<br />

capacida<strong>de</strong> <strong>de</strong> generalização<br />

19


Algoritmo TDIDT<br />

[C4.5, Quinlan, 1993]<br />

Generate_tree(R, C, T)<br />

// R: set of non-categorical attribute<br />

// C: categorical attribute, T: training data<br />

1. if T has the same categorical value then return a single no<strong>de</strong> with<br />

the value<br />

2. if R={} then return a single no<strong>de</strong> with most frequent categorical<br />

value in T<br />

3. A = attribute with highest information gain, Gain(T,A) among R<br />

4. Let A 1 , A 2 , .., A m the attribute values of A<br />

5. Let T 1 , T 2 , .., T m the subsets of T partitioned by of A i<br />

6. return a no<strong>de</strong> with A and m links as follows<br />

7. for i = 1 to m do<br />

1. Generate_tree(R-{A}, C, T i )<br />

20


Classificando Novos Exemplos<br />

Uma DT po<strong>de</strong> ser usada para classificar<br />

novos exemplos (nunca vistos)<br />

A partir da raiz basta <strong>de</strong>scer através dos<br />

nós <strong>de</strong> <strong>de</strong>cisão até encontrar um nó folha:<br />

a classe correspon<strong>de</strong>nte a esse nó folha é<br />

a classe do novo exemplo<br />

Um exemplo (sem valores <strong>de</strong>sconhecidos)<br />

é classificado apenas por uma regra (subárvore)<br />

21


Árvore <strong>de</strong> <strong>Decisão</strong> Induzida (sem<br />

poda)<br />

Umida<strong>de</strong><br />

≤ 78<br />

> 78<br />

bom ruim<br />

sol<br />

Aparência<br />

Umida<strong>de</strong><br />

≤ 70 > 70<br />

nublado chuva<br />

ruim bom<br />

Ventando<br />

não sim<br />

bom ruim<br />

28


Árvore <strong>de</strong> <strong>Decisão</strong> Induzida (sem<br />

poda)<br />

[2b,3r] Umida<strong>de</strong> [4b,1r] Umida<strong>de</strong> [3b,2r]<br />

≤ 78<br />

bom<br />

E1 ,E3 > 78<br />

ruim<br />

E2 ,E4 ,E5 [9b,6r]<br />

sol<br />

ruim<br />

E 8<br />

Aparência<br />

≤ 70 > 70<br />

nublado chuva<br />

bom<br />

E 6 ,E 7 ,E 9 ,E 10<br />

Ventando<br />

não sim<br />

bom ruim<br />

E11 ,E14 ,E15 E12 ,E13 29


Árvore <strong>de</strong> <strong>Decisão</strong> Induzida<br />

(podada)<br />

Umida<strong>de</strong><br />

≤ 78<br />

> 78<br />

bom ruim<br />

sol<br />

Aparência<br />

bom<br />

nublado chuva<br />

Ventando<br />

não sim<br />

bom ruim<br />

30


(Pós-)Poda<br />

Uma árvore maior é induzida <strong>de</strong> forma a superajustar<br />

os exemplos e então ela é podada até<br />

obter uma árvore menor (mais simples)<br />

A poda evita overfitting<br />

31


Relação entre Tamanho da Árvore<br />

<strong>de</strong> <strong>Decisão</strong> e a Taxa <strong>de</strong> Erro<br />

Taxa<br />

<strong>de</strong><br />

Erro<br />

N1 N2<br />

N3<br />

Exemplos<br />

<strong>de</strong> Teste<br />

Exemplos<br />

<strong>de</strong> Treinamento<br />

Número <strong>de</strong> nós (testes)<br />

32


Escolha do Atributo<br />

A maioria dos algoritmos <strong>de</strong> construção <strong>de</strong><br />

árvores <strong>de</strong> <strong>de</strong>cisão são sem retrocesso<br />

(sem backtracking) ou seja, gulosos<br />

(greedy)<br />

Uma vez que um teste foi selecionado para<br />

particionar o conjunto atual <strong>de</strong> exemplos, a<br />

escolha é fixada e escolhas alternativas<br />

não são exploradas<br />

33


Escolha do Atributo<br />

A chave para o sucesso <strong>de</strong> um algoritmo <strong>de</strong> aprendizado<br />

por árvores <strong>de</strong> <strong>de</strong>cisão <strong>de</strong>pen<strong>de</strong> do critério utilizado para<br />

escolher o atributo que particiona o conjunto <strong>de</strong> exemplos<br />

em cada iteração<br />

Algumas possibilida<strong>de</strong>s para escolher esse atributo são:<br />

aleatória: seleciona qualquer atributo aleatoriamente<br />

menos valores: seleciona o atributo com a menor quantida<strong>de</strong> <strong>de</strong><br />

valores possíveis<br />

mais valores: seleciona o atributo com a maior quantida<strong>de</strong> <strong>de</strong><br />

valores possíveis<br />

ganho máximo: seleciona o atributo que possui o maior ganho <strong>de</strong><br />

informação esperado, isto é, seleciona o atributo que resultará no<br />

menor tamanho esperado das subárvores, assumindo que a raiz é<br />

o nó atual;<br />

razão <strong>de</strong> ganho<br />

índice Gini<br />

34


Entropia<br />

Seja S um subconjunto <strong>de</strong> T<br />

A informação esperada (ou entropia) do subconjunto S é<br />

(em bits) dado por<br />

Quando aplicado a todo o conjunto <strong>de</strong> treinamento T, info<br />

(T) me<strong>de</strong> a quantida<strong>de</strong> média <strong>de</strong> informação necessária<br />

para i<strong>de</strong>ntificar a classe <strong>de</strong> um exemplo em T<br />

Lembrar que log b (a) = ln(a) / ln(b), ou seja, log 2 (x) = ln<br />

(x) / ln(2)<br />

Observação: assumir 0*log 2 (0) = 0<br />

35


Exercício<br />

Calcule info(T) para<br />

Um conjunto T <strong>de</strong> 64 exemplos, sendo 29<br />

exemplos da classe positiva e 35 da classe<br />

negativa, ou seja, [29+,35-]<br />

Um conjunto T <strong>de</strong> 64 exemplos, sendo 20<br />

exemplos da classe positiva, 32 da classe<br />

negativa e 12 da classe asterisco, ou seja,<br />

[20+,32-,12*]<br />

I<strong>de</strong>m para T=[20+,32-,6*,6$]<br />

36


Solução<br />

T = [29+,35-]<br />

info(T) = info([29+,35-])<br />

= –29/64 log 2 29/64 –35/64 log 2 35/64<br />

= 0.99<br />

T = [20+,32-,12*]<br />

info(T) = info([20+,32-,12*])<br />

= –20/64 log 2 20/64 –32/64 log 2 32/64<br />

–12/64log2 12/64<br />

= 1.48<br />

T = [20+,32-,6*,6$]<br />

info(T) = info([20+,32-,6*,6$])<br />

= –20/64 log 2 20/64 –32/64 log 2 32/64<br />

–6/64 log 2 6/64 –6/64 log 2 6/64<br />

= 1.66<br />

37


Entropia<br />

Consi<strong>de</strong>re agora que T foi particionado <strong>de</strong> acordo com r<br />

valores do atributo X, ou seja X = O 1 , X = O 2 , ..., X = O r ,<br />

gerando os subconjuntos T 1 , T 2 , ..., T r , respectivamente<br />

T i é o formado pelos exemplos <strong>de</strong> T nos quais o atributo X = O i ,<br />

ou seja, T i = {∀z ∈ T: X = O i }<br />

A informação esperada para este particionamento é a<br />

soma pon<strong>de</strong>rada sobre todos os subconjuntos T i :<br />

lembrando que |T| é a cardinalida<strong>de</strong> do conjunto T<br />

38


Exercício<br />

[29+,35-]<br />

X 1 =? X 2 =?<br />

True False<br />

[21+, 5-] [8+, 30-]<br />

A B<br />

[18+, 32-] [7+, 1-]<br />

Calcule info(X 1 ,T) e info(X 2 ,T), T = [29+,35-]<br />

[29+,35-]<br />

C<br />

[4+, 2-]<br />

39


Solução<br />

[29+,35-]<br />

True False<br />

[21+, 5-] [8+, 30-]<br />

info([21+,5-]) = 0.71<br />

info([8+,30-]) = 0.74<br />

info(X 1 ,[29+,35-]) =<br />

-26/64*info([21+,5-])<br />

-38/64*info([8+,30-])<br />

= 0.73<br />

X 1 =? X 2 =?<br />

A B<br />

[18+, 32-] [7+, 1-]<br />

info([18+,32-]) = 0.94<br />

info([7+,1-]) = 0.54<br />

info([4+,2-]) = 0.92<br />

[29+,35-]<br />

C<br />

[4+, 2-]<br />

info(X 2 ,[29+,35-]) = -50/64*info([18+,32-])<br />

-8/64*info([7+,1-]) -6/64*info([4+,2-])<br />

= 0.89<br />

40


Ganho <strong>de</strong> Informação<br />

A quantida<strong>de</strong><br />

gain(X,T) = info(T) – info(X,T)<br />

me<strong>de</strong> o ganho <strong>de</strong> informação pela partição <strong>de</strong><br />

T <strong>de</strong> acordo com o atributo X<br />

O critério <strong>de</strong> ganho (ganho máximo)<br />

seleciona o atributo X∈T (ou seja, X∈{X 1 ,<br />

X 2 , ..., X m }) que maximiza o ganho <strong>de</strong><br />

informação<br />

41


Exercício<br />

[29+,35-]<br />

True False<br />

[21+, 5-] [8+, 30-]<br />

T = [29+,35-]<br />

info([29+,35-]) = 0.99<br />

info(X 1 ,[29+,35-]) = 0.73<br />

info(X 2 ,[29+,35-]) = 0.89<br />

X 1 =? X 2 =?<br />

A B<br />

[18+, 32-] [7+, 1-]<br />

Qual o ganho <strong>de</strong> X 1 ? E <strong>de</strong> X 2 ?<br />

[29+,35-]<br />

C<br />

[4+, 2-]<br />

Com qual atributo obtém-se o ganho<br />

máximo?<br />

42


Solução<br />

[29+,35-]<br />

True False<br />

[21+, 5-] [8+, 30-]<br />

T = [29+,35-]<br />

info([29+,35-]) = 0.99<br />

info(X 1 ,[29+,35-]) = 0.73<br />

info(X 2 ,[29+,35-]) = 0.89<br />

X 1 =? X 2 =?<br />

A B<br />

[18+, 32-] [7+, 1-]<br />

gain(X 1 ,T) = info(T) – info(X 1 ,T)<br />

= 0.99 – 0.73 = 0.26<br />

gain(X 2 ,T) = info(T) – info(X 2 ,T)<br />

= 0.99 – 0.89 = 0.10<br />

Ganho máximo é obtido com X 1<br />

[29+,35-]<br />

C<br />

[4+, 2-]<br />

43


Exemplo<br />

44


Exemplo<br />

45


Escolha do Atributo para Particionar<br />

todo o Conjunto <strong>de</strong> Exemplos<br />

52


...o que Leva a um Nó Folha<br />

sol<br />

[9s,5n]<br />

Aparência<br />

nublado<br />

chuva<br />

[2s,3n] [3s,2n]<br />

[4s,0n]<br />

sim<br />

54


Árvore <strong>de</strong> <strong>Decisão</strong> Induzida<br />

Umida<strong>de</strong><br />

alta normal<br />

não sim<br />

sol<br />

Aparência<br />

nublado<br />

sim<br />

chuva<br />

Ventando<br />

falso verda<strong>de</strong>iro<br />

sim não<br />

61


Razão <strong>de</strong> Ganho<br />

Vimos que o ganho máximo é interessante para<br />

particionar os exemplos, fornecendo bons resultados<br />

Entretanto, ele tem uma tendência (bias) em favor <strong>de</strong><br />

testes com muitos valores<br />

Por exemplo, consi<strong>de</strong>re um conjunto <strong>de</strong> exemplos <strong>de</strong><br />

diagnóstico médico no qual um dos atributos contém o<br />

código <strong>de</strong> i<strong>de</strong>ntificação do paciente (ID)<br />

Uma vez que cada código ID é único, particionando o<br />

conjunto <strong>de</strong> treinamento nos valores <strong>de</strong>ste atributo levará<br />

a um gran<strong>de</strong> número <strong>de</strong> subconjuntos, cada um contendo<br />

somente um caso<br />

Como todos os subconjuntos (<strong>de</strong> 1 elemento)<br />

necessariamente contêm exemplos <strong>de</strong> uma mesma<br />

classe, info(ID,T)=0, assim o ganho <strong>de</strong> informação <strong>de</strong>ste<br />

atributo será máximo<br />

63


Razão <strong>de</strong> Ganho<br />

T=[1a,1b,1c,...,1o,1p]<br />

a b c<br />

info(ID,T) = 0<br />

o p<br />

Não Não Sim Sim Não<br />

ID<br />

...<br />

64


Razão <strong>de</strong> Ganho<br />

Para solucionar esta situação, em analogia à <strong>de</strong>finição <strong>de</strong><br />

info(T), vamos <strong>de</strong>finir a informação potencial gerada pela<br />

partição <strong>de</strong> T em r subconjuntos<br />

A razão <strong>de</strong> ganho é <strong>de</strong>finida como:<br />

A razão <strong>de</strong> ganho expressa a proporção <strong>de</strong> informação<br />

gerada pela partição que é útil, ou seja, que aparenta ser<br />

útil para a classificação<br />

65


Razão <strong>de</strong> Ganho<br />

Usando o exemplo anterior para o atributo<br />

Aparência que produz três subconjuntos com 5, 4<br />

e 5 exemplos, respectivamente<br />

Para este teste, cujo ganho é gain(Aparência,T)<br />

=0.24675 (mesmo valor anterior), a razão <strong>de</strong><br />

ganho é<br />

gain-ratio(Aparência,T) = 0.24675 / 1.57741 =<br />

0.156428<br />

66


Atributos Numéricos<br />

Se um atributo X assume valores reais (numéricos), é gerado um teste<br />

binário cujos resultados são X Z<br />

O limite Z po<strong>de</strong> ser encontrado da seguinte forma<br />

Os exemplos <strong>de</strong> T são inicialmente or<strong>de</strong>nados consi<strong>de</strong>rando os valores do atributo<br />

X sendo consi<strong>de</strong>rado<br />

Há apenas um conjunto finito <strong>de</strong> valores, que po<strong>de</strong>mos <strong>de</strong>notar (em or<strong>de</strong>m) por<br />

{v 1 , v 2 , ..., v L }<br />

Qualquer limite caindo entre v i e v i+1 tem o mesmo efeito que particionar os<br />

exemplos cujos valores do atributo X encontra-se em {v 1 , v 2 , ..., v i } e em {v i+1 , v i<br />

+2 , ..., v L }<br />

Assim, existem apenas L-1 divisões possíveis para o atributo X, cada uma<br />

<strong>de</strong>vendo ser examinada<br />

Isso po<strong>de</strong> ser obtido (uma vez or<strong>de</strong>nados os valores) em uma única passagem,<br />

atualizando as distribuições <strong>de</strong> classes para a esquerda e para a direita do limite Z<br />

durante o processo<br />

Alguns indutores po<strong>de</strong>m escolher o valor <strong>de</strong> limite como sendo o ponto médio <strong>de</strong><br />

cada intervalo Z=(v i +v i+1 )/2<br />

C4.5, entretanto, escolhe o maior valor <strong>de</strong> Z entre todo o conjunto <strong>de</strong> treinamento<br />

que não exce<strong>de</strong> o ponto médio acima, assegurando que todos os valores que<br />

aparecem na árvore <strong>de</strong> fato ocorrem nos dados<br />

67


Exemplo<br />

68


Escolha do Atributo para Particionar<br />

todo o Conjunto <strong>de</strong> Exemplos<br />

69


Escolha do Atributo para Particionar<br />

todo o Conjunto <strong>de</strong> Exemplos Z=(83+85)/2=84<br />

70


Escolha do Atributo para Particionar<br />

todo o Conjunto <strong>de</strong> Exemplos<br />

Z=(80+85)/2=82.5<br />

71


Escolha do Atributo para Particionar<br />

todo o Conjunto <strong>de</strong> Exemplos<br />

72


Árvore <strong>de</strong> <strong>Decisão</strong> Induzida<br />

Umida<strong>de</strong><br />

75<br />

sim não<br />

sol<br />

Aparência<br />

nublado<br />

sim<br />

chuva<br />

Ventando<br />

falso verda<strong>de</strong>iro<br />

sim não<br />

84


Atributos com Valores<br />

Desconhecidos (Missing Values)<br />

O algoritmo básico para construção da DT assume que o<br />

valor <strong>de</strong> um teste para cada exemplo <strong>de</strong> treinamento<br />

possa ser <strong>de</strong>terminado<br />

Além disso, o processo <strong>de</strong> classificação <strong>de</strong> novos<br />

exemplos requer uma escolha em cada ramo da árvore,<br />

escolha esta baseada em um atributo, cujo valor <strong>de</strong>ve ser<br />

conhecido<br />

Entretanto, em dados do mundo real é freqüente o fato<br />

que um atributo apresente valores <strong>de</strong>sconhecidos<br />

O valor não é relevante para aquele exemplo particular<br />

O valor não foi armazenado quando os exemplos foram coletados<br />

O valor não pô<strong>de</strong> ser <strong>de</strong>cifrado (se escrito à mão) pela pessoa<br />

que digitou os dados<br />

85


Atributos com Valores<br />

Desconhecidos<br />

Por exemplo, Quinlan (1993) reporta que em um conjunto<br />

<strong>de</strong> 3000 dados médicos sobre tireói<strong>de</strong>, muitos exemplos<br />

não possuem o sexo do paciente, mesmo sabendo que<br />

esta informação seja usualmente relevante para a<br />

interpretação; mais <strong>de</strong> 30% dos exemplos apresentam<br />

valores <strong>de</strong>sconhecidos<br />

Assim, a falta <strong>de</strong> completeza é típica em dados do mundo<br />

real<br />

Diante disso, há algumas escolhas possíveis<br />

Descartar uma parte (significante) dos exemplos <strong>de</strong> treinamento e<br />

assumir alguns dos novos exemplos (teste) como sendo<br />

inclassificáveis<br />

Pré-processar os dados, substituindo os valores <strong>de</strong>sconhecidos (o<br />

que geralmente altera o processo <strong>de</strong> aprendizado)<br />

Alterar os algoritmos apropriadamente para tratar atributos<br />

contendo valores <strong>de</strong>sconhecidos<br />

86


Atributos com Valores<br />

Desconhecidos<br />

A alteração dos algoritmos para tratar atributos contendo<br />

valores <strong>de</strong>sconhecidos requer a seguinte análise:<br />

A escolha <strong>de</strong> um teste para particionar o conjunto <strong>de</strong> treinamento:<br />

se dois testes utilizam atributos com diferentes números <strong>de</strong><br />

valores <strong>de</strong>sconhecidos, qual o mais <strong>de</strong>sejável?<br />

Uma vez que um teste tenha sido escolhido, exemplos <strong>de</strong><br />

treinamento com valores <strong>de</strong>sconhecidos <strong>de</strong> um atributo não<br />

po<strong>de</strong>m ser associados a um particular ramo (outcome) do teste e,<br />

portanto, não po<strong>de</strong> ser atribuído a um subconjunto particular T i .<br />

Como esses exemplos <strong>de</strong>vem ser tratados no particionamento?<br />

Quando a árvore é utilizada para classificar um novo exemplo,<br />

como o classificador <strong>de</strong>ve proce<strong>de</strong>r se o exemplo tem um valor<br />

<strong>de</strong>sconhecido para o atributo testado no nó <strong>de</strong> <strong>de</strong>cisão atual?<br />

Veremos nos próximos sli<strong>de</strong>s a estratégia adotada pelo<br />

indutor C4.5<br />

87


Escolha <strong>de</strong> um Teste<br />

Como mencionado, o ganho <strong>de</strong> informação <strong>de</strong><br />

um teste me<strong>de</strong> a informação necessária para<br />

i<strong>de</strong>ntificar uma classe que po<strong>de</strong> ser esperada por<br />

open the file again. If the red x still appears, you may have to <strong>de</strong>lete the image and then insert it again.<br />

meio do particionamento do conjunto <strong>de</strong><br />

exemplos, calculado como a subtração da<br />

informação esperada requerida para i<strong>de</strong>ntificar a<br />

classe <strong>de</strong> um exemplo após o particionamento da<br />

mesma informação antes do particionamento<br />

É evi<strong>de</strong>nte que um teste não fornece informação<br />

alguma sobre a pertinência a uma classe <strong>de</strong> um<br />

exemplo cujo valor do atributo <strong>de</strong> teste é<br />

<strong>de</strong>sconhecido<br />

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<br />

88


Escolha <strong>de</strong> um Teste<br />

Assumindo que uma fração F <strong>de</strong> exemplos tenha<br />

seu valor conhecido para o atributo X, a <strong>de</strong>finição<br />

<strong>de</strong> ganho po<strong>de</strong> ser alterada para<br />

gain(X,T) = probabilida<strong>de</strong> <strong>de</strong> X ser conhecido *<br />

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<br />

open the file again. If the red x still appears, you may have to <strong>de</strong>lete the image and then insert it again.<br />

(info(T) – info(X,T))<br />

+ probabilida<strong>de</strong> <strong>de</strong> X ser <strong>de</strong>sconhecido * 0<br />

gain(X,T) = F * (info(T) – info(X,T))<br />

De forma similar, a <strong>de</strong>finição <strong>de</strong> split-info(X,T)<br />

po<strong>de</strong> ser alterada consi<strong>de</strong>rando os exemplos com<br />

valores <strong>de</strong>sconhecidos como um grupo adicional.<br />

Se o teste tem r valores, seu split-info é calculado<br />

como se o teste dividisse os exemplos em r+1<br />

subconjuntos<br />

89


Exercício<br />

90


Exercício<br />

Calcular info(T), info(Aparência,T), gain(Aparência,T),<br />

split-info(Aparência,T), gain-ratio(Aparência,T)<br />

91


Solução<br />

92


Solução<br />

93


Particionando o Conjunto <strong>de</strong><br />

Treinamento<br />

Um teste po<strong>de</strong> ser selecionado <strong>de</strong>ntre os<br />

possíveis testes como antes, utilizando as<br />

<strong>de</strong>finições modificadas <strong>de</strong> gain e split-info<br />

Se o atributo selecionado X possui valores<br />

<strong>de</strong>sconhecidos, o conceito <strong>de</strong> particionamento do<br />

conjunto T é generalizado da seguinte forma:<br />

Assumindo que X assume r valores, ou seja X = O 1 , X<br />

= O 2 , ..., X=O r , cada teste particiona o conjunto T nos<br />

subconjuntos T 1 , T 2 , ..., T r , respectivamente<br />

Quando um exemplo <strong>de</strong> T com valor conhecido é<br />

atribuído ao subconjunto T i isto indica que a<br />

probabilida<strong>de</strong> daquele exemplo pertencer ao<br />

subconjunto T i é 1 e em todos os <strong>de</strong>mais subconjuntos<br />

é 0<br />

94


Particionando o Conjunto <strong>de</strong><br />

Treinamento<br />

Quando um exemplo possui valor <strong>de</strong>sconhecido, apenas<br />

um grau <strong>de</strong> pertinência probabilístico po<strong>de</strong> ser feito<br />

Assim a cada exemplo em cada subconjunto T i é<br />

associado um peso representando a probabilida<strong>de</strong> do<br />

exemplo pertencer a cada subconjunto<br />

Se o exemplo tem seu valor conhecido para o teste, o peso é 1<br />

Se o exemplo tem seu valor <strong>de</strong>sconhecido para o teste, o peso é<br />

a probabilida<strong>de</strong> do teste X=O i naquele ponto; cada subconjunto T i<br />

é agora uma coleção <strong>de</strong> exemplos fracionários <strong>de</strong> forma que |T i |<br />

<strong>de</strong>ve ser interpretado como a soma dos pesos fracionários dos<br />

exemplos no subconjunto<br />

95


Particionando o Conjunto <strong>de</strong><br />

Treinamento<br />

Os exemplos em T po<strong>de</strong>m ter pesos não<br />

unitários, uma vez que T po<strong>de</strong> ser um<br />

subconjunto <strong>de</strong> uma partição anterior<br />

Em geral, um exemplo <strong>de</strong> T com peso w cujo<br />

valor <strong>de</strong> teste é <strong>de</strong>sconhecido é atribuído a cada<br />

subconjunto T i com peso<br />

w * probabilida<strong>de</strong> <strong>de</strong> X=O i<br />

A probabilida<strong>de</strong> é estimada como a soma dos<br />

pesos dos exemplos em T que têm seu valor<br />

(conhecido) igual a O i dividido pela soma dos<br />

pesos dos exemplos em T que possuem valores<br />

conhecidos para o atributo X<br />

96


Exemplo<br />

Quando os 14 exemplos são particionados<br />

pelo atributo Aparência, os 13 exemplos<br />

para os quais o valor é conhecido não<br />

apresentam problemas<br />

O exemplo remanescente é atribuído para<br />

todas as partições, correspon<strong>de</strong>ndo aos<br />

valores sol, nublado e chuva, com pesos<br />

5/13, 3/13 e 5/13, respectivamente<br />

97


Exemplo<br />

Vamos analisar a primeira partição,<br />

correspon<strong>de</strong>ndo a Aparência=sol<br />

Se este subconjunto for particionado novamente<br />

pelo mesmo teste anterior, ou seja, utilizando o<br />

atributo Umida<strong>de</strong>, teremos as seguintes<br />

distribuições <strong>de</strong> classes<br />

Umida<strong>de</strong> 75 [5/13s, 3n]<br />

98


Exemplo<br />

Distribuições <strong>de</strong> classes<br />

Umida<strong>de</strong> 75 [5/13s, 3n]<br />

A primeira partição contém exemplos <strong>de</strong> uma<br />

única classe (sim)<br />

A segunda ainda contém exemplos <strong>de</strong> ambas as<br />

classes mas o algoritmo não encontra nenhum<br />

teste que melhore sensivelmente esta situação<br />

De maneira similar, o subconjunto<br />

correspon<strong>de</strong>ndo a Aparência=chuva e cujo teste<br />

esteja baseado no atributo Ventando (como<br />

anteriormente) não po<strong>de</strong> ser particionado em<br />

subconjuntos <strong>de</strong> uma única classe<br />

99


Exemplo<br />

A DT assume a forma:<br />

aparencia = sol<br />

:...umida<strong>de</strong> 75: não (3.4/0.4)<br />

aparencia = nublado: sim (3.2)<br />

aparencia = chuva<br />

:...ventando = verda<strong>de</strong>iro: não (2.4/0.4)<br />

: ventando = falso: sim (3.0)<br />

Os número nas folhas da forma (N) ou (N/E) significam<br />

N é a soma <strong>de</strong> exemplos fracionários que atingiram a folha<br />

E é o número <strong>de</strong> exemplos que pertencem a classes diferentes<br />

daquela predita pela folha (em árvores não podadas)<br />

100


Exemplo<br />

aparencia = sol<br />

:...umida<strong>de</strong> 75: não (3.4/0.4)<br />

aparencia = nublado: sim (3.2)<br />

aparencia = chuva<br />

:...ventando = verda<strong>de</strong>iro: não (2.4/0.4)<br />

: ventando = falso: sim (3.0)<br />

O valor <strong>de</strong> Aparência assegura que o exemplo mova-se<br />

para a primeira sub-árvore mas não é possível <strong>de</strong>terminar<br />

se Umida<strong>de</strong>


Poda<br />

Há duas formas <strong>de</strong> produzir árvores mais simples<br />

pré-poda: <strong>de</strong>ci<strong>de</strong>-se não mais particionar o conjunto<br />

<strong>de</strong> treinamento, utilizando algum critério<br />

pós-poda: induz-se a árvore completa e então<br />

remove-se alguns dos ramos<br />

A poda invariavelmente causará a classificação<br />

incorreta <strong>de</strong> exemplos <strong>de</strong> treinamento<br />

Conseqüentemente, as folhas não<br />

necessariamente conterão exemplos <strong>de</strong> uma<br />

única classe<br />

103


Pré-Poda<br />

Evita gastar tempo construindo estruturas (sub-árvores)<br />

que não serão usada na árvore final simplificada<br />

O método usual consiste em analisar a melhor forma <strong>de</strong><br />

particionar um subconjunto, mensurando-a sob o ponto <strong>de</strong><br />

vista <strong>de</strong> significância estatística, ganho <strong>de</strong> informação,<br />

redução <strong>de</strong> erro ou outra métrica qualquer<br />

Se a medida encontrada encontrar-se abaixo <strong>de</strong> um valor<br />

limite (threshold) o particionamento é interrompido e a<br />

árvore para aquele subconjunto é apenas a folha mais<br />

apropriada<br />

Entretanto, a <strong>de</strong>finição do valor limite não é simples <strong>de</strong><br />

ser <strong>de</strong>finido<br />

Um valor muito gran<strong>de</strong> po<strong>de</strong> terminar o particionamento antes que<br />

os benefícios <strong>de</strong> divisões subseqüentes tornem-se evi<strong>de</strong>ntes<br />

Um valor muito pequeno resulta em pouca simplificação<br />

104


Pós-Poda<br />

O processo <strong>de</strong> indução (dividir-e-conquistar) da<br />

árvore continua <strong>de</strong> forma livre e então a árvore<br />

super-ajustada (overfitted tree) produzida é então<br />

podada<br />

O custo computacional adicional investido na<br />

construção <strong>de</strong> partes da árvore que serão<br />

posteriormente <strong>de</strong>scartadas po<strong>de</strong> ser substancial<br />

Entretanto, esse custo é compensador <strong>de</strong>vido a<br />

uma maior exploração das possíveis partições<br />

Crescer e podar árvores é mais lento, mas mais<br />

confiável<br />

105


Pós-Poda<br />

Existem várias forma <strong>de</strong> avaliar a taxa <strong>de</strong> erro <strong>de</strong><br />

árvores podadas, <strong>de</strong>ntre elas<br />

avaliar o <strong>de</strong>sempenho em um subconjunto separado<br />

do conjunto <strong>de</strong> treinamento (o que implica que uma<br />

parte dos exemplos <strong>de</strong>vem ser reservada para a poda<br />

e, portanto, a árvore tem que ser construída a partir <strong>de</strong><br />

um conjunto <strong>de</strong> exemplos menor)<br />

avaliar o <strong>de</strong>sempenho no conjunto <strong>de</strong> treinamento,<br />

mas ajustando o valore estimado do erro, já que ele<br />

tem a tendência <strong>de</strong> ser menor no conjunto <strong>de</strong><br />

treinamento<br />

106


Pós-Poda (C4.5)<br />

Quando N exemplos <strong>de</strong> treinamento são cobertos por uma folha, E<br />

dos quais incorretamente, a taxa <strong>de</strong> erro <strong>de</strong> resubstituição para esta<br />

folha é E/N<br />

Entretanto, isso po<strong>de</strong> ser visto como a observação <strong>de</strong> E eventos em<br />

N tentativas<br />

Se esse conjunto <strong>de</strong> N exemplos <strong>de</strong> treinamento forem vistos como<br />

uma amostra (o que <strong>de</strong> fato não é), po<strong>de</strong>mos analisar o que este<br />

resultado indica sobre a probabilida<strong>de</strong> <strong>de</strong> um evento (erro) na<br />

população inteira <strong>de</strong> exemplos cobertos por aquela folha<br />

A probabilida<strong>de</strong> não po<strong>de</strong> ser <strong>de</strong>terminada exatamente, mas tem uma<br />

distribuição <strong>de</strong> probabilida<strong>de</strong> (posterior) que é usualmente resumida<br />

por um par <strong>de</strong> limites <strong>de</strong> confiança<br />

Para um dado nível <strong>de</strong> confiança CF, o limite superior <strong>de</strong>sta<br />

probabilida<strong>de</strong> po<strong>de</strong> ser encontrado a partir dos limites <strong>de</strong> confiança<br />

<strong>de</strong> uma distribuição binomial <strong>de</strong>notado por U CF (E,N)<br />

107


Análise <strong>de</strong> Complexida<strong>de</strong><br />

Vamos assumir que a profundida<strong>de</strong> da árvore para n exemplos é O<br />

(log n) (assumindo árvore balanceada)<br />

Vamos consi<strong>de</strong>rar o esforço para um atributo para todos os nós da<br />

árvore; nem todos os exemplos precisam ser consi<strong>de</strong>rados em cada<br />

nó mas certamente o conjunto completo <strong>de</strong> n exemplos <strong>de</strong>ve ser<br />

consi<strong>de</strong>rado em cada nível da árvore<br />

Como há log n níveis na árvore, o esforço para um único atributo é O<br />

(n log n)<br />

Assumindo que em cada nó todos os atributos são consi<strong>de</strong>rados, o<br />

esforço para construir a árvore torna-se O(mn log n)<br />

Se os atributos são numéricos, eles <strong>de</strong>vem ser or<strong>de</strong>nados, mas apenas<br />

uma or<strong>de</strong>nação inicial é necessária, o que toma O(n log n) para cada um<br />

dos m atributos: assim a complexida<strong>de</strong> acima permanece a mesma<br />

Se os atributos são nominais, nem todos os atributos precisam ser<br />

consi<strong>de</strong>rados em cada nó uma vez que atributos utilizados anteriormente<br />

não po<strong>de</strong>m ser reutilizados; entretanto, se os atributos são numéricos<br />

eles po<strong>de</strong>m ser reutilizados e, portanto, eles <strong>de</strong>vem ser consi<strong>de</strong>rados em<br />

cada nível da árvore<br />

108


Análise <strong>de</strong> Complexida<strong>de</strong><br />

Na poda (subtree replacement), inicialmente uma<br />

estimativa <strong>de</strong> erro <strong>de</strong>ve ser efetuada em cada nó<br />

Assumindo que contadores sejam apropriadamente<br />

mantidos, isto é realizado em tempo linear ao número<br />

<strong>de</strong> nós na árvore<br />

Após isso, cada nó <strong>de</strong>ve ser consi<strong>de</strong>rado para<br />

substituição<br />

A árvore possui no máximo n folhas, uma para cada<br />

exemplo<br />

Se a árvore for binária (cada atributo sendo numérico<br />

ou nominal com dois valores apenas) isso resulta em<br />

2n-1 nós (árvores com multi-ramos apenas diminuem o<br />

número <strong>de</strong> nós internos)<br />

Assim, a complexida<strong>de</strong> para a poda é O(n)<br />

109


Interpretação Geométrica<br />

Consi<strong>de</strong>ramos exemplos como um vetor <strong>de</strong><br />

m atributos<br />

Cada vetor correspon<strong>de</strong> a um ponto em um<br />

espaço m-dimensional<br />

A DT correspon<strong>de</strong> a uma divisão do<br />

espaço em regiões, cada região rotulada<br />

como uma classe<br />

110


Interpretação Geométrica: Atributo-<br />

Valor<br />

Um teste para um atributo é da forma<br />

X i op Valor<br />

on<strong>de</strong> X i é um atributo, op ∈ {=,≠,,≥} e valor é uma<br />

constante válida para o atributo<br />

O espaço <strong>de</strong> <strong>de</strong>scrição é particionado em regiões<br />

retangulares, nomeadas hiperplanos, que são ortogonais<br />

aos eixos<br />

As regiões produzidas por DT são todas hiperplanos<br />

Enquanto a árvore está sendo formada, mais regiões são<br />

adicionadas ao espaço<br />

111


X2<br />

8<br />

Interpretação Geométrica p/ DT<br />

o o o<br />

o<br />

o<br />

o o<br />

o o<br />

o o<br />

o o o<br />

o o<br />

o<br />

+<br />

o<br />

o<br />

o<br />

o +<br />

+<br />

o o +<br />

o<br />

+<br />

5<br />

+<br />

+<br />

+<br />

o<br />

+<br />

+<br />

10<br />

+<br />

+<br />

+<br />

+<br />

+ +<br />

X1<br />

+<br />

+<br />

+<br />

112


X2<br />

8<br />

Interpretação Geométrica p/ DT<br />

o o o<br />

o<br />

o<br />

o o<br />

o o<br />

o o<br />

o o o<br />

o o<br />

o<br />

+<br />

o<br />

o<br />

o<br />

o +<br />

+<br />

o o +<br />

o<br />

+<br />

5<br />

+<br />

+<br />

+<br />

o<br />

+<br />

+<br />

10<br />

+<br />

+<br />

+<br />

+<br />

+ +<br />

X1<br />

+<br />

+<br />

+<br />

X1<br />

≤10 >10<br />

+<br />

113


X2<br />

8<br />

Interpretação Geométrica p/ DT<br />

o o o<br />

o<br />

o<br />

o o<br />

o o<br />

o o<br />

o o o<br />

o o<br />

o<br />

+<br />

o<br />

o<br />

o<br />

o +<br />

+<br />

o o +<br />

o<br />

+<br />

5<br />

+<br />

+<br />

+<br />

o<br />

+<br />

+<br />

10<br />

+<br />

+<br />

+<br />

+<br />

+ +<br />

X1<br />

+<br />

+<br />

+<br />

≤8<br />

X2<br />

>8<br />

≤10 >10<br />

o<br />

X1<br />

+<br />

114


115<br />

Interpretação Geométrica p/ DT<br />

X1<br />

X2<br />

o o<br />

o<br />

o<br />

o<br />

+<br />

o<br />

o<br />

o<br />

o<br />

o<br />

o<br />

o<br />

o<br />

o<br />

o<br />

o<br />

o<br />

o<br />

o<br />

o<br />

+<br />

+<br />

+<br />

+<br />

+<br />

+<br />

+<br />

+<br />

+ +<br />

+<br />

+<br />

+<br />

+<br />

+<br />

+<br />

+<br />

+<br />

o<br />

o<br />

o<br />

o<br />

o<br />

10<br />

5<br />

8<br />

X1<br />

≤5<br />

≤10 >10<br />

>5<br />

+<br />

o<br />

>8<br />

≤8<br />

+<br />

o<br />

X1<br />

X2


Combinação Linear <strong>de</strong> Atributos<br />

Produzem árvores <strong>de</strong> <strong>de</strong>cisão oblíquas<br />

A representação para os testes são da<br />

forma<br />

on<strong>de</strong> a i é uma constante, X i é um atributo<br />

real, op ∈ {,≥} e Valor uma constante<br />

O espaço <strong>de</strong> <strong>de</strong>scrição é particionado<br />

hiperplanos que não são necessariamente<br />

ortogonais ao eixos<br />

116


X2<br />

8<br />

Árvore <strong>de</strong> <strong>Decisão</strong> Oblíqua<br />

o o o<br />

o<br />

o<br />

o o<br />

o o<br />

o o<br />

o o o<br />

o o<br />

o<br />

+<br />

o<br />

o<br />

o<br />

o +<br />

+<br />

o o +<br />

o<br />

+<br />

5<br />

+<br />

+<br />

+<br />

o<br />

+<br />

+<br />

10<br />

+<br />

+<br />

+<br />

+<br />

+ +<br />

X1<br />

+<br />

+<br />

+<br />

X1-X2<br />

≤4 >4<br />

o +<br />

X1<br />

117


Resumo<br />

<strong>Árvores</strong> <strong>de</strong> <strong>de</strong>cisão, em geral, possuem um<br />

tempo <strong>de</strong> aprendizado relativamente rápido<br />

<strong>Árvores</strong> <strong>de</strong> <strong>de</strong>cisão permitem a<br />

classificação <strong>de</strong> conjuntos com milhões <strong>de</strong><br />

exemplos e centenas <strong>de</strong> atributos a uma<br />

velocida<strong>de</strong> razoável<br />

É possível converter para regras <strong>de</strong><br />

classificação, po<strong>de</strong>ndo ser interpretadas<br />

por seres humanos<br />

Precisão comparável a outros métodos<br />

118


nenhuma (12)<br />

taxa-producao-lagrimas<br />

reduzida normal<br />

jovem<br />

astigmatismo<br />

nao sim<br />

ida<strong>de</strong> prescricao<br />

adulto<br />

idoso<br />

gelatinosa (2) gelatinosa (2) prescricao<br />

miope hipermetrope<br />

nenhuma (1) gelatinosa (1)<br />

miope hipermetrope<br />

rigida (3)<br />

jovem<br />

ida<strong>de</strong><br />

adulto<br />

idoso<br />

rigida (1) nenhuma (1) nenhuma (1)<br />

119


nenhuma (12)<br />

taxa-producao-lagrimas<br />

reduzida normal<br />

jovem<br />

gelatinosa (2) gelatinosa (2)<br />

astigmatismo<br />

nao sim<br />

ida<strong>de</strong> prescricao<br />

adulto<br />

idoso<br />

gelatinosa (2/1)<br />

miope hipermetrope<br />

rigida (3) rigida (3/2)<br />

120


nenhuma (12)<br />

taxa-producao-lagrimas<br />

reduzida normal<br />

gelat, f=1/6, perr=0.4272<br />

jovem<br />

gelatinosa (2) gelatinosa (2)<br />

astigmatismo<br />

nao sim<br />

ida<strong>de</strong> prescricao<br />

adulto<br />

idoso<br />

gelatinosa (2/1)<br />

f=1/2, perr=0.837<br />

rig, f=2/6, perr=0.5921<br />

miope hipermetrope<br />

rigida (3) rigida (3/2)<br />

f=2/3, perr=0.895<br />

121


nenhuma (12)<br />

taxa-producao-lagrimas<br />

reduzida normal<br />

astigmatismo<br />

nao sim<br />

gelatinosa (6/1) rigida (6/2)<br />

gelat, f=7/12, perr=0.7455<br />

ríg, f=8/12, perr=0.8121<br />

f=1/6, perr=0.4272 f=2/6, perr=0.5921<br />

122


7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

C<br />

A B<br />

F<br />

1 2 3 4 5 6 7 8 9 10<br />

E<br />

D<br />

123


7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

C<br />

A B<br />

1 2 3 4 5 6 7 8 9 10<br />

F<br />

E<br />

D<br />

124

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!