Classificadores em Dados não Balanceados AULA 9 DATA MINING Sandra de Amo 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 C2 C1 Positivos verdadeiros Falsos Negativos C2 Falsos Positivos Negativos verdadeiros Classes Reais Problemas: Classes “não-balanceadas” 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 ? Medidas para classificadores (classes não-balanceadas) Sensitividade (recall) = true-pos pos % pacientes classificados corretamente como positivos dentre todos os que realmente são positivos Especificidade = true-neg neg Precisão = true-pos true-pos + falso-pos % pacientes classificados corretamente como positivos dentre todos os que foram classificados como positivos Precisão e Recall : medidas originadas em Recuperação de Informação utilizadas em Classificação, quando se lida com “classes não-balanceadas” Medida F1 : Média harmônica de Precisão e Recall F1 = 2 rp r+p 2 TP Exercicio: 1. Mostrar que F1 = Exercicio: 2. Mostrar que F1 = 2 TP + FP + FN 2 = média harmônica entre p e r 1 + 1 r p Média harmônica entre dois números x e y tende a ser próxima de min(x,y) Assim, F1 alto implica que precisão e recall são razoavelmente altos. Trade-off entre TP e FP TP FP FN TN POSITIVOS REAIS NEGATIVOS REAIS Curva ROC ROC = Receiver Operating Characteristic Curve Enfoque gráfico que mostra um trade-off entre as taxas de TP (TPR) e FP (FPR) de um classificador. TPR = TP/(TP + FN) ( = recall) = Porcentagem de amostras corretamente classificadas como positivas dentre todas as positivas reais FPR = FP/(TN + FP) Porcentagem de amostras erroneamente classificadas como positivas dentre todas as negativas reais Ideal : TPR = 1 e FPR = 0 Exercício Total de amostras = 12 Positivas = 8 Negativas = 4 TP = 5 FP = 2 Calcular precisão, recall, acurácia, TPR, FPR, TNR, FNR, F1 O que é uma curva ROC de um classificador ? Classificador = método de classificação (ID3, J48, SVM,...) Classificador + Dados de Amostras M1, M2, ..., Mk Mi = modelo do classificador Mi TPR, FPR Curva ROC do classificador: Plotagem da tabela FPR/TPR Como classificar uma amostra usando diferentes modelos do classificador ? O classificador precisa produzir, para cada tupla X, a probabilidade que a tupla X ser classificada na classe Positiva. Classificadores como redes neurais e redes bayesianas produzem tais probabilidades. Para outros tipos de classificadores, é preciso calcular esta probabilidade. Como classificar uma amostra usando diferentes modelos do classificador ? D = conjunto de amostras classificadas Amostragem de D = (Tr, Te) Tr = Treinamento , Te = Testes , Tr U Te = D Uma amostragem (Tr, Te) induz um modelo M do classificador Classificação de uma amostra X Pi = probabilidade de X ser classificada na classe ci = porcentagem de modelos que classifica X na classe ci Construção da Curva ROC de um classificador Escolhe-se aleatoriamente m amostras da massa de dados: x1, ..., xm Calcula-se pi = probabilidade de xi ser classificada na classe positiva. Ordena-se as amostras xi por ordem crescente das probabilidades Existem modelos M1, M2, ..., Mm, Mm+1 tais que: x1, x2, ..., xm M1: Classificam todos os xi como positivos M2: Classificam um como negativo e os outros como positivos ... Mi: Classificam (i-1) como negativos e os outros como positivos Logo, é razoável supor que: Cálculo de TPR e FPR para cada modelo Mi Exemplo Classe + - + 0.25 0.43 0.53 0.76 - - + - + + 0.85 0.85 0.85 0.87 0.93 0.95 TP 5 4 4 3 3 3 3 2 2 1 0 FP 5 5 4 4 3 2 1 1 0 0 0 TN 0 0 1 1 2 3 4 4 5 5 5 FN 0 1 1 2 2 2 2 3 3 4 5 TPR 1 0.8 0.8 0.6 0.6 0.6 0.6 0.4 0.4 0.2 0 FPR 1 1 0.8 0.8 0.6 0.4 0.2 0.2 0 0 0 1.00 Exemplo 1.0 TPR 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 FPR Curva Roc Cada ponto na curva corresponde a um dos modelos induzidos pelo classificador Um bom modelo deve estar localizado próximo do ponto (0,1) Modelos localizados na diagonal são modelos aleatórios – TPR = FPR Modelos localizados acima da diagonal são melhores do que modelos abaixo da diagonal. Exemplo 1.0 TPR Modelo ideal 0.9 0.8 0.7 0.6 0.5 0.4 0.3 Modelos que fazem previsões aleatórias 0.2 0.1 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 FPR Comparando performance relativas de diferentes classificadores Curvas Roc são utilizadas para se medir a performance relativa de diferentes M1 classificadores. M2 Até aqui M2 é melhor do que M1 A partir daí, M1 fica melhor do que M2 x Area abaixo da curva ROC (AUC) A área abaixo da curva ROC fornece medida para comparar performances de classificadores. Quanto maior a área AUC melhor a performance global do classificador. Classificador optimal: área =1 Classificador randômico : área = 0.5 Referências P-N Tan et al. Introduction to Data Mining – Capitulo 5, seção 5.7 Jesse Davis, Mark Goadrich - The Relationship between Precision-Recall and ROC Curves. Proc. 23rd Int. Conf. On Machine Learning. 2006. Gary M. Weiss. Mining with Rarity: A Unifying Framework. SIGKDD Explorations, Vol. 6, Issue 1, 2007. Software: AUCCalculator 0.2 A Java program for finding AUC-ROC and AUC-PR http://www.cs.wisc.edu/~richm/programs/AUC/