Desenvolvimento

12 abr, 2019

Machine Learning: métricas para Modelos de Classificação

615 visualizações
Publicidade

Olá, pessoal!

Mês passado publiquei um artigo sobre como criar um classificador de textos utilizando o Azure Machine Learning. Que tal entendermos melhor as métricas de avaliação?

Neste artigo não vamos implementar nenhum modelo novo – usaremos os modelos de classificação criados em outro artigo. Você pode encontrar o modelo feito em Python ou feito com o Azure Machine Learning Studio.

O modelo de classificação que criamos indica se determinado comentário é positivo ou negativo em relação à um filme, lugar ou produto. Vamos manter esse exemplo durante a explicação das métricas.

Daremos uma olhada no resultado do modelo criado no Azure ML Studio:

A primeira coisa que podemos notar aqui é a matriz de confusão, composta pelos quatro primeiros valores: True positive, False negative, False positive e True negative:

Essa matriz é muito útil para avaliação de seu modelo. Primeiro porque os dados dela descrevem o resultado da classificação de cada registro, e segundo porque é através dela que obtemos as demais métricas.

Vamos entender o que são cada um desses valores da matriz:

  • True positive (TP): indica a quantidade de registros que foram classificados como positivos corretamente, ou seja, a resposta do classificador foi que o comentário era positivo e o comentário realmente era positivo.
  • True negative (TN): indica a quantidade de registros que foram classificados como negativos de maneira correta, ou seja, a resposta do classificador foi que o comentário era negativo e o comentário realmente era negativo.
  • False positive (FP): indica a quantidade de registros que foram classificados como comentários positivos de maneira incorreta, ou seja, a resposta do classificador foi que o comentário era positivo, mas o comentário era negativo.
  • False negative (FN): indica a quantidade de registros que foram classificados como comentários negativos de maneira incorreta, ou seja, a resposta do classificador foi que o comentário era negativo, mas o comentário era positivo.

Através desses quatro valores, seremos capazes de calcular os indicadores: Accuracy, Precision, Recall e F1 Score.

Accuracy

A Accuracy é o indicador mais simples de se calcular. Ele é simplesmente a divisão entre todos os acertos pelo total.

Quando uma pontuação alta significa algo?

Esse indicador pode acabar enganando um avaliador. Para essa pontuação significar algo, de fato, é necessário que a base de dados que foi utilizada para avaliação tenha uma boa variedade de resultados.

No nosso exemplo, dos 600 registros utilizados para treinar, 268 eram comentários positivos, ou seja, temos aproximadamente 45% positivos e 55% de negativos. Isso torna nossa base de avaliação um bom exemplo para quando utilizarmos a Accuracy.

Fique atento para os casos onde a base de dados utilizada para avaliação seja composta por majoritariamente um único tipo de resultado.

Usaremos um exemplo hipotético. Imagine que criamos um classificador para responder se um determinado exame contém ou não uma doença. Nesse cenário, nossa base de dados será composta por 90% de registros em que a doença não ocorre e apenas 10% de registros onde ocorre.

Imagine agora que nosso modelo sempre responde que não há doenças. Qual seria a Accuracy desse modelo?

Como nossa base é composta por 90% de registros onde de fato não há doença, nosso modelo teria uma Accuracy de 90%, mesmo ele sendo completamente horrível.

Precision

A Precision é utilizada para indicar a relação entre as previsões positivas realizadas corretamente e todas as previsões positivas (incluindo as falsas).

Para o nosso modelo ela seria utilizada para responder a seguinte questão:

  • De todos os comentários classificados como positivos, qual percentual realmente é positivo?

Quando uma pontuação alta significa algo?

A métrica Precision nos dá informação sobre falsos positivos, então trata-se de identificar um determinado resultado de maneira precisa.

Imagine que nossa base de dados contenha 1000 comentários, onde apenas 100 deles são positivo. Caso o modelo responda positivo apenas para um destes casos, a Precision ainda estaria 100%. Isso porque os falsos negativos não são considerados nessa métrica.

A principal utilização dessa métrica é para modelos onde é preciso minimizar os falsos positivos. Neste caso, quanto mais perto dos 100% chegarmos, melhor.

Recall

A métrica Recall é utilizada para indicar a relação entre as previsões positivas realizadas corretamente e todas as previsões que realmente são positivas (True Positives e False Negatives). Essa métrica é capaz de responder a questão:

  • De todos os comentários que realmente são positivos, qual percentual é identificado corretamente pelo modelo?

Quando uma pontuação alta significa algo?

A Recall nos dá informações sobre falsos negativos. Essa métrica por si só não é diretamente vinculada a classificar todos os casos corretamente. Ela indica o quanto nosso modelo está identificando os casos positivos corretamente.

A Recall é bastante útil quando precisamos minimizar os falsos negativos. Isso é especialmente útil para casos de diagnósticos, onde pode haver um dano muito maior em não identificar uma doença, do que identificá-la em pacientes saudáveis.

Sempre que precisarmos minimizar os falsos negativos devemos buscar uma maior pontuação nessa métrica.

F1 Score

Talvez a métrica F1 Score seja a menos intuitiva de entender, mas não é nada demais. De forma bastante simples, ela é uma maneira de visualizarmos as métricas Precision e Recall juntas.

Uma maneira de unir as duas métricas seria simplesmente calcular a média aritmética. O problema disso é que existem casos onde a Precision ou a Recall podem ser muito baixas enquanto a outra permanece alta.

Isso indicaria problemas na geração de falsos positivos ou negativos, conforme já vimos nos tópicos anteriores. Para ajustar isso, o cálculo é um pouco diferente, mas ainda acaba sendo uma média entre as duas métricas anteriores.

A média que iremos calcular é a média harmônica, quando os dois valores do cálculo são iguais. Essa média gera resultados muito próximos da média “comum”.

No entanto, sempre que os valores são diferentes, essa média se aproxima mais dos valores menores.

Quando uma pontuação alta significa algo?

Para boa parte dos problemas, o F1 Score é uma métrica melhor que a Accuracy, principalmente em casos onde falsos positivos e falsos negativos possuem impactos diferentes para seu modelo. Afinal, o F1 Score cria um resultado a partir dessas divergências.

Bom, galera, o artigo de hoje acaba aqui.

Espero que tenham gostado. Qualquer dúvida, correção ou sugestão, deixem nos comentários.

Até mais!