Classificação binária

Concluído

A classificação, como regressão, é uma técnica de machine learning supervisionada e, portanto, segue o mesmo processo iterativo de treinamento, validação e avaliação de modelos. Em vez de calcular valores numéricos como em um modelo de regressão, os algoritmos usados para treinar modelos de classificação calculam valores de probabilidade para atribuição de classe e as métricas de avaliação usadas para aferir o desempenho do modelo e comparam as classes previstas com as classes reais.

Os algoritmos de classificação binária são usados para treinar um modelo que prevê um dos dois rótulos possíveis para uma única classe. Basicamente, a previsão de verdadeiro ou falso. Na maioria dos cenários reais, as observações de dados usadas para treinar e validar o modelo consistem em vários valores de recurso (x) e um valor y que é 1 ou 0.

Exemplo – classificação binária

Para entender como funciona a classificação binária, vejamos um exemplo simplificado que usa um único recurso (x) para prever se o rótulo y é 1 ou 0. Neste exemplo, usaremos o nível de glicose no sangue de um paciente para prever se ele tem diabetes ou não. Aqui estão os dados com os quais treinaremos o modelo:

Diagram of a syringe. Diagram of a diabetic and non-diabetic person.
Glicose no sangue (x) Diabético? (y)
67 0
103 1
114 1
72 0
116 1
65 0

Treinamento de um modelo de classificação binária

Para treinar o modelo, usaremos um algoritmo para ajustar os dados de treinamento em uma função que calcula a probabilidade do rótulo de classe ser verdadeiro (em outras palavras, que o paciente tem diabetes). A probabilidade é medida como um valor entre 0,0 e 1,0, de modo que a probabilidade total para todas as classes possíveis seja 1,0. Então, por exemplo, se a probabilidade de um paciente ter diabetes é de 0,7, então há uma probabilidade correspondente de 0,3 de que o paciente não tenha diabetes.

Há muitos algoritmos que podem ser usados para classificação binária, como regressão logística, que deriva uma função sigmoide (em forma de S) com valores entre 0,0 e 1,0, desta forma:

Diagram of a logistic function.

Observação

Apesar do nome, no machine learning, a regressão logística é usada para classificação, não para regressão. O ponto importante é a natureza logística da função produzida, que descreve uma curva em forma de S entre um valor inferior e superior (0,0 e 1,0 quando usado para classificação binária).

A função produzida pelo algoritmo descreve a probabilidade de y ser verdadeiro (y=1) para um determinado valor de x. Matematicamente, você pode expressar a função desta forma:

f(x) = P(y=1 | x)

Para três das seis observações nos dados de treinamento, sabemos que y é definitivamente verdadeiro, portanto, a probabilidade para essas observações que y=1 é 1,0 e, para as outras três, sabemos que y é definitivamente falso, portanto, a probabilidade de y=1 é 0,0. A curva em forma de S descreve a distribuição de probabilidade, então, ao traçar um valor de x na linha, identifica-se a probabilidade correspondente de que y seja 1.

O diagrama também inclui uma linha horizontal para indicar o limite no qual um modelo baseado nessa função preverá verdadeiro (1) ou falso (0). O limite está no ponto médio de y (P(y) = 0,5). Para quaisquer valores neste ponto ou acima dele, o modelo preverá verdadeiro (1); enquanto para quaisquer valores abaixo deste ponto, preverá falso (0). Por exemplo, para um paciente com 90 de nível de glicose no sangue, a função resultaria em um valor de probabilidade de 0,9. Como 0,9 é maior que o limite de 0,5, o modelo prevê verdadeiro (1). Em outras palavras, a previsão é de que o paciente tem diabetes.

Avaliação de um modelo de classificação binária

Assim como ocorre com a regressão, ao treinar um modelo de classificação binária, você retém um subconjunto aleatório de dados pra validar o modelo treinado. Vamos supor que retivemos os seguintes dados para validar nosso classificador de diabetes:

Glicose no sangue (x) Diabético? (y)
66 0
107 1
112 1
71 0
87 1
89 1

A aplicação da função logística que derivamos anteriormente aos valores x resulta no gráfico a seguir.

Diagram of predicted labels on a sigmoid curve.

Com base na probabilidade calculada pela função estar acima ou abaixo do limite, o modelo gera um rótulo previsto de 1 ou 0 para cada observação. Em seguida, podemos comparar os rótulos de classe previstos (ŷ) com os rótulos de classe reais (y), conforme mostrado aqui:

Glicose no sangue (x) Diagnóstico real de diabetes (y) Diagnóstico previsto de diabetes (ŷ)
66 0 0
107 1 1
112 1 1
71 0 0
87 1 0
89 1 1

Métricas de avaliação de classificação binária

A primeira etapa no cálculo das métricas de avaliação de um modelo de classificação binária geralmente é criar uma matriz do número de previsões corretas e incorretas para cada rótulo de classe possível:

Diagram of a confusion matrix.

Essa visualização é chamada de matriz de confusão e mostra os totais da previsão em que:

  • ŷ=0 e y=0: Verdadeiros negativos (TN)
  • ŷ=1 e y=0: Falsos positivos (FP)
  • ŷ=0 e y=1: Falsos negativos (FN)
  • ŷ=1 e y=1: Verdadeiros positivos (TP)

A disposição da matriz de confusão é feita de forma que as previsões corretas (verdadeiras) sejam mostradas em uma linha diagonal do canto superior esquerdo ao canto inferior direito. Muitas vezes, a intensidade de cor é usada para indicar o número de previsões em cada célula; portanto, uma olhada rápida em um modelo que faz boas previsões deve revelar uma tendência diagonal profundamente sombreada.

Exatidão

A métrica mais simples que você pode calcular com base na matriz de confusão é a exatidão: a proporção de previsões que o modelo acertou. A exatidão é calculada como:

(TN+TP) ÷ (TN+FN+FP+TP)

No caso do nosso exemplo de diabetes, o cálculo é:

2+3 ÷ (2+1+0+3)

= 5 ÷ 6

= 0,83

Assim, para nossos dados de validação, o modelo de classificação de diabetes produziu previsões corretas em 83% das vezes.

Em um primeiro momento, a exatidão pode parecer uma boa métrica para avaliar um modelo, mas considere o seguinte. Suponha que 11% da população tenha diabetes. Você poderia criar um modelo que sempre prevê 0 e atingiria uma exatidão de 89%, embora não faça nenhuma tentativa real de diferenciar entre os pacientes avaliando suas características. O que realmente precisamos é de uma compreensão mais profunda de como o modelo se sai ao prever 1 para casos positivos e 0 para casos negativos.

Recall

Recall é uma métrica que mede a proporção de casos positivos identificados corretamente pelo modelo. Em outras palavras, em comparação com o número de pacientes que têm diabetes, quantos o modelo previu ter diabetes?

A fórmula para o recall é:

TP ÷ (TP+FN)

Para nosso exemplo de diabetes:

3 ÷ (3+1)

= 3 ÷ 4

= 0,75

Assim, nosso modelo identificou corretamente 75% dos pacientes que têm diabetes como diabéticos.

Precisão

Precisão é uma métrica semelhante ao recall, mas mede a proporção de casos positivos previstos em que o rótulo verdadeiro é realmente positivo. Em outras palavras, qual proporção dos pacientes previstos pelo modelo como diabéticos realmente tem diabetes?

A fórmula para precisão é:

TP ÷ (TP+FP)

Para nosso exemplo de diabetes:

3 ÷ (3+0)

= 3 ÷ 3

= 1,0

Portanto, 100% dos pacientes previstos pelo nosso modelo como diabéticos, de fato têm diabetes.

Medida F1

A medida F1 é uma métrica geral que combina recall e precisão. A fórmula para medida F1 é:

(2 x Precisão x Recall) ÷ (Precisão + Recall)

Para nosso exemplo de diabetes:

(2 x 1,0 x 0,75) ÷ (1,0 + 0,75)

= 1,5 ÷ 1,75

= 0,86

Área sob a curva (AUC)

Outro nome para recall é a taxa de verdadeiros positivos (TPR) e há uma métrica equivalente chamada taxa de falsos positivos (FPR) calculada como FP÷(FP+TN). Já sabemos que a TPR do nosso modelo ao usar um limite de 0,5 é 0,75; e podemos usar a fórmula para FPR para calcular um valor de 0÷2 = 0.

É claro que, se alterássemos o limite acima, a partir do qual o modelo prevê verdadeiro (1), isso afetaria o número de previsões positivas e negativas; e, portanto, alteraria as métricas de TPR e FPR. Essas métricas geralmente são usadas para avaliar um modelo plotando uma curva característica de operação do receptor (ROC) que compara a TPR e a FPR para cada valor limite possível entre 0,0 e 1,0:

Diagram of a ROC curve.

A curva ROC de um modelo perfeito subiria diretamente pelo eixo TPR à esquerda e, em seguida, atravessaria o eixo FPR na parte superior. Como a área de plotagem para a curva mede 1x1, a área perfeita sob essa curva seria 1,0 (o que significa que o modelo está correto 100% das vezes). Por outro lado, uma linha diagonal que vai do canto inferior esquerdo ao canto superior direito representa os resultados que seriam obtidos ao adivinhar aleatoriamente um rótulo binário; produzindo uma área sob a curva de 0,5. Em outras palavras, considerando dois rótulos de classe possíveis, você poderia esperar adivinhar corretamente 50% do tempo.

No caso do nosso modelo de diabetes, a curva acima é produzida e a área sob a métrica de curva (AUC) é 0,875. Como a AUC é maior que 0,5, podemos concluir que o modelo tem um desempenho melhor ao prever se um paciente tem diabetes ou não do que adivinhar aleatoriamente.