O que é pontuação F1 em aprendizado de máquina?


Em aprendizado de máquina e ciência de dadosavaliar um modelo é tão importante quanto construí-lo. Precisão costuma ser a primeira métrica que as pessoas usam, mas pode ser enganosa quando os dados estão desequilibrados. Por esse motivo, métricas como precisão, recall e pontuação F1 são amplamente utilizadas. Este artigo se concentra na pontuação da F1. Explica o que é a pontuação F1, por que é importante, como calculá-la e quando deve ser usada. O artigo também inclui um exemplo prático de Python usando o scikit-learn e discute erros comuns a serem evitados durante a avaliação do modelo.

Qual é a pontuação F1 em aprendizado de máquina?

A pontuação F1, também conhecida como pontuação F balanceada ou medida F, é uma métrica usada para avaliar um modelo combinando precisão e recall em um único valor. É comumente usado em problemas de classificação, especialmente quando os dados estão desequilibrados ou quando falsos positivos e falsos negativos são importantes.

A precisão mede quantos casos positivos previstos são realmente positivos. Em termos simples, responde à pergunta: de todos os casos positivos previstos, quantos estão corretos. Recall, também chamado de sensibilidade, mede quantos casos positivos reais o modelo identifica corretamente. Responde à pergunta: de todos os casos positivos reais, quantos o modelo detectou.

Precisão e recall muitas vezes têm uma compensação. Melhorar um pode reduzir o outro. A pontuação F1 aborda isso usando a média harmônica, que dá mais peso aos valores mais baixos. Como resultado, a pontuação F1 é alta apenas quando a precisão e a recuperação são altas.

F1 = 2 ×

Precisão × Recuperação

Precisão + recall

A pontuação F1 varia de 0 a 1 ou de 0 a 100%. Uma pontuação de 1 indica precisão e recall perfeitos. Uma pontuação 0 indica que a precisão ou o recall são zero ou ambos. Isto torna a pontuação F1 uma métrica confiável para avaliar modelos de classificação.

Leia também: 8 maneiras de melhorar a precisão dos modelos de aprendizado de máquina

Quando você deve usar a pontuação F1?

Quando a precisão por si só não consegue fornecer uma imagem clara do desempenho do modelo, a pontuação F1 é empregada. Isso ocorre principalmente em dados desequilibrados. Um modelo pode ser altamente preciso em tais situações, apenas fazendo previsões na maioria das courses. No entanto, pode falhar totalmente na identificação de grupos minoritários. A pontuação F1 é útil para resolver esse problema porque presta atenção à precisão e ao recall.

A pontuação F1 é útil quando os falsos positivos são importantes, assim como os falsos negativos. Ele fornece um valor pelo qual um modelo equilibra essas duas categorias de erros. Para ter uma pontuação F1 alta em um modelo, ele deve ter um bom desempenho em precisão e recall. Isso o torna mais confiável do que a precisão na maioria das tarefas realizadas no mundo actual.

O que é pontuação F1 em aprendizado de máquina?

Casos de uso reais da pontuação F1

A pontuação F1 é geralmente utilizada nas seguintes situações:

  • Problemas de classificação desequilibrados, como filtragem de spam, detecção de fraudes e diagnóstico médico.
  • Os sistemas de recuperação e busca de informações, nos quais os resultados úteis devem ser localizados com um número mínimo de falsas coincidências.
  • Ajuste de modelo ou limite, quando a precisão e a recuperação são importantes.

Quando uma forma de erro é significativamente mais cara que a outra, então esse tipo de erro não deve ser aplicado independentemente à pontuação F1. A recordação pode ser mais significativa caso seja pior perder um caso positivo. Quando os alarmes falsos são mais graves, a precisão pode ser o principal ponto de atenção. Quando a precisão e a capacidade de recordação são de igual importância, a pontuação F1 é a mais adequada.

Como calcular a pontuação F1 passo a passo

A pontuação F1 pode ser calculada uma vez conhecidas a precisão e a recuperação. Essas métricas são derivadas da matriz de confusão em um problema de classificação binária.

A precisão mede quantos casos positivos previstos são realmente positivos. É definido como:

Precisão =

PT

TP + FP

A recuperação é usada para determinar o número de positivos reais que são recuperados. É definido como:

Lembrar =

PT

TP + FN

Aqui, TP representa verdadeiros positivos, FP representa falsos positivos e FN representa falsos negativos.

Fórmula de pontuação F1 usando precisão e recall

Depois de conhecer a precisão (P) e a recuperação (R), a pontuação F1 pode ser determinada como a média harmônica dos dois:

F1 =

2×P×R

P+R

A média harmônica dá mais peso a valores menores. Como resultado, a pontuação F1 é puxada para o nível mais baixo de precisão ou recall. Por exemplo, se a precisão for 0,90 e a recuperação for 0,10, a pontuação F1 será aproximadamente 0,18. Se a precisão e a recuperação forem 0,50, a pontuação F1 também será 0,50.

Isso garante que uma pontuação F1 alta seja alcançada somente quando a precisão e o recall forem altos.

Fórmula de pontuação F1 usando a matriz de confusão

Também se pode escrever a mesma fórmula usando termos da matriz de confusão:

F1 =

2TP

2TP + FP + FN

Considerando um exemplo, quando o modelo é caracterizado pela precisão de 0,75 e recall de 0,60, a pontuação F1 é:

F1 =

2 × 0,75 × 0,60

0,75 + 0,60

=
0,90
/
1,35

0,67

Em problemas de classificação multiclasse, a pontuação F1 é calculada separadamente para cada classe e então calculada a média. A média macro trata todas as courses igualmente, enquanto a média ponderada considera a frequência das courses. Em conjuntos de dados altamente desequilibrados, F1 ponderado é geralmente a melhor métrica geral. Sempre verifique o método de média ao comparar o desempenho do modelo.

Calculando a pontuação F1 em Python usando scikit-learn

Um exemplo de classificação binária é o seguinte. Precisão, recall e pontuação F1 serão calculados com a ajuda do scikit-learn. Isso ajuda a demonstrar como essas métricas são práticas.

Para começar, traga as funções necessárias.

from sklearn.metrics import precision_score, recall_score, f1_score, classification_report 

Agora, defina os rótulos verdadeiros e as previsões do modelo para dez amostras.

# True labels 
y_true = (1, 1, 1, 1, 1, 0, 0, 0, 0, 0)   # 1 = optimistic, 0 = destructive 
 
# Predicted labels 
y_pred = (1, 0, 1, 1, 0, 0, 0, 1, 0, 0) 

Em seguida, calcule a precisão, o recall e a pontuação F1 para a classe positiva.

precision = precision_score(y_true, y_pred, pos_label=1) 
recall = recall_score(y_true, y_pred, pos_label=1) 
f1 = f1_score(y_true, y_pred, pos_label=1) 
 
print("Precision:", precision) 
print("Recall:", recall) 
print("F1 rating:", f1) 

Você também pode gerar um relatório de classificação completo.

print ("nClassification Report:n", classification_report(y_true, y_pred)) 

A execução deste código produz uma saída como a seguinte:

Precision: 0.75
Recall: 0.6
F1 rating: 0.6666666666666666

Relatório de classificação:

Classification Report:
              precision    recall  f1-score   assist

           0       0.67      0.80      0.73         5
           1       0.75      0.60      0.67         5

    accuracy                           0.70        10
   macro avg       0.71      0.70      0.70        10
weighted avg       0.71      0.70      0.70        10

Compreendendo a saída do relatório de classificação no scikit-learn

Vamos interpretar esses resultados.

Na categoria positiva (rótulo 1), a precisão é de 0,75. Isto implica que três quartos das amostras postuladas como positivas foram positivas. O recall é de 0,60, indicando que o modelo identificou corretamente 60% de todas as amostras verdadeiramente positivas. Quando esses dois valores são somados, o resultado é um valor de cerca de F1 de 0,67.

No caso da categoria negativa (rótulo 0), o recall é maior, 0,80. Isso demonstra que o modelo é mais eficaz na identificação do negativismo do que do positivismo. Sua precisão é de 70% no geral, o que não é uma medida da eficácia do modelo em cada classificação separada.

Isso pode ser visualizado mais facilmente no relatório de classificação. Apresenta precisão, recall e F1 pela classe, macro e médias ponderadas. Neste caso equilibrado, as pontuações macro e ponderadas da F1 são comparáveis. As pontuações F1 ponderadas em conjuntos de dados mais desequilibrados colocam mais ênfase na classe dominante.

Isto é demonstrado por um exemplo prático de cálculo e interpretação da pontuação F1. A pontuação F1 nos dados de validação/teste em projetos reais seria usada para determinar o equilíbrio de falsos positivos e falsos negativos seria como o seu modelo.

Melhores práticas e armadilhas comuns no uso da pontuação F1

Escolha F1 com base no seu objetivo:

  • F1 é usado quando a recuperação e a precisão são igualmente importantes.
  • Não há necessidade de usar F1 quando uma forma de erro é mais cara.
  • Use pontuações F ponderadas quando necessário.

Não confie apenas na F1:

  • F1 é uma métrica combinada.
  • Esconde o equilíbrio entre precisão e recuperação.
  • Sempre revise a precisão e o recall separadamente.

Lide com o desequilíbrio de classe com cuidado:

  • F1 tem um bom desempenho em comparação com a precisão quando confrontado com dados desequilibrados.
  • Os métodos de média afetam a pontuação closing.
  • A macro F1 trata todas as courses igualmente.
  • F1 ponderado favorece aulas frequentes.
  • Escolha o método que reflete seus objetivos.

Fique atento para previsões nulas ou ausentes:

  • F1 pode ser zero quando uma classe nunca é prevista.
  • Isso pode sinalizar um problema de modelo ou dados.
  • Sempre inspecione a matriz de confusão.

Use F1 com sabedoria para seleção de modelo:

  • F1 funciona bem para comparar modelos.
  • Pequenas diferenças podem não ser significativas.
  • Mix F1 com conhecimento de domínio e outras métricas.

Conclusão

A pontuação F1 é uma métrica forte para avaliando modelos de classificação. Ele combina precisão e recuperação em um único valor e é especialmente útil quando ambos os tipos de erros são importantes. É particularmente eficaz para problemas com dados desequilibrados.

Ao contrário da precisão, a pontuação da F1 destaca pontos fracos que a precisão pode esconder. Este artigo explicou o que é a pontuação F1, como ela é calculada e como interpretá-la usando exemplos de Python.

A pontuação F1 deve ser usada com cuidado, como qualquer métrica de avaliação. Funciona melhor quando a precisão e a recuperação são igualmente importantes. Sempre escolha métricas de avaliação com base nos objetivos do seu projeto. Quando usada no contexto certo, a pontuação F1 ajuda a construir modelos mais equilibrados e confiáveis.

Perguntas frequentes

Q1. Uma pontuação de 0,5 na F1 é boa?

A. Uma pontuação F1 de 0,5 indica desempenho moderado. Isso significa que o modelo equilibra mal a precisão e a recuperação e muitas vezes é aceitável apenas como uma linha de base, especialmente em conjuntos de dados desequilibrados ou modelos em estágio inicial.

Q2. O que é uma boa pontuação na F1?

R. Uma boa pontuação na F1 depende do problema. Geralmente, pontuações acima de 0,7 são consideradas decentes, acima de 0,8 fortes e acima de 0,9 excelentes, especialmente em tarefas de classificação com desequilíbrio de courses.

Q3. O F1 inferior é melhor?

R. Não. Pontuações mais baixas na F1 indicam pior desempenho. Como F1 combina precisão e recall, um valor mais alto sempre significa que o modelo está produzindo menos falsos positivos e falsos negativos em geral.

This autumn. Por que a pontuação F1 é usada no ML?

A. A pontuação F1 é usada quando existe desequilíbrio de classe ou quando falsos positivos e falsos negativos são importantes. Ele fornece uma métrica única que equilibra precisão e recall, ao contrário da precisão, que pode ser enganosa.

Q5. A precisão de 80% é boa no aprendizado de máquina?

R. A precisão de 80% pode ser boa ou ruim dependendo do contexto. Em conjuntos de dados equilibrados, isso pode ser aceitável, mas em problemas desequilibrados, a alta precisão pode ocultar o fraco desempenho nas courses minoritárias.

Q6. Devo usar precisão ou pontuação F1?

A. Use precisão para conjuntos de dados balanceados onde todos os erros são igualmente importantes. Use a pontuação F1 ao lidar com desequilíbrio de classe ou quando a precisão e a recordação forem mais importantes do que a correção geral.

Olá, sou Janvi, um entusiasta apaixonado pela ciência de dados que atualmente trabalha na Analytics Vidhya. Minha jornada no mundo dos dados começou com uma profunda curiosidade sobre como podemos extrair insights significativos de conjuntos de dados complexos.

Faça login para continuar lendo e desfrutar de conteúdo com curadoria de especialistas.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *