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
C1 C2C1 Positivos
verdadeirosFalsos Negativos
C2 Falsos Positivos
Negativosverdadeiros
Classes Preditas
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âncerNã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
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
% pacientes classificados corretamente como positivos dentre todos os que realmente são 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
r + pF1 =
2 rp
Exercicio: 1. Mostrar que F1 = 2 TP
2 TP + FP + FN
Exercicio: 2. Mostrar que F1 = 2
1 1+ r p
= média harmônica entre p e r
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.
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
p1 < p2 < ... < pm Existem modelos M1, M2, ..., Mm, Mm+1 tais que:
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:
Exemplo
TP
FP
TN
FN
TPR
FPR
Classe - + - - - + - +++0.43 0.53 0.76 0.85 0.85 0.85 0.87 0.930.25 0.95
5
5
0
0
1
4
5
0
1
0.8
1
4
4
1
1
0.8
0.8
3
4
1
2
0.6
0.8
1
3
3
2
2
0.6
0.6
3
2
3
2
0.6
0.4
3
1
4
2
0.6
0.2
2
1
4
3
0.4
0.2
2
0
5
3
0.4
0
1
0
5
4
0.2
0
0
0
5
5
0
0
1.00
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
0.1
0.3
0.2
0.40.50.60.70.80.91.0
0.00.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 FPR
TPRModelo ideal
Modelos que fazem previsões aleatórias
Comparando performance relativas de diferentes classificadores Curvas Roc são utilizadas para se medir a
performance relativa de diferentes classificadores. M1
M2
x
Até aqui M2 é melhor do que M1A partir daí, M1 fica melhor do que M2
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.2A Java program for finding AUC-ROC and AUC-PR http://www.cs.wisc.edu/~richm/programs/AUC/
04/27/23 Mestrado em Ciência da Computação 22
Classificadores Bayesianos Classificadores estatísticos Classificam um objeto numa determinada
classe C baseando-se na probabilidade do objeto pertencer à classe C
Vantagens Processo de classificação rápido Grande acurácia quando aplicados a grandes
volumes de dados.
04/27/23 Mestrado em Ciência da Computação 23
Classificador Bayesiano Simples Hipótese: atributos não-classe são independentes
Valor de um atributo não influencia o valor de outros atributos
Exemplo: Idade, Profissão, Renda não são independentesnão são independentes. Um médico
tem uma probabilidade maior de ter uma renda alta do que um porteiro.
Gênero, Cidade, Idade são independentessão independentes Porque considerar atributos independentes ?
Cálculos envolvidos no processo de classificação são simplificados
04/27/23 Mestrado em Ciência da Computação 24
Como funciona um classificador Bayesiano simples Classificador Eager –
Constrói um modelo de classificação baseado em probabilidades condicionais
Método geral D = base de treinamento – (tuplas classificadas) X = (a, b, c) : tupla não classificada X pode ser vista como um evento conjunto
A = a e B = b e C = c X é classificada na classe Ci se
P[Ci|X] > P[Cj|X] para todo j diferente de i P[Ci|X] = probabilidade condicional do evento Classe= Ci acontecer
dado que o evento conjunto A = a e B = b e C = c acontece.
04/27/23 Mestrado em Ciência da Computação 25
Classificação de uma tupla X Envolve o cálculo de todas as probabilidades
condicionais P[Ci|X] para todo i = 1,…,n, onde n = número de classes
A probabilidade mais alta corresponde à classe em que X será classificada
P[Ci|X] : Probabilidade Posterior
04/27/23 Mestrado em Ciência da Computação 26
Como calcular as probabilidades posteriores ?
P[X ∩ C] = P[X|C] * P[C] = P[C|X] * P[X]
Teorema de Bayes P[C|X] = P[X|C] * P[C] P[X]
P[X] é constante (pois X está fixa)Para maximizar P[C|X] basta maximizar o numerador P[X|C] * P[C]
04/27/23 Mestrado em Ciência da Computação 27
Como maximizar P[X|C] * P[C] P[C] é calculada através do banco de amostras
É preciso encontrar a classe C para a qual o produto P[X|C] * P[C] é máximo
Como calcular P[X|C] ?
P[X|C] = P[A1=x1,A2=x2, ...,An = xn |C] onde X = (x1, x2, ..., xn)
04/27/23 Mestrado em Ciência da Computação 28
Classificador Bayesiano NaïveHipótese: Independência condicional dos atributos
A1,...,An dado C
A1, ..., An são ditos independentes dado C se
P[Ai=xi | A1=x1 ,..., Ai-1 =xi-1,...,An=xn,C] = P[Ai=xi | C]
para todo i ϵ {1,...,n}
04/27/23 Mestrado em Ciência da Computação 29
Corolário A1, ..., An são independentes dado C se e somente se P[A1=x1,A2=x2,... , An= xn |C] = P[A1=x1| C] * … * P[An=xn| C]
Prova: Aplicando o Teorema de Bayes para P[A1=x1,A2=x2,... , An= xn,C] :
P[A1=x1,A2=x2,... , An= xn,C] = P[A1=x1,A2=x2,...,An = xn |C] . P[C] P[A1=x1, A2=x2,... , An= xn,C] = P[A1=x1| A2=x2,...,An=xn, C]. P[A2=x2,...,An=xn,C]
Logo: P[A1=x1,A2=x2,...,An = xn |C] . P[C] = P[A1=x1| A2=x2,...,An=xn, C]. P[A2=x2,...,An=xn,C] =
P[A1=x1| A2=x2,...,An=xn, C]. P[A2=x2,...,An=xn|C]. P[C]
Logo: P[A1=x1,A2=x2,... An=xn |C] = P[A1=x1| A2=x2,...,An=xn, C]. P[A2=x2, ...,An=xn|C] = P[A1=x1| C]. P[A2=x2,..., An=xn|C] (usando a condição de independência dos atributos A1, ...., An) Repetindo o processo para P[A2=x2,...,An=xn|C] e assim por diante, concluimos a prova.
04/27/23 Mestrado em Ciência da Computação 30
CálculosCada P[Ai=xi | C ] é calculada da seguinte
maneira
Se Ai é atributo categórico
P[Ai=xi | C ] = P[Ai=xi,C ] / P[C] = núm. de tuplas classificadas em C com Ai = xiTotal de tuplas classificadas em C
04/27/23 Mestrado em Ciência da Computação 31
Cálculos Se Ai é atributo contínuo (não categórico)
P[Ai=xi | C ] = g(Ai= xi, μ(C) , σ(C))Onde g = função de distribuição de Gauss
μ(C) = média σ(C) = desvio padrão
g(A= x, μ(C) , σ(C)) = 1 e -(x- μ) 2σ
22
√2Π * σ
04/27/23 Mestrado em Ciência da Computação 32
Resumo Input:
um banco de tuplas classificadas Uma tupla X a ser classificada
Output: P[C1|X], P[C2|X], ..., P[Cn|X], onde C1,...,Cn
são todos os valores do atributo classe C A tupla X é classificada na classe Ci para a qual o
número P[Ci|X] é o maior.
04/27/23 Mestrado em Ciência da Computação 33
ExemploID IDADE RENDA ESTUDANTE CREDITO CLASSE
1 ≤ 30 Alta Não Bom Não
2 ≤ 30 Alta Não 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
Compra-computador
04/27/23 Mestrado em Ciência da Computação 34
Exemplo C1= sim, C2 = não Tupla desconhecida X = (≤ 30, Média,Sim,Bom) Precisamos maximizar P[X|Ci] * P[Ci] para i =1,2 P[C1] = 9/14 = 0.643 P[C2] = 5/14 = 0.357 P[Idade ≤ 30 | Compra = Sim ] = 2/9 = 0.222 P[Idade ≤ 30 | Compra = Não ] = 3/5 = 0.6 P[Renda = Média | Compra = Sim ] = 4/9 = 0.444 P[Renda = Média | Compra = Não ] = 2/5 = 0.4
04/27/23 Mestrado em Ciência da Computação 35
Exemplo P[Est = sim | Compra = Sim ] = 6/9 = 0.667 P[Est = sim | Compra = Não ] = 1/5 = 0.2 P[Crédito = bom| Compra = Sim ] = 6/9 = 0.667 P[Crédito = bom | Compra = Não ] = 2/5 = 0.4 P[X|C1] = 0.222*0.444*0.667*0.667 = 0.044 P[X|C2] = 0.6*0.4*0.2*0.4 = 0.019 P[X|C1]*P[C1] = 0.044*0.643 = 0.028 P[X|C2]*P[C2] = 0.019*0.357 = 0.007Tupla X classificada na classe C1 (compra computador = sim)
Top Related