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