Regras de Pontuação Adequadas
Por que regras de pontuação próprias importam
Em muitos contextos de IA/aprendizado de máquina (AI/ML), um modelo não deve apenas prever o que vai acontecer, mas também o quão incerto ele está. Exemplos incluem:
- Um modelo médico que prevê 5% vs 40% de risco de AVC muda decisões clínicas.
- Um sistema de percepção para direção autônoma que decide se um objeto é um pedestre precisa de incerteza calibrada.
- Uma previsão do tempo de “70% de chance de chuva” só é significativa se afirmações desse tipo corresponderem à realidade ao longo do tempo.
Avaliar essas previsões probabilísticas (probabilistic predictions) exige métricas que recompensem dois objetivos:
- Calibração (calibration): probabilidades previstas correspondem a frequências observadas (entre eventos previstos com 0,7, cerca de 70% ocorrem).
- Nitidez (sharpness): previsões são confiantes quando apropriado (próximas de 0 ou 1), em vez de sempre “ficarem em cima do muro” perto de 0,5.
Um desafio central: muitas métricas podem ser “manipuladas”. Se uma métrica não incentivar adequadamente a honestidade, modelos (ou previsores) podem produzir probabilidades distorcidas que parecem boas sob a métrica, mas são menos úteis para tomada de decisão.
Regras de pontuação próprias (proper scoring rules) são projetadas para resolver isso: são funções de avaliação para previsões probabilísticas cuja estratégia ótima é relatar suas crenças verdadeiras.
Este tópico se conecta de perto ao aprendizado baseado em verossimilhança (likelihood) e à seleção de modelos (veja Critérios de Informação) e ao raciocínio probabilístico (veja Inferência Bayesiana e Variáveis Aleatórias e Distribuições).
Configuração: previsões probabilísticas como distribuições
Seja o resultado verdadeiro uma variável aleatória (Y) assumindo valores em algum espaço de resultados (\mathcal{Y}).
Uma previsão probabilística é uma distribuição (q) sobre (\mathcal{Y}):
- Classificação binária: (q) é uma única probabilidade (q = \Pr(Y=1)).
- Classificação multiclasse: (q) é um vetor de probabilidades ((q_1,\dots,q_K)) somando 1.
- Regressão / resultados contínuos: (q) é uma densidade (q(y)) (por exemplo, Gaussiana com média/variância).
Uma regra de pontuação (scoring rule) atribui uma pontuação numérica com base na distribuição prevista (q) e no resultado realizado (y):
[ S(q, y) ]
Há duas convenções de sinal:
- Forma de recompensa: maior é melhor.
- Forma de perda: menor é melhor.
Em aprendizado de máquina, frequentemente usamos a forma de perda (minimizar). Este artigo usa principalmente a forma de perda, mas as mesmas ideias se aplicam com os sinais invertidos.
Ao avaliar um conjunto de dados ({(q_i, y_i)}_{i=1}^n), tipicamente tiramos a média:
[ \frac{1}{n}\sum_{i=1}^n S(q_i, y_i) ]
Regras próprias vs estritamente próprias
Seja (p) a distribuição verdadeira geradora dos dados de (Y). Uma regra de pontuação (S) é:
- Própria se a pontuação esperada é minimizada quando você prevê a verdade: [ \mathbb{E}{Y \sim p}[S(q, Y)] \ge \mathbb{E}{Y \sim p}[S(p, Y)] \quad \text{para todo } q ]
- Estritamente própria (strictly proper) se a igualdade vale apenas quando (q = p) (isto é, ela incentiva de forma única o relato verdadeiro).
Intuição: se uma regra de pontuação é própria, então um previsor honesto que realmente acredita em (p) não consegue melhorar sua pontuação esperada relatando uma distribuição diferente (q). É por isso que regras de pontuação próprias são fundamentais em:
- avaliação de previsões (meteorologia, risco, finanças),
- avaliação probabilística em aprendizado de máquina (classificação calibrada, estimativa de incerteza),
- objetivos de treinamento (máxima verossimilhança (maximum likelihood) corresponde a uma regra de pontuação própria).
Por que métricas “impróprias” podem ser perigosas
Algumas métricas populares não são próprias para previsões probabilísticas:
- Acurácia ignora probabilidades e olha apenas para a classe mais provável. Ela não distingue confiança 0,51 vs 0,99.
- F1 score depende de limiarização, incentivando distorções de probabilidade que otimizam um ponto de operação específico.
- AUC avalia a qualidade do ranqueamento, não a correção das probabilidades.
Essas métricas podem ser úteis para objetivos específicos, mas elas não medem diretamente a qualidade das estimativas de probabilidade. Regras de pontuação próprias medem.
O escore logarítmico
Definição (resultados discretos)
Se (Y) assume valores discretos e você prevê probabilidades (q(y)), a perda do escore logarítmico (log score) é:
[ S_{\text{log}}(q, y) = -\log q(y) ]
Isso também é chamado de:
- log-verossimilhança negativa (negative log-likelihood, NLL) (quando (q) vem de um modelo paramétrico),
- perda de entropia cruzada (cross-entropy loss) em classificação (veja Perda de Entropia Cruzada).
Se você prevê probabilidade 0 para o evento que ocorre, a perda é infinita — refletindo que atribuir probabilidade impossível à realidade é maximamente ruim.
Por que é estritamente próprio (fato-chave)
Para o escore logarítmico, a perda esperada sob a distribuição verdadeira (p) é:
[ \mathbb{E}_{Y \sim p}[-\log q(Y)] = H(p) + \mathrm{KL}(p ,|, q) ]
onde:
- (H(p)) é a entropia (entropy) de (p),
- (\mathrm{KL}(p|q)) é a divergência de Kullback–Leibler (Kullback–Leibler divergence).
Como (\mathrm{KL}(p|q) \ge 0), com igualdade apenas quando (q=p), o escore logarítmico é estritamente próprio.
Essa identidade também explica por que maximizar a verossimilhança (equivalentemente minimizar NLL) é tão central: isso alinha o ajuste do modelo a uma regra de pontuação estritamente própria.
Exemplo prático (binário)
Suponha que o resultado verdadeiro seja (y=1).
- Modelo A prevê (q=0.9) [ -\log(0.9) \approx 0.105 ]
- Modelo B prevê (q=0.6) [ -\log(0.6) \approx 0.511 ]
O Modelo A é mais recompensado porque atribuiu maior probabilidade ao que ocorreu.
Se, em vez disso, (y=0), você usa (q(0)=1-q(1)). Uma previsão confiante e errada é penalizada fortemente, o que muitas vezes é desejável quando probabilidades orientam decisões.
Resultados contínuos: o escore logarítmico usa densidades
Para (Y) contínuo, o escore logarítmico se torna:
[ S_{\text{log}}(q, y) = -\log q(y) ]
onde (q(y)) é uma densidade de probabilidade (probability density), não uma probabilidade.
Implicações práticas importantes:
- Densidades têm unidades (por exemplo, “por grau Celsius”), então escores logarítmicos dependem da escala de medição. Isso complica comparações entre problemas distintos.
- O escore logarítmico pode ser muito sensível a outliers ou a leve especificação incorreta (uma Gaussiana estreita que erra o valor verdadeiro recebe uma penalidade enorme).
- Se seu modelo atribui densidade extremamente pequena ao valor observado, as perdas podem explodir.
Para algumas tarefas de regressão, alternativas como CRPS (abaixo) podem ser mais robustas.
O escore de Brier
Definição (binário)
Para resultados binários (y \in {0,1}) e probabilidade prevista (q=\Pr(Y=1)), o escore de Brier (Brier score) é:
[ S_{\text{Brier}}(q, y) = (q - y)^2 ]
Isto é simplesmente erro quadrático sobre a previsão de probabilidade.
Propriedades e intuição
- O escore de Brier é estritamente próprio para eventos binários.
- Ele penaliza excesso de confiança, mas de forma menos severa do que a perda logarítmica.
- Ele é limitado entre 0 e 1 (caso binário), o que pode torná-lo mais fácil de interpretar do que NLL.
Exemplo com (y=1):
- (q=0.9): ((0.9-1)^2=0.01)
- (q=0.6): ((0.6-1)^2=0.16)
Novamente, o modelo que atribui maior probabilidade ao evento verdadeiro obtém a melhor pontuação.
Escore de Brier multiclasse
Para (K) classes, represente o resultado como um vetor one-hot (y \in {0,1}^K) e preveja (q \in [0,1]^K), (\sum_k q_k=1). O escore de Brier multiclasse é:
[ S_{\text{Brier}}(q, y)=\sum_{k=1}^K (q_k - y_k)^2 ]
Isso permanece uma regra de pontuação própria sob condições padrão.
Decomposição: confiabilidade e resolução (por que previsores usam isso)
Um resultado clássico (frequentemente atribuído a Murphy) decompõe o escore de Brier (binário) em componentes ligados a:
- Confiabilidade (reliability) (calibração): as probabilidades são estatisticamente consistentes com os resultados?
- Resolução (resolution): o modelo separa situações em níveis de risco significativamente diferentes?
- Incerteza (uncertainty): aleatoriedade inerente do processo.
Essa decomposição ajuda a diagnosticar se você deve focar em calibração (por exemplo, temperature scaling) vs construir um modelo preditivo melhor.
Comparando escore logarítmico vs escore de Brier
Ambos são amplamente usados; nenhum domina em todos os contextos.
Escore logarítmico (NLL)
- Prós: estritamente próprio; diretamente ligado a verossimilhança, divergência de Kullback–Leibler e muitos objetivos de treinamento em aprendizado de máquina.
- Contras: pode penalizar severamente miscalibração rara porém grave; não limitado; sensível em contextos contínuos.
Escore de Brier
- Prós: limitado (binário); frequentemente mais interpretável; penalidades menos extremas; conecta-se à análise de calibração/resolução.
- Contras: não é tão alinhado a modelagem baseada em verossimilhança; em alguns cenários pode penalizar pouco atribuir pequena probabilidade ao evento verdadeiro em comparação ao escore logarítmico.
Na prática, é comum reportar ambos, especialmente para classificação binária.
Outras regras de pontuação próprias que você pode encontrar
CRPS (Continuous Ranked Probability Score)
Para resultados contínuos, o CRPS (Pontuação de Probabilidade Ranqueada Contínua) (Continuous Ranked Probability Score, CRPS) compara a CDF prevista (F_q) com o valor realizado (y):
[ \mathrm{CRPS}(F_q, y) = \int_{-\infty}^{\infty} (F_q(t) - \mathbf{1}{y \le t})^2 , dt ]
- Próprio para distribuições contínuas.
- Frequentemente mais robusto e interpretável do que o escore logarítmico para regressão.
- Para algumas distribuições (por exemplo, Gaussiana), o CRPS tem formas fechadas.
Escore de energia (multivariado contínuo)
Para alvos contínuos multivariados (por exemplo, trajetórias), o escore logarítmico é complicado e o CRPS generaliza de forma imperfeita. O escore de energia (energy score) é uma regra de pontuação própria que pode ser estimada a partir de amostras de (q), tornando-o útil para modelos probabilísticos implícitos e alguns contextos de previsão generativa.
Regras de pontuação próprias na prática de aprendizado de máquina
1) Avaliando classificadores probabilísticos (além da acurácia)
Se seu modelo produz probabilidades, avalie-as como probabilidades. Fluxo típico:
- Reporte perda logarítmica (NLL) e/ou escore de Brier em um conjunto de teste.
- Também avalie calibração (por exemplo, diagramas de confiabilidade (reliability diagrams), erro de calibração esperado (expected calibration error)), mas observe que algumas métricas de calibração não são próprias — use-as de forma diagnóstica, não como o único objetivo.
Regras de pontuação próprias respondem: “Se eu usar essas probabilidades em decisões downstream, quão boas elas são?” muito melhor do que a acurácia.
2) Objetivos de treinamento e consistência
Muitos modelos de aprendizado de máquina são treinados minimizando perdas que são regras de pontuação próprias:
- Softmax + entropia cruzada é (empiricamente) minimização do escore logarítmico para classificação.
- Maximizar verossimilhança para regressão probabilística é minimização do escore logarítmico.
Isso importa porque, se sua perda de treinamento é estritamente própria e sua classe de modelos é flexível o suficiente, otimizá-la empurra as distribuições previstas em direção à verdadeira distribuição condicional (p(y\mid x)).
Essa é uma das razões pelas quais a perda logarítmica é fundamental no aprendizado supervisionado probabilístico.
3) Comparação e seleção de modelos
Quando dois modelos produzem distribuições preditivas completas, pontuações próprias médias em dados de validação held-out fornecem uma comparação de modelos com bom embasamento.
- O escore logarítmico médio corresponde a comparar verossimilhanças preditivas.
- Em fluxos de trabalho bayesianos, a pontuação logarítmica sequencial (prequential) está intimamente relacionada à atualização bayesiana e ao desempenho preditivo (veja Inferência Bayesiana).
Critérios de informação como AIC e BIC podem ser vistos como aproximações do escore logarítmico esperado fora da amostra com diferentes penalidades (veja Critérios de Informação).
4) Métodos de calibração e sua avaliação
Técnicas de calibração pós-hoc (por exemplo, Platt scaling, temperature scaling, regressão isotônica) visam melhorar a qualidade das probabilidades. Regras de pontuação próprias são objetivos e métricas de avaliação naturais para esses procedimentos.
Uma prática comum e defensável:
- Ajustar a calibração em dados de validação minimizando NLL.
- Confirmar melhorias em um conjunto de teste separado usando NLL e/ou Brier, além de gráficos de calibração.
5) Tomada de decisão: alinhando probabilidades com utilidades
Regras de pontuação próprias vêm de uma visão de teoria da decisão: regras de pontuação são utilidades para afirmações probabilísticas. Quando probabilidades guiam ações (limiares de triagem, limites de risco, exploração vs exploração), uma avaliação imprópria pode levar a decisões sistematicamente erradas mesmo que a acurácia seja alta.
Exemplos de implementação (Python)
Perda logarítmica binária e escore de Brier
import numpy as np
def log_loss_binary(p, y, eps=1e-15):
"""
p: predicted probability of class 1 (array-like)
y: true labels in {0,1} (array-like)
"""
p = np.clip(np.asarray(p), eps, 1 - eps)
y = np.asarray(y)
return -(y * np.log(p) + (1 - y) * np.log(1 - p))
def brier_binary(p, y):
p = np.asarray(p)
y = np.asarray(y)
return (p - y) ** 2
# Example
p = np.array([0.9, 0.6, 0.2, 0.8])
y = np.array([1, 1, 0, 0])
print("mean log loss:", log_loss_binary(p, y).mean())
print("mean brier:", brier_binary(p, y).mean())
Notas:
- O clipping
epsevita perda logarítmica infinita quando um modelo produz exatamente 0 ou 1. Se o seu sistema pode produzir 0/1 exatos, você deve tratar isso como um problema de modelagem/projeto (isso implica certeza absoluta).
Perda logarítmica multiclasse e escore de Brier
import numpy as np
def log_loss_multiclass(P, y, eps=1e-15):
"""
P: shape (n, K) predicted probabilities
y: shape (n,) integer labels in {0,...,K-1}
"""
P = np.clip(np.asarray(P), eps, 1 - eps)
P = P / P.sum(axis=1, keepdims=True)
y = np.asarray(y)
return -np.log(P[np.arange(len(y)), y])
def brier_multiclass(P, y):
P = np.asarray(P)
y = np.asarray(y)
n, K = P.shape
Y = np.zeros((n, K))
Y[np.arange(n), y] = 1.0
return np.sum((P - Y) ** 2, axis=1)
# Example
P = np.array([[0.7, 0.2, 0.1],
[0.1, 0.8, 0.1],
[0.2, 0.2, 0.6]])
y = np.array([0, 1, 2])
print("mean multiclass log loss:", log_loss_multiclass(P, y).mean())
print("mean multiclass brier:", brier_multiclass(P, y).mean())
Armadilhas comuns e conselhos práticos
1) Não avalie probabilidades apenas com métricas de limiar
Métricas como acurácia/F1 não estão erradas — mas elas respondem a uma pergunta diferente (“Quão bom é o classificador em um limiar específico?”). Se sua saída é uma distribuição de probabilidades, inclua pelo menos uma regra de pontuação própria (NLL/escore logarítmico ou Brier).
2) Cuidado ao comparar escores logarítmicos entre alvos contínuos com escalas diferentes
Para resultados contínuos, o escore logarítmico depende da densidade e, portanto, das unidades/escala. Comparar NLL entre tarefas com convenções de unidade diferentes pode ser enganoso. Prefira comparações dentro da mesma tarefa, ou use pontuações próprias menos sensíveis à escala (por exemplo, CRPS) quando apropriado.
3) Desbalanceamento de classes e ponderação
Regras de pontuação próprias permanecem próprias sob a distribuição verdadeira, mas seu objetivo de avaliação pode precisar de ponderação se os custos de implantação diferirem por classe (por exemplo, falsos negativos são muito piores). Nesses casos, você pode:
- reportar pontuações próprias sem ponderação para “qualidade de probabilidade”, e
- otimizar/escolher limiares usando utilidades específicas da aplicação.
4) Evite “hackear probabilidades” via pós-processamento ajustado a uma métrica não própria
Se você ajustar probabilidades para otimizar uma métrica imprópria, pode degradar sua utilidade para decisões downstream. Use regras de pontuação próprias (ou utilidade do domínio) para ajustar.
5) Relatar incerteza exige incerteza honesta
Regras de pontuação próprias recompensam incerteza verdadeira. Se um modelo está incerto, ele deve dizer isso. Previsões erradas e superconfiantes são penalizadas — especialmente sob a perda logarítmica — incentivando uma melhor estimativa de incerteza.
Resumo
Regras de pontuação próprias são ferramentas com fundamento para avaliar previsões probabilísticas:
- Uma regra de pontuação é própria se a melhor previsão em expectativa é a distribuição verdadeira.
- Escore logarítmico / NLL é estritamente próprio e intimamente conectado a verossimilhança, entropia cruzada e divergência de Kullback–Leibler; é o padrão em grande parte do aprendizado de máquina.
- Escore de Brier é estritamente próprio (binário) e oferece penalidades limitadas e interpretáveis, com decomposições úteis relacionadas à calibração.
- Para resultados contínuos, considere alternativas próprias como CRPS quando o escore logarítmico for frágil demais ou sensível à escala.
Se o seu modelo produz probabilidades, regras de pontuação próprias ajudam a garantir que você o avalie (e muitas vezes o treine) de um modo que incentive incerteza honesta e relevante para decisões, em vez de apenas rótulos corretos.