Mineração de dados Classificação: avaliação de modelos Prof. Luis Otavio Alvares (INE/UFSC) Parte desta apresentação é baseada em material do prof. Paulo Engel (II/UFRGS) Relembrando Classificação Tid Attrib1 Attrib2 Attrib3 Class 1 Yes Large 125K No 2 No Medium 100K No 3 No Small 70K No 4 Yes Medium 120K No 5 No Large 95K Yes 6 No Medium 60K No 7 Yes Large 220K No 8 No Small 85K Yes 9 No Medium 75K No 10 No Small 90K Yes Learning algorithm Induction Learn Model Model 10 Training Set Tid Attrib1 Attrib2 11 No Small 55K ? 12 Yes Medium 80K ? 13 Yes Large 110K ? 14 No Small 95K ? 15 No Large 67K ? 10 Test Set Attrib3 Apply Model Class Deduction Exemplo de dados para concessão de empréstimo bancário caso 1 2 3 4 5 6 7 8 9 10 11 12 13 14 montante médio médio baixo alto alto alto baixo médio médio alto médio baixo baixo alto idade sênior sênior sênior média jovem jovem jovem média jovem média média jovem sênior média salário baixo baixo baixo baixo alto alto alto baixo alto alto alto baixo alto baixo conta sim não sim sim sim não não sim sim sim não não sim não empréstimo não não sim sim sim não sim não sim sim sim sim sim não Resultado: modelo de classificação montante médio baixo E=sim salário baixo E=não alto alto E=sim conta não E=não sim E=sim Avaliação da árvore de decisão caso 1 2 3 4 5 6 7 8 9 10 11 12 13 14 montante médio médio baixo alto alto alto baixo médio médio alto médio baixo baixo alto idade sênior sênior sênior média jovem jovem jovem média jovem média média jovem sênior média salário baixo baixo baixo baixo alto alto alto baixo alto alto alto baixo alto baixo conta sim não sim sim sim não não sim sim sim não não sim não empréstimo não não sim sim sim não sim não sim sim sim sim sim não Avaliação através da taxa de acertos/erros: taxa_de_erros = Nerros / Ntotal taxa_de_acertos = Nacertos / Ntotal montante médio baixo Utilizando o conjunto de treinamento: proporção_de_acertos = 14 / 14 = 100% proporção_de_erros = 0 / 14 = 0% E=sim salário baixo E=não alto alto E=sim conta não E=não sim E=sim Conjunto de teste caso montante idade salário conta empréstimo 15 16 17 18 19 20 21 alto alto alto alto alto alto alto sim não sim não não sim sim sim não sim não não sim sim médio médio baixo baixo alto alto médio sênior sênior jovem sênior média jovem jovem empréstimo (predito) sim sim sim sim não sim sim Proporção de acertos/erros Utilizando o conjunto de teste: proporção_de_acertos = Nacertos / Ntotal proporção_de_acertos = 5 / 7 = 71,4% proporção_de_erros = Nerros / Ntotal proporção_de_erros = 2 / 7 = 28,6% Avaliação do modelo gerado Métricas para avaliação de desempenho • O foco deve estar na capacidade preditiva do modelo – E não no tempo que leva para classificar ou criar um modelo, na escalabilidade, etc. • Baseadas na Matriz de Confusão (exemplo com duas classes): Classe prevista Classe real Sim Não Sim Verdadeiro Positivo (VP) Falso Negativo (FN) Não Falso Positivo (FP) Verdadeiro Negativo (VN) Métricas para avaliação de desempenho... Classe prevista Classe real Sim Não Sim Verdadeiro Positivo (VP) Falso Negativo (FN) Não Falso Positivo (FP) Verdadeiro Negativo (VN) • Métricas mais usadas: – Acurácia (mais usada), Erro Acurácia: VP VN 100 % n Erro: FP FN 100 % n n VP VN FP FN Exercício em sala Casa Própria Est.Civil Renda Mau Pagador sim solteiro 125 Não não casado 100 Não não solteiro 70 Não sim casado 120 Não não separado 95 Sim não casado 60 Não sim separado 220 Não não solteiro 85 Sim não casado 75 Não não solteiro 90 sim Casa Própria sim não 1 Est.Civil separado casado solteiro 2 3 4 1. Complete a árvore de decisão colocando no lugar dos números das folhas, a classe, de forma a minimizar os erros de classificação. 2. Faça a matriz de confusão correspondente. Outras métricas para avaliação de desempenho Taxa de VP : VP (sensibilidade, 100 % abrangência, VP FN recall) VN Taxa de VN 100 % VN FP (especificidade): Classe prevista Classe real Sim Não Sim VP FN Não FP VN Precisão: VP 100 % VP FP F-measure: 2. precisão.recall (Média harmônica entre precisão e recall) precisão recall Limitação da acurácia • Considere um problema de 2 classes – Número de exemplos da classe 0 = 9.990 – Número de exemplos da classe 1 = 10 • Se o modelo predizer que qualquer amostra é da classe 0, a acurácia é 9990/10000 = 99,9 % – A acurácia é enganosa porque o modelo não detecta nenhum exemplo da classe 1! • Solução: levar em consideração custos por classe para erros de classificação Exemplo: Previsão de culpa em julgamento: positivo pena de morte Matriz de custo Classe prevista C(i|j) Classe real Sim Não Sim C(Sim|Sim) C(Não|Sim) Não C(Sim|Não) C(Não|Não) • C(i|j): custo de classificar exemplos da classe j, como sendo da classe i Cálculo de custos de classificação Matriz de Custo C(i|j) Classe real Modelo M1 Classe real Sim Não Sim -1 100 Não 1 0 Classe prevista Sim Não Sim 150 40 Não 60 250 Acurácia = 80% Custo = 3910 Classe prevista Modelo M2 Classe real Classe prevista Sim Não Sim 250 45 Não 5 200 Acurácia = 90% Custo = 4255 Métodos para avaliação de modelos • Quão preditivo é o modelo aprendido? • Erro sobre os dados de treinamento não é um bom indicador de desempenho sobre dados futuros: é muito otimista • Solução simples pode ser usada se existirem muitos dados rotulados: – Dividir dados em conjuntos de treinamento e de teste • Mas: normalmente o número de dados rotulados é limitado – São necessárias técnicas mais sofisticadas de avaliação Avaliação de modelos 1 0.9 x < 0.43? 0.8 0.7 Yes No y 0.6 y < 0.33? y < 0.47? 0.5 0.4 Yes 0.3 0.2 :4 :0 0.1 0 0 0.1 0.2 0.3 0.4 0.5 x 0.6 0.7 0.8 0.9 1 No :0 :4 Yes :0 :3 No :4 :0 Avaliação de modelos Avaliação de modelos Treinamento e teste … • Conjunto de teste: conjunto de exemplos (registros) independentes que não foram usados na geração do modelo – Suposição: os dados de treinamento e os dados de teste são amostras representativas do problema • Arquivos de teste e de treinamento podem ter naturezas diferentes – Exemplo: classificadores construídos usando dados de consumidores de duas cidades diferentes A e B – Para estimar o desempenho do classificador, gerado com os dados da cidade A, numa cidade diferente, testá-lo com dados de B Tirando o máximo dos dados • Geralmente, quanto maior o arquivo de treinamento melhor o classificador • Quanto maior o arquivo de teste mais exata será a estimativa de erro • Procedimento holdout (retenção): dividir os dados originais em conjuntos de treinamento e de teste – Dilema: queremos tanto um grande arquivo de treinamento quanto um grande arquivo de teste Estimação por retenção (holdout) • O que fazer se a quantidade de dados é limitada? • Método holdout reserva uma certa quantidade dos dados para teste e usa o resto para o treinamento – Usualmente 1/3 para teste, o resto para treinamento • Mas: as amostras podem não ser representativas – Exemplo: pode não haver amostras de uma classe nos dados de teste • Versão avançada usa estratificação – Assegura que cada classe esteja representada com proporções aproximadamente iguais em ambos os conjuntos • Após a avaliação, todos os dados podem ser usados para construir o classificador final !!!! Validação cruzada (cross-validation) • Validação cruzada evita superposição dos conjuntos de teste – Primeiro passo: conjunto de dados é dividido em k subconjuntos de tamanhos iguais – Segundo passo: um subconjunto é usado para teste e os demais para treinamento. – O segundo passo é repetido k vezes, variando o subconjunto usado para teste – Esta é a chamada validação cruzada por k vezes • Muitas vezes os subconjuntos são estratificados antes de realizar a validação cruzada • A estimativa de erro global é calculada como a média das k estimativas de erro (uma para cada iteração) four-fold-cross-validation subconj 1 Conjunto de Exemplos subconj 2 subconj 3 subconj 4 Modelo 1 Modelo 4 Modelo 3 Modelo 2 treino subconj 1 treino subconj 1 treino subconj 1 teste subconj 1 treino subconj 2 treino subconj 2 teste subconj 2 treino subconj 2 treino subconj 3 teste subconj 3 treino subconj 3 treino subconj 3 teste subconj 4 treino subconj 4 treino subconj 4 treino subconj 4 Mais sobre validação cruzada • Método padrão de avaliação: validação cruzada por dez vezes estratificada • Por que dez? Experimentos demonstraram que esta é uma boa escolha para se obter uma estimativa precisa • Estratificação reduz a variância da estimativa • Melhor ainda: validação cruzada estratificada repetida – P. ex. se repete dez vezes a validação cruzada por dez vezes e se calcula a média (reduz variância) Validação cruzada deixando um fora • Validação cruzada deixando um fora (leave-one-out c-v): – O número de vezes é escolhido como o número de exemplos de treinamento – Isto é, deve-se construir n classificadores, onde n é o número de exemplos de treinamento • Aproveita ao máximo os dados • Não envolve sub-amostragem aleatória • Computacionalmente muito custoso Navalha de Occam Dados dois modelos com mesma taxa de erros, o modelo mais simples é melhor (preferível) Exercício em sala lágrimas astigma- pressão prescrição LENTES tismo normal sim normal hipermetr. NÃO normal não normal miopia GELAT. normal sim normal miopia DURA reduzida sim alta miopia NÃO reduzida não normal hipermetr. NÃO normal não alta hipermetr. NÃO normal não alta miopia GELAT. normal sim normal miopia DURA normal sim alta hipermetr. NÃO normal sim alta miopia DURA normal sim normal miopia. DURA lágrimas reduzida normal 1 astigmat. sim não 2 prescrição miopia 4 hipermetr. 3 1. Complete a árvore de decisão colocando no lugar dos números das folhas, a classe, de forma a minimizar os erros de classificação. 2. Faça a matriz de confusão correspondente.