A acurácia é a métrica mais simples para avaliar classificadores: corresponde a % de acertos que o modelo teve ao se considerar todas as previsões que ele fez
De forma análoga, é possível calcular o erro dividindo o total de classificações erradas pelo total de itens.
Supondo um conjunto de dados com 1000 amostras, das quais 950 a resposta é SIM e 50 a resposta é NÃO, um modelo que sempre responde SIM sem fazer nenhum tipo de processamento terá 95% de acurácia. Na prática você tem um modelo inútil mas que tem uma acurácia alta
Muitas vezes, alguns tipos de erros são mais "custosos" que outros. Por exemplo, em caso de um classificador que diz se uma pessoa tem uma determinada doença ou não, é preferível que o classificador "erra para mais" ao dizer que uma pessoa saudável está doente (muito provavelmente essa pessoa irá fazer testes complementares que vão revelar que na verdade ela está saudável) do que mandar uma pessoa doente para casa ao dizer que ela está saudável. Asssim, é necessário alguma forma de avaliar quais tipos de erro o modelo está confundindo, quais classes ele está confundindo com quais, quais classes ele está com mais precisão, etc.
- Forma visual de representar os tipos de classificações que o modelo está produzindo
- Linhas representam as classes reais e colunas representam as classes classificadas pelo modelo (não é uma verdade absoluta, várias referências invertem as linhas com as colunas, sempre bom indicar para evitar erros na interpretação)
- Pode ser generalizada para classificadores com mais de 2 classes
Exemplo de matrizes de confusão:
Cada uma das 4 posições da matriz de confusão tem um nome, sendo eles:
- Verdadeiro Positivo(VP) ou True Positive(TP): caso em que o modelo respondeu SIM e a resposta esperada era SIM
- Verdadeiro Negativo(VN) ou True Negative(TN): caso em que o modelo respondeu NÃO e a resposta esperada era NÃO
- Falso Positivo(FP) ou False Positive(FP): caso em que o modelo respondeu SIM e a resposta esperada era NÃO
- Falso Negativo(FN) ou False Negative(FN): caso em que o modelo respondeu NÃO e a resposta esperada era SIM
Perceba que os elementos da diagonal principal são considerados acertos, enquanto os que estão fora dela são considerados erros.
- Avalia a capacidade do modelo de detectar corretamente os resultados positivos que são verdadeiramente positivos
-
De maneira mais informal: “De todos que a resposta é ‘SIM’, quantos o modelo detectou”
-
Uma sensibilidade alta indica que o modelo aprendeu a detectar a classe positiva
- Avalia a capacidade do modelo de detectar corretamente os resultados negativos que são verdadeiramente negativos
-
De maneira mais informal: “De todos que a resposta é ‘NÃO’, quantos o modelo detectou”
-
Uma especificidade alta indica que o modelo aprendeu a detectar a classe negativa
- Avalia o número de vezes que o modelo acertou em relação ao total de vezes que o modelo previu uma classe
-
De maneira mais informal: “De todos que o modelo respondeu ‘SIM”, quantos o modelo acertou”
-
Uma precisão alta indica que o modelo está confiante em prever esta classe
-
Junta a precisão e a sensibilidade para uma classe em uma única métrica
-
É uma média harmônica entre precisão e sensibilidade(garante que a métrica será baixa se uma das duas métricas for muito baixa mesmo que a outra seja bem alta)
- Exite uma versão mais "genérica" da f1-score que utiliza pesos, mas quase sempre a f1-score acaba sendo usada
-
Receiver operating characteristic(ROC) space ou espaço da característica de operação do receptor
-
Espaço em que o eixo Y representa a taxa de verdadeiros positivos (sensibilidade) e o Eixo X representa a taxa de falsos positivos (1 - especificidade)
-
De forma mais informal: "O eixo Y representa a razão entre o número de vezes que o modelo respondeu SIM e a resposta era SIM, enquanto o eixo X representa a razão entre o número de vezes que o modelo respondeu SIM e a respota era NÃO"
-
Perceba que ambos os eixos podem ser interpretados como uma porcentagem, e elas não são complementares, isso é, sua soma não deve obrigatóriamente dar 100% pois são porcentagens calculadas em cima de coisas diferentes
-
Uma vez que temos um modelo e suas métricas, podemos marcar um ponto no Espaço ROC referente a esse modelo
A figura abaixo possui 3 modelos A,B e C e seus respectivos pontos no Espaço ROC
Dentre os pontos do Espaço ROC, destaco os seguintes:
-
Ponto Ótimo (0,1): modelo perfeito, 0% de taxa de falsos positivos (ou seja, de todas as vezes que a resposta era NÃO, 0% ele respondeu SIM) e 100% de taxa de verdadeiros positivos (de todas as vezes que a resposta era SIM, 100% ele respondeu SIM); O ideal é que o seu modelo esteja próximo a essa região
-
Inferno ROC (1,0): pior modelo possível, 100% de taxa de falsos positivos (ou seja, de todas as vezes que a resposta era NÃO, 100% ele respondeu SIM) e 0% de taxa de verdadeiros positivos (ou seja, de todas as vezes que a resposta era SIM, 0% ele respondeu SIM); O ideal é que o seu modelo esteja longe dessa região
-
Origem (0,0): nessa região, estão localizados os modelos que sempre respondem NÃO. Imagine que seu modelo não faça nenhum tipo de processamento e sempre responda que NÃO. Seu modelo vai ter 0% de taxa de verdadeiro positivo(de todos os casos que a resposta é SIM, 0% delas seu modelo respondeu SIM) e 0% de taxa de falsos positivos (de todos as vezes que a resposta era NÃO, 0% delas o seu modelo respondeu SIM).
-
Canto Superior Esquerdo (1,1): nessa região, estão localizados os modelos que sempre respondem SIM. Imagine que seu modelo não faça nenhum tipo de processamento e sempre responda que SIM. Seu modelo vai ter 100% de taxa de verdadeiro positivo(de todos os casos que a resposta é SIM, 100% delas seu modelo respondeu SIM) e 100% de taxa de falsos positivos (de todos as vezes que a resposta era NÃO, 100% delas o seu modelo respondeu SIM).
-
Linha de Referência: corresponde a linha da função identidade. Modelos que caem próximo a essa linha se comportam de forma aleatória, isso é, acertam tanto quanto se eles tivessem chutado
Alguns modelos operam com um tipo de limiar para realizar suas classificações. Um exemplo é a regressão logística, que é um classificador binário (ou seja, classifica apenas em duas classes). No entanto, em vez de determinar se um exemplo é positivo ou negativo, a regressão logística fornece uma probabilidade de o exemplo ser positivo (e, consequentemente, uma probabilidade de ser negativo).
Dessa forma, é necessário estabelecer um limite/limiar. Por exemplo, um limiar de 50% implica que se a probabilidade de ser positivo for superior a 50%, então o modelo responde 'SIM', caso contrário, 'NÃO'. Esse limite poderia ser ajustado para 60% ou 40%. É necessário testar diferentes valores de limites e comparar como o desempenho do modelo é afetado por essas variações.
A curva ROC é a curva formado por diversos pontos, onde cada ponto representa um modelo treinado com um limiar diferente. Essa curva pode ser empregada na seleção do melhor limiar, isto é, o limite que faz o modelo se aproximar mais do ponto ideal (0,1).
Na imagem acima, cada ponto representa um modelo de regressão logística treinado com um limiar diferente. Os limites que produziram pontos mais próximos ao ponto (0,1) são recomendados.
A curva ROC também pode ser usada para comparar 2 ou mais modelos diferentes
Uma métrica muito usada para comparar duas curvas ROC é calcular a área de cada curva. Essa métrica varia de 0 a 1, e pode nos ajudar a escolher um modelo que esteja tenha a curva mais próxima do ponto ideal
No exemplo acima, o modelo que produziu a curva ROC 1 está mais próximo do ideal e possui uma área maior, enquanto o modelo que produziu a curva ROC 2 está mais próximo de um modelo aleatório.
Até então, tanto a matriz de confusão, as métricas apresentadas e a curva ROC estavam se referindo a classificadores binários, mas todos os elemtnos citados podem ser adaptados para classificadores que fazem previsões para mais de 2 classes.
Consiste em uma matriz N x N, onde o elemento da linha i e coluna j representa o número de vezes que o modelo previu i e a resposta correta era j
Perceba que as previsões da diagonal principal são consideras acertos, enquanto as que estão fora são consideradas erros
As métricas também podem ser adaptadas para cada classe
Como é possível perceber pela imagem, precisão reflete a "confiança" do modelo ao responder uma classe, isso é, de todas as vezes que ele respondeu uma determinada classe, quantas ele acertou. A sensibilidade/recall reflete o quão bem o modelo aprendeu a detectar uma classe, isso é, de todas as vezes que a resposta esperada era de uma classe, quantas o modelo acertou
Para calcular a F1 de cada classe, basta fazer a média harmônica entre a precisão e o recall da respectiva classe
A curva ROC também pode ser generalizada para modelos de classificação multiclasse. Em vez de ter apenas uma curva (como em um modelo binário), você pode criar curvas individuais para cada classe. Para fazer isso, precisamos calcular a sensibilidade (ou recall) para cada classe.
A sensibilidade/recall de uma classe é determinada pelo número de vezes que o modelo corretamente previu essa classe, dividido pelo número total de exemplos que pertencem a essa classe. Já no eixo X, para cada classe é calculado como 1 menos a especificidade, issso é, o número de vezes que o modelo previu essa determinada classe quando na verdade a resposta real era outra classe.
Perceba na imagem acima que também é possível calcular 2 curvas médias, sendo uma a média macro e a outra a média micro. A média macro de uma métrica corresponde a média simples dessa métrica calculada para cada classe. Então em um classficador com 4 classes, por exemplo, para calcular a precisão média macro, basta calcular a precisão de cada classe, somar essas 4 precisões e dividir por 4. Já para calcular a precisão média micro, você calcula usando o "Verdadeiros Positivos" gerais, isso é, a soma dos verdadeiros positivos de cada classe e também o mesmo com o verdadeiros negativos.
-
ROC and AUC, Clearly Explained! - StatQuest (https://www.youtube.com/watch?v=4jRBRDbJemM)
-
Machine Learning Fundamentals: The Confusion Matrix - StatQuest (https://www.youtube.com/watch?v=vP06aMoz4v8)
-
Machine Learning Fundamentals: Sensitivity and Specificity - StatQuest (https://www.youtube.com/watch?v=vP06aMoz4v8)
-
Inteligência Artificial - Uma Abordagem de Aprendizado de Máquina - André Carlos Ponce de Leon Ferreira Et Al. Carvalho
-
Micro-average, Macro-average, Weighting: Precision, Recall, F1-Score (https://vitalflux.com/micro-average-macro-average-scoring-metrics-multi-class-classification-python/#When_to_use_Micro-averaging_Macro-averaging_Weighting_scores)