Aprendizagem Simbólica
Árvores de Decisão
Esquema da apresentação
Representação de árvores de decisão Problemas apropriados para árvores de decisão Algoritmo de Aprendizagem Básico - ID3
– Entropia– Ganho de Informação
Busca no espaço de estado Bias indutivo Problemas do algoritmo ID3 -> C4.5 Exemplos práticos
Árvore de Decisão para PlayTennis
<Outlook, Temperature, Humidity, Wind, PlayTenis>
Árvore para prever risco de cesariana
Aprendida a partir do registro médico de 1000 mulheres
Exemplos Negativos são cesarianas [833+,167-] .83+ .17- Fetal_Presentation = 1: [822+,116-] .88+ .12- | Previous_Csection = 0: [767+,81-] .90+ .10- | | Primiparous = 0: [399+,13-] .97+ .03- | | Primiparous = 1: [368+,68-] .84+ .16- | | | Fetal_Distress = 0: [334+,47-] .88+ .12- | | | | Birth_Weight < 3349: [201+,10.6-] .95+ .05- | | | | Birth_Weight >= 3349: [133+,36.4-] .78+ .22- | | | Fetal_Distress = 1: [34+,21-] .62+ .38- | Previous_Csection = 1: [55+,35-] .61+ .39- Fetal_Presentation = 2: [3+,29-] .11+ .89- Fetal_Presentation = 3: [8+,22-] .27+ .73-
Árvores de Decisão
Representação de árvores de decisão– Cada nó interno testa um atributo– Cada ramo corresponde a um valor do atributo– Cada folha atribui uma classificação
Como representaríamos: , , XOR– (A B) (C D E)– M de N
Quando usar árvores de decisão?
Instâncias (exemplos) são representadas por pares atributo-valor
Função objetivo assume apenas valores discretos Hipóteses disjuntivas podem ser necessárias Conjunto de treinamento possivelmente
corrompido por ruído Exemplos:
– Diagnóstico médico, diagnóstico de equipamentos, análise de crédito
Indução top-down de árvores de decisão (1/2) Loop principal: 1. A o “melhor” atributo de decisão para o próximo
nó 2. Atribua A como atributo de decisão para nó 3. Para cada valor de A, crie um novo descendente
para nó 4. Classifique os exemplos de treinamento nos nós
folha 5. Se os exemplos de treinamento estão classificados
perfeitamente, então PARE, senão comece novamente a partir dos novos nós folha
function APRENDIZAGEM_ID3(exemplos,atributos,default) : árvore de decisão if (exemplos é vazio) then return default; else if (todos os exemplos têm a mesma classificação)
then return (a classificação); elseif (atributos é vazio) then return maioria(exemplos); else melhor <- ESCOLHA_MELHOR_ATRIBUTO(atributos,exemplos); árvore <- nova árvore com raiz “melhor”; para cada valor vi de melhor faça exemplosi <- exemplos onde melhor = vi; subárvore <- APRENDIZAGEM_DA_ID3(exemplosi, atributos-{melhor}, maioria(exemplos)); adicione subárvore como um ramo à árvore com rótulo vi; return arvore;
ID3: Algoritmo de aprendizagem
Indução top-down de árvores de decisão (2/2) Qual é o melhor atributo?
[29+ , 35-]
[21+, 5-] [8+, 30-]
[29+ , 35-]
A2=?
[18+ , 33-] [11+ , 2-]
A1=?
Entropia (1/3)
S é uma amostra dos exemplos de treinamento
p é a proporção de exemplos positivos em S p é a proporção de exemplos negativos em S Entropia mede a “impureza” de S:
– Entropia(S)=- p log2 p - p log2 p
Entropia (2/3)
Entropia(S)=especifica o nr. mínimo de bits de informação necessário para codificar uma classificação de um membro arbitrário de S.
Por quê?– Teoria da Informação: códigos de
comprimento ótimo atribui -log2p bits para mensagens que possuem probabilidade p
Entropia (3/3)
Portanto, o nr. de bits esperados para codificar ou de elementos aleatórios de S:– p (-log2 p) + p (-log2 p)
– Entropia(S)=- p log2 p - p log2 p
Entropia - Exemplo I Se p é 1, o destinatário sabe que o exemplo
selecionado será positivo– Nenhuma mensagem precisa ser enviada – Entropia é 0 (mínima)
Se p é 0.5, um bit é necessário para indicar se o exemplo selecionado é ou – Entropia é 1 (máxima)
Se p é 0.8, então um coleção de mensagens podem ser codificadas usando-se - em média menos de um bit - códigos mais curtos para e mais longos para
Entropia - Gráfico
Entropia - Exemplo I
Suponha que S é uma coleção de 14 exemplos, incluindo 9 positivos e 5 negativos – Notação: [9+,5-]
A entropia de S em relação a esta classificação booleana é dada por:
940.0)14/5(log)14/5()14/9(log)14/9(])5,9([ 22
Entropy
Critério de ganho (1/2)
)(||||
)(),()(
vAValuesv
v SEntropySS
SEntropyASGain
Gain(S,A)=redução esperada da entropia devido a “classificação” de acordo com A
Critério de ganho (2/2)
Usar o critério de ganho para decidir![29+ , 35-]
[21+, 5-] [8+, 30-]
[29+ , 35-]
A2=?
[18+ , 33-] [11+ , 2-]
A1=?
Critério de ganho - Exemplo (1/2) Suponha que S é uma coleção de exemplos de
treinamento ([9+,5-]) descritos por atributos incluindo Wind, que pode ter os valores Weak and Strong.
048.000.1*)14/6(811.0*)14/8(940.0
)()14/6()()14/8()(
)(||||
)(),(
]3,3[]2,6[]5,9[
,)(
},{
StrongWeak
vStrongWeakv
v
Strong
Weak
SEntropySEntropySEntropy
SEntropySS
SEntropyWindSGain
SS
SStrongWeakWindValues
Critério de ganho - Exemplo (2/2)
Exemplos de treinamento (1/3)
Day Outlook Temperature Humidity Wind PlayTennisD1 Sunny Hot High Weak NoD2 Sunny Hot High Strong NoD3 Overcast Hot High Weak YesD4 Rain Mild High Weak YesD5 Rain Cool Normal Weak YesD6 Rain Cool Normal Strong NoD7 Overcast Cool Normal Strong YesD8 Sunny Mild High Weak NoD9 Sunny Cool Normal Weak YesD10 Rain Mild Normal Weak YesD11 Sunny Mild Normal Strong YesD12 Overcast Mild High Strong YesD13 Overcast Hot Normal Weak YesD14 Rain Mild High Strong No
Considere a tarefa de aprendizagem representada pelos exemplos de treinamento na tabela abaixo, onde o objetivo é prever o atributo PlayTenis baseando-se nos outros atributos
Exemplos de treinamento (1/3)
Que atributo deve ser selecionado para ser a raiz da árvore?– Gain(S,Outlook) = 0.246– Gain(S,Humidity) = 0.151– Gain(S,Wind) = 0.048– Gain(S,Temperature) = 0.029
onde S denota a coleção de exemplos na tabela anterior
Busca no espaço de hipóteses - ID3
Busca no espaço de hipóteses por ID3
Espaço de hipóteses completo– A função objetivo com certeza está contido nele
Tem como saída uma única hipótese (qual?)– Não pode lidar com várias perguntas....
Não há backtracking– Mínimo local
Escolhas para busca baseadas em estatística– Robusto contra dados com ruído
Inductive bias: aprox “prefere a menor árvore”
Inductive bias em ID3 Note que H é conjunto das partes de instâncias X
– Não tendencioso? Não exatamente...
– Preferência por árvores curtas, e por aquelas com atributos com alto ganho de informação próximos à raiz
– Bias é uma preferência por algumas hipótese, ao invés de uma restrição do espaço de hipóteses H
– Occam´s razor: preferir a hipótese mais simples que se ajuste aos dados
Occam´s razor (1/2) Heurística de Occam´s Razor: preferir a hipótese
mais simples que que se ajuste aos dados
Por quê preferir hipóteses mais simples a mais complexas?
– Raciocínio comum:• Há muito menos hipóteses mais simples,
portanto é menos provável que seja uma coincidência se uma dessas hipótese se ajustar aos dados
Occam´s razor (2/2)– Argumentos contra:
• Porém existem vários conjuntos pequenos de hipóteses sem sentindo!
– e.g., todas as árvores com um número primo de nós que usam o atributo começando por “Z”
• Então, o que há de tão especial sobre conjuntos pequenos baseados no tamanho (complexidade) das hipóteses?
• A complexidade de uma hipótese depende da representação usada durante a aprendizagem
Overfitting em árvores de decisão Suponha que adicionamos um exemplo de
treinamento com ruído #15:– Sunny, Hot, Normal, Strong, PlayTennis=No– Qual seria seu efeito na árvore anterior:
Overfitting
Considere o erro da hipótese h sobre– dados do treinamento: errotrain(h)– distribuição completa D dos dados: erroD(h)
Uma hipótese h H “overfits” o conjunto de dados se há uma hipótese alternativa h´ H tal que– errotrain(h) < errotrain(h´) e– erroD(h) > erroD(h´)
Overfitting na aprendizagem de árvores de decisão (1/2)
Overfitting na aprendizagem de árvores de decisão (2/2) Como evitar overfitting?
– Parar o crescimento da árvore quando a divisão dos dados não é estatisticamente significativa
– Deixar a árvore crescer completamente para, então, poda-la (post-prune)
Como escolher a “melhor” árvore:– Medir a performance sobre o cj. de dados
treinamento– Medir a performance sobre um cj. de dados
(separado) de validação – MDL: minimizar - size(tree)+size(misclassification(tree))
Reduzindo o erro através da poda
Divida os dados em cj. de treinamento e validação
Faça até que uma poda adicional seja prejudicial:– 1. Avalie o impacto sobre o cj. de validação de
podar cada nó possível (e seus descendentes)– 2. Gulosamente remova aquele que melhora mais
a performance no cj. de validação Produz a menor versão da sub-árvore mais
precisa E se os dados são limitados?
Efeito do uso da técnica de poda
Podando as regras
1. Converta a árvore para um conjunto equivalente de regras
2. Pode cada regra independentemente umas das outras
3. Ordene as regras finais em uma seqüência deseja para uso– Estes é um dos métodos mais utilizados
(e.g., C4.5)
Convertendo uma árvore em regras
Convertendo uma árvore em regras IF (Outlook = Sunny) (Humidity =
High) THEN PlayTennis = No
IF (Outlook = Sunny) (Humidity = Normal) THEN PlayTennis = YES
..........
Atributos com valores contínuos
Crie um atributo discreto para testar um que seja contínuo– Temperature = 82.5– (Temperature > 72.3) = t,f
Temperature: 40 48 60 72 80 90
PlayTennis: NO NO YES YES YES NO
Atributos com vários valores (1/2) Problema:
– Se o atributo tem vários valores, Gain o selecionará
– Suponha o uso de Date = 3/06/00 como atributo Um abordagem: use GainRatio
Atributos com vários valores (2/2)
||||
log||||
),(
),(),(),(
21 S
SSS
ASmationSplitInfor
ASmationSplitInforASGainASGainRation
ic
i
i
Onde Si é um subconjunto de S para o qual A tem valor vi
Atributos com custo
Considere– Diagnóstico médico, BloodTest tem custo R$500– Robótica, Width_from_1ft tem custo 23 sec.
Como aprender uma árvore consistente com um valor de custo esperado baixo?
Uma abordagem: substitua Gain por:
Atributos com custo (2/2)
),(),(2
ASCostASGain
w
ASGain
ACost )1)((2 ),(
Tan e Schlimmer (1990)
Nunez (1988)
Onde w [0,1] determinar a importância do custo
Valores de atributo desconhecidos (1/2) E se valores do atributo A estão faltando
para alguns exemplos? Mesmo assim use os exemplos de
treinamento, e organize a árvore como segue:– Se um nó n testa A, atribua um valor para A que
seja o mais comum entre os outros exemplos classificados nó n
– Atribua para A um valor que seja o mais comum entre os outros exemplos com o mesmo valor objetivo (target value)
Valores de atributo desconhecidos (2/2)
– Atribua uma probabilidade pi para cada valor possível vi de A
• atribua uma fração pi de exemplos para cada descendente da árvore
– Classifique exemplos novos da mesma maneira
Exemplos Práticos GASOIL
– Sistema de separação de gás-óleo em plataformas de petróleo
– Sistema de 10 pessoas-ano se baseado em regras– Desenvolvido em 100 pessoas-dia
Piloto automático de um Cessna– Treinado por três pilotos– Obteve um desempenho melhor que os três
Mineração de dados Recuperação de Informação
Redes Neurais X Árvores de Decisão
Algoritmo TREPAN– Representa uma rede neural através de
uma árvore de decisão– Algoritmo geral de extração de
conhecimento de redes neurais