Como avaliar um modelo de Machine Learning: Classificação

Arthur Mesquita
comunidadeds
Published in
9 min readNov 29, 2023

Você está rodando seus primeiros modelos de Machine Learning, finalizando seus primeiros projetos de Classificação, e pode estar se perguntando: Como saber se meu modelo ficou bom? Para novas predições, qual é o desempenho esperado do meu modelo?

Essas são dúvidas bastante comuns e que precisam ser respondidas com atenção! Mas não se preocupe, hoje neste artigo você vai entender tudo sobre as métricas de avaliação de um modelo de Machine Learning em problemas de Classificação

Serão abordadas as seguintes métricas:

  1. Accuracy
  2. Precision
  3. Recall
  4. F1-Score

E ao final deste artigo, você entenderá qual aspecto cada métrica está avaliando no seu modelo e saberá identificar o modelo mais satisfatório frente a um conjunto de modelos avaliados

1. Tudo começa com a Matriz de Confusão

Essa é a matriz famosa por embaralhar a cabeça dos que tentam aprendê-la! Muitos já ouviram falar dela mas caso seja a sua primeira vez, explicaremos tudo passo a passo. É a partir dessa matriz que todas as métricas de avaliação dos modelos de classificação são calculadas.

1.1 O que é a Matriz de Confusão

Quando avaliamos um modelo de Machine Learning, qual é o nosso principal objetivo? Nós desejamos avaliar a capacidade do modelo de prever corretamente os estados frente a novas entradas, portanto, em essência, precisamos comparar o que foi predito pelo modelo (estado predito) com estado real. É a partir dessa comparação que saberemos o quão próximo nosso modelo está do ideal.

E isso é justamente o que a Matriz de Confusão faz. Ela compara em uma única matriz os estados preditos pelo modelo e os estados reais das observações. Vamos para um exemplo:

Imagine que um modelo realizou 100 predições no total para um problema de 2 classes. Ele classificou como 45 das observações como Classe Positiva e 55 das observações como Classe Negativa.

Ok, mas o que isso significa? Para saber o quão boas estão essas previsões, precisamos compará-las com os estados reais e entender o quanto fomos assertivos.

Quando fazemos essa comparação, podemos perceber, por exemplo, que nem todas as 45 predições ditas como Positivas pelo modelo estavam corretas. 5 das 45 previsões para a Classe Positiva estavam erradas e na verdade pertenciam à Classe Negativa.

Para a classe B podemos ver o mesmo. Das 55 predições ditas como Negativas, 10 na verdade estavam erradas e pertenciam à classe Positiva.

Agora que entendemos como ler e interpretar a uma Matriz de Confusão, vamos falar um pouco sobre os diferentes tipos de erro que um modelo de classificação pode cometer e como os identificamos pela Matriz.

1.2 Tipos de Erros e Acertos

Dentro da matriz de confusão, cada valor representa um tipo de erro e acerto realizado pelo modelo e a eles damos nomes específicos a fim de identificá-los. Vamos retornar ao exemplo dado anteriormente:

  • O 40 representa as classificações corretas da classe positiva, para isso, damos o nome de Verdadeiro Positivo (VP)
  • O 45 representa as classificações corretas da classe negativa, a qual damos o nome de Verdadeiro Negativo (VN)
  • O 10 representa as observações classificadas como negativas pelo modelo, mas na verdade eram positivas. À essas observações, damos o nome de Falso Negativo (FN) uma vez que foram classificadas como negativas “falsamente”, pois de fato não são
  • O 5 representa as observações classificadas como positivas pelo modelo, mas na verdade eram negativas. À essas observações damos o nome de Falso Positivo (FP) uma vez que foram classificadas como positivas “falsamente”, pois de fato não são

Essa é a matriz de confusão e, apesar de parecer complexa, seu objetivo é simples: comprar os estados preditos pelo modelo com os estados reais das observações. E é a partir dessa comparação, nascem todas as métricas para a avaliação dos modelos de classificação.

Veremos a seguir as principais métricas:

2. As Métricas de Avaliação

2.1 Acurácia

O objetivo da Accuracy, ou acurácia, é medir a taxa de previsões corretas realizadas pelo modelo. Assim, podemos criar uma formulação genérica para a acurácia da seguinte forma:

Traduzindo isso em termos práticos para o nosso exemplo de matriz, temos:

Portanto, caso em nosso exemplo a classe positiva represente uma transação fraudulenta e a classe negativa uma transação normal, teremos que o modelo seria capaz de classificar corretamente 85% de todas as transações.

A Acurácia é usada de uma forma geral para avaliar muitos modelos de classificação, mas devemos nos atentar ao balanceamento dos dados.

2.1.1 Acurácia e o balanceamento dos dados

Deve-se ficar atendo ao balanceamento dos dados ao avaliar a métrica de acurácia. Caso as classes positivas e negativas estejam em proporções muito distintas (desbalanceadas), a métrica de acurácia ficará distorcida, não refletindo exatamente a performance do modelo. Para ilustrar isso, vamos à um exemplo:

Imagine que estejamos tentando prever fraudes em transações: a classe positiva trata-se de transações fraudulentas e a negativa, de transações normais.

O problema de detecção de fraudes é naturalmente desbalanceado pois sempre temos uma quantidade muito pequena de exemplos positivos (classe minoritária) frente à uma grande maioria de exemplos negativos (ainda bem!). Suponha que a matriz de confusão do modelo seja a seguinte:

Se calcularmos a acurácia desse modelo, teremos:

Essa, em primeiro momento, parece uma excelente acurácia e o modelo parece estar pronto para ser colocado em produção, porém, se observarmos à matriz, notamos que as previsões das classes positivas (minoritárias neste caso), que são o cerne do problema em questão, tiveram uma taxa de acerto muito baixa.

Assim, apesar da alta acurácia, a modelo não é eficaz em solucionar o problema em questão que é a Detecção de Fraudes, ou seja, a maior parte das transações fraudulentas estão passando despercebidas apesar do modelo estar classificando corretamente a maior parte das transações.

Essa distorção acontece devido à grande diferença de proporção entre as classes. Neste caso, seria mais interessante avaliar outras métricas como a Precision, a Recall ou o F1-Score que veremos mais à frente.

2.2 Precision

A Precisão tem o objetivo de avaliar a taxa de acerto da classe positiva do modelo. Em outras palavras, de todas as predições dadas pelo modelo como positivas, quantas são de fato positivas? Podemos encarar essa métrica como sendo a precisão, de fato, do modelo em acertar a classe positiva.

Em uma formulação geral, a Precisão ficaria como:

Em nosso exemplo de referência, teríamos:

Assim, podemos interpretar que, de todas as predições positivas do modelo, 88,9% delas estão de fato corretas.

Existem alguns contextos em que a utilização dessa métrica é fundamental, que é quando falamos de investimentos por exemplo.

Se quisermos classificar uma ação como um bom ou um mal investimento, devemos ser precisos nessa decisão. Avaliar uma ação que é um bom investimento como um mal investimento (Falso Negativo) não gera muito prejuízo, mas avaliar um mal investimento como um bom (Falso Positivo) pode gerar prejuízos enormes para os interessados. Dessa forma, nesse contexto, a métrica de Precisão se faz muito útil

2.3 Recall

Recall é um termo que veio emprestado da área de Information Retrieval (Recuperação de Informação) cujo objetivo é recuperar informações contidas em diversos documentos dando ao usuário a resposta mais útil possível. Nesta área, o termo recall já era usado no sentido de medir a cobertura, ou seja, a taxa de documentos relevantes que foram recuperados dentre todos os documentos de fato relevantes.

No contexto de Machine Learning não é diferente. A intenção do Recall como métrica de classificação é medir o percentual de classificações corretas de classes positivas em relação ao total de classes positivas que de fato existem. Em outras palavras, poderíamos dizer que o Recall responde a pergunta: “De todas as classes positivas existentes, quanto o modelo foi capaz de classificar corretamente?”

Assim, podemos criar uma formulação genérica para o Recall da seguinte forma:

Em nosso exemplo de referência o Recall seria calculado da seguinte forma:

Portanto, podemos interpretar que nosso modelo foi capaz de classificar corretamente como classes positivas 90% de todas as classes realmente positivas!

Um contexto em que essa métrica é fundamental é em toda situação em que desejamos prever corretamente 100% dos casos positivos, mesmo que alguns casos sejam classificados falsamente como positivos (Falsos Positivos). Isso acontece por exemplo na área de detecção de doenças na saúde.

Quando um modelo é responsável por realizar o diagnóstico de um cancêr, deixar um paciente com câncer passar despercebido e voltar para casa (Falso Negativo) é muito grave e pode ocasionar em tragédia. Assim, é desejado que o modelo seja capaz de classificar como positivos todos os pacientes que de fato tem câncer, mesmo que alguns pacientes que estejam saudáveis também sejam classificados como positivos.

2.4 F1-Score

Agora que você já entendeu os conceitos e diferenças entre a Precision e a Recall, deve ter notado que existem uma relação de TradeOff entre eles, ou seja, se optarmos por aumentar a Precision, estaremos inevitavelmente reduzindo a Recall e vice e versa. Em resumo, não é possível ter as duas métricas muito altas, pois elas são inversamente proporcionais.

Isso à princípio pode não ser um problema. Caso o problema em questão seja o de detectar bons investimentos, a Precision provavelmente será a sua principal métrica pois os Falsos Positivos são extremamente prejudiciais neste tipo de problema. Já caso o seu problema seja como o de detecção de doenças, onde os Falsos Negativos devem ser evitados ao máximo, a Recall com certeza será a sua principal métrica. Porém, e quando o problema em questão não traz mais importância nem para a Precision nem para a Recall, o que fazer? Aí entra a nossa última métrica: o F1-Score.

O F1-Score é basicamente a média harmônica entre a Precision e a Recall. A formulação da média harmônica e do F1-Score são apresentados abaixo.

Neste caso a média harmônica é usada devido à forma com que lida com valores inversamente proporcionais como é o caso da Precision e da Recall. Essa formulação é afetada em maior grau por valores muito ruins de precision ou de recall, o que não aconteceria com a média aritmética convencional por exemplo. Em geral, a média harmônica retorna um valor sempre menor que a média aritmética para mesmos valores considerados.

Em nosso exemplo de referência, a métrica de F1-Score seria calculada como:

Assim, caso o problemas de classificação que esteja resolvendo não tenha preferência nem pela Precision nem pela Recall, a métrica de F1-Score é uma boa opção para ter uma visão mais geral e equilibrada do modelo.

3. Conclusão

Após a leitura desse texto, espero que você tenha compreendido melhor as métricas de avaliação de um modelo de classificação em Machine Learning, suas diferenças e contextos em que cada uma se faz mais útil.

Aprendemos aqui um pouco sobre a matriz de confusão, como ela é traçada e seus principais conceitos que serviram de base para entendermos as principais métricas de classificação. Vimos sobre a Acurácia e os cuidados que devemos ter ao analisá-la. Entendemos também a diferença entre Precision e Recall e a relação de TradeOff que existe entre elas e vimos como a métrica F1-Score resolve este problema.

Espero que com essa leitura você tenha ampliado seu conhecimento sobre o assunto e comece a utilizá-lo o quanto antes em seus projetos e no seu dia a dia de trabalho.

Se você gostou desse artigo não deixe de me seguir para acompanhar mais conteúdos deste tipo!

Agradeço por ter ficado comigo até aqui. Abraços!

--

--