rvores de Deciso Marclio Souto DIMApUFRN 1 rvores
- Slides: 53
Árvores de Decisão Marcílio Souto DIMAp/UFRN 1
Árvores de Decisão – ADs (1/4) z. Forma mais simples: y. Lista de perguntas respostas “sim” ou “não” y. Hierarquicamente arranjadas y. Levam a uma decisão z. Estrutura da árvore determinada por meio de aprendizado 2
ADs – treinamento (1/10) z. Treinamento y. AD encontra regras que recursivamente bifurcam (baseadas nos valores dos atributos) o conjunto de dados x. Sub-conjuntos homogêneos intra sub-conjuntos e x. Sub-conjuntos heterogêneos inter sub-conjuntos z. Conteúdo dos sub-conjuntos pode ser descrito por um conjunto de regras 3
ADs – treinamento (2/10) Base de Dados “Tempo” 4
ADs – treinamento (3/10) Outlook? Sunny Rain Overcast 5
ADs – treinamento (4/10) 6
ADs – treinamento (5/10) Outlook? Sunny YES Humidity? Normal Inst D 9 D 11 Outlook Temp sunny cool sunny mild Hum Wind Play normal weak yes normal strong yes Rain Overcast High Inst D 1 D 2 D 8 Outlook sunny Temp hot mild Hum high Wind weak strong weak Play no no no 7
ADs – treinamento (6/10) 8
ADs – treinamento (7/10) Outlook? Sunny Humidity? Normal Overcast YES Wind? High Weak YES Rain Strong NO 9
ADs – treinamento (8/10) Outlook? Sunny Humidity? Normal YES High NO Overcast Rain YES Wind? Weak Strong YES NO 10
ADs – treinamento (9/10) 11
ADs – treinamento (10/10) Como classificar <rain, hot, high, normal, strong>? Outlook? Sunny Humidity? Normal YES High NO Overcast Rain YES Wind? Weak Strong YES NO 12
Indução top-down de árvores de decisão z Qual é o melhor atributo? [29+ , 35 -] A 1=? [21+, 5 -] [8+, 30 -] [29+ , 35 -] A 2=? [18+ , 33 -] [11+ , 2 -] 13
Entropia (1/3) z S é uma amostra dos exemplos de treinamento z p é a proporção de exemplos positivos em S z p é a proporção de exemplos negativos em S z Entropia mede a “impureza” de S: y. Entropia(S)=- p log 2 p y. Para mais de duas (n) classes 14
Entropia (2/3) z 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. 15
Entropia (3/3) z Portanto, o nr. de bits esperados para codificar ou de elementos aleatórios de S: y p (-log 2 p ) + p (-log 2 p ) y. Entropia(S)=- p log 2 p 16
Entropia - Exemplo I z Se p é 1, o destinatário sabe que o exemplo selecionado será positivo y. Nenhuma mensagem precisa ser enviada y. Entropia é 0 (mínima) z Se p é 0. 5, um bit é necessário para indicar se o exemplo selecionado é ou y. Entropia é 1 (máxima) z Se p é 0. 8, então uma 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 17
Entropia - Gráfico 18
Entropia - Exemplo I z Suponha que S é uma coleção de 14 exemplos, incluindo 9 positivos e 5 negativos (o exemplo da base de dados “Tempo”) y. Notação: [9+, 5 -] z A entropia de S em relação a esta classificação booleana é dada por: 19
Critério de ganho (1/2) Gain(S, A)=redução esperada da entropia devido a “classificação” de acordo com A 20
Critério de ganho (2/2) z. Usar o critério de ganho para decidir! [29+ , 35 -] A 1=? [21+, 5 -] [8+, 30 -] [29+ , 35 -] A 2=? [18+ , 33 -] [11+ , 2 -] 21
Critério de ganho - Exemplo (1/2) z 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 (base d dados “Tempo”). 22
Critério de ganho - Exemplo (2/2) 23
Exemplos de treinamento (1/3) 24
Exemplos de treinamento (2/3) z. Que atributo deve ser selecionado para ser a raiz da árvore? y. Gain(S, Outlook) = 0. 246 y. Gain(S, Humidity) = 0. 151 y. Gain(S, Wind) = 0. 048 y. Gain(S, Temperature) = 0. 029 zem que S denota a coleção de exemplos na tabela anterior 25
26
Overfitting em árvores de decisão z Suponha que adicionamos um exemplo de treinamento com ruído #15: y Sunny, Hot, Normal, Strong, Play. Tennis=No y Qual seria seu efeito na árvore anterior: 27
Overfitting z Considere o erro da hipótese h sobre ydados do treinamento: errotrain(h) ydistribuição completa D dos dados: erro. D(h) z Uma hipótese h H “overfits” (se super ajusta) o conjunto de dados se há uma hipótese alternativa h´ H tal que yerrotrain(h) < errotrain(h´) e yerro. D(h) > erro. D(h´) 28
Overfitting na aprendizagem de árvores de decisão (1/2) 29
Overfitting na aprendizagem de árvores de decisão (2/2) z Como evitar overfitting? y. Parar o crescimento da árvore quando a divisão dos dados não é estatisticamente significativa y. Deixar a árvore crescer completamente para, então, poda-la (post-prune) z Como escolher a “melhor” árvore: y. Medir a performance sobre o cj. de dados treinamento y. Medir a performance sobre um cj. de dados (separado) de validação y. MDL: minimizar - size(tree)+size(misclassification(tree)) 30
Reduzindo o erro através da poda z Divida os dados em cj. de treinamento e validação z Faça até que uma poda adicional seja prejudicial: y 1. Avalie o impacto sobre o cj. de validação de podar cada nó possível (e seus descendentes) y 2. Gulosamente remova aquele que melhora mais a performance no cj. de validação 31
Efeito do uso da técnica de poda 32
Podando as regras z 1. Converta a árvore para um conjunto equivalente de regras z 2. Pode cada regra independentemente umas das outras z 3. Ordene as regras finais em uma seqüência deseja para uso y. Estes é um dos métodos mais utilizados (e. g. , C 4. 5) 33
Atributos com valores contínuos z. Crie um atributo discreto para testar um que seja contínuo y. Temperature = 82. 5 y(Temperature > 72. 3) = t, f Temperature: 40 48 60 72 80 90 Play. Tennis: NO NO YES YES NO 34
Atributos Numéricos: Exemplo 35
Atributos Numéricos: Exemplo 36
Atributos Numéricos: Exemplo 37
Atributos Numéricos: Exemplo 38
Atributos Numéricos: Exemplo Sensor_1? > 83, 46 <= 83, 46 39
Atributos Numéricos: Exemplo 40
Atributos Numéricos: Exemplo Sensor_1? > 83, 46 <= 83, 46 41
Atributos Numéricos: Exemplo Sensor_1? > 83, 46 <= 83, 46 Sensor_2? > 12, 84 <= 12, 84 42
Atributos Numéricos: Exemplo 43
Atributos Numéricos: Exemplo (Ruído) 44
Atributos Numéricos: Exemplo (Ruído) Sensor_1? > 83, 46 <= 83, 46 Sensor_2? > 12, 74 <= 12, 74 45
Atributos Numéricos: Exemplo (Ruído) Sensor_1? > 83, 46 <= 83, 46 Sensor_2? > 12, 74 >13, 30 <= 12, 74 Sensor_2? <=13, 30 Overfitting! 46
Atributos com vários valores (1/2) z Problema: y. Se o atributo tem vários valores, Gain o selecionará y. Suponha o uso de Date = 3/06/00 como atributo z Um abordagem: use Gain. Ratio 47
Atributos com vários valores (2/2) Onde Si é um subconjunto de S para o qual A tem valor vi 48
Atributos com custo z Considere y. Diagnóstico médico, Blood. Test tem custo R$500 y. Robótica, Width_from_1 ft tem custo 23 sec. z Como aprender uma árvore consistente com um valor de custo esperado baixo? z Uma abordagem: substitua Gain por: 49
Atributos com custo (2/2) Tan e Schlimmer (1990) Nunez (1988) Onde w [0, 1] determinar a importância do custo 50
Valores de atributo desconhecidos (1/2) z E se valores do atributo A estão faltando para alguns exemplos? z Mesmo assim use os exemplos de treinamento, e organize a árvore como segue: y. Se um nó n testa A, atribua um valor para A que seja o mais comum entre os outros exemplos classificados nó n y. Atribua para A um valor que seja o mais comum entre os outros exemplos com o mesmo valor objetivo (target value) 51
Valores de atributo desconhecidos (2/2) y. Atribua uma probabilidade pi para cada valor possível vi de A xatribua uma fração pi de exemplos para cada descendente da árvore y. Classifique exemplos novos da mesma maneira 52
ADs - conclusão z Vantagens: y. Estrutura de fácil manipulação y. Produzem modelos que podem ser facilmente interpretados por humanos z Desvantagens: y. Pouca robustez a dados de grande dimensão y. Acurácia afetada por atributos pouco relevantes y. Dificuldade em lidar com dados contínuos 53