Classificação Arvores de Decisão AULA 7 Data Mining Sandra de Amo Classificadores Lazy Aprendem a partir de seus vizinhos AULA 9 DATA MINING Sandra de Amo Mestrado em Ciencia da Computacao 2 Classificação Nome Idade Renda Profissão Classe Daniel ≤ 30 Média Estudante Sim João 31..50 Média-Alta Professor Sim Carlos 31..50 Média-Alta Engenheiro Maria 31..50 Baixa Vendedora Não Paulo ≤ 30 Baixa Porteiro Não Otavio > 60 Média-Alta Aposentado Sim Não SE Idade ≤ 30 E Renda é Média ENTÃO Compra-Produto-Eletrônico = SIM. . Mestrado em Ciencia da Computacao 3 Etapas do Processo Amostras Classificadas REGRAS Banco de Testes Classificador REGRAS CONFIÁVEIS Mestrado em Ciencia da Computacao 4 Métodos de Classificação Classificadores eager (espertos) A partir da amostragem, constroem um modelo de classificação capaz de classificar novas tuplas. Uma vez pronto o modelo, as amostras não são mais utilizadas na classificação de novos objetos (tuplas) Arvores de Decisão Redes Neuronais Redes Bayseanas Máquinas de Suporte Vetorial Classificadores lazy (preguiçosos) Cada nova tupla é comparada com todas as amostras e é classificada segundo a classe da amostra à qual é mais similar. Método kNN (k-nearest-neighbor) Case-Based Reasoning (CBR) Outros Métodos Algoritmos Genéticos Conjuntos Difusos Mestrado em Ciencia da Computacao 5 Critérios de Comparação dos Métodos Acurácia – capacidade de classificar corretamente novas tuplas Rapidez – tempo gasto na classificacao Robustez – habilidade de classificar corretamente em presença de ruidos e valores desconhecidos Escalabilidade – eficiência do classificador em grandes volumes de dados Interpretabilidade – facilidade de um usuário entender as regras produzidas pelo classificador Mestrado em Ciencia da Computacao 6 Acurácia – Taxa de erros Acc(M) = porcentagem das tuplas dos dados de teste que são corretamente classificadas. Err(M) = 1 – Acc(M) Matriz de Confusão Classes Preditas C1 Classes Reais C2 C1 Positivos Falsos verdadeiros Negativos C2 Falsos Positivos Negativos verdadeiros Mestrado em Ciencia da Computacao 7 Outras medidas mais precisas Exemplo : acc(M) = 90% C1 = tem-câncer (4 pacientes) C2 = não-tem-câncer (500 pacientes) Classificou corretamente 454 pacientes que não tem câncer Não acertou nenhum dos que tem câncer Pode ser classificado como “bom classificador” mesmo com acurácia alta ? % pacientes classificados corretamente Sensitividade = true-pos com câncer dentre todos os que pos realmente tem câncer Especificidade = true-neg neg % pacientes classificados corretamente Precisão = true-pos true-pos + falso-pos com câncer dentre todos os que foram classificados com câncer Mestrado em Ciencia da Computacao 8 Processo de Classificação Amostras Deriva Modelo (Regras) Calcula Acuracia Dados Dados de teste Mestrado em Ciencia da Computacao 9 Preparação dos Dados Limpeza dos dados : remove ruidos e resolve problemas de dados incompletos Análise de Relevância : elimina atributos irrevelantes para a classificação Transformação dos dados Categorização Generalização Ex: Rua pode ser substituido por Cidade Normalização : todos os valores dos atributos em [0,1] Mestrado em Ciencia da Computacao 10 Classificadores Lazy Aprendem a partir de seus vizinhos Não constrói um modelo de classificação. Para cada nova tupla que se quer classificar, o banco de dados de treinamento é analisado. Mestrado em Ciencia da Computacao 11 História Método introduzido nos anos 50. Muito dispendioso computacionalmente. Só ganhou popularidade a partir dos anos 60, como o aumento da capacidadecomputacional dos computadores. Muito usado na área de Reconhecimento de Padrões. Mestrado em Ciencia da Computacao 12 Descrição do Método KNN Dados: Banco de Dados de m tuplas classificadas (a1,...,an,C) Uma tupla X = (x1,...,xn) não classificada Os valores dos atributos são normalizados. Valor normalizado = (v.real - MinA)/(MaxA – MinA) Calcula-se a distância de X a cada uma das tuplas do banco de dados. Pega-se as k tuplas do banco de dados mais próximas de X. A classe de X é a classe que aparece com mais frequência entre as k tuplas mais próximas de X. Mestrado em Ciencia da Computacao 13 Diferentes valores de K K=1 K=2 Mestrado em Ciencia da Computacao K=3 14 Algumas questões Como calcular a distância entre duas tuplas ? Para atributos contínuos : distância Euclidiana d(x,y) = √ Σni=1 (xi – yi)2 Para atributos categóricos Se xi = yi então xi – yi = 0 Se xi e yi são distintos: xi – yi = 1 Como lidar com valores incompletos (ausentes) ao calcular a distância entre duas tuplas X e Y ? Se xi e yi são ausentes: xi – yi = 1 Se xi é ausente e yi não: xi – yi = max { |1 – yi|, |0 – yi| } Como determinar o melhor valor de K (=número de vizinhos) ? Obtido repetindo-se os experimentos. Mestrado em Ciencia da Computacao 15 Vantagens e Desvantagens Performance Não constrói um modelo de classificação. Processo de classificação de uma tupla é lento. Classificadores Eager gastam tempo para construir o modelo. O processo de classificação de uma tupla é rápido. Sensível a ruídos KNN faz predição baseando-se em informações locais à tupla sendo classificada. Arvores de decisão, redes neurais e bayesianas encontram modelo global que se leva em conta todo o banco de dados de treinamento. Mestrado em Ciencia da Computacao 16 Exemplo Compra-computador ID IDADE RENDA ESTUDANTE CREDITO CLASSE 1 ≤ 30 Alta Não Bom Não 2 ≤ 30 Alta Sim Bom Não 3 31...40 Alta Não Bom Sim 4 > 40 Média Não Bom Sim 5 > 40 Baixa Sim Bom Sim 6 > 40 Baixa Sim Excelente Não 7 31...40 Baixa Sim Excelente Sim 8 ≤ 30 Média Não Bom Não 9 ≤ 30 Baixa Sim Bom Sim 10 > 40 Média Sim Bom Sim 11 ≤ 30 Média Sim Excelente Sim 12 31...40 Média Não Excelente Sim 13 31...40 Alta Sim Bom Sim 14 > 40 Média Não Excelente Não Mestrado em Ciencia da Computacao X = (≤ 30, Média,Sim,Bom) 17 Exemplo Distância VALOR d(X,1) 1,41 d(X,2) 1 d(X,3) 1,73 d(X,4) 1,41 d(X,5) 1,41 d(X,6) 1,73 d(X,7) 1,73 d(X,8) 1 d(X,9) 1 d(X,10) 1 d(X,11) 1 d(X,12) 1,73 d(X,13) 1,41 d(X,14) Mestrado em Ciencia da Computacao 1,73 18 Exemplo K=5 Os 5 vizinhos mais próximos são X1 = ( ≤ 30 X2 = (≤ 30 X3 = ( ≤ 30 X4 = ( > 40 X5 = (≤ 30 Logo, X é classificada na classe = Sim Alta Média Baixa Média Média Sim Não Sim Sim Sim Bom) Bom) Bom) Bom) Exc. ) Classe = Não Classe = Não Classe = Sim Classe = Sim Clase = Sim Mestrado em Ciencia da Computacao 19 Classificadores Eager Constróem um modelo de classificação. Modelo é utilizado para classificar nova tupla. Mestrado em Ciencia da Computacao 20 Modelo: Árvore de Decisão IDADE ≤ 30 >60 31-50 51-60 PROFISSÃO RENDA Não B Sim Med M Não Sim M-A Prof A Sim Sim Sim Sim Eng Vend Não Sim Se Idade ≤ 30 e Renda é Baixa então Não compra Eletrônico Se Idade = 31-50 e Prof é Médico então compra Eletrônico Mestrado em Ciencia da Computacao 21 Como criar uma Árvore de Decisão – Algoritmo ID3 A CASO 1 B C CLASSE a1 b1 c1 C1 a1 b2 c1 X a2 b1 c1 X a2 b2 c2 X a1 b2 c2 X X Mestrado em Ciencia da Computacao 22 Como criar uma Árvore de Decisão A CASO 2 B C CLASSE a1 b1 c1 X a1 b2 c1 A X a2 b1 c1 Y a2 b2 c2 X Y a1 A B C a1 b2 c2 CLASSE a1 b1 c1 a1 b2 a1 b2 Atributo-Teste = a2 O que mais reduz a entropia A B C CLASSE X a2 b1 c1 Y c1 X a2 b2 c2 X c2 Y LISTA-ATRIBUTOS = { A, B, C } Mestrado em Ciencia da Computacao 23 Como criar uma Árvore de Decisão A a1 a2 A BC C a1 b1 c1 X a1 b2 c1 X A a1 B b2 Cc2 CLASSE Y c1 X Atributo-Teste = CLASSE a1 b1 c1 X a1 b2 c1 X O que mais reduz a entropia =C c2 A Y B C a1 b2 c2 CLASSE Y LISTA-ATRIBUTOS = { B, C } Mestrado em Ciencia da Computacao 24 Qual é o Atributo-Teste ? Divide-se o nó segundo cada atributo. Para cada divisão calcula-se a entropia produzida caso fosse escolhido este atributo. Considera-se o atributo cuja divisão resulta numa maior redução da entropia. Mestrado em Ciencia da Computacao 25 Informação ganha na divisão Entrop(A) = -NC1 log2 NC1 - NC2 log2 NC2 Tot Tot Tot Tot Entrop(D) = NF1 * Entrop(F1) + NF2 * Entrop(F2) Tot Tot Info(Divisão) = Entrop(A) – Entrop (D) Maior Info(Divisão) Atributo escolhido Mestrado em Ciencia da Computacao 26 Um Exemplo Aparência Temperatura Humidade Vento Classe Sol Quente Alta Não Ruim Sol Quente Alta Sim Ruim Encoberto Quente Alta Não Bom Chuvoso Agradavel Alta Não Bom Chuvoso Frio Normal Não Bom Chuvoso Frio Normal Sim Ruim Encoberto Frio Normal Sim Bom Sol Agradavel Alta Não Ruim Sol Frio Normal Não Bom Chuvoso Agradavel Normal Não Bom Sol Agradavel Normal Sim Bom Encoberto Agradavel Alta Sim Bom Encoberto Quente Normal Não Bom Chuvoso Agradavel Alta Sim Ruim Mestrado em Ciencia da Computacao 27 1a divisão possível : Aparência APARÊNCIA Sol Bom Bom Bom Ruim Ruim Enc Bom Bom Bom Bom Chuva Bom Bom Bom Ruim Ruim Entrop(D) = 5/14 * Entrop(F1) + 4/14*Entrop(F2) + 5/14*Entrop(F3) = 0.693 Entrop(F1) = -3/5*log2(3/5) - 2/5*log2 (2/5) = 0.971 Entrop(F2) = - 4/4*log2 (4/4) = 0 Entrop(F3) = - 3/5*log2(3/5) - 2/5*log2(2/5) = 0.971 Mestrado em Ciencia da Computacao 28 Redução da Entropia Entrop(A) = - (9/14 * log2 (9/14) + 5/14* log2(5/14)) = = 0.940 INFO(APARÊNCIA) = Entrop(A) – Entrop(D) = = 0.940 - 0.693 = 0.247 Mestrado em Ciencia da Computacao 29 Comparando as 4 possibilidades Info(Aparência) = 0.247 Info(Temperatura) = 0.029 Info(Humidade) = 0.152 Info(Vento) = 0.020 Mestrado em Ciencia da Computacao 30 Algoritmo ID3 Input: Banco de dados de amostras A (com os valores dos atributos categorizados), lista de atributos Cand-List Output : Uma árvore de decisão Begin Gera-árvore(A, Cand-List) End Mestrado em Ciencia da Computacao 31 Algoritmo ID3 Gera-árvore(A, Cand-List) Cria um nó N; Associa a este nó o banco de dados A Se todas as tuplas de A são da mesma classe C: transforma N numa folha com label C e PÁRA Caso contrário: Se Cand-List = vazio então transforma N numa folha com label igual a classe mais frequente de A Caso contrário: X:= Ganho(Cand-List) % esta função retorna o atributo X com maior ganho de informação (que causa maior redução de entropia) Etiqueta N com o atributo X Para cada valor a do atributo X 5. 6. 1. 2. 3. Cria nó-filho F ligado a X por um ramo com label a e associa a este nó o conjunto A’ de amostras que tem X = a Se A’ é vazio: transforma o nó F numa folha com label C onde C é a classe mais frequente de A Caso contrário: chama a rotina Gera(A’, Cand-List-{X}) e associa ao nó F a árvore resultante deste cálculo. Mestrado em Ciencia da Computacao 32 Implementações Christian Borgelt's Webpages http://www.borgelt.net//software.html Software Weka Machine Learning Software in Java http://www.cs.waikato.ac.nz/ml/weka/ Dados reais para testes UCI Machine Learning Repository http://archive.ics.uci.edu/ml/datasets.html Mestrado em Ciencia da Computacao 33 Exercicio : amostras A B C D CLASSE a1 b1 c1 d1 SIM a1 b1 c2 d1 NAO a2 b2 c1 d1 SIM a2 b2 c2 d2 NAO a1 b2 c2 d1 NAO a2 b1 c2 d2 SIM a3 b2 c2 d2 SIM a1 b3 c1 d1 SIM a3 b1 c1 d1 NAO Mestrado em Ciencia da Computacao 34 Exercicio - Testes A B C D CLASSE a2 b2 c2 d1 SIM a1 b1 c2 d2 NÃO a2 b2 c1 d3 SIM a2 b2 c2 d1 SIM a1 b2 c2 d2 NÃO a2 b1 c2 d1 SIM a3 b3 c2 d2 SIM a1 b3 c1 d1 NÃO a3 b3 c1 d1 NÃO Mestrado em Ciencia da Computacao 35 Acurácia, Sensividade, Precisão A B C D a2 b2 c2 d1 a1 b1 c2 d2 a2 b2 c1 d3 a2 b2 c2 d1 a1 b2 c2 d2 a2 b1 c2 d1 a3 b3 c2 d2 a1 b3 c1 d1 a3 b3 c1 d1 Mestrado em Ciencia da Computacao CLASSE 36