Análise aprofundada de métricas de classificação
Matriz de confusão, precisão, revocação, F1, ROC-AUC e curva PR — escolhendo a métrica adequada.
Análise aprofundada de métricas de classificação é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.
A acurácia não é suficiente
A acurácia é a fração de previsões corretas, mas pode enganar em dados desbalanceados. Um modelo que prevê apenas a classe majoritária pode obter 99% de acurácia e ainda ser inútil para a classe minoritária.
A matriz de confusão
A matriz de confusão divide as previsões em verdadeiros positivos, falsos positivos, verdadeiros negativos e falsos negativos. Ela é a base de todas as outras métricas.
from sklearn.metrics import confusion_matrix
y_true = [0, 1, 1, 0, 1, 0]
y_pred = [0, 1, 0, 0, 1, 1]
print(confusion_matrix(y_true, y_pred))
# rows = actual, columns = predictedPrecisão
Precisão = TP / (TP + FP). De todos os itens classificados como positivos, quantos realmente são? Uma precisão alta significa poucos falsos alarmes. Isso é importante quando falsos positivos têm alto custo (por exemplo, filtros de mensagens indesejadas).
from sklearn.metrics import precision_score
print(precision_score(y_true, y_pred))Revocação
Revocação = TP / (TP + FN). De todos os positivos reais, quantos foram detectados? Uma revocação alta significa poucas não detecções. Isso é importante quando falsos negativos têm alto custo (por exemplo, triagem de doenças).
from sklearn.metrics import recall_score
print(recall_score(y_true, y_pred))Pontuação F1
A pontuação F1 é a média harmônica da precisão e da revocação: 2 * P * R / (P + R). Ela equilibra ambas e é útil quando você precisa de um único número em dados desbalanceados.
from sklearn.metrics import f1_score, classification_report
print(f1_score(y_true, y_pred))
print(classification_report(y_true, y_pred))Curva ROC e AUC
A curva ROC representa a taxa de verdadeiros positivos em relação à taxa de falsos positivos para diferentes limiares. roc_auc_score a resume: 1,0 é perfeito e 0,5 corresponde a palpites aleatórios.
from sklearn.metrics import roc_auc_score
# needs probability scores, not hard labels
proba = model.predict_proba(Xte)[:, 1]
print(roc_auc_score(yte, proba))Curva de precisão e revocação
A curva PR representa a precisão em relação à revocação para diferentes limiares. Ela é mais informativa do que a ROC quando as classes são muito desbalanceadas, pois se concentra na classe positiva.
from sklearn.metrics import precision_recall_curve
prec, rec, thresh = precision_recall_curve(yte, proba)
# plot rec (x) vs prec (y) to see the tradeoffPrecisão média
average_precision_score resume a curva PR em um único número (a área sob a curva PR). É a métrica de resumo preferida para classificação binária desbalanceada.
from sklearn.metrics import average_precision_score
print(average_precision_score(yte, proba))ROC AUC versus precisão média
A ROC AUC pode parecer otimista em dados desbalanceados porque os verdadeiros negativos predominam. A precisão média ignora os verdadeiros negativos e reflete com mais honestidade o desempenho na classe positiva minoritária.
Escolhendo a métrica adequada
Use F1 ou precisão média para problemas desbalanceados. Use ROC AUC para avaliar a qualidade da ordenação em classes equilibradas. Escolha precisão quando falsos alarmes forem prejudiciais e revocação quando não detecções forem prejudiciais. Sempre defina sua prioridade antes de escolher.
Ajuste do limiar
A maioria das métricas depende do limiar de decisão (padrão: 0,5). Ao mover o limiar, você troca precisão por revocação. Use a curva PR para escolher um limiar que atenda ao seu requisito de negócio.
import numpy as np
# pick threshold for at least 0.9 precision
idx = np.argmax(prec >= 0.9)
chosen = thresh[idx]
preds = (proba >= chosen).astype(int)Verificação rápida
Teste seus conhecimentos sobre métricas.
Recapitulação
Recapitulação: Comece pela confusion_matrix. A precisão penaliza falsos alarmes, a revocação penaliza não detecções e a F1 equilibra ambas. roc_auc_score mede a qualidade da ordenação; average_precision_score e a curva PR são melhores para dados desbalanceados. Ajuste o limiar de acordo com suas prioridades.
Perguntas Frequentes
A aula “Análise aprofundada de métricas de classificação” é grátis?
Sim — o texto completo de “Análise aprofundada de métricas de classificação” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.
O que vou aprender em “Análise aprofundada de métricas de classificação”?
Matriz de confusão, precisão, revocação, F1, ROC-AUC e curva PR — escolhendo a métrica adequada. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Learn AI with Python?
Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Análise aprofundada de métricas de classificação”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Learn AI with Python?
Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Estratégias de validação cruzada
- Análise aprofundada de métricas de classificação
- Busca em grade e busca aleatória
- Otimização bayesiana com Optuna