Escolar Documentos
Profissional Documentos
Cultura Documentos
felipe@dpi.inpe.br
So Jos dos Campos, 6 de Dezembro de 2006
1 Introduo
ROC
1 uma tcnica para visualizar, avaliar, organizar e selecionar classicadores baseado em suas
performances. Para realizar estas anlises, grcos ROC podem mostrar o limiar entre taxas de acertos e alarmes falsos (taxas de erros) dos classicadores. Um dos primeiros usos dos grcos ROC em aprendizado por mquina foi desenvolvido por [Spackman, 1989], que demonstrou a utilidade das curvas ROC na avaliao e comparao entre algoritmos. A anlise ROC tambm tem sido de grande utilidade para visualizar e anali-
sar o comportamento de sistemas de diagnstico [Swets, 1988], principalmente na medicina. Em [Vilarino et al., 2006] os grcos ROC so utilizados para otimizar o limiar que classica classes de contrao ou no contrao intestinal em imagens geradas atravs no exame de endoscopia. Atualmente h um grande crescimento no uso de grcos ROC na comunidade de aprendizado por mquina, em parte pelo uso desta tcnica na anlise de classicadores. Grcos ROC so conceitualmente simples, mas existem algumas complexidades que surgem quando utilizados. Existem alguns conceitos vagos e diculdades quando so usados na prtica. Todas as denies descritas neste trabalho foram baseadas no trabalho de [Fawcett, 2005].
p, n,
instncia representa um elemento que no se sabe a qual classe pertence e deseja-se classic-lo.
situaes. Se a instncia positive e classicada como positive, conta-se como true positive; se classicada como negative, conta-se como false negative. Se a instncia negative e classicada como tal, conta-se como true negative; se classicada como positive, conta-se como false positive. Portanto, tendo um classicador e um conjunto de instncias pode-se construir uma matriz de confuso de
por
2,
no caso de
classes. Esta matriz serve como base para muitas mtricas que
O conjunto de Equaes 1 demonstra as mtricas que podem ser calculadas a partir da matriz de confuso. Destacam-se as mtricas tp rate (tambm chamado de taxa de acerto do produtor) e
fp rate (tambm chamado de falso alarme do produtor) que serviro como base para a construo
precision
accuracy 2
de todo o classicador, isto , a razo entre a soma dos acertos das instncias.
TP P TP T P +F P
f p rate =
FP N
(1)
T P +T N P +N
TP P 2(precision+1) recall
3 Grcos ROC
Antes de denir como so construdos os grcos ROC, tem-se que denir o espao em que estas curvas sero representadas. Alm disso, apresenta-se um algoritmo para gerar as curvas ROC.
3.1
Espao ROC
plota-se o valor de
tp rate
e no eixo
f p rate.
discretos. Classicadores discretos so aqueles que geram como sada somente uma classe. Estes classicadores fornecem um par (f p
rate, tp rate)
(0, 0)
representa
uma estratgia que nunca gera uma classicao positiva; como um classicador que no comete
classicadores discretos.
o inverso de
E, D
um classicador perfeito e
dito aleatrio.
A estratgia oposta, de
incondicionalmente gerar true positives representada pelo ponto superior direito O ponto classicador
(1, 1).
(0, 1) D.
De maneira geral, um ponto, no espao ROC, melhor que outro se ele est mais Classicadores no lado esquerdo do grco ROC
noroeste (tp
(perto do eixo Y) so ditos conservadores, pois fazem classicaes positivas somente com uma evidncia forte, portanto comentem poucos erros false positives. Classicadores no lado direito
so ditos liberais, pois fazem classicaes positivas com pouca evidncia, mas comentem muitos erros false positives. Na Figura 2,
B. (0, 0)
ao ponto
Qualquer classicador que est abaixo da linha diagonal que vai do ponto dito pior do que um classicador aleatrio.
(1, 1)
est geralmente vazio. Pode-se ressaltar que se um classicador produz pontos abaixo da diagonal, pode-se neg-lo para produzir pontos acima dela. Na Figura 2,
igual
negado.
3.2
Muitos classicadores, tais como rvores de deciso ou conjunto de regras, so desenvolvidos para produzir uma nica classe, i.e.
ou
n,
gera apenas um ponto no espao ROC. Alguns classicadores, tais como Naive Bayes ou redes neurais, naturalmente produzem uma probabilidade ou valor para cada instncia que representa o grau de representatividade da classe sobre aquela instncia. A partir destes classicadores, pode-se gerar classicadores discretos com uma simples aplicao de um limiar. Cada limiar produzir um conjunto distinto de pontos no espao ROC.
20 instncias descritas
Figura 3: Uma curva ROC criada pela limiarizao do conjunto de teste (Tabela 1).
Qualquer curva ROC que gerada por um nmero nito de instncia, produz uma funo degrau no espao ROC. Quanto maior o nmero de instncias, mais contnua a curva ca. No Anexo 1 deste trabalho apresenta-se uma funo para gerao dos pontos no espao ROC. Esta funo foi adaptada para gerar curvas ROC e foi escrita no MatLab. importante ressaltar que cada ponto criado no tempo depende do ponto
t 1.
0.0
1.0.
Entretanto,
como classicadores piores que os aleatrios no so encontrados no espao ROC, no existem classicadores com AUC menor que 0.5 (0.5 a rea de uma classicador aleatrio). A Figura 4 mostra a rea abaixo de duas curvas ROC,
B.
O classicador
possui uma
rea maior e, portanto, tem uma melhor performance mdia. possvel que em algumas regies do espao ROC um classicador seja melhor que outro. Na Figura 4 o classicador melhor que
geralmente
exceto em
onde o
trabalho apresenta-se uma funo para calcular AUC. Esta funo foi escrita no MatLab e retorna um valor escalar correspondente a AUC.
B.
Em mdia o classicador
melhor que
A,
porm
B.
3 Sigla
de
Por isso, as curvas ROC podem ser projetadas em uma dimenso, sendo possvel o clculo da mdia. A questo , qual a projeo apropriada? Apresenta-se a seguir dois mtodos para realizar a mdia entre curvas ROC. O primeiro mtodo a mdia vertical das curvas ROC. Esse processo muito simples, e consiste em tomar um passo constante no eixo respectivos valores do eixo
f p rate
tp rate.
f p rate
pode
ser xado, ou quando uma simples medida de varincia desejada. A Figura 5 mostra o clculo da mdia vertical entre as curvas ROC
B.
O segundo mtodo a mdia dos limiares. Ao invs da mdia ser baseada na posio dos pontos no espao ROC, como o caso da vertical, ela baseada nas amostras geradas por diferentes limiares. Para cada limiar acha-se o ponto correspondente em cada curva ROC e assim faz-se a mdia desses pontos.
B.
classes.
fronteiras entre erros (false positives) e benefcios (true positives) que um classicador faz entre classes. Com
nxn,
contendo uma
(acertos) e
n2 n
classes produzir
o conjunto de todas
ci
como a classe
positive (Equao 2), e todas as outras classes como negatives (Equao 3).
Pi = ci
(2)
Ni =
j =i
cj C n classes.
(3)
o clculo da rea apresentada por [Provost and Domingos, 2001]. Eles calcularam as AUCs para o problema de mltiplas classes gerando uma curva para cada classe, medindo a rea abaixo da curva, e ento somando as AUCs de todas as classes, dando peso maior para a classe que prevalece sobre as outras (Equao 4).
AU Ctotal =
ci C
onde
AU C (ci )p(ci) ci .
Esta denio precisa apenas de
(4)
AU C (ci )
|C |
clculos
de AUC. Em [Hand and Till, 2001] apresentado uma simples generalizao para o problema do clculo da AUC para mltiplas classes. Eles desejavam uma medida que no dependesse da distribuio das classes e dos custos dos erros (Equao 5).
AU Ctotal =
onde
2 |C |(|C | 1)
AU C (ci , cj )
(ci ,cj )C
(5)
AU C (ci , cj )
ci
cj .
Em [Everson and Fieldsend, 2006] apresentado um novo e recente mtodo para a anlise multiclasses.
7 Concluso
Uma viso sobre o que a anlise ROC foi apresentada neste trabalho. Apesar de ser um mtodo relativamente simples, a anlise ROC amplamente utilizada para visualizar, avaliar, organizar e selecionar classicadores baseado em suas performances. Existe uma limitao no processo apresentado, o fato de trabalhar-se sempre com duas classes para avaliar os classicadores. multiclasses. Existem na literatura algumas propostas de realizar a anlise
depois combin-las. Outra possibilidade que pode-se aplicar, a interpolao de classicadores. Isso pode ser
necessrio quando a performance desejada obtida com a combinao de mais de um classicador. Em [van der Putten and van Someren, 2000] apresentado um exemplo de como resolver este problema.
Referncias
[Everson and Fieldsend, 2006] Everson, R. M. and Fieldsend, J. E. (2006). Multi-class roc analysis froma multi-objective optimisation perspective. Pattern Recognition Letters, 27:918927.
[Fawcett, 2005] Fawcett, T. (2005). An introduction to roc analysis. Pattern Recognition Letters, pages 861874.
[Hand and Till, 2001] Hand, D. J. and Till, R. J. (2001). A simple generalization of the area under the roc curve to multiple class classication problem. Machine Learning, 45(2):171186.
[Provost and Domingos, 2001] Provost, F. and Domingos, P. (2001). Well-trained: Pets: Improving probability estimation trees. CeDER Working Paper.
[Spackman, 1989] Spackman, K. A. (1989). Signal detection theory: Valuable tools for evaluating inductive learning. Proc. Sixth Internat. Workshop on Machine Learning, pages 160163.
[Swets, 1988] Swets, J. (1988). Measuring the accuracy of diagnostic systems. Science, 240:1285 1293.
[van der Putten and van Someren, 2000] van der Putten, P. and van Someren, M. (2000).
Coil
challenge 2000: The insurance company case. Technical report, Institute of Advanced Computer ScienceS, Universiteit van Leiden.
[Vilarino et al., 2006] Vilarino, F., Kuncheva, L. I., and Radeva, P. (2006). Roc curves and video analysis optimization in intestinal capsule endoscopy. Pattern Recognition Letters, pages 875 881.
Anexo 1
function graph = ROC_Graph(L_class, f) tam_L_class = size(L_class); % sort L_class and f for i=1:tam_L_class(2) m = 0.0; m_index = i; for j=i:tam_L_class(2) if (f(j) > m) m = f(j); m_index = j; end; end; aux = f(m_index); f(m_index) = f(i); f(i) = aux; aux = L_class(m_index); L_class(m_index) = L_class(i); L_class(i) = aux; end; %count number of P and N P = 0; N = 0; for i=1:tam_L_class(2) if (L_class(i) == 'p') P = P + 1; else N = N + 1; end; end; TP = 0; FP = 0; R_index = 0; f_prev = -1; i = 1; while (i <= tam_L_class(2)) if (~(f(i) == f_prev)) R_index = R_index + 1; R(R_index, 1) = FP / N; R(R_index, 2) = TP / P; f_prev = f(i); end; if (L_class(i) == 'p') TP = TP + 1; else FP = FP + 1; end; i = i + 1; end; R_index = R_index + 1; R(R_index, 1) = FP / N; R(R_index, 2) = TP / P; hold on; plot(R(:, 1), R(:, 2), '*r'); plot(R(:, 1), R(:, 2));
9
Anexo 2
function area = ROC_Area(L_class, f) tam_L_class = size(L_class); % sort L_class and f for i=1:tam_L_class(2) m = 0.0; m_index = i; for j=i:tam_L_class(2) if (f(j) > m) m = f(j); m_index = j; end; end; aux = f(m_index); f(m_index) = f(i); f(i) = aux; aux = L_class(m_index); L_class(m_index) = L_class(i); L_class(i) = aux; end; %count number of P and N P = 0; N = 0; for i=1:tam_L_class(2) if (L_class(i) == 'p') P = P + 1; else N = N + 1; end; end; TP = 0; FP = 0; TP_prev = 0; FP_prev = 0; f_prev = -1; i = 1; A = 0; while (i <= tam_L_class(2)) if (~(f(i) == f_prev)) A = A + Trapezoid_Area(FP, FP_prev, TP, TP_prev); f_prev = f(i); FP_prev = FP; TP_prev = TP; end; if (L_class(i) == 'p') TP = TP + 1; else FP = FP + 1; end; i = i + 1; end; A = A + Trapezoid_Area(N, FP_prev, N, TP_prev); A = A / (P * N); area = A;