am i arvores decisao

140
José Augusto Baranauskas Departamento de Física e Matemática – FFCLRP-USP [email protected] http://dfm.ffclrp.usp.br/~augusto Indução de Árvores de Indução de Árvores de Decisão Decisão Várias aplicações em Inteligência Artificial em tarefas de importância prática são baseadas na construção de um modelo de conhecimento que é utilizado por um especialista humano O objetivo desta aula é fornecer conceitos básicos sobre indução de árvores de decisão

Upload: jean-lopes

Post on 09-Nov-2015

21 views

Category:

Documents


0 download

DESCRIPTION

árvores de decisão

TRANSCRIPT

  • 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