Classificação binária

Concluído

Observação

Consulte a guia Texto e imagens para obter mais detalhes!

A classificação, como a regressão, é uma técnica de aprendizado de máquina 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 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 avaliar o desempenho do modelo comparam as classes previstas com as classes reais.

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. Essencialmente, prever true ou false. 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 seja 1 ou 0.

Exemplo – classificação binária

Para entender como a classificação binária funciona, vamos examinar 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 o paciente tem diabetes ou não. Aqui estão os dados com os quais treinaremos o modelo:

Diagrama de uma seringa. Diagrama de uma pessoa diabética e não diabética.
Glicose no sangue (x) Diabético? (y)
67 0
103 1
114 1
Setenta e dois 0
116 1
65 0

Treinar um modelo de classificação binária

Para treinar o modelo, usaremos um algoritmo para ajustar os dados de treinamento a 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 de 1,0. Então, por exemplo, se a probabilidade de um paciente ter diabetes for 0,7, então há uma probabilidade correspondente de 0,3 de que o paciente não seja diabético.

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

Diagrama de uma função logística.

Observação

Apesar de seu nome, em machine learning o termo regressão logística é empregado para classificação, não para regressão. O ponto importante é a natureza logística da função que ela produz, 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 true (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 para que plotar um valor de x na linha identifique a probabilidade correspondente de y ser 1.

O diagrama também inclui uma linha horizontal para indicar o limite no qual um modelo baseado nessa função preverá true (1) ou false (0). O limite está no ponto médio para y (P(y) = 0,5). Para quaisquer valores neste ponto ou acima, o modelo preverá true (1); enquanto para quaisquer valores abaixo deste ponto, ele preverá false (0). Por exemplo, para um paciente com um nível de glicose no sangue de 90, 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, prevê-se que o paciente tenha diabetes.

Avaliando 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 com o qual 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

Aplicar a função logística derivada anteriormente aos valores x resulta no gráfico a seguir.

Diagrama de rótulos previstos em uma curva sigmóide.

Com base em se a probabilidade calculada pela função está 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 para 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:

Diagrama de uma matriz de confusão.

Essa visualização é chamada de matriz de confusão e mostra os totais de 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 é tal que as previsões corretas (verdadeiras) são mostradas em uma linha diagonal do canto superior esquerdo para o canto inferior direito. Muitas vezes, a intensidade de cor é usada para indicar o número de previsões em cada célula, portanto, um rápido olhar para um modelo que prevê bem 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 precisão - a proporção de previsões que o modelo acertou. A precisã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.

A precisão pode inicialmente parecer uma boa métrica para avaliar um modelo, mas considere isso. Suponha que 11% da população tenha diabetes. Você poderia criar um modelo que sempre preveja 0 e ele alcançaria uma precisão de 89%, embora não faça nenhuma tentativa real de diferenciar os pacientes avaliando suas características. O que realmente precisamos é de uma compreensão mais profunda de como o modelo é executado na previsão de 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 revocação é:

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

A 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 para ter diabetes realmente tem diabetes?

A fórmula para precisão é:

TP ÷ (TP+FP)

Para nosso exemplo de diabetes:

3 ÷ (3+0)

= 3 ÷ 3

= 1.0

Assim, 100% dos pacientes previstos pelo nosso modelo para ter diabetes de fato têm diabetes.

Medida F1

A medida F1 é uma métrica geral que combina recall e precisão. A fórmula para a pontuação 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 verdadeira positiva (TPR) e há uma métrica equivalente chamada FPR ( taxa de falso positivo ) calculada como FP÷(FP+TN). Já sabemos que a TPR para 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 do qual o modelo prevê verdadeiro (1), isso afetaria o número de previsões positivas e negativas; e, portanto, altere as métricas de TPR e FPR. Essas métricas geralmente são usadas para avaliar um modelo plotando uma curva ROC ( característica do operador recebido ) que compara a TPR e a FPR para cada valor de limite possível entre 0,0 e 1,0:

Diagrama de uma curva ROC.

A curva ROC para um modelo perfeito subiria diretamente o 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 do canto inferior esquerdo para o canto superior direito representa os resultados que seriam obtidos adivinhando 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 é gerada e a métrica de área sob a 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.