AM I Arvores Decisao
-
Upload
jean-lopes -
Category
Documents
-
view
22 -
download
0
description
Transcript of AM I Arvores Decisao
-
Jos Augusto BaranauskasDepartamento de Fsica e Matemtica FFCLRP-USP
[email protected]://dfm.ffclrp.usp.br/~augusto
Induo de rvores de Induo de rvores de DecisoDeciso
Vrias aplicaes em Inteligncia Artificial em tarefas de importncia prtica so baseadas na construo de um modelo de conhecimento que utilizado por um especialista humanoO objetivo desta aula
fornecer conceitos bsicos sobre induo de rvores de deciso
-
2rvores de Decisorvores de Deciso
-
3HistricoHistrico 1960s
1966: Hunt e colegas em psicologia usaram mtodos de busca exaustiva em rvores de deciso para modelar o aprendizado de conceitos humanos
1970s 1977: Breiman, Friedman, e colegas em estatstica desenvolveram Classification
And Regression Trees (CART) 1979: Primeiro trabalho de Quinlan com proto-ID3 (Induction of Decision Trees)
1980s 1984: primeira publicao em massa do software CART (presente atualmente em
vrios produtos comerciais) 1986: Artigo de Quinlan sobre ID3 Variedade de melhorias: tratamento de rudo, atributos contnuos, atributos com
valores desconhecidos, rvores oblquas (no paralelas aos eixos), etc 1990s
1993: Algoritmo atualizado de Quinlan: C4.5 release 8 (linguagem C) Maior poder, heursticas de controle de overfitting (C5.0, etc.); combinando DTs 1999: J48 (Weka): reimplementao em Java do algoritmo C4.5 release 8
-
4rvores de Decisorvores de Deciso
Algoritmo de aprendizado que lida com problemas de classificao (duas ou mais classes) e regressoAtributos podem ser discretos (binrios ou
multivalorados) ou contnuosrvores de deciso foram desenvolvidas de
forma independente por dois grupos: Estatsticos: CART (Breiman et al.) Comunidade de IA: ID3, C4.5 (Quinlan et al.)
-
5TDIDTTDIDT
Os algoritmos de classificao cujo conhecimento adquirido representado como rvore de Deciso (DT) pertencem a famlia TDIDT (Top Down Induction of Decision Trees)
rvore de Deciso: estrutura recursiva definida como: um n folha que indica uma classe, ou um n de deciso contm um teste sobre o valor de um atributo. Cada
resultado do teste leva a uma sub-rvore. Cada sub-rvore tem a mesma estrutura da rvore
A2
v21
v12 v13v11
v22C1 C2
C2
v31 v32C3 C1
A3
A1
-
6TDIDTTDIDT
Novos exemplos so classificados a partir da raiz, descendo atravs dos ns de deciso at encontrar um n folha: a classe correspondente a esse n folha a classe do novo exemplo
Um exemplo (sem valores desconhecidos) classificado apenas por uma regra (sub-rvore)
A2
v21
v12 v13v11
v22C1 C2
C2
v31 v32C3 C1
A3
A1
-
7DT DT parapara JogarJogar TnisTnis
Atributos: Aparncia: Sol, Nublado, Chuva Umidade: Alta, Normal Ventando: Forte, Fraco Temperatura: Quente, Mdia, Fria Classe (Conceito Alvo) jogar tnis: Sim, No
-
8DT DT parapara JogarJogar TnisTnis
Sol Nublado Chuva
Alta Normal Forte Fraco
No Sim
Sim
SimNo
Aparncia
Umidade Ventando
-
9DT para Jogar TnisDT para Jogar Tnis
Sol Nublado Chuva
Alta Normal
No Sim
Aparncia
Umidade Cada n interno (deciso)testa um atributo
Cada ramo corresponde a um valordo atributo testado
Cada n folha atribui uma classe
-
10
DT DT parapara JogarJogar TnisTnis
Sol Nublado Chuva
Alta Normal Forte Fraco
No Sim
Sim
SimNo
Aparncia
Umidade Ventando
Aparncia Temperatura Umidade Ventando JogarTnisSol Quente Alta Fraco ?
-
11
DT DT parapara JogarJogar TnisTnis
Sol Nublado Chuva
Alta Normal Forte Fraco
No Sim
Sim
SimNo
Aparncia
Umidade Ventando
Aparncia Temperatura Umidade Ventando JogarTnisSol Quente Alta Fraco ?
-
12
DT DT parapara JogarJogar TnisTnis
Sol Nublado Chuva
Alta Normal Forte Fraco
No Sim
Sim
SimNo
Aparncia
Umidade Ventando
Aparncia Temperatura Umidade Ventando JogarTnisSol Quente Alta Fraco ?
-
13
DT DT parapara JogarJogar TnisTnis
Sol Nublado Chuva
Alta Normal Forte Fraco
No Sim
Sim
SimNo
Aparncia
Umidade Ventando
Aparncia Temperatura Umidade Ventando JogarTnisSol Quente Alta Fraco ?
-
14
DT DT parapara JogarJogar TnisTnis
Sol Nublado Chuva
Alta Normal Forte Fraco
No Sim
Sim
SimNo
Aparncia
Umidade Ventando
Aparncia Temperatura Umidade Ventando JogarTnisSol Quente Alta Fraco ?
-
15
DT DT parapara JogarJogar TnisTnis
Sol Nublado Chuva
Alta Normal Forte Fraco
No Sim
Sim
SimNo
Aparncia
Umidade Ventando
Aparncia Temperatura Umidade Ventando JogarTnisSol Quente Alta Fraco ?No
-
16
ExemploExemplo: : rvorervore de de DecisoDeciso
Temperaturado paciente
37
nosim
> 37
saudvel doente
no sim
saudvel
doente
Paciente temdor
Paciente sesente bem
Paciente se sente bem = sim : saudvelPaciente se sente bem = no ::...Paciente tem dor = no :
:...Temperatura do paciente 37: doentePaciente tem dor = sim : doente
-
17
TDIDTTDIDT
O aprendizado por rvores de deciso consiste em definir a estrutura da rvore e determinar as predies nos ns folhasAs predies visam minimizar o erro, associando
a classe majoritria dentre os exemplos do conjunto de treinamento que atingem aquele n
Umidade
78
nublado chuvasol
> 78
bom ruim
bom
no sim
bom ruim
Ventando
Aparncia[9b,6r]
[2b,3r] [4b,1r] [3b,2r]
[2b,0r] [0b,3r] [3b,0r] [0b,2r]
-
18
Exemplo (adaptado de Exemplo (adaptado de QuinlanQuinlan, 93), 93)
Neste exemplo, vamos considerar um conjunto de treinamento que contm medies dirias sobre condies meteorolgicas
Atributos aparncia: sol, nublado ou chuva temperatura: temperatura em graus Celsius umidade: umidade relativa do ar ventando: sim ou no
Cada exemplo foi rotulado com bom se nas condies meteorolgicas daquele dia aconselhvel fazer uma viagem fazenda e ruim, caso contrrio
-
19
O Conjunto de Dados ViagemO Conjunto de Dados Viagem
bomno8021chuvaz15
bomno8125chuvaz14
ruimsim8023chuvaz13
ruimsim7019chuvaz12
bomno9522chuvaz11
bomsim8720nubladoz10
bomno7526nubladoz9
ruimsim6519nubladoz8
bomno7829nubladoz7
bomsim9023nubladoz6
ruimno8530solz5
ruimno9523solz4
bomno7022solz3
ruimsim9128solz2
bomsim7225solz1
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
-
20
Escolhendo Aparncia para Escolhendo Aparncia para ParticionarParticionar
bomno8021chuvaz15bomno8125chuvaz14ruimsim8023chuvaz13ruimsim7019chuvaz12bomno9522chuvaz11bomsim8720nubladoz10bomno7526nubladoz9ruimsim6519nubladoz8bomno7829nubladoz7bomsim9023nubladoz6ruimno8530solz5ruimno9523solz4bomno7022solz3ruimsim9128solz2bomsim7225solz1
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
Aparncia[9b,6r]
-
21
Escolhendo Aparncia para Escolhendo Aparncia para ParticionarParticionar
ruimno8530solz5ruimno9523solz4bomno7022solz3ruimsim9128solz2bomsim7225solz1
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
bomsim8720nubladoz10bomno7526nubladoz9ruimsim6519nubladoz8bomno7829nubladoz7bomsim9023nubladoz6
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
nublado chuvasol
Aparncia[9b,6r]
bomno8021chuvaz15bomno8125chuvaz14ruimsim8023chuvaz13ruimsim7019chuvaz12bomno9522chuvaz11
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
-
22
Escolhendo Umidade para Escolhendo Umidade para ParticionarParticionar Aparncia=solAparncia=sol
ruimno8530solz5ruimno9523solz4bomno7022solz3ruimsim9128solz2bomsim7225solz1
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
bomsim8720nubladoz10bomno7526nubladoz9ruimsim6519nubladoz8bomno7829nubladoz7bomsim9023nubladoz6
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
nublado chuvasol
Aparncia[9b,6r]
bomno8021chuvaz15bomno8125chuvaz14ruimsim8023chuvaz13ruimsim7019chuvaz12bomno9522chuvaz11
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
-
23
Escolhendo Umidade para Escolhendo Umidade para ParticionarParticionar Aparncia=solAparncia=sol
bomno7022solz3bomsim7225solz1
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
bomsim8720nubladoz10bomno7526nubladoz9ruimsim6519nubladoz8bomno7829nubladoz7bomsim9023nubladoz6
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
nublado chuvasol
Aparncia[9b,6r]
bomno8021chuvaz15bomno8125chuvaz14ruimsim8023chuvaz13ruimsim7019chuvaz12bomno9522chuvaz11
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
ruimno8530solz5ruimno9523solz4ruimsim9128solz2
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
Umidade
78 > 78bom ruim
[2b,3r]
[2b,0r] [0b,3r]
-
24
Escolhendo Umidade para Escolhendo Umidade para ParticionarParticionar Aparncia=nubladoAparncia=nublado
bomsim8720nubladoz10bomno7526nubladoz9ruimsim6519nubladoz8bomno7829nubladoz7bomsim9023nubladoz6
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
nublado chuvasol
Aparncia[9b,6r]
bomno8021chuvaz15bomno8125chuvaz14ruimsim8023chuvaz13ruimsim7019chuvaz12bomno9522chuvaz11
ViajarVentandoUmidadeTemperaturaAparnciaExemploUmidade
78 > 78bom ruim
[2b,3r]
[2b,0r] [0b,3r]
-
25
Escolhendo Umidade para Escolhendo Umidade para ParticionarParticionar Aparncia=nubladoAparncia=nublado
bomsim8720nubladoz10bomno7526nubladoz9bomno7829nubladoz7bomsim9023nubladoz6
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
nublado chuvasol
Aparncia[9b,6r]
bomno8021chuvaz15bomno8125chuvaz14ruimsim8023chuvaz13ruimsim7019chuvaz12bomno9522chuvaz11
ViajarVentandoUmidadeTemperaturaAparnciaExemploUmidade
78 > 78bom ruim
[2b,3r]
70 > 70ruim bom
Umidade[4b,1r]
ruimsim6519nubladoz8
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
[2b,0r] [0b,3r] [0b,1r] [4b,0r]
-
26
Escolhendo Ventando para Escolhendo Ventando para ParticionarParticionar Aparncia=chuvaAparncia=chuva
nublado chuvasol
Aparncia[9b,6r]
bomno8021chuvaz15bomno8125chuvaz14ruimsim8023chuvaz13ruimsim7019chuvaz12bomno9522chuvaz11
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
Umidade
78 > 78bom ruim
[2b,3r]
70 > 70ruim bom
Umidade[4b,1r]
[2b,0r] [0b,3r] [0b,1r] [4b,0r]
-
27
Escolhendo Ventando para Escolhendo Ventando para ParticionarParticionar Aparncia=chuvaAparncia=chuva
nublado chuvasol
Aparncia[9b,6r]
bomno8021chuvaz15bomno8125chuvaz14bomno9522chuvaz11
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
Umidade
78 > 78bom ruim
[2b,3r]
70 > 70ruim bom
Umidade[4b,1r]
[2b,0r] [0b,3r] [0b,1r] [4b,0r]
no sim
bom ruim
Ventando
ruimsim8023chuvaz13ruimsim7019chuvaz12
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
[3b,0r] [0b,2r]
[3b,2r]
-
28
rvore de Deciso Induzida rvore de Deciso Induzida (sem poda)(sem poda)
nublado chuvasol
Aparncia[9b,6r]
Umidade
78 > 78bomz1,z3
ruimz2,z4,z5
[2b,3r]
70 > 70ruimz8
bomz6,z7,z9,z10
Umidade[4b,1r]
[2b,0r] [0b,3r] [0b,1r] [4b,0r]
no simbom
z11,z14,z15ruim
z12,z13
Ventando
[3b,0r] [0b,2r]
[3b,2r]
-
29
Como Induzir rvores de Deciso?Como Induzir rvores de Deciso?
A DT deve ser consistente com o conjunto de treinamento (por ora) Algoritmo trivial: construir uma DT que tem uma folha
para cada exemplo de treinamentoProblema: no generaliza os dados, ou seja, no captura
informao til
A DT deve ser o mais simples possvel Algoritmo trivial: gerar todas as rvores e escolher a
mais simples que seja consistente com o conjunto de treinamentoProblema: intratvel, h muitas rvores (NP-Completo)
-
30
Algoritmo TDIDTAlgoritmo TDIDT
Se todos os exemplos de treinamento pertencem a uma nica classe ento a rvore uma folha rotulada com a respectiva classeCaso contrrio: selecione um teste baseado em um atributo divida o conjunto de treinamento em subconjuntos,
cada um correspondendo a um dos possveis (mutuamente exclusivos) valores para o teste aplique o mesmo processo recursivamente para cada
subconjunto
-
31
Algoritmo TDIDTAlgoritmo TDIDT
procedure learn_dt(T)Se todos os exemplos de T tm a mesma
classe ento Crie uma folha com aquela classe
Seno Encontre o melhor atributo A Crie um n de teste para este atributo APara cada valor a de ADefina Ta= {z T | A = a}Use learn_dt(Ta) para induzir uma subrvore a partir de Ta
-
32
Algoritmo TDIDT (C4.5)Algoritmo TDIDT (C4.5) Seja T um conjunto de exemplos de treinamento com classes {C1, C2, ..., Ck}. H trs
possibilidades:1) T contm um ou mais exemplos, todos pertencendo a uma mesma classe Cj: a rvore de
deciso para T uma folha identificando a classe Cj2) T no contm exemplos: a rvore de deciso novamente uma folha, mas a classe associada
com a folha deve ser determinada por alguma informao alm de T. Por exemplo, a folha pode ser escolhida de acordo com algum conhecimento do domnio, tal como a classe majoritria. C4.5 utiliza a classe mais freqente do n pai deste n (folha)
3) T contm exemplos que pertencem a uma mistura de classes: nesta situao a idia refinar T em subconjuntos que so (ou aparentam ser) colees de exemplos de uma nica classe. Um teste escolhido, baseado em um nico atributo, com resultados mutuamente exclusivos. Sejam os possveis resultados do teste denotados por {O1,O2, ...,Or}. T ento particionado em subconjuntos T1, T2, ..., Tr, nos quais cada Ti contm todos os exemplos em T que possuem como resultado daquele teste o valor Oi. A rvore de deciso para T consiste em um n (interno) identificado pelo teste escolhido e uma aresta para cada um dos resultados possveis. Para cada partio, pode-se exigir que cada Ti contenha um nmero mnimo de exemplos, evitando parties com poucos exemplos. O default de C4.5 de 2 exemplos
Os passos 1, 2 e 3 so aplicados recursivamente para cada subconjunto de exemplos de treinamento de forma que, em cada n, as arestas levam para as sub-rvores construdas a partir do subconjunto de exemplos Ti
Aps a construo da rvore de deciso, a poda pode ser realizada para melhorar sua capacidade de generalizao
-
34
Propriedades de TDIDTPropriedades de TDIDT
Algoritmo Hill-climbing no espao de possveis rvores de deciso Ele adiciona uma sub-rvore rvore atual e continua
a busca Nunca retrocede (sem backtracking) ou seja, o
algoritmo guloso (greedy)Uma vez que um teste foi selecionado para particionar o
conjunto atual de exemplos, a escolha fixada e escolhas alternativas no so exploradas
Sub-timo, mas muito rpidoAltamente dependente do critrio de escolha do
atributo a ser testado
-
35
Escolha do AtributoEscolha do Atributo
A chave para o sucesso de um algoritmo de aprendizado por rvores de deciso depende do critrio utilizado para escolher o atributo que particiona o conjunto de exemplos em cada iterao
Algumas possibilidades para escolher esse atributo so: aleatria: seleciona qualquer atributo aleatoriamente menos valores: seleciona o atributo com a menor quantidade de
valores possveis mais valores: seleciona o atributo com a maior quantidade de
valores possveis ganho mximo: seleciona o atributo que possui o maior ganho de
informao esperado, isto , seleciona o atributo que resultar no menor tamanho esperado das subrvores, assumindo que a raiz o n atual;
razo de ganho ndice Gini
-
36
Qual Atributo Melhor?Qual Atributo Melhor?
Desejamos obter uma rvore pequena Portanto, devemos maximizar a separao de
classes em cada etapa, fazendo os sucessores de cada n mais puros possveisIsso implica em caminhos mais curtos na rvore
True False
[21+, 5-] [8+, 30-]
[29+,35-] X1=?
True False
[18+, 33-] [11+, 2-]
[29+,35-] X2=?
-
37
ImpurezaImpureza
Seja T um conjunto de exemplo e pj as propores de exemplos em cada classe Cj em T (j=1,2,...k)Defina uma medida de impureza info(T) que
satisfaa: info(T) mnima somente quando pi=1 e pj=0 para ji
(todos os exemplos so da mesma classe) info(T) mxima somente quando pj=1/k
(h exatamente o mesmo nmero de exemplos de cada classe) info(T) simtrica em relao a p1, p2, ..., pk
-
38
00.10.20.30.40.50.60.70.80.9
1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
p1
i
n
f
o
(
T
)
Exemplo de Medida de ImpurezaExemplo de Medida de Impureza
Entropia de Shannon: info(T)=-j pjlogb pj Para duas classes, p2=1-p1
Entropia mede impureza, incerteza, surpresa
Para k classes: Mnimo = 0 Mximo = logb k
A reduo da entropia chamada de ganho de informao
-
39
00.10.20.30.40.50.60.70.80.9
1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
p1
i
n
f
o
(
T
)
Entropia Gini Taxa Erro
Outras Medidas de ImpurezaOutras Medidas de Impureza
ndice Gini: Fornece uma
medida de dispersoestatstica info(T)=j pj(1-pj)
Taxa de erro(majoritrio): info(T)=1-maxj pj
-
40
EntropiaEntropia
Seja S um subconjunto de T A informao esperada (ou entropia) do subconjunto S
(em bits) dado por
Quando aplicado a todo o conjunto de treinamento T, info(T) mede a quantidade mdia de informao necessria para identificar a classe de um exemplo em T
logb(a) = ln(a) / ln(b), ou seja, log2(x) = ln(x) / ln(2) Por conveno p*log2(p) = 0 se p=0 Justificativa: limp0+ plog p = 0 para qualquer base logartmica
SCS
SSC
pSCp
ppSCpSCpS
jjjj
k
jjj
k
jjj
em exemplos de nmero classe com em exemplos de nmero),freq(
),(
log),(log),()info(1
21
2
===
== ==
-
41
ExerccioExerccio
Calcule info(T) para Um conjunto T de 64 exemplos, sendo 29
exemplos da classe positiva e 35 da classe negativa, ou seja, [29+,35-] Um conjunto T de 64 exemplos, sendo 20
exemplos da classe positiva, 32 da classe negativa e 12 da classe asterisco, ou seja, [20+,32-,12*] Idem para T=[20+,32-,6*,6$]
=
=k
jjj ppT
12log)info(
-
42
SoluoSoluo
T = [29+,35-] info(T) = info([29+,35-])
= 29/64 log2 29/64 35/64 log2 35/64 = 0.99
T = [20+,32-,12*] info(T) = info([20+,32-,12*])
= 20/64 log2 20/64 32/64 log2 32/64 12/64log2 12/64
= 1.48T = [20+,32-,6*,6$] info(T) = info([20+,32-,6*,6$])
= 20/64 log2 20/64 32/64 log2 32/64 6/64 log2 6/64 6/64 log2 6/64
= 1.66
-
43
EntropiaEntropia
Considere agora que T foi particionado de acordo com rvalores do atributo X, ou seja X = O1, X = O2, ..., X = Or, gerando os subconjuntos T1, T2, ..., Tr, respectivamente Ti o formado pelos exemplos de T nos quais o atributo X = Oi, ou
seja, Ti = {z T: X = Oi} A informao esperada para este particionamento a
soma ponderada sobre todos os subconjuntos Ti: |T| a cardinalidade do conjunto T
O1 O2
T1 T2
T
Or
X=?
Tr
=
=r
ii
i TTT
TX1
)info(),info(
-
44
ExerccioExerccio=
=r
ii
i TTT
TX1
)info(),info(
True False
[21+, 5-] [8+, 30-]
[29+,35-]
A B
[18+, 32-] [7+, 1-]
[29+,35-]
[4+, 2-]
C
X1=? X2=?
Calcule info(X1,T) e info(X2,T), T = [29+,35-]
=
=k
jjj ppT
12log)info(
O1 O2
T1 T2
T
Or
X=?
Tr
-
45
SoluoSoluo
True False
[21+, 5-] [8+, 30-]
[29+,35-]
A B
[18+, 32-] [7+, 1-]
[29+,35-]
[4+, 2-]
C
info([21+,5-]) = 0.71info([8+,30-]) = 0.74
info(X1,[29+,35-]) =
-26/64*info([21+,5-])-38/64*info([8+,30-])= 0.73
info([18+,32-]) = 0.94info([7+,1-]) = 0.54
info([4+,2-]) = 0.92
info(X2,[29+,35-]) = -50/64*info([18+,32-]) -8/64*info([7+,1-]) -6/64*info([4+,2-])
= 0.89
X1=? X2=?
-
46
ExerccioExerccio
True False
[21+, 5-] [8+, 30-]
[29+,35-]
info([21+,5-]) = 0.71info([8+,30-]) = 0.74
info(X1,[29+,35-]) =
-26/64*info([21+,5-])-38/64*info([8+,30-])= 0.73
X1=?
True False
[29+, 0-] [0+, 35-]
[29+,35-] X3=?
Calcule info(X3,T), T = [29+,35-]
=
=r
ii
i TTT
TX1
)info(),info(
=
=k
jjj ppT
12log)info(
O1 O2
T1 T2
T
Or
X=?
Tr
-
47
SoluoSoluo
True False
[21+, 5-] [8+, 30-]
[29+,35-]
info([21+,5-]) = 0.71info([8+,30-]) = 0.74
info(X1,[29+,35-]) =
-26/64*info([21+,5-])-38/64*info([8+,30-])= 0.73
info([29+,0-]) = 0info([0+,35-]) = 0
info(X2,[29+,35-]) = -29/64*info([29+,0-]) 35/64*info([0+,35-])
= 0
X1=?
True False
[29+, 0-] [0+, 35-]
[29+,35-] X3=?
-
48
Ganho de InformaoGanho de Informao
A quantidade gain(X,T) = info(T) info(X,T) mede o ganho de informao pela partio de
T de acordo com o atributo XO critrio de ganho (ganho mximo)
seleciona o atributo XT (ou seja, X{X1, X2, ..., Xm}) que maximiza o ganho de informao
),(maxarg),gain(max},,,{ 21
TXgainTXmXXXX L
=
-
49
ExerccioExerccio
True False
[21+, 5-] [8+, 30-]
[29+,35-]
A B
[18+, 32-] [7+, 1-]
[29+,35-]
[4+, 2-]
C
T = [29+,35-]
info([29+,35-]) = 0.99
info(X1,[29+,35-]) = 0.73
info(X2,[29+,35-]) = 0.89
Qual o ganho de X1? E de X2?
Com qual atributo obtm-se o ganho mximo?
X1=? X2=?
-
50
SoluoSoluo
True False
[21+, 5-] [8+, 30-]
[29+,35-]
A B
[18+, 32-] [7+, 1-]
[29+,35-]
[4+, 2-]
C
T = [29+,35-]
info([29+,35-]) = 0.99
info(X1,[29+,35-]) = 0.73
info(X2,[29+,35-]) = 0.89
gain(X1,T) = info(T) info(X1,T)
= 0.99 0.73 = 0.26
gain(X2,T) = info(T) info(X2,T)
= 0.99 0.89 = 0.10
Ganho mximo obtido com X1
X1=? X2=?
-
51
ExemploExemplo
Aparncia sim no Total Temperatura sim no Total Umidade sim no Total Ventando sim no Total Jogar sol 2 3 5 quente 2 2 4 alta 3 4 7 falso 6 2 8 sim 9 nublado 4 0 4 agradvel 4 2 6 normal 6 1 7 verdadeiro 3 3 6 no 5 chuva 3 2 5 fria 3 1 4 Total 9 5 14 Total 9 5 14 Total 9 5 14 Total 9 5 14 Total 14
noverdadeiroaltaagradvelchuvaz14
simfalsonormalquentenubladoz13
simverdadeiroaltaagradvelnubladoz12
simverdadeironormalagradvelsolz11
simfalsonormalagradvelchuvaz10
simfalsonormalfriasolz9
nofalsoaltaagradvelsolz8
simverdadeironormalfrianubladoz7
noverdadeironormalfriachuvaz6
simfalsonormalfriachuvaz5
simfalsoaltaagradvelchuvaz4
simfalsoaltaquentenubladoz3
noverdadeiroaltaquentesolz2
nofalsoaltaquentesolz1
JogarVentandoUmidadeTemperaturaAparnciaExemplo
-
52
( )( ) ( )
bits 94029.0145log
145
149log
149
),no(log),no(),sim(log),sim(
),(log),()info(
22
22
2
12
=
==
= =
TpTpTpTp
TCpTCpTj
jj
)info(145)info(
144)info(
145
)info()info()info(
)info(),Aparnciainfo(3
1
chuvanubladosol
chuvachuva
nubladonublado
solsol
ii
i
TTT
TTT
TT
TT
TT
TTT
T
++=
++=
==
Aparncia sim no Total Temperatura sim no Total Umidade sim no Total Ventando sim no Total Jogar sol 2 3 5 quente 2 2 4 alta 3 4 7 falso 6 2 8 sim 9 nublado 4 0 4 agradvel 4 2 6 normal 6 1 7 verdadeiro 3 3 6 no 5 chuva 3 2 5 fria 3 1 4 Total 9 5 14 Total 9 5 14 Total 9 5 14 Total 9 5 14 Total 14
-
53
( )( ) ( )
97095.053log
53
52log
52
),no(log),no(),sim(log),sim(
),(log),()info(
22
22
2
12
=
=
=
= =
solsolsolsol
jsoljsoljsol
TpTpTpTp
TCpTCpT
( )( ) ( )
040log
40
44log
44
),no(log),no(),sim(log),sim(
),(log),()info(
22
22
2
12
=
=
=
= =
nubladonubladonubladonublado
jnubladojnubladojnublado
TpTpTpTp
TCpTCpT
( )( ) ( )
97095.052log
52
53log
53
),no(log),no(),sim(log),sim(
),(log),()info(
22
22
2
12
=
=
=
= =
chuvachuvachuvachuva
jchuvajchuvajchuva
TpTpTpTp
TCpTCpT
Aparncia sim no Total Temperatura sim no Total Umidade sim no Total Ventando sim no Total Jogar sol 2 3 5 quente 2 2 4 alta 3 4 7 falso 6 2 8 sim 9 nublado 4 0 4 agradvel 4 2 6 normal 6 1 7 verdadeiro 3 3 6 no 5 chuva 3 2 5 fria 3 1 4 Total 9 5 14 Total 9 5 14 Total 9 5 14 Total 9 5 14 Total 14
-
54
bits 69354.052log
52
53log
53
145
40log
40
44log
44
144
53log
53
52log
52
145
)info(145)info(
144)info(
145
)info()info()info(
)info(),Aparnciainfo(
22
22
22
3
1
=
+
+
=
++=
++=
==
chuvanubladosol
chuvachuva
nubladonublado
solsol
ii
i
TTT
TTT
TT
TT
TT
TTT
T
Aparncia sim no Total Temperatura sim no Total Umidade sim no Total Ventando sim no Total Jogar sol 2 3 5 quente 2 2 4 alta 3 4 7 falso 6 2 8 sim 9 nublado 4 0 4 agradvel 4 2 6 normal 6 1 7 verdadeiro 3 3 6 no 5 chuva 3 2 5 fria 3 1 4 Total 9 5 14 Total 9 5 14 Total 9 5 14 Total 9 5 14 Total 14
-
55
bits91106.041log
41
43log
43
144
62log
62
64log
64
146
42log
42
42log
42
144
)info()info()info(
)info(),aTemperaturinfo(
22
22
22
3
1
=
+
+
=
++=
==
friafria
agradvelagradvel
quentequente
ii
i
TTT
TT
TT
TT
TTT
T
Aparncia sim no Total Temperatura sim no Total Umidade sim no Total Ventando sim no Total Jogar sol 2 3 5 quente 2 2 4 alta 3 4 7 falso 6 2 8 sim 9 nublado 4 0 4 agradvel 4 2 6 normal 6 1 7 verdadeiro 3 3 6 no 5 chuva 3 2 5 fria 3 1 4 Total 9 5 14 Total 9 5 14 Total 9 5 14 Total 9 5 14 Total 14
-
56
bits78845.071log
71
76log
76
147
74log
74
73log
73
147
)info()info(
)info(),Umidadeinfo(
22
22
2
1
=
+
=
+=
==
normalnormal
altaalta
ii
i
TT
TT
TT
TTT
T
Aparncia sim no Total Temperatura sim no Total Umidade sim no Total Ventando sim no Total Jogar sol 2 3 5 quente 2 2 4 alta 3 4 7 falso 6 2 8 sim 9 nublado 4 0 4 agradvel 4 2 6 normal 6 1 7 verdadeiro 3 3 6 no 5 chuva 3 2 5 fria 3 1 4 Total 9 5 14 Total 9 5 14 Total 9 5 14 Total 9 5 14 Total 14
-
57
bits89216.063log
63
63log
63
146
82log
82
86log
86
148
)info()info(
)info(),Ventandoinfo(
22
22
2
1
=
+
=
+=
==
verdadeiroverdadeiro
falsofalso
ii
i
TT
TT
TT
TTT
T
Aparncia sim no Total Temperatura sim no Total Umidade sim no Total Ventando sim no Total Jogar sol 2 3 5 quente 2 2 4 alta 3 4 7 falso 6 2 8 sim 9 nublado 4 0 4 agradvel 4 2 6 normal 6 1 7 verdadeiro 3 3 6 no 5 chuva 3 2 5 fria 3 1 4 Total 9 5 14 Total 9 5 14 Total 9 5 14 Total 9 5 14 Total 14
-
58
Escolha do Atributo para Escolha do Atributo para ParticionarParticionartodo o Conjunto de Exemplostodo o Conjunto de Exemplos
bits 89216.0),Ventandoinfo(bits 78845.0),Umidadeinfo(bits 91106.0),aTemperaturinfo(bits 69354.0),Aparnciainfo(bits 94029.0)info(
=====
TTTTT
bits 04813.089216.094029.0),Ventandoinfo()info(),Ventandogain(bits 15184.078845.094029.0),Umidadeinfo()info(),Umidadegain(
bits 02922.091106.094029.0),aTemperaturinfo()info(),aTemperaturgain(bits 24675.069354.094029.0),Aparnciainfo()info(),Aparnciagain(
======
======
TTTTTTTTT
TTT
Aparncia),(maxarg),gain(max},,,{ 21
==
TXgainTXmXXXX L
-
59
nubladochuvasol
Aparncia
O Subconjunto Aparncia=nublado possui O Subconjunto Aparncia=nublado possui Apenas Exemplos de uma Mesma Classe...Apenas Exemplos de uma Mesma Classe...
simfalsonormalquentenubladoz13
simverdadeiroaltaagradvelnubladoz12
simverdadeironormalfrianubladoz7
simfalsoaltaquentenubladoz3
JogarVentandoUmidadeTemperaturaAparnciaExemplo
[9s,5n]
[2s,3n] [4s,0n] [3s,2n]
noverdadeiroaltaagradvelchuvaz14
simfalsonormalagradvelchuvaz10
noverdadeironormalfriachuvaz6
simfalsonormalfriachuvaz5
simfalsoaltaagradvelchuvaz4
JogarVentandoUmidadeTemperaturaAparnciaExemplo
simverdadeironormalagradvelsolz11
simfalsonormalfriasolz9
nofalsoaltaagradvelsolz8
noverdadeiroaltaquentesolz2
nofalsoaltaquentesolz1
JogarVentandoUmidadeTemperaturaAparnciaExemplo
-
60
nubladochuvasol
Aparncia
...o que Leva a um N Folha...o que Leva a um N Folha[9s,5n]
noverdadeiroaltaagradvelchuvaz14
simfalsonormalagradvelchuvaz10
noverdadeironormalfriachuvaz6
simfalsonormalfriachuvaz5
simfalsoaltaagradvelchuvaz4
JogarVentandoUmidadeTemperaturaAparnciaExemplo
simverdadeironormalagradvelsolz11
simfalsonormalfriasolz9
nofalsoaltaagradvelsolz8
noverdadeiroaltaquentesolz2
nofalsoaltaquentesolz1
JogarVentandoUmidadeTemperaturaAparnciaExemplo
sim
[2s,3n] [4s,0n] [3s,2n]
-
61
nubladochuvasol
Aparncia
Escolha do Atributo para Escolha do Atributo para ParticionarParticionarAparncia=solAparncia=sol
[9s,5n]
simverdadeironormalagradvelsolz11
simfalsonormalfriasolz9
nofalsoaltaagradvelsolz8
noverdadeiroaltaquentesolz2
nofalsoaltaquentesolz1
JogarVentandoUmidadeTemperaturaAparnciaExemplo
sim
[2s,3n] [4s,0n] [3s,2n]
Temperatura sim no Total Umidade sim no Total Ventando sim no Total Jogar quente 0 2 2 alta 0 3 3 falso 1 2 3 sim 2 agradvel 1 1 2 normal 2 0 2 verdadeiro 1 1 2 no 3 fria 1 0 1 Total 2 3 5 Total 2 3 5 Total 2 3 5 Total 5
?
bits 95098.0),Ventandoinfo(bits 0),Umidadeinfo(
bits 4.0),aTemperaturinfo(bits 97095.0)info(
====
TTTT
bits 01997.095098.097095.0),Ventandogain(bits 97095.0097095.0),Umidadegain(
bits 57095.04.097095.0),aTemperaturgain(
======
TTT
Umidade),(maxarg),gain(max},,,{ 21
==
TXgainTXmXXXX L
-
62
nubladochuvasol
Aparncia
Escolha do Atributo Umidade para Escolha do Atributo Umidade para ParticionarParticionar Aparncia=solAparncia=sol
simverdadeironormalagradvelsolZ11
simfalsonormalfriasolZ9
JogarVentandoUmidadeTemperaturaAparnciaExemplo
[9s,5n]
nofalsoaltaagradvelsolz8
noverdadeiroaltaquentesolz2
nofalsoaltaquentesolz1
JogarVentandoUmidadeTemperaturaAparnciaExemplo
sim
[2s,3n] [4s,0n] [3s,2n]
Umidade
alta normal
no sim[0s,3n] [2s,0n]
noverdadeiroaltaagradvelchuvaz14
simfalsonormalagradvelchuvaz10
noverdadeironormalfriachuvaz6
simfalsonormalfriachuvaz5
simfalsoaltaagradvelchuvaz4
JogarVentandoUmidadeTemperaturaAparnciaExemplo
-
63
nubladochuvasol
Aparncia
Escolha do Atributo para Escolha do Atributo para ParticionarParticionarAparncia=chuvaAparncia=chuva
[9s,5n]
sim
[2s,3n] [4s,0n] [3s,2n]
alta normal
no sim[0s,3n] [2s,0n]
noverdadeiroaltaagradvelchuvaz14
simfalsonormalagradvelchuvaz10
noverdadeironormalfriachuvaz6
simfalsonormalfriachuvaz5
simfalsoaltaagradvelchuvaz4
JogarVentandoUmidadeTemperaturaAparnciaExemplo
?Umidade
Temperatura sim no Total Umidade sim no Total Ventando sim no Total Jogar quente 0 0 0 alta 1 1 2 falso 3 0 3 sim 3 agradvel 2 1 3 normal 2 1 3 verdadeiro 0 2 2 no 2 fria 1 1 2 Total 3 2 5 Total 3 2 5 Total 3 2 5 Total 5
bits 0),Ventandoinfo(bits 95098.0),Umidadeinfo(bits 95098.0),aTemperaturinfo(bits 97095.0)info(
====
TTTT
97095.0097095.0),Ventandogain(01997.095098.097095.0),Umidadegain(01997.095098.097095.0),aTemperaturgain(
======
TTT
Ventando),gain(max = TX
-
64
nubladochuvasol
Aparncia
Escolha do Atributo Ventando para Escolha do Atributo Ventando para ParticionarParticionar Aparncia=chuvaAparncia=chuva
[9s,5n]
sim
[2s,3n] [4s,0n] [3s,2n]
alta normal
no sim[0s,3n] [2s,0n]
simfalsonormalagradvelchuvaz10
simfalsonormalfriachuvaz5
simfalsoaltaagradvelchuvaz4
JogarVentandoUmidadeTemperaturaAparnciaExemplo
VentandoUmidade
falso verdadeiro
sim no[3s,0n] [0s,2n]
noverdadeiroaltaagradvelchuvaz14
noverdadeironormalfriachuvaz6
JogarVentandoUmidadeTemperaturaAparnciaExemplo
-
65
rvore de Deciso Induzidarvore de Deciso Induzida
nubladochuvasol
Aparncia
sim
alta normal
no sim
Umidadefalso verdadeiro
sim no
Ventando
-
66
ExerccioExerccio Calcule o ganho para o atributo Dia, ou seja, gain(Dia,T), sabendo
que info(T)=0.94 gain(Dia,T) = info(T) info(Dia,T)
d14d13d12d11d10d9d8d7d6d5d4d3d2d1Dia
noverdadeiroaltaagradvelchuvaz14
simfalsonormalquentenubladoz13
simverdadeiroaltaagradvelnubladoz12
simverdadeironormalagradvelsolz11
simfalsonormalagradvelchuvaz10
simfalsonormalfriasolz9
nofalsoaltaagradvelsolz8
simverdadeironormalfrianubladoz7
noverdadeironormalfriachuvaz6
simfalsonormalfriachuvaz5
simfalsoaltaagradvelchuvaz4
simfalsoaltaquentenubladoz3
noverdadeiroaltaquentesolz2
nofalsoaltaquentesolz1
JogarVentandoUmidadeTemperaturaAparnciaExemplo
-
67
Razo de GanhoRazo de Ganho
Vimos que o ganho mximo interessante para particionar os exemplos, fornecendo bons resultados
Entretanto, ele tem uma tendncia (bias) em favor de testes com muitos valores
Por exemplo, considere um conjunto de exemplos de diagnstico mdico no qual um dos atributos contm o cdigo de identificao do paciente (ID)
Uma vez que cada cdigo ID nico, particionando o conjunto de treinamento nos valores deste atributo levar a um grande nmero de subconjuntos, cada um contendo somente um caso
Como todos os subconjuntos (de 1 elemento) necessariamente contm exemplos de uma mesma classe, info(ID,T)=0, assim o ganho de informao deste atributo ser mximo
-
68
Razo de GanhoRazo de Ganho
a b c
No Sim SimNo No
o p
ID
...
info(ID,T) = 0
T=[1a,1b,1c,...,1o,1p]
-
69
Razo de GanhoRazo de Ganho
Para solucionar esta situao, em analogia definio de info(T), vamos definir a informao potencial gerada pela partio de T em r subconjuntos
A razo de ganho definida como:
A razo de ganho expressa a proporo de informao gerada pela partio que til, ou seja, que aparenta ser til para a classificao
=
=
r
i
ii
TT
TT
TX1
2log),info(split
),info(split),gain(),ratio(gainTX
TXTX =
-
70
Razo de GanhoRazo de Ganho
Usando o exemplo anterior para o atributo Aparncia que produz trs subconjuntos com 5, 4 e 5 exemplos, respectivamente
Para este teste, cujo ganho gain(Aparncia,T)=0.24675 (mesmo valor anterior), a razo de ganho gain-ratio(Aparncia,T) = 0.24675 / 1.57741 =
0.156428
bits 57741.1145log
145
144log
144
145log
145),Aparnciainfo(split 222
=
= T
-
71
Atributos NumricosAtributos Numricos Se um atributo X assume valores reais (numricos), gerado um teste
binrio cujos resultados so X Z O limite Z pode ser encontrado da seguinte forma
Os exemplos de T so inicialmente ordenados considerando os valores do atributo X sendo considerado
H apenas um conjunto finito de valores, que podemos denotar (em ordem) por {v1, v2, ..., vL}
Qualquer limite caindo entre vi e vi+1 tem o mesmo efeito que particionar os exemplos cujos valores do atributo X encontra-se em {v1, v2, ..., vi} e em {vi+1, vi+2, ..., vL}
Assim, existem apenas L-1 divises possveis para o atributo X, cada uma devendo ser examinada
Isso pode ser obtido (uma vez ordenados os valores) em uma nica passagem, atualizando as distribuies de classes para a esquerda e para a direita do limite Zdurante o processo
Alguns indutores podem escolher o valor de limite como sendo o ponto mdio de cada intervalo Z=(vi+vi+1)/2
C4.5, entretanto, escolhe o maior valor de Z entre todo o conjunto de treinamento que no excede o ponto mdio acima, assegurando que todos os valores que aparecem na rvore de fato ocorrem nos dados
-
72
ExemploExemplo
noverdadeiro9171chuvaz14
simfalso7581nubladoz13
simverdadeiro9072nubladoz12
simverdadeiro7075solz11
simfalso8075chuvaz10
simfalso7069solz9
nofalso9572solz8
simverdadeiro6564nubladoz7
noverdadeiro7065chuvaz6
simfalso8068chuvaz5
simfalso9670chuvaz4
simfalso8683nubladoz3
noverdadeiro9080solz2
nofalso8585solz1
JogarVentandoUmidadeTemperaturaAparnciaExemplo
-
73
Escolha do Atributo para Escolha do Atributo para ParticionarParticionartodo o Conjunto de Exemplostodo o Conjunto de Exemplos
Temperatura 64 65 68 69 70 71 72 75 80 81 83 85
Jogar sim no sim sim sim no no sim simsim no sim sim no
Umidade 65 70 75 80 85 86 90 91 95 96
Jogar sim nosim sim
sim sim sim no simnosim no no sim
Aparncia sim no Total Ventando sim no Total Jogar sol 2 3 5 falso 6 2 8 sim 9 nublado 4 0 4 verdadeiro 3 3 6 no 5 chuva 3 2 5 Total 9 5 14 Total 9 5 14 Total 14
Valores Ordenados
-
74
Escolha do Atributo para Escolha do Atributo para ParticionarParticionartodo o Conjunto de Exemplostodo o Conjunto de Exemplos
Z=(83+85)/2=84
Temperatura
0.11340
0.00
0.05
0.10
0.15
0.20
0.25
0.30
0.35
64 65 68 69 70 71 72 75 80 81 83 85
Valor Limite (Z)
gain gain-ratio
-
75
Escolha do Atributo para Escolha do Atributo para ParticionarParticionartodo o Conjunto de Exemplostodo o Conjunto de Exemplos
Z=(80+85)/2=82.5Umidade
0.15184
0.00
0.02
0.04
0.06
0.08
0.10
0.12
0.14
0.16
65 70 75 80 85 86 90 91 95 96
Valor Limite (Z)
gain gain-ratio
-
76
Escolha do Atributo para Escolha do Atributo para ParticionarParticionartodo o Conjunto de Exemplostodo o Conjunto de Exemplos
Aparncia),(maxarg),gain(max},,,{ 21
==
TXgainTXmXXXX L
bits 89216.0),Ventandoinfo(bits 92997.0),Umidadeinfo(bits 93980.0),aTemperaturinfo(bits 69354.0),Aparnciainfo(bits 94029.0)info(
.582Z
84Z
=====
=
=
TTTTT
bits 04813.0),Ventandogain(bits 15184.0),Umidadegain(bits 11340 .0),aTemperaturgain(bits24675.0),Aparnciagain(
5.82Z
84Z
====
=
=
TTTT
-
77
chuvasol
Aparncia
O Subconjunto Aparncia=nublado possui Apenas O Subconjunto Aparncia=nublado possui Apenas Exemplos de uma Mesma Classe, Levando a um Exemplos de uma Mesma Classe, Levando a um N FolhaN Folha
simverdadeiro7075solz11
simfalso7069solz9
nofalso9572solz8
noverdadeiro9080solz2
nofalso8585solz1
JogarVentandoUmidadeTemperaturaAparnciaExemplo
simfalso7581nubladoz13
simverdadeiro9072nubladoz12
simverdadeiro6564nubladoz7
simfalso8683nubladoz3
JogarVentandoUmidadeTemperaturaAparnciaExemplo
sim
nublado
[9s,5n]
[4s,0n]
noverdadeiro9171chuvaz14
simfalso8075chuvaz10
noverdadeiro7065chuvaz6
simfalso8068chuvaz5
simfalso9670chuvaz4
JogarVentandoUmidadeTemperaturaAparnciaExemplo
-
78
chuvasol
Aparncia
Escolha do Atributo para Escolha do Atributo para ParticionarParticionarAparncia=solAparncia=sol
simverdadeiro7075solz11
simfalso7069solz9
nofalso9572solz8
noverdadeiro9080solz2
nofalso8585solz1
JogarVentandoUmidadeTemperaturaAparnciaExemplo
sim
nublado
[9s,5n]
[4s,0n]
noverdadeiro9171chuvaz14
simfalso8075chuvaz10
noverdadeiro7065chuvaz6
simfalso8068chuvaz5
simfalso9670chuvaz4
JogarVentandoUmidadeTemperaturaAparnciaExemplo?
Temperatura 69 72 75 80 85Jogar sim no sim no no
Ventando sim no Total Jogar falso 1 2 3 sim 2 verdadeiro 1 1 2 no 3 Total 2 3 5 Total 5
Umidade 70 85 90 95
Jogar sim sim no no no
-
79
Escolha do Atributo para Escolha do Atributo para ParticionarParticionarAparncia=solAparncia=sol
Z=(75+80)/2=77.5
Temperatura 64 65 68 69 70 71 72 75 80 81 83 85
Temperatura (Aparncia=sol)
0.41997
0.00
0.05
0.10
0.15
0.20
0.25
0.30
0.35
0.40
0.45
0.50
69 72 75 80 85
Valor Limite (Z)
gain gain-ratio
-
80
Escolha do Atributo para Escolha do Atributo para ParticionarParticionarAparncia=solAparncia=sol
Z=(70+85)/2=77.5 Umidade 65 70 75 80 85 86 90 91 95 96 Umidade (Aparncia=sol)
0.97095
0.00
0.20
0.40
0.60
0.80
1.00
1.20
70 85 90 95
Valor Limite (Z)
gain gain-ratio
-
81
chuvasol
Aparncia
Escolha do Atributo para Escolha do Atributo para ParticionarParticionar Aparncia=solAparncia=sol
simverdadeiro7075solz11
simfalso7069solz9
nofalso9572solz8
noverdadeiro9080solz2
nofalso8585solz1
JogarVentandoUmidadeTemperaturaAparnciaExemplo
sim
nublado
[9s,5n]
[4s,0n]
?
Temperatura 69 72 75 80 85Jogar sim no sim no no
Ventando sim no Total Jogar falso 1 2 3 sim 2 verdadeiro 1 1 2 no 3 Total 2 3 5 Total 5
Umidade 70 85 90 95
Jogar sim sim no no no
bits 95098.0),Ventandoinfo(bits 0),Umidadeinfo(
bits 55098.0),aTemperaturinfo(bits97095.0)info(
77.5Z
77.5Z
====
=
=
TTTT
01997.095098.097095.0),Ventandogain(97095.0097095.0),Umidadegain(
41997.055098.097095.0),aTemperaturgain(
77.5Z
77.5Z
====
===
=
TTT
77.5Z},,,{
Umidade),(maxarg),gain(max21
=== TXgainTX
mXXXX L
-
82
chuvasol
Aparncia
Escolha do Atributo Umidade Escolha do Atributo Umidade para para ParticionarParticionar Aparncia=solAparncia=sol
simverdadeiro7075solz11
simfalso7069solz9
JogarVentandoUmidadeTemperaturaAparnciaExemplo noverdadeiro9171chuvaz14
simfalso8075chuvaz10
noverdadeiro7065chuvaz6
simfalso8068chuvaz5
simfalso9670chuvaz4
JogarVentandoUmidadeTemperaturaAparnciaExemplo
sim
nublado
[9s,5n]
[4s,0n]
Umidade
75
sim no [0s,3n][2s,0n]
nofalso9572solz8
noverdadeiro9080solz2
nofalso8585solz1
JogarVentandoUmidadeTemperaturaAparnciaExemplo
-
83
chuva
Escolha do Atributo para Escolha do Atributo para ParticionarParticionar Aparncia=chuvaAparncia=chuva
noverdadeiro9171chuvaz14
simfalso8075chuvaz10
noverdadeiro7065chuvaz6
simfalso8068chuvaz5
simfalso9670chuvaz4
JogarVentandoUmidadeTemperaturaAparnciaExemplo
sim
nublado
[9s,5n]
[4s,0n]
Ventando sim no Total Jogar falso 3 0 3 sim 3 verdadeiro 0 2 2 no 2 Total 3 2 5 Total 5
Temperatura 65 68 70 71 75 Jogar no sim sim no sim
Umidade 70 80 91 96
Jogar no sim sim no sim
?
75
sim no [0s,3n][2s,0n]
Aparncia
Umidade
-
84
Escolha do Atributo para Escolha do Atributo para ParticionarParticionarAparncia=chuvaAparncia=chuva
Temperatura (Aparncia=chuva)
0.32193
0.00
0.05
0.10
0.15
0.20
0.25
0.30
0.35
0.40
0.45
0.50
65 68 70 71 75
Valor Limite (Z)
gain gain-ratio
Z=(65+68)/2=66.5 Temperatura 64 65 68 69 70 71 72 75 80 81 83 85
-
85
Escolha do Atributo para Escolha do Atributo para ParticionarParticionarAparncia=chuvaAparncia=chuva
Umidade (Aparncia=chuva)
0.32193
0.00
0.05
0.10
0.15
0.20
0.25
0.30
0.35
0.40
0.45
0.50
70 80 91 96
Valor Limite (Z)
gain gain-ratio
Z=(70+80)/2=75 Umidade 65 70 75 80 85 86 90 91 95 96
-
86
chuva
Escolha do Atributo para Escolha do Atributo para ParticionarParticionar Aparncia=chuvaAparncia=chuva
noverdadeiro9171chuvaz14
simfalso8075chuvaz10
noverdadeiro7065chuvaz6
simfalso8068chuvaz5
simfalso9670chuvaz4
JogarVentandoUmidadeTemperaturaAparnciaExemplo
sim
nublado
[9s,5n]
[4s,0n]
Ventando sim no Total Jogar falso 3 0 3 sim 3 verdadeiro 0 2 2 no 2 Total 3 2 5 Total 5
Temperatura 65 68 70 71 75 Jogar no sim sim no sim
Umidade 70 80 91 96
Jogar no sim sim no sim
?
bits 0),Ventandoinfo(bits 64902.0),Umidadeinfo(bits 64902.0),aTemperaturinfo(bits97095.0)info(
75Z
66.5Z
====
=
=
TTTT
97095.0097095.0),Ventandogain(32193.064902.097095.0),Umidadegain(32193.064902.097095.0),aTemperaturgain(
======
TTT
Ventando),gain(max = TX
75
sim no [0s,3n][2s,0n]
Aparncia
Umidade
-
87
chuva
Escolha do Atributo Ventando para Escolha do Atributo Ventando para ParticionarParticionar Aparncia=chuvaAparncia=chuva
simfalso8075chuvaz10
simfalso8068chuvaz5
simfalso9670chuvaz4
JogarVentandoUmidadeTemperaturaAparnciaExemplo
sim
nublado
[9s,5n]
[4s,0n]
Ventando
75
sim no [0s,3n][2s,0n]
Aparncia
Umidade
noverdadeiro9171chuvaz14
noverdadeiro7065chuvaz6
JogarVentandoUmidadeTemperaturaAparnciaExemplo
falso verdadeiro
sim no[3s,0n] [0s,2n]
-
88
nubladochuvasol
Aparncia
rvore de Deciso Induzidarvore de Deciso Induzida
sim
falso verdadeiro
sim no
Ventando
75
sim no
Umidade
-
89
OverfittingOverfitting
rvores induzidas sem poda so perfeitamente consistentes com o conjunto de treinamento TEntretanto, frequentemente, importante que
elas sejam boas ao predizer exemplos no vistos (conjunto de teste t), a partir da mesma distribuioUma rvore A superajusta (i.e., ocorre overfitting)
um conjunto de treinamento T se e somente se existe uma rvore A tal que (t um conjunto de exemplos no vistos no treinamento, ou seja, um conjunto de teste): ErroT(A) < ErroT(A) Errot(A) > Errot(A)
-
90
Nmero de ns (testes)
Taxade
Erro
N1 N2
Relao entre Tamanho da rvore Relao entre Tamanho da rvore de Deciso e a Taxa de Errode Deciso e a Taxa de Erro
N3
Exemplosde Teste
Exemplosde Treinamento
-
91
RazesRazes de de OverfittingOverfitting
Dados com rudo ou atributos no tm capacidade de predizer completamente a classe
bomsim6520nubladoz16
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
Umidade
78
nublado chuvasol
> 78
bom ruim
70 > 70
ruim bom
no sim
bom ruim
VentandoUmidade
Aparncia
AdicionarAdicionar um um testeteste aquiaqui
-
92
RazesRazes de de OverfittingOverfitting
Dados com rudo ou atributos no tm capacidade de predizer completamente a classe
bomsim6520nubladoz16
ViajarVentandoUmidadeTemperaturaAparnciaExemplo
Umidade
78
nublado chuvasol
> 78
bom ruim
70 > 70
bom
no sim
bom ruim
VentandoUmidade
Aparncia
Temperatura
ruim bom
19 > 19
-
93
RazesRazes de de OverfittingOverfitting Dados incompletos (nem todos os casos so cobertos) No h dados suficientes em parte do conjunto de treinamento
para tomar uma boa deciso
Regio com alta probabilidade de
classificaes incorretas
++
+++ +
+
-
-
- -
-
---
---
-
-- +
---
-
-
++
+++
+--
-
-
--
-
94
Evitando Evitando OverfittingOverfitting
H duas formas de evitar overfitting em rvores de deciso pr-poda: terminar de induzir a rvore mais cedo,
antes que ela atinja o ponto em que classifica corretamente o conjunto de treinamento, utilizando algum critrio ps-poda: induzir a rvore completa, superajustando
os exemplos de treinamento e ento (ps-)pod-la (remover alguns ramos)
A poda invariavelmente causar a classificao incorreta de exemplos de treinamentoConseqentemente, as folhas no
necessariamente contero exemplos de uma nica classe
-
95
PrPr--PodaPoda
Evita gastar tempo construindo estruturas (sub-rvores) que no sero usadas na rvore final simplificada Parar de dividir um n se
O nmero de exemplos muito pequeno A impureza muito baixaO melhor teste no estatisticamente significante (de acordo com algum teste
estatstico) O mtodo usual consiste em analisar a melhor forma de particionar
um subconjunto, mensurando-a sob o ponto de vista de significncia estatstica, ganho de informao, reduo de erro ou outra mtrica
Se a medida encontrada encontrar-se abaixo de um valor limite (threshold) o particionamento interrompido e a rvore para aquele subconjunto apenas a folha mais apropriada
Entretanto, a definio do valor limite no simples de ser definido Um valor muito grande pode terminar o particionamento antes que os
benefcios de divises subseqentes tornem-se evidentes Um valor muito pequeno resulta em pouca simplificao
-
96
PsPs--PodaPoda
Uma rvore maior induzida de forma a super-ajustar os exemplos e ento ela podada at obter uma rvore menor (mais simples)
-
97
Exemplo (adaptado de Exemplo (adaptado de QuinlanQuinlan, 93), 93)
nublado chuvasol
Aparncia[9b,6r]
Umidade
78 > 78bomz1,z3
ruimz2,z4,z5
[2b,3r]
70 > 70ruimz8
bomz6,z7,z9,z10
Umidade[4b,1r]
[2b,0r] [0b,3r] [0b,1r] [4b,0r]
no simbom
z11,z14,z15ruim
z12,z13
Ventando
[3b,0r] [0b,2r]
nublado chuvasol
Aparncia[9b,6r]
Umidade
78 > 78bomz1,z3
ruimz2,z4,z5
[2b,3r] bomz6,z7, z8,z9,z10
[4b,1r]
[2b,0r] [0b,3r]
no simbom
z11,z14,z15ruim
z12,z13
Ventando
[3b,0r] [0b,2r]
rvore sem poda
rvore (ps-)podada
[3b,2r]
[3b,2r]
-
98
PsPs--PodaPoda
O processo de induo (dividir-e-conquistar) da rvore continua de forma livre e ento a rvore super-ajustada (overfitted tree) produzida ento podadaO custo computacional adicional investido na
construo de partes da rvore que sero posteriormente descartadas pode ser substancialEntretanto, esse custo compensador devido a
uma maior explorao das possveis partiesCrescer e podar rvores mais lento, mas mais
confivel
-
99
PsPs--PodaPoda
Existem vrias abordagens para avaliar a taxa de erro de rvores podadas, dentre elas
1) avaliar o desempenho em um subconjunto separado do conjunto de treinamento
2) avaliar o desempenho utilizando validao cruzada3) avaliar o desempenho no conjunto de treinamento, mas
ajustando o valor estimado do erro, j que ele tem a tendncia de ser menor no conjunto de treinamento
Um problema com a abordagem (1) que requer uma parte do conjunto de treinamento A outra parte dos exemplos deve ser reservada para a poda e,
portanto, a rvore tem que ser construda a partir de um conjunto de exemplos menor
Isso pode ser problemtico para pequenos conjuntos de exemplos
As abordagens (2) e (3) tentam solucionar este problema
-
100
PsPs--Poda (1)Poda (1)
Divida o conjunto de treinamento T em dois subconjuntos, T = GS PS: Um conjunto de crescimento GS (growing set) para
construir a rvore Um conjunto de poda PS (pruning set), para avaliar o
erro de generalizaoConstrua uma rvore completa a partir de GSObtenha uma seqncia de rvores {A1,A2,}
onde A1 a rvore completa (sem poda) Ai obtida removendo-se alguns ns de teste de Ai-1
Selecione a rvore Ai* da seqncia que minimiza o erro em PS
-
101
PsPs--Poda (1)Poda (1)
Nmero de ns (testes)
Taxade
Erro
Erro emGS
Construo da rvore
Erro emPS
Poda da rvore
Underfitting Overfitting
rvore tima
-
102
PsPs--Poda (1)Poda (1)
Como construir uma seqncia de rvores? Poda por reduo do erro (Reduced error
pruning):A cada passo, remova o n que provoca o maior
decrscimo no erro em PS Poda por custo-complexidade (Cost-complexity
pruning):Defina um critrio de custo-complexidade:ErroGS(A) + *Complexidade(A)
Construa uma seqncia de rvores que minimizam este critrio para valores crescentes de
-
103
PsPs--Poda (1)Poda (1)
AA22
AA11 AA33
AA44
AA55
ErroGS=0%, ErroPS=21%
ErroGS=7%, ErroPS=14%
ErroGS=12%, ErroPS=15%
ErroGS=28%, ErroPS=25%
ErroGS=42%, ErroPS=44%
-
104
PsPs--Poda (2)Poda (2)
K-fold cross-validation (validao cruzada com K parties) Dividir o conjunto de treinamento T em K partes
(usualmente K=10): T = F1 F2 FK Gerar K rvores, cada uma no utiliza 1 dentre as K
das parties Classificar cada exemplo usando a nica rvore
induzida sem ele Estimar o erro para este exemplo
Usar o erro de cada exemplo para podar a rvore construda a partir de T
-
105
PsPs--Poda (2)Poda (2)
F3
Erro calculado para cadaexemplo em F3F1 F2
A1
F1
Erro calculado para cadaexemplo em F1F2 F3
F2
Erro calculado para cadaexemplo em F2F1 F3
A2
A3
F1 F2 F3
Conjunto de Treinamento T
-
106
PsPs--Poda (3)Poda (3)
Na abordagem (3) tambm utilizado todo o conjunto de treinamento para construir a rvoreEm geral, feito um ajuste no valor
estimado do erro (a partir do conjunto de treinamento), j que ele tem a tendncia de ser pequenoNo slide seguinte descrita a forma
utilizada por C4.5 para ajustar o valor estimado do erro
-
107
PsPs--Poda C4.5 (3)Poda C4.5 (3)
Quando N exemplos de treinamento so cobertos por uma folha, E dos quais incorretamente, a taxa de erro de resubstituio para esta folha E/N
Entretanto, isso pode ser visto como a observao de E eventos em N tentativas
Se esse conjunto de N exemplos de treinamento forem vistos como uma amostra (o que de fato no ), podemos analisar o que este resultado indica sobre a probabilidade de um evento (erro) na populao inteira de exemplos cobertos por aquela folha
A probabilidade no pode ser determinada exatamente, mas tem umadistribuio de probabilidade (posterior) que usualmente resumida por um par de limites de confiana
Para um dado nvel de confiana CF, o limite superior desta probabilidade pode ser encontrado a partir dos limites de confiana de uma distribuio binomial denotado por UCF(E,N)
Uma folha com N exemplos de treinamento com uma taxa de erro predita de UCF(E,N) totalizar N*UCF(E,N) erros
-
112
Atributos com Valores Atributos com Valores Desconhecidos (Desconhecidos (MissingMissing ValuesValues)) O algoritmo bsico para construo da DT assume que o
valor de um teste para cada exemplo de treinamento possa ser determinado
Alm disso, o processo de classificao de novos exemplos requer uma escolha em cada ramo da rvore, escolha esta baseada em um atributo, cujo valor deve ser conhecido
Entretanto, em dados do mundo real freqente o fato que um atributo apresente valores desconhecidos O valor no relevante para aquele exemplo particular O valor no foi armazenado quando os exemplos foram coletados O valor no pde ser decifrado (se escrito mo) pela pessoa
que digitou os dados
-
113
Atributos com Valores Atributos com Valores DesconhecidosDesconhecidos Por exemplo, Quinlan (1993) reporta que em um conjunto
de 3000 dados mdicos sobre tireide, muitos exemplos no possuem o sexo do paciente, mesmo sabendo que esta informao seja usualmente relevante para a interpretao; mais de 30% dos exemplos apresentam valores desconhecidos
Assim, a falta de completeza tpica em dados do mundo real
Diante disso, h algumas escolhas possveis Descartar uma parte (significante) dos exemplos de treinamento e
assumir alguns dos novos exemplos (teste) como sendo inclassificveis
Pr-processar os dados, substituindo os valores desconhecidos (o que geralmente altera o processo de aprendizado)
Alterar os algoritmos apropriadamente para tratar atributos contendo valores desconhecidos
-
114
Atributos com Valores Atributos com Valores DesconhecidosDesconhecidos A alterao dos algoritmos para tratar atributos contendo
valores desconhecidos requer a seguinte anlise: A escolha de um teste para particionar o conjunto de treinamento:
se dois testes utilizam atributos com diferentes nmeros de valores desconhecidos, qual o mais desejvel?
Uma vez que um teste tenha sido escolhido, exemplos de treinamento com valores desconhecidos de um atributo no podem ser associados a um particular ramo (outcome) do teste e, portanto, no pode ser atribudo a um subconjunto particular Ti. Como esses exemplos devem ser tratados no particionamento?
Quando a rvore utilizada para classificar um novo exemplo, como o classificador deve proceder se o exemplo tem um valor desconhecido para o atributo testado no n de deciso atual?
Veremos nos prximos slides a estratgia adotada pelo indutor C4.5
-
115
Escolha de um TesteEscolha de um Teste
Como mencionado, o ganho de informao de um teste mede a informao necessria para identificar uma classe que pode ser esperada por meio do particionamento do conjunto de exemplos, calculado como a subtrao da informao esperada requerida para identificar a classe de um exemplo aps o particionamento da mesma informao antes do particionamento evidente que um teste no fornece informao
alguma sobre a pertinncia a uma classe de um exemplo cujo valor do atributo de teste desconhecido
-
116
Escolha de um TesteEscolha de um Teste
Assumindo que uma frao F de exemplos tenha seu valor conhecido para o atributo X, a definio de ganho pode ser alterada para gain(X,T) = probabilidade de X ser conhecido *
(info(T) info(X,T)) + probabilidade de X ser desconhecido * 0
gain(X,T) = F * (info(T) info(X,T)) De forma similar, a definio de split-info(X,T)
pode ser alterada considerando os exemplos com valores desconhecidos como um grupo adicional. Se o teste tem r valores, seu split-info calculado como se o teste dividisse os exemplos em r+1 subconjuntos
-
117
ExerccioExerccio
noverdadeiro9171chuvaz14
simfalso7581nubladoz13
simverdadeiro9072nubladoz12
simverdadeiro7075solz11
simfalso8075chuvaz10
simfalso7069solz9
nofalso9572solz8
simverdadeiro6564nubladoz7
noverdadeiro7065chuvaz6
simfalso8068chuvaz5
simfalso9670chuvaz4
simfalso8683nubladoz3
noverdadeiro9080solz2
nofalso8585solz1
JogarVentandoUmidadeTemperaturaAparnciaExemplo
-
118
ExerccioExerccio
noverdadeiro9171chuvaz14
simfalso7581nubladoz13
simverdadeiro9072?z12
simverdadeiro7075solz11
simfalso8075chuvaz10
simfalso7069solz9
nofalso9572solz8
simverdadeiro6564nubladoz7
noverdadeiro7065chuvaz6
simfalso8068chuvaz5
simfalso9670chuvaz4
simfalso8683nubladoz3
noverdadeiro9080solz2
nofalso8585solz1
JogarVentandoUmidadeTemperaturaAparnciaExemplo
Calcular info(T), info(Aparncia,T), gain(Aparncia,T), split-info(Aparncia,T), gain-ratio(Aparncia,T)
-
119
SoluoSoluoAparncia sim no Totalsol 2 3 5 nublado 3 0 3 chuva 3 2 5 Total 8 5 13
bits 9612.0135log
135
138log
138)info( 22
=
=T
7469.0
)52(log
52)
53(log
53
135
)30(log
30)
33(log
33
133
)53(log
53)
52(log
52
135),Aparnciainfo(
22
22
22
=
+
+
=T
bits1990.0
)7469.09612.0(1413),Aparnciagain(
==T
-
120
SoluoSoluoAparncia sim no Total sol 2 3 5 nublado 3 0 3 chuva 3 2 5 Total 8 5 13
8092.1
?) (para )141(log
141
chuva) (para )144(log
145
nublado) (para )143(log
143
sol) (para )145(log
145),Aparnciainfo(split
2
2
2
2
=
= T
1100.08092.11990.0),Aparnciaratio(gain == T
-
121
ParticionandoParticionando o Conjunto de o Conjunto de TreinamentoTreinamentoUm teste pode ser selecionado dentre os
possveis testes como antes, utilizando as definies modificadas de gain e split-infoSe o atributo selecionado X possui valores
desconhecidos, o conceito de particionamento do conjunto T generalizado da seguinte forma: Assumindo que X assume r valores, ou seja X = O1, X
= O2, ..., X=Or, cada teste particiona o conjunto T nos subconjuntos T1, T2, ..., Tr, respectivamente Quando um exemplo de T com valor conhecido
atribudo ao subconjunto Ti isto indica que a probabilidade daquele exemplo pertencer ao subconjunto Ti 1 e em todos os demais subconjuntos 0
-
122
ParticionandoParticionando o Conjunto de o Conjunto de TreinamentoTreinamento Quando um exemplo possui valor desconhecido, apenas
um grau de pertinncia probabilstico pode ser feito Assim a cada exemplo em cada subconjunto Ti
associado um peso representando a probabilidade do exemplo pertencer a cada subconjunto Se o exemplo tem seu valor conhecido para o teste, o peso 1 Se o exemplo tem seu valor desconhecido para o teste, o peso
a probabilidade do teste X=Oi naquele ponto; cada subconjunto Ti agora uma coleo de exemplos fracionrios de forma que |Ti|deve ser interpretado como a soma dos pesos fracionrios dos exemplos no subconjunto
-
123
ParticionandoParticionando o Conjunto de o Conjunto de TreinamentoTreinamentoOs exemplos em T podem ter pesos no
unitrios, uma vez que T pode ser um subconjunto de uma partio anteriorEm geral, um exemplo de T com peso w cujo
valor de teste desconhecido atribudo a cada subconjunto Ti com peso w * probabilidade de X=Oi
A probabilidade estimada como a soma dos pesos dos exemplos em T que tm seu valor (conhecido) igual a Oi dividido pela soma dos pesos dos exemplos em T que possuem valores conhecidos para o atributo X
-
124
ExemploExemplo
Quando os 14 exemplos so particionadospelo atributo Aparncia, os 13 exemplos para os quais o valor conhecido no apresentam problemasO exemplo remanescente atribudo para
todas as parties, correspondendo aos valores sol, nublado e chuva, com pesos 5/13, 3/13 e 5/13, respectivamente
-
125
ExemploExemplo
Vamos analisar a primeira partio, correspondendo a Aparncia=sol
Se este subconjunto for particionado novamente pelo mesmo teste anterior, ou seja, utilizando o atributo Umidade, teremos as seguintes distribuies de classes Umidade 75 [5/13s, 3n]
5/13simverdadeiro9072?z12
1simverdadeiro7075solz11
1simfalso7069solz9
1nofalso9572solz8
1noverdadeiro9080solz2
1nofalso8585solz1
PesoJogarVentandoUmidadeTemperaturaAparnciaExemplo
-
126
ExemploExemplo
Distribuies de classes Umidade 75 [5/13s, 3n]
A primeira partio contm exemplos de uma nica classe (sim)A segunda ainda contm exemplos de ambas as
classes mas o algoritmo no encontra nenhum teste que melhore sensivelmente esta situaoDe maneira similar, o subconjunto
correspondendo a Aparncia=chuva e cujo teste esteja baseado no atributo Ventando (como anteriormente) no pode ser particionado em subconjuntos de uma nica classe
-
127
ExemploExemplo
A DT assume a forma:aparencia = sol:...umidade 75: no (3.4/0.4)aparencia = nublado: sim (3.2)aparencia = chuva:...ventando = verdadeiro: no (2.4/0.4): ventando = falso: sim (3.0)
Os nmero nas folhas da forma (N) ou (N/E) significam N a soma de exemplos fracionrios que atingiram a folha E o nmero de exemplos que pertencem a classes diferentes
daquela predita pela folha (em rvores no podadas)
-
128
Classificando um Novo ExemploClassificando um Novo Exemplo
Uma abordagem similar utilizada quando a DT usada para classificar um novo exemplo
Se um n de deciso encontrado para o qual o valor do atributo desconhecido (ou seja, o valor do teste no pode ser determinado), o algoritmo explorar todos os valores possveis de teste, combinando o resultado das classificaes aritmeticamente
Uma vez que agora podem haver mltiplos caminhos da raiz da rvore ou sub-rvore at as folhas, a classificao uma distribuio de classes ao invs de uma nica classe
Quando a distribuio total de classes para o novo exemplo estabelecida, a classe com a maior probabilidade rotulada como sendo a classe predita
-
129
ExemploExemplo
O valor de Aparncia assegura que o exemplo mova-se para a primeira sub-rvore mas no possvel determinar se Umidade
-
130
Anlise de ComplexidadeAnlise de Complexidade
Vamos assumir que a profundidade da rvore para n exemplos O(log n) (assumindo rvore balanceada)
Vamos considerar o esforo para um atributo para todos os ns darvore; nem todos os exemplos precisam ser considerados em cada n mas certamente o conjunto completo de n exemplos deve ser considerado em cada nvel da rvore
Como h log n nveis na rvore, o esforo para um nico atributo O(n log n)
Assumindo que em cada n todos os atributos so considerados, o esforo para construir a rvore torna-se O(mn log n) Se os atributos so numricos, eles devem ser ordenados, mas apenas
uma ordenao inicial necessria, o que toma O(n log n) para cada um dos m atributos: assim a complexidade acima permanece a mesma
Se os atributos so nominais, nem todos os atributos precisam ser considerados em cada n uma vez que atributos utilizados anteriormente no podem ser reutilizados; entretanto, se os atributos so numricos eles podem ser reutilizados e, portanto, eles devem ser considerados em cada nvel da rvore
-
131
Anlise de ComplexidadeAnlise de Complexidade
Na poda (subtree replacement), inicialmente uma estimativa de erro deve ser efetuada em cada n Assumindo que contadores sejam apropriadamente
mantidos, isto realizado em tempo linear ao nmero de ns na rvore
Aps isso, cada n deve ser considerado para substituio A rvore possui no mximo n folhas, uma para cada
exemplo Se a rvore for binria (cada atributo sendo numrico
ou nominal com dois valores apenas) isso resulta em 2n-1 ns (rvores com multi-ramos apenas diminuem o nmero de ns internos)
Assim, a complexidade para a poda O(n)
-
132
DTsDTs Representam Disjunes de Representam Disjunes de ConjunesConjunes
Sol Nublado Chuva
Alta Normal Forte Fraco
No Sim
Sim
SimNo
Aparncia
Umidade Ventando
(Aparncia=Sol Umidade=Normal) (Aparncia=Nublado) (Aparncia=Chuva Ventando=Fraco)
(Aparncia=Sol Umidade=Alta) (Aparncia=Chuva Ventando=Forte)
Sim No
-
133
Representao da DT como um Representao da DT como um Conjunto de RegrasConjunto de Regras
Uma rvore pode ser representada como um conjunto de regrasCada regra comea na raiz da rvore e
caminha para baixo, em direo s folhas Cada n de deciso acrescenta um teste s
premissas (condies) da regra O n folha representa a concluso da regra
-
134
Representao da DT como um Representao da DT como um Conjunto de RegrasConjunto de Regras
if Paciente se sente bem = sim thenclasse = saudvel
elseif Paciente tem dor = noif Temperatura do paciente 37 then
classe = saudvelelse {Temperatura do Paciente > 37}
classe = doenteend if
else {Paciente tem dor = sim}classe = doente
end ifend if
Temperaturado paciente
37
nosim
> 37
saudvel doente
no sim
saudvel
doente
Paciente temdor
Paciente sesente bem
-
135
Representao da DT como um Representao da DT como um Conjunto de Regras DisjuntasConjunto de Regras Disjuntas
As regras representadas por uma rvore de deciso so disjuntasAssim, elas podem ser escritas como
regras separadas, comeando pela raiz, e, consequentemente, o else no necessrio
-
136
Representao da DT como um Representao da DT como um Conjunto de Regras DisjuntasConjunto de Regras Disjuntas
if Paciente se sente bem = sim thenclasse = saudvel
end ifif Paciente se sente bem = no
and Paciente tem dor = noand Temperatura do paciente 37 thenclasse = saudvel
end ifif Paciente se sente bem = no
and Paciente tem dor = noand Temperatura do paciente > 37 thenclasse = doente
end ifif Paciente se sente bem = no
and Paciente tem dor = sim thenclasse = doente
end if
Temperaturado paciente
37
nosim
> 37
saudvel doente
no sim
saudvel
doente
Paciente temdor
Paciente sesente bem
-
137
Interpretao GeomtricaInterpretao Geomtrica
Consideramos exemplos como um vetor de m atributosCada vetor corresponde a um ponto em um
espao m-dimensionalA DT corresponde a uma diviso do
espao em regies, cada regio rotulada como uma classe
-
138
Interpretao Geomtrica: AtributoInterpretao Geomtrica: Atributo--ValorValor Um teste para um atributo da forma
Xi op Valoronde Xi um atributo, op {=,,,} e valor uma constante vlida para o atributo
O espao de descrio particionado em regies retangulares, nomeadas hiperplanos, que so ortogonais aos eixos
As regies produzidas por DT so todas hiperplanos Enquanto a rvore est sendo formada, mais regies so
adicionadas ao espao
-
139
Interpretao Geomtrica p/ DTInterpretao Geomtrica p/ DT
X1
X2o oo
oo
+
oo
oo
oo
ooo
o
o
o
o
oo
+
++
++
++
+
+ +
++
+
+
+
+
++o
oo
oo
105
8
-
140
Interpretao Geomtrica p/ DTInterpretao Geomtrica p/ DT
X1
X2o oo
oo
+
oo
oo
oo
ooo
o
o
o
o
oo
+
++
++
++
+
+ +
++
+
+
+
+
++o
oo
oo
105
8
10 >10+
X1
-
141
Interpretao Geomtrica p/ DTInterpretao Geomtrica p/ DT
X1
X2o oo
oo
+
oo
oo
oo
ooo
o
o
o
o
oo
+
++
++
++
+
+ +
++
+
+
+
+
++o
oo
oo
105
8
10 >10
>88
+
o
X1
X2
-
142
Interpretao Geomtrica p/ DTInterpretao Geomtrica p/ DT
X1
X2o oo
oo
+
oo
oo
oo
ooo
o
o
o
o
oo
+
++
++
++
+
+ +
++
+
+
+
+
++o
oo
oo
105
8
X1
5
10 >10
>5+o
>88
+
o
X1
X2
-
143
Combinao Linear de AtributosCombinao Linear de Atributos
Produzem rvores de deciso oblquasA representao para os testes so da
forma
onde ai uma constante, Xi um atributo real, op {,} e Valor uma constanteO espao de descrio particionado
hiperplanos que no so necessariamente ortogonais ao eixos
Valor op 2211 mm XaXaXa +++ L
-
144
rvore de Deciso Oblquarvore de Deciso Oblqua
X1
4 >4o +
X1-X2
X1
X2o oo
oo
+
oo
oo
oo
ooo
o
o
o
o
oo
+
++
++
++
+
+ +
++
+
+
+
+
++o
oo
oo
105
8
-
145
ResumoResumo
rvores de deciso, em geral, possuem um tempo de aprendizado relativamente rpidorvores de deciso permitem a
classificao de conjuntos com milhes de exemplos e centenas de atributos a uma velocidade razovel possvel converter para regras de
classificao, podendo ser interpretadas por seres humanosPreciso comparvel a outros mtodos