08/02/2024

Métricas para classificadores

Este é o primeiro artigo que farei sobre o métricas em Aprendizado de Máquina.

Neste artigo vou focar em algumas das métricas mais populares utilizadas para avaliar o desempenho de classificadores. Métricas que utilizam em suas fórmulas os valores da matriz de confusão.

Como vou fazer referência à "Matriz de confusão", para quem não sabe o que é ou não se lembra muito bem, recomendo primeiro ler este artigo, dedicado ao tema.

As métricas abordadas neste artigo são:

  • Acurácia
  • Erro
  • Precisão
  • Revocação
  • Especificidade
  • Métrica F1

Informações básicas sobre classificação

Algumas informações básicas quanto aos métodos de classificação no aprendizado de máquina:

  • Um programa, chamado indutor, gera o classificador a partir do processamento de conjunto de instâncias de treino, cada uma com a indicação de sua classe reais.
  • A classe descreve o fenômeno de interesse na instância.
  • Cada instância apresenta características que justificam receber a classificação.
  • O classificador é um programa que deve ser capaz de receber instâncias e, a partir de suas características, prever a classe de cada uma.
  • Para testar um classificador, este deve processar um conjunto de instâncias de teste, cada uma com a indicação de sua classe reais, e prever suas classes.
  • A comparação entre as classes reais e as previstas gera a matriz de confusão, que é a base para os cálculos de várias métricas.

Matriz de Confusão

Vou apresentar 2 matrizes de confusão, diferindo no número de possíveis classes das instâncias.

Matriz de Confusão de um problema binário

Esquema para uma matriz de confusão de um problema binário, com 2 classes, sendo elas: "Positivo" e "Negativo":

Matriz de
Confusão
Previsto
Positivo Negativo
Real Positivo VP FN
Negativo FP VN

Onde:

  • VP = Verdadeiro Positivo
  • FN = Falso Negativo
  • FP = Falso Positivo
  • VN = Verdadeiro Negativo

Matriz de Confusão de um problema multi-classe, com 3 classes

Esquema para uma matriz de confusão de um problema multi-classe, com 3 classes, sendo elas: "A", "B" e "C"

Matriz de
Confusão
Previsto
A B C
Real A AA AB CA
B BA BB CB
C CA CB CC

Neste exemplo, cada célula da matriz está representada por um código composto por duas letras:

  • a primeira representa a classe real
  • a segunda representa a classe prevista pelo classificador

 Assim, por exemplo:

  • AA = célula com a quantidade de instâncias cuja classe real é "A" e cuja classe prevista, corretamente, pelo classificador também foi "A".
    • Utilizando a nomenclatura da matriz de confusão binária, seria um "Verdadeiro A".
  • "BB" e "CC" seriam, respectivamente, "Verdadeiro B" e "Verdadeiro C"
  • AB = célula com a quantidade de instâncias cuja classe real é "A" e cuja classe prevista, erroneamente, pelo classificador foi "B".
    • Ou seja, é um "Falso A" de uma instância cuja classe real é "C"
  • "CA", "BA", "CB", "CA" e "CB" seguem o padrão de interpretação de célula "AB", ou seja, são todos "Falso ...".

Fórmulas

Apresento as fórmulas sempre para os dois exemplos de matrizes de confusão apresentados acima:

  • Em roxo as fórmulas o problema binário
  • Em verde as fórmulas para o problema multi-classe

Valores auxiliares

Para ajudar no entendimento das primeiras métricas, defino alguns "valores auxiliares".

Quantidade Total: Número total de instâncias no conjunto de teste. Equivale à soma de todos os números na matriz de confusão.

Quantidade Total = VP + FN + FP + VN

Quantidade Total = AA + AB + CA + BA + BB + CB + CA + CB + CC

Acertos Totais: O número total de acertos nas predições do classificador.

E o total dos valores "Verdadeiro..." da matriz de confusão. São os valores que se encontram na diagonal principal da matriz.

Acertos Totais = VP + VN

Acertos Totais = AA + BB + CC

Falhas Totais: O número total de falhas nas classificações.

É o total dos valores "Falso..." da matriz de confusão. São os todos os valores que não se encontram na diagonal principal da matriz.

Falhas Totais = FN + FP

Falhas Totais = AB + CA + BA + CB + CA + CB

Métricas

Todas as métricas apresentadas aqui apresentam valores que variam de 0 (zero) à 1 (um), sendo 1 a indicação de maior qualidade do que está sendo avaliado.

Métricas do classificador

As primeiras métricas apresentadas avaliam a qualidade de classificador como um todo, com relação à todas as classes do problema. São bem intuitivas e utilizam todos os valores na matriz de confusão.

Acurácia

(Accuracy)

Mede o quanto o classificador acerta em suas previsões.

É o percentual de "Acertos Totais" com relação à "Quantidade Total".

Acurácia = "Acertos Totais" / "Quantidade Total"

Acurácia = ( VP + VN ) / ( VP + FN + FP + VN )

Acurácia = ( AA + BB + CC ) / ( AA + AB + CA + BA + BB + CB + CA + CB + CC )

Erro

(Error)

Mede o quanto o classificador erra em suas previsões.

É o complemento da Acurácia, ou o percentual de "Falhas Totais" com relação à "Quantidade Total".

Erro = 1 - Acurácia

Erro = "Falhas Totais" / "Quantidade Total"

Erro = ( FN + FP ) / ( VP + FN + FP + VN )

Erro = ( AB + CA + BA + CB + CA + CB ) / ( AA + AB + CA + BA + BB + CB + CA + CB + CC )

Observação:

  • As métricas Acurácia e Erro, apesar de muito utilizadas, só são boas medidas nos casos em que os classificadores trabalham em problemas com igual probabilidade para cada possível classe. Na prática, isso não é muito comum.

Métricas por classe

As métricas a seguir são calculadas para cada classe, avaliando a performance do classificador para cada possível classe do problema.

Assim são referenciadas, por exemplo, como "Nome_da_métrica para a classe Nome_da_classe"

Elas também podem ter uma versão que avaliem o classificador como um todo, utilizando alguma fórmula que agregue os cálculos para cada classe. Vou abordar isso em cada métrica.

Em geral, nas métricas a seguir, quando são referenciadas apenas pelo nome, não indicando classe:

  • Em problemas binários, significa "Nome_da_métrica para classe Positivo".
  • Em problemas multi-classe, significa um cálculo da métrica para o classificador como um todo, agregando os cálculos para cada classe.

Isso ficará mais claro a medida que as métricas forem apresentadas.

Precisão

(Precision)

É o percentual de acertos nas predições do classificador para determinada classe.

Precisão (em problema binário)

É o percentual de acertos nas predições do classificador para a classe "Positivo".

Precisão = VP / ( VP + FP )

Matriz de
Confusão
Previsto
Positivo Negativo
Real Positivo VP FN
Negativo FP VN

Observação:

  • Sempre que aparecer uma a matriz de confução com destaques em vermelho, logo após uma fórmula, será para visualizar melhor quais valores estão sendo utilizados, direta ou indiretamente, no cálculo apresentado.

Precisão para a classe A (em problema multi-classe)

(Precision for class A)

É o percentual de acertos nas predições do classificador para a classe "A".

Precisão para a classe A = AA / ( AA + BA + CA )

Matriz de
Confusão
Previsto
A B C
Real A AA AB CA
B BA BB CB
C CA CB CC

Precisão do classificador

Como não é usual ver um cálculo de precisão para o classificador como um todo, não apresentarei aqui nenhuma fórmula.

Porém, algumas abordagens podem ser utilizadas para tal, como, por exemplo, calcular a média aritmética das precisões obtidas para cada classe.

Revocação

(Sensibilidade) (Recall)

É o percentual de acertos nas predições do classificador, entre as instâncias verdadeiramente de determinada classe.

Revocação (em problema binário)

É o percentual de acertos nas predições do classificador, entre as instâncias verdadeiramente da classe "Positivo".

Revocação = VP / ( VP + FN )

Matriz de
Confusão
Previsto
Positivo Negativo
Real Positivo VP FN
Negativo FP VN

Revocação para a classe A (em problema multi-classe)

(Sensibilidade para a classe A) (Recall for class A)

É o percentual de acertos nas predições do classificador, entre as instâncias verdadeiramente da classe "A".

Revocação para a classe A = AA / ( AA + AB + AC )

Matriz de
Confusão
Previsto
A B C
Real A AA AB CA
B BA BB CB
C CA CB CC

Revocação do classificador

Não sendo um cálculo usual, cabe aqui o mesmo comentário feito, acima, para Precisão do classificador.

Especificidade

(Specificity)

É o percentual de acertos nas predições do classificador, entre as instâncias que verdadeiramente não são de determinada classe.

Especificidade (em problema binário)

É o percentual de acertos nas predições do classificador, entre as instâncias que verdadeiramente não são da classe "Positivo" (são da classe "Negativo").

Especificidade = VN / ( FP + VN )

Matriz de
Confusão
Previsto
Positivo Negativo
Real Positivo VP FN
Negativo FP VN

Aqui você pode ter percebido que a "Especificidade para a classe Positivo" é igual a "Revocação para a classe Negativo". Isso acontece apenas quando estamos avaliando um classificador binário.

Especificidade para a classe A (em problema multi-classe)

É o percentual de acertos nas predições do classificador, entre as instâncias que verdadeiramente não são da classe "A".

Em outras palavras, de todas as instâncias cuja classe real é "B" ou "C", é o percentual das que foram corretamente preditas pelo classificador.

Especificidade para a classe A = ( BB + CC ) / (BA + BB + CB + CA + CB + CC )

Matriz de
Confusão
Previsto
A B C
Real A AA AB CA
B BA BB CB
C CA CB CC

Especificidade do classificador

Não sendo um cálculo usual, cabe aqui o mesmo comentário feito, acima, para Precisão e Especificidade do classificador.

Métrica F1

(F1-Score) (F-Measure) (F-Score)

É a média harmônica entre a Precisão e Revocação para determinada classe.

Observação sobre "média harmônica":

  • A média harmônica, diferente da média aritmética, dá mais peso para os valores menores.
  • Por exemplo, para os números 0,5 e 0,9:
    • a média aritmética é (0,5+0,9)/2 = 0,7
    • a média harmônica é 2×(0,5×0,9)/(0,5+0,9) = 0,64...

Métrica F1 (em problema binário)

É a média harmônica entre a "Precisão para a classe Positivo" e a "Revocação para a classe Positivo".

F1 = 2 × ( precisão × revocação ) ÷ ( precisão + revocação )

Matriz de
Confusão
Previsto
Positivo Negativo
Real Positivo VP FN
Negativo FP VN

Métrica F1 para a classe A

(F1-Score para a classe A) (F-Measure for class A) (F-Score for class A)

É a média harmônica entre a "Precisão para a classe A" e a "Revocação para a classe A".

F1 = 2 × ( "Precisão para a classe A" × "Revocação para a classe A" ) / ( "Pecisão para a classe A" + "Revocação para a classe A" )

Matriz de
Confusão
Previsto
A B C
Real A AA AB CA
B BA BB CB
C CA CB CC

Métrica F1 do classificador

A Métrica F1 é uma métrica que, apesar de ser calculada para classes específicas, usualmente também é calculada para o classificador como um todo.

Porém, não há uma fórmula padrão para a Métrica F1 do classificador. Existem várias abordagem.

Métrica F1 micro-média

(Micro-averaged F1-Score)

A Métrica F1 micro-média é igual a Acurácia, portanto, só é útil em classificadores que trabalham em conjuntos de instâncias com igual probabilidade para cada classe.

Métrica F1 macro-média

(Macro-averaged F1-Score)

É a média aritmética das Métricas F1 para todas as classes.

Assim como a "Métrica F1 micro-média", esta métrica é mais adequada para problemas com equilíbrio entre as classes.

Métrica F1 macro-média (em problema binário)

Sendo:

  • F1P = Métrica F1 para a classe Positivo
  • F1N = Métrica F1 para a classe Negativo

Métrica F1 macro-média = ( F1P + F1N ) /2

Métrica F1 macro-média (em problema multi-classe)

Sendo:

  • F1A = Métrica F1 para a classe A
  • F1B = Métrica F1 para a classe B
  • F1C = Métrica F1 para a classe C

Métrica F1 macro-média = ( F1A + F1B + F1C ) / 3

Métrica F1 ponderada por amostra

(Sample-weighted F1 score)

É a média ponderada das Métricas F1 para todas as classes, com relação à quantidade de vezes que a classe aparece no conjunto de teste.

Esta métrica é mais adequada para problemas sem equilíbrio entre as classes. Por exemplo, com prevalência de uma classe.

Métrica F1 ponderada por amostra (em problema binário)

Sendo:

  • RP = quantidade de entidades da classe "Positivo"
  • RN = quantidade de entidades da classe "Positivo"

Métrica F1 ponderada por amostra = ( F1P × RP + F1N × RN ) / ( RP + RN )

Métrica F1 ponderada por amostra (em problema multi-classe)

Sendo:

  • RA = quantidade de entidades da classe "A"
  • RB = quantidade de entidades da classe "B"
  • RC = quantidade de entidades da classe "C"

Métrica F1 ponderada por amostra = ( F1A × RA + F1B × RB + F1C × RC ) / ( RA + RB + RC )

Mais métricas

Métrica é um assunto extenso e dinâmico. Existem muitas técnicas de medir qualidade de métodos de aprendizado de máquina.

Não pretendo cobrir todas as métricas, nem aprofundar muito tecnicamente no assunto.

Minha tentativa foi de dar uma explicação básica, porém clara o suficiente para o assunto ser entendido, não decorado.

Das 6 métricas apresentadas neste artigo a maioria você encontrará em qualquer apresentação de trabalhos de aprendizado de máquina.

No próximo artigo cobrirei algumas métricas um pouco menos básicas, porém de uso comum e importante.

Espero que tenham aproveitado o conteúdo!

Nenhum comentário:

Postar um comentário