Árvores de decisão valmir macário. introdução seres humanos manipulam símbolos em alto nível...
TRANSCRIPT
Árvores de DecisãoValmir Macário
IntroduçãoSeres humanos manipulam
símbolos em alto nível
Tomamos decisões a partir de regras e modelos que generalizamos
Realizamos inferências a partir dos dados que temos e do nosso conhecimento explícito
Relembrando...Aprendizagem Indutiva
Inferência de uma regra geral (hipótese) a partir de exemplos particulares
Precisão diretamente proporcional à quantidade / qualidade dos exemplos
Conhecimento SimbólicoConhecimento adquirido pode ser
representado em linguagens de alto nível◦De forma legível e interpretável por
humanos
Motivações◦Compreender um problema (mais do
que obter modelos precisos)◦Justificar decisões ◦Incorporar novo conhecimento
Aprendizagem IndutivaClassificação
Incremental: atualiza hipótese a cada novo exemplo◦Mais flexível ◦A ordem de apresentação é
importanteNão incremental: gerada a
partir de todo conjunto de exemplo.◦Mais eficiente e prática
Árvore de Decisão
Entrada:◦Conjunto de atributos Discretos Contínuos
Saída◦Uma “decisão”
Árvore de DecisãoUma árvore de decisão utiliza uma
estratégia de dividir-para-conquistar:◦Um problema complexo é decomposto em
sub-problemas mais simples.◦Recursivamente a mesma estratégia é
aplicada a cada sub-problema.A capacidade de discriminação de uma
árvore tem origem na:◦Divisão do espaço definido pelos atributos
em sub-espaços.◦A cada sub-espaço é associada uma classe.
Árvores de Decisão
Cada nó interno (não-terminal) contém um teste sobre os valores de um dado atributo
Folhas da árvore (nós terminais) são associadas às classes ◦ Comumente, acompanhadas
com graus de confiança
Novas instâncias classificadas percorrendo a árvore a partir da raiz até as folhas
FilmeRuim
(p = 0.7)Gênero
Cores
Não Sim
FilmeRuim
(p = 1.0)
Musical
Ação
Drama
FilmeBom
(p = 0.8)
FilmeRuim
(p = 0.6)
Árvores de Decisão - Construção
Árvore de decisão construída de forma recursiva da raiz para as folhas (top-down)
◦A cada nó, é escolhido um teste que separe melhor os exemplos de classes diferentes Maximização de critério de separação
◦Nós terminais são criados ao atingir um critério de parada Ex.: todos os exemplos do nó pertencem à uma
só classe
AD(Exemplos:E; Atributos:A; Alvo:C)◦ Crie nó_raiz
◦ SE Critério_de_Parada
ENTÃO Crie nó terminal associada à classe mais freqüente
◦ SENÃO Encontre atributo aj cujo teste de decisão maximize a separação dos
exemplos que atinjem o nó
- PARA CADA valor v do teste adicione nova sub-árvore
- Sub_arvore = AE(E[aj = v], A – {aj}, C)
Árvores de Decisão - Construção
Exemplo: Play Tennis
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 Yes
D10 Rain Mild Normal Weak YesD11 Sunny Mild Normal Strong YesD12 Overcast Mild High Weak YesD13 Overcast Hot Normal Weak YesD14 Rain Mild High Strong No
Árvore de Decisão de Classificação
Dados(dias anteriores)
AprendizadoClassificador
PróximosDias
Play Tennis?
Árvore de Decisão:Play Tennis
Tempo
Humidade VentoYes
Nublado
Ensolarado Chuvoso
Alta Normal Forte Fraco
Não Sim Não Sim
Árvore de Decisão:Play Tennis
Tempo
Humidade VentoYes
Nublado
Ensolarado Chuvoso
Alta Normal Forte Fraco
Não Sim Não Sim
Atributos
Árvore de Decisão:Play Tennis
Tempo
Humidade VentoYes
Nublado
Ensolarado Chuvoso
Alta Normal Forte Fraco
Não Sim Não Sim
Valores
Árvore de Decisão:Play Tennis
Tempo
Humidade VentoYes
Nublado
Ensolarado Chuvoso
Alta Normal Forte Fraco
Não Sim Não Sim
Classificação
Play TennisCada percurso na árvore (da raiz à
folha) corresponde a uma regra de classificação
Se:◦(Tempo = Ensolarado Humidade =
Normal) ◦ (Tempo = Nublado)◦ (Tempo = Chuvoso Vento =
Fraco)Então:
◦Play Tennis? Sim
RegrasNa forma: if-thenIF Outlook=Sunny Humidity=Normal THEN PlayTennis=Yes
IF Outlook=Overcast THEN PlayTennis=Yes
IF Outlook=Rain Wind=Weak THEN PlayTennis=Yes
IF Outlook=Sunny Humidity=High THEN PlayTennis=No
IF Outlook=Rain Wind=Strong THEN PlayTennis=Yes
Árvores de DecisãoEscolha de testes de atributos
Como escolher o melhor atributo?◦Quantidade de Informações
(Shannon Weaver – 1949)
◦Entropia(S) = especifica o número mínimo de bits de informação necessário para codificar uma classificação de um membro arbitrário de S.
EntropiaS é 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⊝
Árvores de DecisãoEscolha de testes de atributos
Quantidade de Informações de um problema que pode tomar n valores:
Exemplo: no caso do lançamento de uma moeda:
)(log)())(),...,, 221
1
iin vPvPvPP(v)I(P(vn
i
bit12
1log2
1
2
1log2
1
2
1,2
122
I
Árvores de DecisãoEscolha de testes de atributos
Para uma árvore de decisão com 2 possibilidades de resposta:
Teste em um único atributo não nos dará informações suficientes
A construção de uma árvore de decisão é guiadapelo objetivo de diminuir a aleatoriedade ou dificuldade de previsão, da variável que define as classes.
np
n
np
n
np
p
np
p
np
n
np
pI
22 loglog,
Árvores de DecisãoEscolha de testes de atributosUm atributo escolhido A divide o
conjunto de treinamento em sub-conjuntos E1, E2,..Ev de acordo com seus valores para A, onde A tem v valores distintos
Ganho:
Melhor atributo Maior Ganho
ii
i
ii
iv
i
ii
np
n
np
pInp
npA ,)Restante(
1
Restante,)(
np
n
np
pIAGanho
Árvores de DecisãoEscolha de testes de atributos
Ganho de Informação (Information Gain)◦ O ganho de um atributo/teste é definido
pela redução de Entropia proporcionada após a separação dos exemplos do nó
),(),(),,( ][
][
i
i
i
vav
vaEEEnt
E
EECEntECaInfoGain
Entropia do nó pai Entropia do nó filho ponderada pelo número de exemplos do nó
Árvores de DecisãoEscolha de testes de atributos
Propriedades da Entropia: Se todos os exemplos de E são da mesma classe então
entropia assume valor mínimo Ent(C,E) = 0
Se todos as classes têm o mesmo número de exemplos em E então entropia assume valor máximo
Qual o melhor atributo?◦Ganho(exemplos,Tempo)=0.246
MAX !◦Ganho(exemplos,Humidade)=0.151◦Ganho(exemplos,Vento)=0.048◦Ganho(exemplos,Temperatura)=0.029
Lidando com atributos numéricos: ◦Testes são da forma: atributo > valor◦Procedimento:
Ordene os valores do atributo observados no conjunto de treinamento
Considere a média de valores adjacentes como possíveis testes
Por eficiência, considere apenas os valores onde são observadas mudanças de classe
Árvores de DecisãoEscolha de testes de atributos
Temperatura: 40 48 60 72 80 90 Classe: A A B B B A
54 95 Valores candidatos
Raíz: [9+; 5-]◦ Entropia = - 9/14*log2(9/14) - 5/14*log2(5/14) =
0.940
Considerando teste com atributo Outlook◦ Outlook = Sunny: [2+;3-]
Entropia = - 2/5*log2(2/5) - 3/5*log2(3/5) = 0.971
◦ Outlook = Overcast: [4+;0-] Entropia = - 4/4*log2(4/4) - 0/4*log2(0/4) = 0.0
◦ Outlook = Rain: [3+;2-] Entropia = - 3/5*log2(3/5) - 2/5*log2(2/5) = 0.971
◦ Média: 5/14*0.971 + 4/14*0.0 + 5/14*0.971 = 0.694
◦ Ganho de Informação: 0.940 - 0.694 = 0.246
Árvores de Decisão - Exemplo
Considerando os outros atributos:◦Ganho(Outlook, D) = 0.246◦Ganho(Humit., D) = 0.151 ◦Ganho(Wind, D) = 0.048◦Ganho(Temp., D) = 0.029
◦Atributo Outlook é o escolhido na raíz
Árvores de Decisão - Exemplo
Árvores de Decisão - Exemplo
Outlook
Overcast
Rain
Yes[4+; 0-] ?
[3+; 2-]Entropia: 0.971
[2+; 3-]Entropia: 0.971
?
Sunny
[9+; 5-]Entropia: 0.940
Humit.?Temp.?Wind?
Humit.?Temp.?Wind?
Árvores de DecisãoEscolha de testes de atributos
Próximos atributos a serem testados
Ganho(exemplossol, Humidade) = 0.97-(3/5)0-(2/5)0 = 0.970 MAX !
Ganho(exemplossol,Temperatura) = 0.97-(2/5)0-(2/5)1-(1/5)0 = 0.570
Ganho(exemplossol,Vento) = 0.97-(2/5)1-(3/5)0.918 = 0.019
Tempo
{D1,D2,D8,D9,D11} [2+, 3-] E > 0 ???
{D3,D7,D12,D13} [4+, 0-] E = 0 OK – Classif.: SimSol
Nublado
{D4,D5,D6,D10,D14} [3+, 2-] E > 0 ??? Chuvoso
I(2/5, 3/5) = 0,97
Totalidade (ou alternativamente, a maioria) do exemplos do nó pertencem a mesma classe
Profundidade máxima para o nó
Número mínimo de exemplos no nó
Ganho pouco significativo no critério de separação
◦ Obs.: valores definidos como parâmetros do aprendizado
Árvores de Decisão – Critérios de Parada
Avaliação do desempenho do algoritmo de aprendizagem
Curva de Aprendizado:
Critérios para escolha da melhor árvoreObter estimativas confiáveis do
erro a partir do conjunto de treinamento.
Otimizar o erro num conjunto de validação independente do utilizado para construir a árvore.
Minimizar:◦erro no treinamento ◦dimensão da árvore
Ruído e SuperadaptaçãoAlgoritmo tenta modelar ruído
nos dados
Árvore gerada não funciona bem com dados não conhecidos◦Não é suficientemente generalizada
Solução: Poda de atributos irrelevantes
Superadaptação (overfitting)O algoritmo de partição recursiva do
conjunto de dados gera estruturas que podem obter um ajuste aos exemplos de treinamento perfeito.◦ Em domínios sem ruído o número de erros no
conjunto de treinamento pode ser 0.Em problemas com ruído esta capacidade é
problemática:◦ A partir de uma certa profundidade as decisões
tomadas são baseadas em pequenos conjuntos de exemplos.
◦ A capacidade de generalização para exemplos não utilizados no crescimento da árvore diminui.
Variação do erro com o número de nós
Superadaptação (overfitting)Ockham’s razor: preferência pela
hipótese mais simples.◦Existem menos hipóteses simples do
que complexas.◦Se uma hipótese simples explica os
dados é pouco provável que seja uma coincidência.
◦Uma hipótese complexa pode explicar os dados apenas por coincidência.
Poda (Prunning)Forma de simplificar a árvoreDuas possibilidades:
◦Pre-pruning Parar o crescimento da árvore mais cedo
◦Post-pruning Costruir uma árvore completa e podar a
árvore “Growing and pruning is slower but more
reliable”
Algoritmo básico de poda
1. Percorre a árvore em profundidade
2. Para cada nó de decisão calcula:◦ Erro no nó◦ Soma dos erros nos nós
descendentes
3. Se o erro no nó é menor ou igual à soma dos erros dos nós descendentes, o nó é transformado em folha.
Um algoritmo básico de pruning
Exemplo do nó B:◦Erro no nó = 2◦Soma dos erros nos nós
descendentes: 2 + 0
◦Transforma o nó em folha Elimina os nós descendentes.
Exemplo do nó B:◦ Erro no nó = 2◦ Soma dos erros
nos nós descendentes: 2 + 0
◦ Transforma o nó em folha Elimina os nós
descendentes.
Utilização PráticaAs arvores de decisão costumam ser
o primeiro método experimentado quando o método de classificação tem de ser extraído de um conjunto de dados.
A saída de uma árvore de decisão é de fácil entendimento para um ser humano.◦Exigência legal para decisões
financeiras.Propriedade não compartilhada por
redes neurais.
Casos de sucessoSistema GASOIL (BP)
◦Usado para determinar sistemas de separação de gás, óleo e água
◦Aproximadamente 2500 regras◦Se tivesse sido feito manualmente
levaria 10 pessoa-anos◦Levou 100 pessoa-dias utilizando
árvore de decisão
Casos de sucessoPilotos Automáticos
◦Mapeamentos de estados do sistema para as ações corretas
◦Testes realizados com simuladores do Cessna
◦20.000 exemplos criados a partir da observação de pilotos treinados utilizando o simulador
◦O sistema gerado a partir da árvore de decisão cometia menos erros que pilotos humanos
Vantagens:◦Geram modelos dos dados (i.e., método
eager)◦Conhecimento interpretável◦Pouca sensibilidade a atributos
irrelevantes Uma vez que implementam seleção de atributos
Desvantagens:◦Em geral, menos precisos comparados
com algoritmos como redes neurais e SVMs
Árvores de Decisão - Discussão
Diferentes versões de algoritmos podem ser encontradas na literatura◦Algoritmo ID3 – versão básica de AD para
atributos categóricos, com InfoGain ◦Algoritmo C4.5 – extensão do ID3 para
atributos categóricos e numéricos, com GainRatio
Árvores de Decisão
Árvores de Decisão - no WEKA
Árvores de Decisão - no WEKA
Parâmetros Importantes
• confidenceFactor: ?????
• minNumObj: número mínimo de exemplos em uma folha
• numFold: controla a quantidade de exemplos de validação usados para poda
Árvores de Decisão - no WEKA
Árvore Gerada
T. Mitchell, Machine Learning, Cap. 3, 1997.
M. Monard, J. Baranauskas, Indução de Regras e Árvores de Decisão, Sistemas Inteligentes, Cap. 5, 2005.
J. R. Quinlan, Induction of Decision Trees, Machine Learning, Vol.1, N.1, 1986.
Referências