1 Árvores de Decisão Marcílio Souto DIMAp/UFRN
2 Árvores de Decisão – ADs (1/4) zForma mais simples: yLista de perguntas respostas “sim” ou “não” yHierarquicamente arranjadas yLevam a uma decisão zEstrutura da árvore determinada por meio de aprendizado
3 ADs – treinamento (1/10) zTreinamento yAD encontra regras que recursivamente bifurcam (baseadas nos valores dos atributos) o conjunto de dados xSub-conjuntos homogêneos intra sub-conjuntos e xSub-conjuntos heterogêneos inter sub-conjuntos zConteúdo dos sub-conjuntos pode ser descrito por um conjunto de regras
4 ADs – treinamento (2/10) Base de Dados “Tempo”
5 ADs – treinamento (3/10) Outlook? Sunny Overcast Rain
6 ADs – treinamento (4/10)
7 ADs – treinamento (5/10) Outlook? Sunny Overcast Rain Humidity? InstOutlookTempHumWindPlay D9sunnycoolnormalweak yes D11sunnymildnormalstrong yes InstOutlookTempHumWindPlay D1sunnyhothighweak no D2sunnyhothighstrong no D8sunnymildhighweak no NormalHigh YES
8 ADs – treinamento (6/10)
9 ADs – treinamento (7/10) Outlook? Sunny Overcast Rain Humidity? Normal High YES NO Wind? WeakStrong
10 ADs – treinamento (8/10) Outlook? Sunny Overcast Rain Humidity? Normal High YES NO Wind? WeakStrong YES NO
11 ADs – treinamento (9/10)
12 ADs – treinamento (10/10) Como classificar ? Outlook? Sunny Overcast Rain Humidity? Normal High YES NO Wind? WeakStrong YES NO
13 Indução top-down de árvores de decisão zQual é o melhor atributo? [29+, 35-] [21+, 5-][8+, 30-] [29+, 35-] A2=? [18+, 33-][11+, 2-] A1=?
14 Entropia (1/3) zS é uma amostra dos exemplos de treinamento zp é a proporção de exemplos positivos em S zp é a proporção de exemplos negativos em S zEntropia mede a “impureza” de S: yEntropia(S)=- p log 2 p - p log 2 p yPara mais de duas (n) classes
15 Entropia (2/3) zEntropia(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.
16 Entropia (3/3) zPortanto, o nr. de bits esperados para codificar ou de elementos aleatórios de S: y p (-log 2 p ) + p (-log 2 p ) yEntropia(S)=- p log 2 p - p log 2 p
17 Entropia - Exemplo I zSe p é 1, o destinatário sabe que o exemplo selecionado será positivo yNenhuma mensagem precisa ser enviada yEntropia é 0 (mínima) zSe p é 0.5, um bit é necessário para indicar se o exemplo selecionado é ou yEntropia é 1 (máxima) zSe 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
18 Entropia - Gráfico
19 Entropia - Exemplo I zSuponha que S é uma coleção de 14 exemplos, incluindo 9 positivos e 5 negativos (o exemplo da base de dados “Tempo”) yNotação: [9+,5-] zA entropia de S em relação a esta classificação booleana é dada por:
20 Critério de ganho (1/2) Gain(S,A)=redução esperada da entropia devido a “classificação” de acordo com A
21 Critério de ganho (2/2) zUsar o critério de ganho para decidir! [29+, 35-] [21+, 5-][8+, 30-] [29+, 35-] A2=? [18+, 33-][11+, 2-] A1=?
22 Critério de ganho - Exemplo (1/2) zSuponha 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”).
23 Critério de ganho - Exemplo (2/2)
24 Exemplos de treinamento (1/3)
25 Exemplos de treinamento (2/3) zQue atributo deve ser selecionado para ser a raiz da árvore? yGain(S,Outlook) = yGain(S,Humidity) = yGain(S,Wind) = yGain(S,Temperature) = zem que S denota a coleção de exemplos na tabela anterior
26
27 Overfitting em árvores de decisão zSuponha que adicionamos um exemplo de treinamento com ruído #15: ySunny, Hot, Normal, Strong, PlayTennis=No yQual seria seu efeito na árvore anterior:
28 Overfitting zConsidere o erro da hipótese h sobre ydados do treinamento: erro train (h) ydistribuição completa D dos dados: erro D (h) zUma hipótese h H “overfits” (se super ajusta) o conjunto de dados se há uma hipótese alternativa h´ H tal que yerro train (h) < erro train (h´) e yerro D (h) > erro D (h´)
29 Overfitting na aprendizagem de árvores de decisão (1/2)
30 Overfitting na aprendizagem de árvores de decisão (2/2) zComo evitar overfitting? yParar o crescimento da árvore quando a divisão dos dados não é estatisticamente significativa yDeixar a árvore crescer completamente para, então, poda-la (post-prune) zComo escolher a “melhor” árvore: yMedir a performance sobre o cj. de dados treinamento yMedir a performance sobre um cj. de dados (separado) de validação yMDL: minimizar - size(tree)+size(misclassification(tree))
31 Reduzindo o erro através da poda zDivida os dados em cj. de treinamento e validação zFaça até que uma poda adicional seja prejudicial: y1. Avalie o impacto sobre o cj. de validação de podar cada nó possível (e seus descendentes) y2. Gulosamente remova aquele que melhora mais a performance no cj. de validação
32 Efeito do uso da técnica de poda
33 Podando as regras z1. Converta a árvore para um conjunto equivalente de regras z2. Pode cada regra independentemente umas das outras z3. Ordene as regras finais em uma seqüência deseja para uso yEstes é um dos métodos mais utilizados (e.g., C4.5)
34 Atributos com valores contínuos zCrie um atributo discreto para testar um que seja contínuo yTemperature = 82.5 y(Temperature > 72.3) = t,f Temperature: PlayTennis: NO NO YES YES YES NO
35 Atributos Numéricos: Exemplo
36 Atributos Numéricos: Exemplo
37 Atributos Numéricos: Exemplo
38 Atributos Numéricos: Exemplo
39 Atributos Numéricos: Exemplo Sensor_1? > 83,46<= 83,46
40 Atributos Numéricos: Exemplo
41 Atributos Numéricos: Exemplo Sensor_1? > 83,46<= 83,46
42 Atributos Numéricos: Exemplo Sensor_1? > 83,46<= 83,46 Sensor_2? > 12,84 <= 12,84
43 Atributos Numéricos: Exemplo
44 Atributos Numéricos: Exemplo (Ruído)
45 Atributos Numéricos: Exemplo (Ruído) Sensor_1? > 83,46<= 83,46 Sensor_2? > 12,74 <= 12,74
46 Atributos Numéricos: Exemplo (Ruído) Sensor_1? > 83,46<= 83,46 Sensor_2? > 12,74 <= 12,74 Sensor_2? >13,30 <=13,30 Overfitting!
47 Atributos com vários valores (1/2) zProblema: ySe o atributo tem vários valores, Gain o selecionará ySuponha o uso de Date = 3/06/00 como atributo zUm abordagem: use GainRatio
48 Atributos com vários valores (2/2) Onde S i é um subconjunto de S para o qual A tem valor v i
49 Atributos com custo zConsidere yDiagnóstico médico, BloodTest tem custo R$500 yRobótica, Width_from_1ft tem custo 23 sec. zComo aprender uma árvore consistente com um valor de custo esperado baixo? zUma abordagem: substitua Gain por:
50 Atributos com custo (2/2) Tan e Schlimmer (1990) Nunez (1988) Onde w [0,1] determinar a importância do custo
51 Valores de atributo desconhecidos (1/2) zE se valores do atributo A estão faltando para alguns exemplos? zMesmo assim use os exemplos de treinamento, e organize a árvore como segue: ySe um nó n testa A, atribua um valor para A que seja o mais comum entre os outros exemplos classificados nó n yAtribua para A um valor que seja o mais comum entre os outros exemplos com o mesmo valor objetivo (target value )
52 Valores de atributo desconhecidos (2/2) yAtribua uma probabilidade p i para cada valor possível v i de A xatribua uma fração p i de exemplos para cada descendente da árvore yClassifique exemplos novos da mesma maneira
53 ADs - conclusão zVantagens: yEstrutura de fácil manipulação yProduzem modelos que podem ser facilmente interpretados por humanos zDesvantagens: yPouca robustez a dados de grande dimensão yAcurácia afetada por atributos pouco relevantes yDificuldade em lidar com dados contínuos