Índice Classificação Supervisionada e Árvores de Decisão Eduardo Laber 1. Problema de Classificação 2. Árvore de Decisão 1. Preliminares 2. Construindo uma árvore de decisão 3. Definindo atributos de teste 4. Selecionando o melhor atribute teste 3. Avaliando o Desempenho de Classificadores Problema de Classificação Problema de Classificação Atribuir objetos de um conjunto a classes pré-definidas Classificar emails como spam ou não spam Classificar clientes quanto ao risco de crédito Atributos do Objeto Modelo de Clasificação Classe 1
Problema de Classificação Entrada Conjunto de registros ou instâncias do tipo (x,y), onde x é um conjunto de atributos que define a instância e y é um atributo especial que define a classe da instância Os atributos de x podem ser contínuos ou discretos O atributo y deve ser discreto. Esta requisição é que distingui classificação de regressão Problema de Classificação Id Devolução? Est. Civil Salário Anual 1 S Solteiro 125K N 2 N Casado 100K N 3 N Solteiro 70K N 4 S Casado 120K N 5 N Divorciado 95K S 6 N Casado 60K N 7 S Divorciado 220K N 8 N Solteiro 85K S 9 N Casado 75K N 10 N Solteiro 90K S Sonega Problema de Classificação Classificação é a tarefa de aprender uma função alvo f que mapeia cada conjunto de atributos x em uma das classes prédefinidas Função alvo f também conhecida como modelo de classificação Objetivos Descrição O modelo de classificação serve como ferramenta para explicar as principais diferenças entre objetos de classes diferentes Predição Dado um registro cuja classe é desconhecida, o modelo de classificação permite prever sua classe 2
10 10 14/06/2017 Técnicas de Classificação Abordagem sistemática para construir modelos de classificação a partir dos dados de entrada Exemplos Árvores de decisão Redes neurais/ deep learning Support Vector Machines (SVM) Naïve Bayes K Vizinhos mais próximos Técnicas de Classificação Empregam um algoritmo de aprendizado para identificar o modelo que melhor captura a relação entre cada conjunto de atributos e a classe correspondente O modelo gerado pelo algoritmo de aprendizado deve se adequar bem aos dados de entrada e ter uma boa capacidade de generalização Técnicas de Classificação Técnicas de Classificação Tid Atrib1 Atrib2 Atrib3 Class 1 Grande 125K 2 Mediio 100K 3 o Pequeno 70K 4 Médio 120K 5 Grande 95K 6 Médio 60K 7 Grande 220K No 8 Pequeno 85K 9 Ñão Médio 75K Indução Algoritmo de Aprendizado Aprenda Modelo Avaliação de um modelo de Classificação Matriz de Confusão. Entrada (i,j) indica quantos elementos da classe i o modelo prevê estar na classe j 10 Médio 90K Conjunto de Treino Tid Atrib1 Atrib2 Atrib3 Class 11 Pequeno 55K? Aplique Modelo Modelo Matriz de confusão de um classifcador binário Classe Prevista Classe = 1 Classe = 0 12 Médio 80K? 13 Grande 110K? 14 Pequeno 95K? 15 Grande 67K? Conjunto de Teste Dedução Classe Real Classe = 1 f 11 f 10 Classe = 0 f 01 f 00 3
Técnicas de Classificação Avaliação de um modelo de Classificação Acurácia Número de predições corretas Número total de predições Matriz de confusão de um classifcador binário Classe Real Classe Prevista Classe = 1 Classe = 0 Classe = 1 f 11 f 10 Classe = 0 f 01 f 00 Taxa de erro Número de predições erradas Número total de predições Acurácia f 00 f11 f f f 01 00 10 f 11 Acurácia deve ser maximizada/ taxa de erro minimizada Taxa de erro f 00 f f 10 01 f f 01 10 f 11 Exemplo de Árvore de Decisão Exemplo de Árvore de Decisão Atributos de Separação Id Devolução? Est. Civil Conjunto de Treino Salário Anual 1 S Solteiro 125K N 2 N Casado 100K N 3 N Solteiro 70K N 4 S Casado 120K N 5 N Divorciado 95K S 6 N Casado 60K N 7 S Divorciado 220K N 8 N Solteiro 85K S 9 N Casado 75K N 10 N Solteiro 90K S Sonega Devol. Est. Civil Solteiro, Divorciado Casado Salário < 80K > 80K Modelo: Árvore de Decisão Id Devolução? Est. Civil Conjunto de Treino Salário Anual 1 S Solteiro 125K N 2 N Casado 100K N 3 N Solteiro 70K N 4 S Casado 120K N 5 N Divorciado 95K S 6 N Casado 60K N 7 S Divorciado 220K N 8 N Solteiro 85K S 9 N Casado 75K N 10 N Solteiro 90K S Sonega Est. Civil Casado Solteiro Divorciado Devol? Salário < 80K > 80K Pode haver mais de uma árvore que se adeque aos mesmos dados 4
10 10 14/06/2017 Árvores de Decisão Estrutura da Árvore Raíz Ponto de partida Nós Internos Correspondem aos atributos testados Folhas Determinam a classe Arcos Valores dos atributos Exercício Prático Abrir arquivo Iris.csv Aplicar J.48 com parâmetros default e percentage split =66% Desenhar árvore gerada Qual foi o percentual de acerto? Quantos exemplos da classe IrisVertigosa foram classificados de forma incorreta? Aplicando o Modelo Aplicando o Modelo Tid Atrib1 Atrib2 Atrib3 Class 1 Grande 125K Algoritmo de Aprendizado Comece da raíz da árvore. ID A1 A2 A3 Classe AG35816-30.1 5.58 3.18? 2 Medio 100K 3 o Pequeno 70K 4 Médio 120K 5 Grande 95K 6 Médio 60K 7 Grande 220K No 8 Pequeno 85K 9 Ñão Médio 75K 10 Médio 90K Conjunto de Treino Tid Atrib1 Atrib2 Atrib3 Class Indução Aprenda Modelo Aplique Modelo Modelo A2>-30 A1>2.2 11 Pequeno 55K? 12 Médio 80K? 13 Grande 110K? Dedução 14 Pequeno 95K? 15 Grande 67K? Conjunto de Teste 5
Aplicando o Modelo Aplicando o Modelo Comece da raíz da árvore. ID A1 A2 A3 Classe AG35816-30.1 5.58 3.18? Comece da raíz da árvore. ID A1 A2 A3 Classe AG35816-30.1 5.58 3.18? A2>-30 A1>2.2 A2>-30 A1>2.2 Aplicando o Modelo Aplicando o Modelo Comece da raíz da árvore. ID A1 A2 A3 Classe AG35816-30.1 5.58 3.18? Comece da raíz da árvore. ID A1 A2 A3 Classe AG35816-30.1 5.58 3.18? A2>-30 A1>2.2 A2>-30 A1>2.2 6
10 10 14/06/2017 Aplicando o Modelo Construindo a Árvore Comece da raíz da árvore. ID A1 A2 A3 Classe AG35816-30.1 5.58 3.18 Tid Atrib1 Atrib2 Atrib3 Class 1 Grande 125K 2 Medio 100K Algoritmo de Aprendizado A2>-30 A1>2.2 3 o Pequeno 70K 4 Médio 120K 5 Grande 95K 6 Médio 60K 7 Grande 220K 8 Pequeno 85K 9 Ñão Médio 75K 10 Médio 90K Conjunto de Treino Tid Atrib1 Atrib2 Atrib3 Class 11 Pequeno 55K? Indução Aprenda Modelo Aplique Modelo Modelo 12 Médio 80K? 13 Grande 110K? 14 Pequeno 95K? Dedução 15 Grande 67K? Conjunto de Teste Construindo a Árvore Vários Algoritmos A maioria deles são variações do algoritmo de Hunt ID3, C4.5 CART Estrutura do algoritmo de Hunt D t conjunto de registros que alcançam o nó t Procedimento: Se todos registros de D t são da mesma classe y t, t é uma folha com rótulo y t Se D t =, então t é uma folha com rótulo igual a classe dominante do pai de t Se D t contem registros de classes diferentes, utilize um atributo para dividir D t em diferentes subconjuntos. Crie um nó para cada um destes e aplique recursivamente o procedimento para cada um dos nós A1 A2 A3 Classe -29.61 2.00 1.85-29.54 1.39 1.876-24.91 3.76 1.44-24.47 3.56 1.53-24.5 3.5 1.62-32.55 15.47 0.81-32.75 15.04 0.72-32.02 18.49 0.77-28.1 2.44 1.047-27.1 2.16 0.61? D t 7
Algoritmo de Hunt Algoritmo de Hunt, A1 A2 A3 Classe -29.61 2.00 1.85-29.54 1.39 1.876, A1 A2 A3 Classe -29.61 2.00 1.85-29.54 1.39 1.876,, -24.91 3.76 1.44-24.47 3.56 1.53-24.91 3.76 1.44-24.47 3.56 1.53-24.5 3.5 1.62-24.5 3.5 1.62-32.55 15.47 0.81-32.75 15.04 0.72-32.02 18.49 0.77-32.55 15.47 0.81-32.75 15.04 0.72-32.02 18.49 0.77 A1>-30, -28.1 2.44 1.047-27.1 2.16 0.61-28.1 2.44 1.047-27.1 2.16 0.61 A1>-30 A2>2.2 Algoritmo de Hunt Algoritmo de Hunt, A1 A2 A3 Classe -29.61 2.00 1.85-29.54 1.39 1.876, A1 A2 A3 Classe -29.61 2.00 1.85-29.54 1.39 1.876,, -24.91 3.76 1.44-24.47 3.56 1.53,, -24.91 3.76 1.44-24.47 3.56 1.53-24.5 3.5 1.62-24.5 3.5 1.62-32.55 15.47 0.81-32.75 15.04 0.72-32.02 18.49 0.77-32.55 15.47 0.81-32.75 15.04 0.72-32.02 18.49 0.77-28.1 2.44 1.047-27.1 2.16 0.61 A1>-30, -28.1 2.44 1.047-27.1 2.16 0.61 8
Algoritmo de Hunt Estrutura do algoritmo de Hunt,,, A1 A2 A3 Classe -29.61 2.00 1.85-29.54 1.39 1.876-24.91 3.76 1.44-24.47 3.56 1.53-24.5 3.5 1.62-32.55 15.47 0.81-32.75 15.04 0.72-32.02 18.49 0.77 Observação É possível que não exista um atributo que permita subdividir D t.. Neste caso t é uma folha cujo rótulo é o da classe dominante em D t Id Devolução? Est. Civil Salário Anual 1 N Solteiro 100K S 2 N Solteiro 100K N 3 N Solteiro 100K N 4 N Solteiro 100K N D t Sonega A1>-30, -28.1 2.44 1.047-27.1 2.16 0.61? A1>-30 A2>2.2 Estrutura do algoritmo de Hunt Indução Observação É possível que não exista um atributo que permita subdividir D t.. Neste caso t é uma folha cujo rótulo é o da classe dominante em D t Id Devolução? Est. Civil Salário Anual 1 N Solteiro 100K S 2 N Solteiro 100K N 3 N Solteiro 100K N 4 N Solteiro 100K N D t sonega Sonega Abordagem Gulosa Divida os registros utilizando um atributo que otimize um dado critério Questões Determinar como dividir os registros Como especificar a condição de teste para o atributo Como encontrar a melhor divisão Quando parar a divisão? 9
Como especificar a condição de teste? Depende do tipo do atributo Nominal Ordinal Contínuo Depende do número de valores que o atributo pode assumir Atributos binários Atributos k-ários Divisão baseada em atributos nominais Multi-divisão: um conjunto para cada valor distinto Divisão binária: Divisão dos valores em dois conjuntos {Mestrado, Doutorado} Escolaridade Escolaridade Graduação {Graduaçao} Mestrado OU Doutorado Doutorado Escolaridade {Mestrado, Graduação} Divisão baseada em atributos contínuos Possibilidades Discretização Estática uma única discretização no início Dinâmica faixas são calculadas ao longo do algoritmo utilizando alguma técnica de agrupamento Decisão Binária: (A < v) or (A v) considerar todas as possibilidades e encontrar a melhor divisão Pode ser cara computacionalmente Divisão baseada em atributos contínuos sim Idade >20? não (i) Divisão binária <10 Idade (ii) Multi Divisão > 40 [10,20) [20,30) [30,40) 10
Indução Abordagem Gulosa Divida os registros utilizando um atributo de teste que otimize um dado critério Questões Determinar como dividir os registros Como especificar a condição de teste para o atributo Como encontrar a melhor divisão Quando parar a divisão? Como determinar a melhor divisão Carro Próprio? Antes da Divisão: 10 registros da classe 0 10 registros da classe 1 Familia C 0 : 6 C 1 : 4 C 0 : 4 C 1 : 6 C 0 : 1 C 1 : 3 Tipo carro? Esporte C 0 : 8 C 1 : 0 C 0 : 1 C 1 : 7 Qual é a melhor condição? Luxo c 1 C 0 : 1 C 1 : 0... c 10 Estudante ID? C 0 : 1 C 1 : 0 c 11 C 0 : 0 C 1 : 1 c 20... C 0 : 0 C 1 : 1 Como determinar a melhor divisão Abordagem Gulosa: Nós com distribuição não homogênea em relação as classes são preferidos Necessidade de uma medida de impureza para os nós Medidas de Impureza dos nós Várias posssibilidades Índice Gini Entropia Erro de classificação C0: 5 C1: 5 homogenea, Alto grau de impureza C0: 9 C1: 1 homogênea Baixo grau de impureza 11
Como encontrar a melhor divisão Antes da divisão: Medida 0 (M0) A? B? Nó N1 Nó N2 Nó N3 Nó N4 C0 N10 C0 N20 C0 N30 C0 N40 C1 N11 C1 N21 C1 N31 C1 N41 M1 M2 M3 M4 M12 M34 Ganho = M0 M12 vs M0 M34 Medidas de Impureza: GINI Índice Gini para o nó t : GINI ( t) 1 p( j t) é a frequência relativa da classe j no nó t. j [ p( j t)] Máximo igual a 1-1/n c quando todos os registros são igualmente distribuidos entre as classes, o que implica em pouca discriminação Mínimo igual a 0 quando todos os registros pertencem a uma única classe, implicando em uma melhor discriminação 2 Computando o índice GINI C1 0 C2 6 C1 1 C2 5 GINI ( t) 1 j [ p( j t)] P(C1) = 0/6 = 0 P(C2) = 6/6 = 1 Gini = 1 P(C1) 2 P(C2) 2 = 1 0 1 = 0 P(C1) = 1/6 P(C2) = 5/6 Gini = 1 (1/6) 2 (5/6) 2 = 0.278 2 Divisão baseada no GINI Utilizado nos algoritmo CART e em outros Quando um nó p é dividido em k conjuntos (filhos), a qualidade da divisão é computada como GINI divisão k i1 ni GINI ( i) n C1 2 C2 4 P(C1) = 2/6 P(C2) = 4/6 Gini = 1 (2/6) 2 (4/6) 2 = 0.444 onde, n i = número de registros do filho i, n = número de registros do nó p 12
Atributos binário: Computando o GINI Divide em dois conjuntos B? No P a i C1 6 C2 6 Atributos Nominais: Computando o Índice Gini Para cada valor distinto, conte o número de registros de cada classe Nó N1 Nó N2 G i n i = 0. 5 0 0 Multi-divisão Divisão Binária (encontrar melhor partição) Gini(N1) = 1 (4/7) 2 (3/7) 2 = 0.4898 Gini(N2) = 1 (2/5) 2 (3/5) 2 = 0.480 Ganho= Gini B -7/12Gini(N1) -5/12 Gini(N2) Gini B = 7/12 * 0.4898 + 5/12 * 0.480 = 0.486 Tipo de Carro Esporte, Familia Luxo C1 3 1 C2 2 4 Gini 0.400 Tipo de Carro Familia, Esporte Luxo C1 2 2 C2 1 5 Gini 0.419 Atributos Contínuos: Computando o Gini Utilizar decisões binárias baseadas em um valor Várias possibilidades Número de possibilidades= número de valores distintos Para cada possibilidade calcule o GINI asociado e escolha o melhor deles Caro computacionalemente Pode ser otimizado Origem alpha beta gamma Classe AG -29.61 2.00 1.85 AG -29.54 1.39 1.876 EP -24.91 3.76 1.44 EP -24.47 3.56 1.53 EP -24.5 3.5 1.62 PT -32.55 15.47 0.81 PT -32.75 15.04 0.72 PT -32.02 18.49 0.77 PM -28.1 2.44 1.047 PM -27.1 2.16 0.61 alpha >-1.047 Valores Divisões Atributos Contínuos: Computando o Gini Sonega Salário Anual 60 70 75 85 90 95 100 120 125 220 55 65 72 80 87 92 97 110 122 172 230 <= > <= > <= > <= > <= > <= > <= > <= > <= > <= > <= > 0 3 0 3 0 3 0 3 1 2 2 1 3 0 3 0 3 0 3 0 3 0 Nao 0 7 1 6 2 5 3 4 3 4 3 4 3 4 4 3 5 2 6 1 7 0 Gini 0.420 0.400 0.375 0.343 0.417 0.400 0.300 0.343 0.375 0.400 0.420 13
Outra Medida baseada em Teoria da Informação Entropia do nó t: Entropia ( t) p( j t)log p( j t) j p( j t) é a frequência relativa da classe j no nó t ). Comportamento Máximo (log (número de classes)) quando todos registros estão igualmente distribuídos entre as classes. Pouca discriminação Mínimo (0). Todos os registros pertencem a uma única classe. Discriminação perfeita. C1 0 C2 6 C1 1 C2 5 C1 2 C2 4 Calculando a Entropia Entropia t) p( j t)log p( j t) ( 2 j P(C1) = 0/6 = 0 P(C2) = 6/6 = 1 Entropia = 0 log 0 1 log 1 = 0 0 = 0 P(C1) = 1/6 P(C2) = 5/6 Entropia = (1/6) log 2 (1/6) (5/6) log 2 (1/6) = 0.65 P(C1) = 2/6 P(C2) = 4/6 Entropia = (2/6) log 2 (2/6) (4/6) log 2 (4/6) = 0.92 Divisão baseada na entropia Ganho de Informação: GAIN split Entropia ( p) ni Entropia( i) n O nó pai, p é dividido em k partições; n i é o número de registros da partição i Encontrar divisão que maximiza o ganho de informação Utilizado nos métodos ID3 e C4.5 Desvantagem: tende a preferir divisões que resultam em um grande número de subconjuntos, cada um deles pequeno e puro (GINI também tem este problema) k i1 Divisão baseada no erro de classificação Erro de classificação no nó t : Comportamento Erro( t) 1 max p( i t) Máximo (1-1/n c ) quando todos registros estão igualmente distribuídos entre as classes. Pouca discriminação. N c e o numero de classes de t. Mínimo (0.0) Todos os registros pertencem a uma única classe. Discriminação perfeita. i 14
Computando o Erro Erro( t) 1 max p( i t) i Comparação entre critérios de divisão Problema com duas classes: C1 0 C2 6 P(C1) = 0/6 = 0 P(C2) = 6/6 = 1 Erro = 1 max (0, 1) = 1 1 = 0 C1 1 C2 5 P(C1) = 1/6 P(C2) = 5/6 Erro = 1 max (1/6, 5/6) = 1 5/6 = 1/6 C1 2 C2 4 P(C1) = 2/6 P(C2) = 4/6 Erro = 1 max (2/6, 4/6) = 1 4/6 = 1/3 Comparação entre critérios de divisão Pesquisas mostram que na prática não faz muita diferença Limitações Medidas mostradas tendem a favorecer atributos com um grande número de divisões Qual atributo abaixo prove maior ganho? Tipo carro? Estudante ID? Familia C 0 : 1 C 1 : 3 Esporte C 0 : 8 C 1 : 0 Luxo c 1 C 0 : 1 C 1 : 7 C 0 : 1 C 1 : 0... c 10 C 0 : 1 C 1 : 0 c 11 C 0 : 0 C 1 : 1 c 20... C 0 : 0 C 1 : 1 15
Limitações Como contornar o problema Somente utilizer atributos binários Utilizar um fator de ajuste, como exemplo Razão de Ganho Razão de Ganho GainRATIO split GAIN Split SplitINFO SplitINFO k i1 ni ni log n n n i : número de registros atribuídos ao filho i Valor cresce com o número de partições (k) e com a homogeneidade da partição Ajusta o ganho de informação utilizando o (SplitINFO). Utilizada no algoritmo C4.5 em conjunto com a entropia Projetada para lidar com o problema detetado na medida de ganho de informação Indução Abordagem Gulosa Divida os registros utilizando um atributo de teste que otimize um dado critério Questões Determinar como dividir os registros Como especificar a condição de teste para o atributo Como encontrar a melhor divisão Quando parar a divisão? Critério de Parada Parar de expandir um nó quando todos registros pertencem a mesma classe Parar de expandir um nó quando todos registros tem valores de atributos iguais Transformar o nó em folha e atribuir a classe dominante Terminação precoce (será discutido mais adiante) 16
Overfitting Underfitting Modelo se adequa demasiadamente a características particulares do conjunto de aprendizado Prejudica a generalização Quando o modelo é muito simples, tanto o erro de treinamento quanto o erro de teste são grandes Considerar poucas características do objeto a ser classificado não permite determinar sua classe Underfitting e Overfittng Underfitting e Overfitting Overfitting 500 pontos circulares e 500 pontos triangulares Pontos circulares: 0.5 sqrt(x 12 +x 22 ) 1 Pontos Triangulares: sqrt(x 12 +x 22 ) < 0.5 ou sqrt(x 12 +x 22 ) > 1 17
Overfitting devido a ruído Conjunto treino Overfitting devido a ruído Conjunto teste Espécie Temperatura do Corpo Gestação Quadrúpede Hiberna Mamífero ouriço sangue quente S S S S gato sangue quente S S N S morcego sangue quente S N S N (incorreto) Baleia sangue quente S N N N (incorreto) Salamandra sangue frio N S S N Dragão de Komodo sangue frio N S N N Jibóia sangue frio N N S N Salmão sangue frio N N N N Aguia sangue quente N N N N Guppy sangue frio S N N N Espécie Temperatura do Corpo Gestação Quadrúpede Hiberna Mamífero homem sangue quente S N N S passaro sangue quente N N N N Elefante sangue quente S S N S Tartaruga sangue frio N S N N Tubarão TIgre sangue frio S N N N Pinguim sangue frio N N N N enguia sangue frio N N N N golfinho sangue quente S N N S tamandua sangue quente N S S S gila monster sangue frio N S S N Overfitting devido a ruídos Temperatura Overfitting devido a ruídos Temperatura Quente Frio Quente Frio S S 4 pernas? N Da luz? N S Da luz? N Erro no conjunto de treino é 0 Erro no conjunto de teste é 30% (homem, golfinho, tamandua) Erro no conjunto de treino é 20% (morcego, baleia) Erro no conjunto de teste = 10 % (tamandua) 18
Overfitting devido a ruídos Overfitting- falta de exemplos suficientes Nome Temperatura do corpo Da luz 4 pernas Hiberna Mamifero Salamandra sangue frio N S S N guppy sangue frio S N N N aguia sangue quente N N N N poorwill sangue quente N N S N ornitorrinco sangue quente N S S S A fronteira é distorcida devido ao ruído Temperatura Quente Frio Hiberna? S N 4 pernas? S N Qual o erro de classificação desta árvore no conjunto treino? Overfitting- falta de exemplos suficientes Overfitting- falta de exemplos suficientes Nome Temperatura do corpo Da luz 4 pernas Hiberna Mamifero Salamandra sangue frio N S S N guppy sangue frio S N N N aguia sangue quente N N N N poorwill sangue quente N N S N ornitorrinco sangue quente N S S S Nome Temperatura do corpo Da luz 4 pernas Hiberna Mamifero Salamandra sangue frio N S S N guppy sangue frio S N N N aguia sangue quente N N N N poorwill sangue quente N N S N ornitorrinco sangue quente N S S S Temperatura Quente Frio Temperatura Quente Frio Hiberna? S N 4 pernas? S N Como humanos, elefantes e golfinhos seriam classificados? Hiberna? S N 4 pernas? S N Baseando-se em 5 exemplos foi concluído que os únicos s são os animais de sangue quente que hibernam e com 4 pernas 19
Overfitting- falta de exemplos suficientes Aprender em cima de um número pequeno de registros pode levar a generalizações bastante equivocadas! Overfitting: Multiple Comparison procedures Queremos descobrir em qual analista financeiro vamos confiar para investir em ações Temos 50 analistas com seus históricos de previsões nos últimos 10 anos para cada ano i temos a informação se o analista j disse se a bolsa ia subir ou descer e também se ele acertou a previsão ou não Overfitting: Multiple Comparison procedures O analista que acertou mais acertou 90% das vezes Devemos aplicar nosso dinheiro com esse analista? Overfitting: Multiple Comparison procedures Se 50 analistas dão palpites aleatórios ao longo de 10 anos se a bolsa vai subir ou descer então: A probabilidade que um dado analista acerte pelo menos 90% das vezes é de 0.0107 Entretanto, a probabilidade de que pelo menos um deles acerte pelo menos 90% das vezes é 1-(1-0.0107) 50 = 0.41 20
Overfitting: Multiple Comparison procedures O fato de um analista acertar 90% das vezes não tem nada de surpreendente Overfitting: Multiple Comparison procedures Durante o processò de construção de uma árvore de decisão é possível encontrar um atributo que gera uma partição bastante desbalanceada (boa) mas não necessariamente o atributo generaliza bem Devemos descontar o fato de exisitir muitos atributos/ poucos exemplos Overfitting Overfitting resulta em árvores de decisão mais complexas do que o necessário O erro de treinamento não provê uma boa estimativa do desempenho do modelo no conjunto de teste Estimando Erros de Generalização Métodos para estimar erros de generalização Abordagem Otimista: e (t) = e(t) Assume que o erro no conjunto de treino é uma boa estimativa para o erro no conjunto de teste Na prática isto raramente se confirma São necessários novos métodos para estimação de erros. 21
Occam s Razor Princípio da Parsimonia Dados dois modelos com capacidades de generalização similares, o modelo menos complexo deve ser preferido Árvores com menos nós Para modelos complexos, existe uma chance maior que este se adeque por acaso Portanto, a complexidade do modelo deve ser levada em conta ao avaliá-lo Make everything as simple as possible, but not simpler Albert Einstein Estimando Erros de Generalização Abordagem Pessimisa: Penaliza o número de folhas, ou seja, a complexidade do modelo Para cada folha u: e (u) = (e(u)+ penalidade ) Total de erros: e (T) = e(t) + N penalidade N: número de folhas Árvore com 30 folhas, 10 erros no conjunto de treino (de 1000 instâncias) e penalidade = 0.5 Erro no treinamento = 10/1000 = 1% Erro de Generalização = (10 + 300.5)/1000 =2.5% Estimando Erros de Generalização Reduced error pruning (REP): Utilizar parte do conjunto de treino para validação. Tipicamente, 2/3 para construir o modelo e 1/3 para validar O conjunto de tamanho 1/3 é utilizado para ajustar o modelo (e.g. condição de poda da árvore). Busca-se minimizar o erro no conjunto de tamanho 1/3 Vantagem: Permite estimar melhor como o modelo se comporta com registros novos Desvantagem: menos dados são utilizados para treinar o modelo 22
Como lidar com Overfitting Pre-Poda (Regras de Parada) Parar o algoritmo antes que a árvore completa seja construída Condições de Parada típicas para um nó Pare se todas as instâncias pertencem a mesma classe Pare se todos os valores de atributos são iguais Condições mais restritivas: Pare se o número de registros esta abaixo de um limiar especificado pelo usuário Pare se a distribuição das classes dos registros é independente dos atributos disponíveis (e.g., utilizando o teste 2 ) Pare se expandir o nó corrente não melhora a medida de impureza (e.g., Gini ou ganho de informação). Como lidar com Overfitting Pos-poda Construa a árvore completa Remova os nós de baixo para cima Se o erro de generalização melhora após um corte, substitua a subárvore por um nó A classe de um nó é determinada pela classe dominante Utilizar o princípio MDL Exemplo de Pos-Poda Classe = 20 Erro de treino (antes da divisão) = 10/30 Erro pessimista = (10 + 0.5)/30 = 10.5/30 Classe = 10 Erro de treino (Após divisão) = 9/30 Erro = 10/30 Erro pessimista (Após divisão)= (9 + 4 0.5)/30 = 11/30 PODE! A? A1 A4 A2 A3 Classificação baseada em árvores de decisão Vantagens Baixo custo computacional Permite classificar rapidamente registros com classes desconhecidas Árvores pequenas são fáceis de interpretar Capacidade de predição comparável a outras técnicas Classe =S 8 Classe =N 4 Classe =S 3 Classe =N 4 Classe =S 4 Classe =N 1 Classe =S 5 Classe =N 1 23
Outros Aspectos Valores Ausentes Fragmentação Estratégia de Busca Expressividade Lidando com valores ausentes Valores ausentes afetam a construção da árvore de decisão de três formas diferentes Como as medidas de impureza são computadas Como distribuir as instâncias com valores ausentes entre os nós filhos Como classificar uma instância de teste cujo valor de um atributo esta ausente. Computando a Medida de Impureza Computando a Medida de Impureza Id Devolução? Est. Civil Valor ausente Salário Anual 1 S Solteiro 125K N 2 N Casado 100K N 3 N Solteiro 70K N 4 S Casado 120K N 5 N Divorciado 95K S 6 N Casado 60K N 7 S Divorciado 220K N 8 N Solteiro 85K S 9 N Casado 75K N 10? Solteiro 90K S Sonega Antes da divisão Entropia(nó pai) = -0.3 log(0.3)-(0.7)log(0.7) = 0.8813 Atrubuto Classe=S Classe=N Devolução= S 0 3 Devolução =N 2 4 Devolução =? 1 0 Id Devolução? Est. Civil Valor ausente Salário Anual 1 S Solteiro 125K N 2 N Casado 100K N 3 N Solteiro 70K N 4 S Casado 120K N 5 N Divorciado 95K S 6 N Casado 60K N 7 S Divorciado 220K N 8 N Solteiro 85K S 9 N Casado 75K N 10? Solteiro 90K S Sonega Divisão: exemplo distribuido entre valores possíveis S C l a s s e = S 0 + 3 / 9 C l a s s e = N 3 Devolução Divisão no atributo devolução: Entropia(devolução=) = -0.1 log(0.1) -0.9 log(0.9) Entropia(devolução=) =- (0.4)log(0.4)-(0.6)log(0.6) Ganho = 0.883 (1/3*E1+2/3*E2) N C l a s s e = S 2 + 6 / 9 C l a s s e = N 4 24
Classificar Instâncias Classificar Instâncias Novo registro Id Devolução? Est. Civil Salário Anual 11? 85K? Sonega Casado Solteiro Divorciado Total Classe=N 3 1 0 4 Classe=S 6/9 1 1 2.67 Novo registro Id Devolução? Est. Civil Salário Anual 11? 85K? Sonega Casado Solteiro Divorciado Total Classe=N 3 1 0 4 Classe=S 6/9 1 1 2.67 Devolução Total 3.67 2 1 6.67 Devolução Total 3.67 2 1 6.67 N Solteiro, Divorciado N Salário Est. Civil < 80K > 80K S Casado N N Solteiro, Divorciado N Salário Est. Civil < 80K > 80K S Casado N Pr[estado civil= casado]= 3.67/6.67 Pr[Est. civil={solteiro,divorciado}]= 3/6.67 Podemos usar uma classificação probabilistica considerando os varios caminhos possíveis Fragmentação Número de registros se torna menor quando decemos na árvore O número de registros pode se tornar muito pequeno para que qualquer decisão significativa do ponto de vista estatístico possa ser feita Estratégia de Busca Encontrar a melhor árvore é difícel computacionalmente (NP-hard) Os algoritmos apresentados utilizam uma estratégia gulosa para obter uma solução razoável 25
Expressividade 1 Fronteira de Decisão Árvores de Decisão permitem representações expresivas para aprender funções com valor discreto y 0.9 0.8 0.7 0.6 0.5 x < 0.43? Yes No y < 0.47? y < 0.33? são suficientemente expressivas para modelar variáveis contínuas Em particular quando a condição de teste envolve um único atributo por vez. 0.4 0.3 0.2 0.1 0 x 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Yes : 4 : 0 No Yes No : 0 : 4 : 0 : 3 : 4 : 0 Fronteira de decisão: linha que separa regiões vizinhas de diferentes classes A fronteira de decisão é paralela aos eixos quando o teste envolve um único atributo Árvores de Decisão Obliquas A condição de teste pode involver vários atributos Mais expressivo x + y < 1 Classe = + Classe = Encontrar uma boa condição de teste pode ser bastante caro computacionalemente Algumas Árvores C4.5 Partições k-árias Utiliza ganho de informação / Gain Ratio Cart Gini Index Paritções binárias GUIDE, CHAID, 26