Métricas de Avaliação de Modelos de Classificação Binária

Jéssica Ramos
gsgcommunity
Published in
10 min readMar 20, 2021
Exemplo de resultado de classificação binária (fonte)

O objetivo desse texto é apresentar e discutir o uso de métricas de avaliação de modelos de classificação binária. Ele está organizado da seguinte forma:

1. Problemas de Classificação Binária

São problemas em que a resposta do modelo é binária. Os exemplos são muitos:

  • Detecção de Fraude (Fraude/Não Fraude);
  • Escoragem de Crédito (Inadimplente/Adimplente);
  • Propensão a Doenças (Diabético/Não Diabético)
  • Propensão de Venda (A compra é concluída/A compra não é concluída)

Em cada exemplo, a métrica de avaliação da qualidade de um modelo deve ser escolhida em termos do custo do erro em cada categoria e também da composição do banco de dados. Vamos pensar no exemplo da fraude. Em relação ao custo do erro, podemos pensar no balanceamento do custo entre uma transação boa que foi negada (falso positivo; o cliente perde uma venda) com o custo de uma transação fraudulenta que foi aprovada (falso negativo; custo da perda do produto e logística). Se o custo de um falso negativo é maior do que o custo de um falso positivo, devo levar isso em consideração na hora de avaliar o modelo.

Pensando agora na composição do banco de dados, é comum que em problemas envolvendo fraude apenas uma fração pequena das transações sejam fraudulentas (1% ou menos, dependendo do problema). Isso significa que a base de treino para o modelo é desbalanceada: uma das classes (transações fraudulentas) está sub representada em relação à outra (transações legítimas). Isso também deve ser levado em consideração, pois muitas das métricas têm como premissa um banco balanceado (50/50 ou próximo disso).

Em seguida serão apresentadas algumas das métricas mais importantes para avaliação de modelos de classificação binária. Existem muitas outras métricas que não serão abordadas aqui, mas que podem ser relevantes dependendo do contexto.

2. Medidas que dependem de valores de corte (threshold)

Geralmente, modelos de classificação binária retornam retornam um valor p, que pode ser interpretado como a probabilidade da observação ser da classe positiva. No exemplo da primeira parte, seria a probabilidade de uma transação ser fraudulenta.

Algumas medidas exigem que seja definido um ponto de corte nesse p (ou em alguma transformação dele) para converter a predição em categorias. Por exemplo, posso classificar como “fraudulentas” todas as transações com p > 0,1 e como “legítimas” as demais. Esse ponto de corte (conhecido também como threshold) deve ser escolhido com muito cuidado, pois altera completamente o resultado dessas métricas.

Mais à frente veremos também medidas que não dependem do valor do corte e que podem também ajudar a definir o ponto de corte ideal.

2.1. Acurácia e Taxa de Erro

A acurácia é definida como:

Ou seja, é um valor entre 0 e 1 que define a proporção de observações que foram classificadas corretamente pelo modelo. Essa medida é mais utilizada quando as duas categorias são igualmente importantes e o custo do erro é igual nas categorias.

A taxa de erro é o complementar da acurácia, ou seja:

As duas medidas podem ser apresentadas como percentuais para melhor entendimento.

2.2. Matriz de Confusão

A matriz de confusão é a base para diversas medidas que levam em consideração o erro em cada categoria da variável resposta. Para um problema em que a variável resposta pode assumir os valores 0 (negativo) ou 1 (positivo), o formato da matriz de confusão é a seguinte:

Onde:

  • VN é o número de Verdadeiros Negativos (predito = 0 e real = 0)
  • FP é o número de Falsos Positivos (predito = 1 e real = 0)
  • FN é o número de Falsos Negativos (predito = 0 e real = 1)
  • VP é o número de Verdadeiros Positivos (predito = 1 e real = 1)

As medidas de avaliação apresentadas a seguir são baseadas nas quantidades da matriz de confusão.

2.2.1. Sensibilidade (Recall) e Especificidade

A sensibilidade (também chamada de Recall) é uma medida de acurácia dentre os pedidos cujo valor real é positivo, ou seja:

A sensibilidade assume valores entre 0 e 1. Quanto maior o valor da sensibilidade, melhor a categoria positiva foi predita pelo modelo.

A especificidade tem o mesmo conceito, mas dessa vez avaliado nos pedidos da categoria negativa, ou seja:

A especificidade também assume valores entre 0 e 1, e quanto maior o seu valor, melhor a categoria negativa foi predita pelo modelo.

Geralmente, dado um banco de dados fixo, aumentar a sensibilidade significa reduzir a especificidade, e vice-versa. O equilíbrio dessas duas medidas depende muito da construção do problema. Se o custo de um falso negativo é muito maior do que o custo de um falso positivo, o cientista pode decidir priorizar a sensibilidade acima de especificidade.

Em bases de dados desbalanceadas é sempre interessante avaliar a especificidade e a sensibilidade da predição, pois essas medidas dão informações mais completas do que a acurácia.

Suponha um problema de classificação binária em que apenas 2% da base de dados é da categoria positiva. Um modelo que prediz a categoria negativa para todas as observações teria uma acurácia de 98%, pois erraria apenas nos 2% positivos. Entretanto, a sensibilidade desse modelo é de 0%. Se a categoria positiva é mais importante no problema (como geralmente é), esse modelo é muito ruim.

2.2.2. Precisão (Precision)

A precisão representa a fração das observações classificadas como positivas que de fato são positivas. É definida como:

A precisão e a sensibilidade estão muito interligadas. Se fixarmos um modelo, podemos aumentar ou diminuir a precisão alterando o valor de corte no p. Ao aumentar a precisão, diminuímos a sensibilidade e vice-versa. Por essa razão, essas medidas são frequentemente analisadas em conjunto.

2.2.3. F-Measure (F1-Score)

Principalmente em bases de dados desbalanceadas, a F-Measure é muito utilizada. Ela representa uma combinação da precisão (precision) e da sensibilidade (recall):

Ela assume valores entre 0 e 1, sendo que quanto maior o valor, melhor o modelo. Porém aqui estamos considerando tanto a precisão quanto a sensibilidade.

A F-Measure é uma abstração da Fβ-Measure que é calculada da seguinte forma:

Aumentar o valor de β dá maior peso para a sensibilidade e diminuir dá mais peso para a precisão. Os valores mais comuns para β são 0.5 e 2.

3. Outras medidas mais gerais

Existem também medidas de qualidade que não necessitam de uma definição de corte no valor de p para seu cálculo. Algumas delas vêm acompanhadas de análise gráfica e também podem auxiliar na escolha de um ponto de corte.

3.1. Curva ROC e AUC

A curva ROC (Receiver Operating Characteristics) é uma maneira de visualizar a eficiência de um modelo com base nas probabilidades geradas por ele. A curva é desenhada tendo no eixo x a Taxa de Falso Positivo (1 — Especificidade) e no eixo y a Taxa de Verdadeiro Positivo (Sensibilidade).

Como o gráfico acima mostra, temos como referência a reta y = x (reta vermelha), que é como um classificador aleatório em um cenário balanceado (50/50) se comportaria em média.

Um classificador aleatório prediz 1 para cada observação com probabilidade P(Y = 1) e 0 com probabilidade P(Y = 0), usando a base de treino como referência do cálculo das probabilidades. Por exemplo, se a base de treino tem 30% de observações Y = 1, então o classificador aleatório prediz 1 com probabilidade 0,3 e 0 com probabilidade 0,7.

Um classificador perfeito (que prediz probabilidade 1 para a categoria correta) teria o comportamento da curva roxa. Portanto, devemos analisar a curva tendo em mente que quanto mais próxima do canto superior esquerdo a curva estiver, melhor é o classificador.

Por meio da curva ROC podemos ver todas as combinações possíveis de valores para a sensibilidade e especificidade. Dessa forma, ela pode ser utilizada para ajudar a definir o melhor valor de corte com base na análise visual, por exemplo. Em cada ponto da curva temos um único p que corresponde ao ponto de corte.

Outra medida que podemos tirar da curva ROC é a AUC (Area Under the Curve). Já que queremos a curva que esteja mais próxima do canto superior esquerdo, podemos medir isso com base na área abaixo dela.

Pensando em termos de geometria, a área total do gráfico acima é 1, já que é um quadrado de lados de tamanho 1. O classificador aleatório teria uma AUC de 0.5. Portanto, esperamos que o AUC assuma valores entre 0.5 e 1, sendo que quanto maior, melhor o desempenho do modelo.

É importante lembrar que o AUC é uma medida resumo e curvas diferentes podem ter AUCs muito semelhantes. A análise visual do gráfico da curva ROC sempre agrega muito à análise.

3.2. Precision-Recall Curve

Em bases de dados muito desbalanceadas a curva ROC pode passar a impressão errada a respeito do desempenho do modelo. Um modelo com alta especificidade e baixa sensibilidade pode ter uma curva que parece muito boa e um AUC muito alto.

Nesse caso, a precision-recall curve pode ser uma alternativa. Nela temos a sensibilidade (recall) no eixo x e a precisão (precision) no eixo y. A precision-recall curve tem um comportamento muito parecido com a curva ROC e é interpretada de maneira muito semelhante: quanto mais próxima a curva estiver do canto superior direito, melhor o desempenho do modelo.

Da mesma maneira, podemos calcular a PRAUC, que é o AUC para a precision-recall curve. A PRAUC pode assumir valores entre 0 e 1 e o formato de uma curva considerada satisfatória depende muito do nível de desbalanceamento da base de dados. Bases de dados mais desbalanceadas tendem a ter PRAUC menores, ainda que os resultados sejam considerados satisfatórios. Assim como na AUC da curva ROC, quanto maior o valor da PRAUC, melhor o desempenho do modelo.

3.3. Kolmogorov-Smirnov (KS)

O KS é uma das medidas mais populares para modelos de classificação, principalmente quando falamos de modelos de crédito. O cálculo da estatística é o mesmo feito para o teste estatístico de Kolmogorov-Smirnov, que compara duas distribuições empíricas.

O gráfico do KS é composto pela distribuição acumulada do valor p gerado pelo modelo (ou mesmo uma transformação do p) em cada uma das categorias da variável resposta. O KS é então calculado como a maior diferença entre as duas curvas.

Como exemplo, considere um modelo de fraude em que a variável resposta assume valor 1 quando a transação é fraudulenta e 0 quando é legítima. O gráfico abaixo representa o desenho do gráfico KS para esse modelo.

A linha azul representa a distribuição acumulada de p para as observações que são transações fraudulentas e a linha verde a distribuição acumulada de 0 para as transações legítimas. O KS do modelo está destacado no gráfico. Ele pode assumir valores entre 0 e 1, sendo que quanto maior, melhor o desempenho do modelo. Esse modelo tem uma boa separação, pois há uma distância razoável entre as curvas.

O KS é uma medida resumo que leva em consideração apenas o ponto de maior separação entre as curvas. Portanto, é muito importante fazer a análise visual do gráfico do KS antes de definir um modelo como melhor do que outro. Curvas bem diferentes podem ter valores de KS bem semelhantes.

Uma alternativa para resumo deste gráfico é calcular a área entre as curvas. O raciocínio é bem semelhante: se existe boa separação entre as curvas, a área entre elas será grande. Como o gráfico é um quadrado 1 x 1, a área entre as curvas assume valores entre 0 ou 1, sendo que quanto maior, melhor.

3.4. Log-loss

O log-loss também é uma medida que independe da escolha de um ponto de corte. Algo muito interessante na sua composição, é que o valor de p é utilizado no cálculo. Ele compara o quão próximo p está do valor real da variável resposta. Quanto maior a diferença, maior o valor do log-loss. Portanto, um bom modelo tem um log-loss pequeno.

A medida é definida como:

O log-loss pode assumir qualquer valor entre 0 e ∞. Para saber o que é um bom log-loss, precisamos de uma base de comparação. Podemos calcular o log-loss de um classificador aleatório por exemplo.

4. Conclusão

Nesse texto foram apresentadas algumas das métricas de avaliação mais populares para modelos de classificação binária. Todas as métricas aqui abordadas podem ser calculadas na base de treino, de teste ou em cross-validation. A interpretação não muda.

Existem muitas outras medidas baseadas na matriz de confusão ou mesmo com outras construções, como o Kappa de Cohen. A escolha da métrica de avaliação de um modelo deve estar muito alinhada com o contexto de negócio no qual o modelo será utilizado e com a composição da base de dados disponível. Ao analisar modelos, utilizo (e também recomendo que seja utilizada) mais de uma métrica e também as análises visuais disponíveis.

Espero que esse texto tenha sido útil pra você! Caso esteja procurando mais conteúdos sobre análise de dados e machine learning você pode me encontrar no LinkedIn ou no Twitter.

Lave as mãos, use máscara e, se puder, fique em casa!

--

--

Jéssica Ramos
gsgcommunity

Statistician & Data Scientist interested in data visualization, machine learning, artificial intelligence, and computer vision.