Predição Conformal

Visão geral

Predição conformal (conformal prediction) é uma família de métodos que transforma predições pontuais (point predictions) (por exemplo, um único rótulo de classe ou uma única estimativa real) em conjuntos de predição (prediction sets) (para classificação) ou intervalos de predição (prediction intervals) (para regressão) com garantias de cobertura em amostra finita (finite-sample coverage guarantees) sob suposições mínimas.

A promessa central é:

Se seus dados de calibração (calibration data) e os dados futuros de teste forem trocáveis (exchangeable) (tipicamente i.i.d., isto é, independentes e identicamente distribuídos (i.i.d.) a partir da mesma distribuição), a predição conformal pode garantir que o resultado verdadeiro esteja no conjunto/intervalo retornado com probabilidade de pelo menos (1-\alpha), para qualquer modelo subjacente e para qualquer tamanho de amostra.

Isso é especialmente útil no aprendizado de máquina (machine learning, ML) moderno, em que modelos podem ser precisos porém excessivamente confiantes, e em que queremos estimativas de incerteza que permaneçam válidas mesmo para aprendizes complexos, como Redes Neurais ou árvores com boosting de gradiente (gradient-boosted trees).

A predição conformal se encaixa naturalmente na avaliação de ML junto a tópicos como Calibração, Métricas e Quantificação de Incerteza.

O que “cobertura” (coverage) significa

Dada uma taxa de erro desejada (\alpha \in (0,1)), um preditor conformal produz um conjunto (\Gamma(x)) tal que:

[ \mathbb{P}\left( Y \in \Gamma(X) \right) \ge 1-\alpha. ]

Isso é cobertura marginal (marginal coverage) (média sobre a distribuição conjunta de ((X,Y))). Isso não implica automaticamente cobertura condicional (conditional coverage):

[ \mathbb{P}(Y \in \Gamma(X)\mid X=x) \ge 1-\alpha \quad \text{para todo } x, ]

o que, em geral, é impossível de garantir de forma livre de distribuição (distribution-free) sem fazer suposições fortes. Na prática, a cobertura marginal ainda pode ser muito útil, e muitas variantes conformais tentam melhorar o comportamento condicional aproximado (por exemplo, estratificando ou normalizando pontuações).

Suposição-chave: trocabilidade (exchangeability)

A maioria das garantias conformais padrão exige que os exemplos de calibração e o exemplo futuro sejam trocáveis, isto é, que sua distribuição conjunta seja invariante a permutações. Uma condição suficiente comum é a amostragem i.i.d. a partir de uma distribuição fixa.

Essa suposição também é o que falha sob muitas formas de mudança de distribuição (distribution shift) — voltaremos a isso mais adiante.

A receita conformal (alto nível)

A predição conformal depende de três ingredientes:

  1. Um modelo base (base model) (\hat{f}) treinado em dados (qualquer modelo: regressão linear (linear regression), floresta aleatória (random forest), rede profunda (deep net), etc.).
  2. Uma pontuação de não conformidade (nonconformity score) (s(x,y)) que mede o quão “estranho” o rótulo (y) parece para a entrada (x) de acordo com o modelo.
  3. Um quantil (quantile), isto é, um limiar (threshold), calculado a partir das pontuações de calibração, usado para incluir todos os rótulos cuja pontuação não seja grande demais.

Intuição: se o rótulo verdadeiro tende a parecer “semelhante” aos rótulos verdadeiros passados, então ele deve ter uma pontuação comparável às pontuações de calibração. O método conformal usa isso para escolher um ponto de corte que controla o erro.

Predição conformal por divisão (split conformal) (indutiva)

O conformal por divisão (split conformal) (também chamado de conformal indutivo (inductive conformal)) é a abordagem prática mais comum porque é simples e escalável.

Divisão de dados

Você divide seus dados rotulados em:

  • Conjunto de treino: usado para treinar o modelo base (\hat{f}).
  • Conjunto de calibração: usado apenas para calcular quantis das pontuações.

Isso se relaciona a fluxos de trabalho de avaliação padrão como a Divisão Treino-Teste, mas aqui o conjunto de calibração tem um propósito diferente do conjunto de teste (ele é usado para construir conjuntos de incerteza).

Regressão: intervalos conformais por divisão via resíduos

Suponha que (\hat{f}(x)) prediz um número real. Uma pontuação de não conformidade padrão é o resíduo absoluto:

[ s(x,y)=|y-\hat{f}(x)|. ]

Algoritmo:

  1. Treine (\hat{f}) na partição de treino.
  2. Para cada ponto de calibração ((x_i,y_i)), compute (r_i=|y_i-\hat{f}(x_i)|).
  3. Seja (q) um quantil alto apropriado de ({r_i}_{i=1}^n).
  4. Para um novo (x), retorne o intervalo: [ \Gamma(x) = [\hat{f}(x)-q,; \hat{f}(x)+q]. ]

O detalhe do quantil em “amostra finita” (finite-sample)

Para garantir cobertura (\ge 1-\alpha) em amostras finitas, o método conformal usa um quantil ligeiramente conservador:

[ q = \text{o } \left\lceil (n+1)(1-\alpha)\right\rceil\text{-ésimo menor resíduo de calibração} ]

(onde (n) é o tamanho do conjunto de calibração). Muitas bibliotecas implementam isso com cuidado; se você implementar manualmente, não use o quantil empírico ingênuo sem verificar a indexação.

Exemplo prático (estilo Python)

import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor

X_train, X_cal, y_train, y_cal = train_test_split(X, y, test_size=0.2, random_state=0)

model = RandomForestRegressor().fit(X_train, y_train)

cal_resid = np.abs(y_cal - model.predict(X_cal))
n = len(cal_resid)
alpha = 0.1
k = int(np.ceil((n + 1) * (1 - alpha))) - 1  # zero-based index
q = np.sort(cal_resid)[min(k, n-1)]

def conformal_interval(x):
    yhat = model.predict(x.reshape(1, -1))[0]
    return (yhat - q, yhat + q)

Isso produz intervalos de predição marginais de 90% (se (\alpha=0.1)) sob i.i.d./trocabilidade.

Classificação: conjuntos de predição conformais por divisão

Para classificação, a saída é um conjunto de rótulos (\Gamma(x) \subseteq {1,\dots,K}) tal que:

[ \mathbb{P}(Y \in \Gamma(X)) \ge 1-\alpha. ]

Uma configuração comum supõe que o classificador retorna probabilidades (\hat{p}(y\mid x)) (frequentemente a partir de softmax (softmax)). Uma pontuação de não conformidade simples para a classe verdadeira é:

[ s(x,y) = 1 - \hat{p}(y\mid x). ]

Então:

  1. Compute as pontuações (s_i = 1-\hat{p}(y_i\mid x_i)) no conjunto de calibração.
  2. Seja (q) o quantil conformal dessas pontuações.
  3. Para um novo (x), inclua todos os rótulos cuja pontuação seja (\le q), equivalentemente: [ \Gamma(x)={y:; 1-\hat{p}(y\mid x) \le q} ={y:; \hat{p}(y\mid x) \ge 1-q}. ]

Variantes práticas mais fortes: APS e RAPS

A abordagem simples de limiar pode produzir conjuntos grandes demais ou pequenos demais dependendo da calibração de probabilidades e da estrutura das classes. Alternativas populares incluem:

  • APS (Conjuntos de Predição Adaptativos (Adaptive Prediction Sets)): ordena os rótulos pela probabilidade predita e inclui os principais rótulos até que a probabilidade cumulativa exceda um limiar calibrado. Isso tende a criar conjuntos menores quando o modelo está confiante.
  • RAPS (APS Regularizado (Regularized APS)): adiciona um termo de regularização para penalizar conjuntos grandes; melhora a estabilidade.

Esses métodos são amplamente usados na classificação conformal moderna porque se ajustam melhor à estrutura de ranqueamento de classificadores probabilísticos.

Observação sobre calibração de probabilidades

A predição conformal não exige que as probabilidades do classificador estejam calibradas para garantir cobertura. Mas a calibração frequentemente melhora a eficiência (efficiency) (conjuntos menores para a mesma cobertura). Veja Calibração para técnicas como escalonamento de temperatura (temperature scaling).

Conformal completo vs conformal por divisão

  • Conformal completo (full conformal) (também conhecido como conformal transdutivo (transductive conformal)) conceitualmente retreina ou reavalia a conformidade incluindo o(s) rótulo(s) candidato(s) do teste. Pode ser mais eficiente, mas é computacionalmente caro.
  • Conformal por divisão é o “cavalo de batalha” na prática: um ajuste de modelo + uma passada de calibração.

Também existem abordagens baseadas em validação cruzada que tentam recuperar parte da eficiência perdida pela divisão.

Conformal Jackknife+ (Jackknife+ conformal) (e CV+): melhores intervalos com menos dor de divisão

O conformal por divisão “gasta” dados na calibração, o que pode prejudicar a acurácia se os dados de treino forem escassos. Jackknife+ e CV+ são métodos que usam reajustes repetidos (ou dobras de validação cruzada) para melhorar a eficiência, mantendo garantias de cobertura em amostra finita sob trocabilidade.

Jackknife+ para regressão (conceito)

O Jackknife+ ajusta (n) modelos leave-one-out (leave-one-out):

  • Treine (\hat{f}^{(-i)}) em todos os dados exceto o ponto (i).
  • Calcule os resíduos no ponto deixado de fora: (r_i = |y_i - \hat{f}^{(-i)}(x_i)|).
  • Para um novo (x), considere o conjunto de intervalos candidatos: [ [\hat{f}^{(-i)}(x) - r_i,;\hat{f}^{(-i)}(x) + r_i] ]
  • Retorne um intervalo agregado, aproximadamente: [ [\text{quantil baixo de }(\hat{f}^{(-i)}(x)-r_i),; \text{quantil alto de }(\hat{f}^{(-i)}(x)+r_i)]. ]

O Jackknife+ é atraente porque usa todos os pontos tanto para ajuste quanto para uma pontuação “tipo calibração”, mas pode exigir muitos reajustes (caro para modelos grandes).

CV+ (validação cruzada+ (cross-validation+)) como alternativa escalável

O CV+ substitui reajustes leave-one-out por reajustes em (K) dobras:

  • Ajuste (K) modelos, cada um treinado em (K-1) dobras.
  • Calcule resíduos nas dobras mantidas fora.
  • Agregue intervalos de modo semelhante.

O CV+ frequentemente atinge um bom equilíbrio: muito mais barato que Jackknife+ e, em geral, com melhor eficiência do que o conformal por divisão.

Esses métodos se conectam naturalmente a conceitos de Validação e Validação Cruzada — exceto que o objetivo é ter conjuntos preditivos válidos, não apenas estimar desempenho.

Projetando pontuações de não conformidade: tornando os intervalos adaptativos

Uma pontuação baseada em resíduo produz intervalos de largura constante ao redor de (\hat{f}(x)), o que pode ser desperdiçador se o ruído variar com (x) (heterocedasticidade (heteroskedasticity)).

Melhorias comuns:

  • Resíduos normalizados: use um modelo (\hat{\sigma}(x)) e a pontuação [ s(x,y)=\frac{|y-\hat{f}(x)|}{\hat{\sigma}(x)}. ] Então retorne ([\hat{f}(x)\pm q\hat{\sigma}(x)]), gerando intervalos mais largos onde a incerteza é maior.

  • Modelos base de regressão quantílica: use preditores de quantil inferior/superior (\hat{q}_{\tau}(x)). O método conformal pode “envolver” (wrap) esses modelos para corrigir má calibração e restaurar cobertura em amostra finita.

  • Saídas multidimensionais: para regressão vetorial, as pontuações podem ser distância euclidiana (|y-\hat{f}(x)|), distância de Mahalanobis, ou perdas específicas da tarefa. A saída se torna uma região (por exemplo, uma bola/elipse), não um intervalo.

Regra prática: escolha uma pontuação que corresponda à sua noção desejada de erro (erro absoluto, perda assimétrica, saídas estruturadas) e produza conjuntos que sejam significativos para a aplicação.

Avaliação e diagnósticos

A predição conformal é um método de incerteza, então a avaliação trata de validade (validity) (cobertura) e eficiência (conjuntos pequenos), além de verificações de robustez.

Métricas centrais

  1. Cobertura empírica em um conjunto de teste mantido fora:

    • Regressão: fração de pontos com (y \in [L(x),U(x)])
    • Classificação: fração com (y \in \Gamma(x))
  2. Eficiência / informatividade (informativeness)

    • Regressão: comprimento médio do intervalo ( \mathbb{E}[U(x)-L(x)])
    • Classificação: tamanho médio do conjunto (\mathbb{E}[|\Gamma(x)|])
  3. Diagnósticos condicionais (fatias)

    • Cobertura por subgrupos: ( \text{coverage}(A)=\mathbb{P}(Y\in \Gamma(X)\mid X\in A) )
    • Use análise por coortes (cohort analysis) e ferramentas de fatiamento (slicing) de Análise de Erros (Fatiamento)
  4. Relação com a confiança do modelo

    • Para classificação, plote tamanho do conjunto vs. máxima probabilidade predita.
    • Para regressão, plote largura do intervalo vs. (\hat{\sigma}(x)) predito (se estiver usando resíduos normalizados).

Padrões comuns de falha

  • Subcobertura (undercoverage) em regiões específicas: a cobertura marginal vale, mas certas subpopulações podem ter cobertura menor.
  • Conjuntos grandes em todo lugar: válido, mas pouco útil; frequentemente devido a um modelo base fraco, features ruins, ou ruído de caudas pesadas (heavy-tailed noise).
  • Comportamento com desequilíbrio de classes: classes minoritárias podem exigir conjuntos maiores; considere abordagens estratificadas (abaixo). Veja Desequilíbrio de Classes.

Conformal Mondrian / conformal condicional por grupo (condicionalidade prática)

Uma abordagem popular para melhorar a validade por subgrupo é o conformal Mondrian (Mondrian conformal), que calibra pontuações dentro de grupos (por exemplo, pela classe predita, grupo demográfico ou outros estratos). Isso pode melhorar a cobertura condicional por grupo, mas reduz o tamanho da amostra de calibração por grupo.

Considerações práticas e fluxo de trabalho

Escolhendo \(\alpha\)

  • (\alpha=0.1) dá 90% de cobertura; (\alpha=0.05) dá 95%.
  • (\alpha) menor aumenta o tamanho do conjunto/intervalo.

Escolha (\alpha) com base no risco da aplicação: suporte à decisão médica pode exigir 95–99%, enquanto sistemas de recomendação podem tolerar 80–90%.

Trade-off do tamanho do conjunto de calibração

  • Conjunto de calibração maior → estimativa de quantil mais estável → cobertura mais confiável.
  • Mas reduz dados de treino (no conformal por divisão).

Se os dados forem limitados, considere CV+ em vez de uma divisão rígida.

“Sensação” de regressão vs. classificação

  • Intervalos de regressão geralmente são fáceis de interpretar e integrar em tomada de decisão a jusante (por exemplo, planejamento para o pior caso).
  • Conjuntos de classificação podem surpreender usuários (“aqui estão 3 rótulos plausíveis”). Muitas vezes é preciso pensar em UI/UX: mostrar probabilidades top-k mais “conjunto garantido”, ou usar conjuntos apenas quando a confiança estiver baixa.

Relação com estimação de incerteza

A predição conformal é complementar a métodos bayesianos (Bayesian methods), conjuntos de modelos (ensembles) e outras abordagens de Estimação de Incerteza:

  • Esses métodos visam estimar a incerteza.
  • O conformal visa garantir cobertura ao calibrar uma distribuição de pontuações.

Você pode combiná-los: por exemplo, usar a variância preditiva (predictive variance) de um conjunto de modelos como (\hat{\sigma}(x)) em uma pontuação conformal normalizada.

Mudança de distribuição: o que muda, o que você pode fazer

As garantias conformais dependem da trocabilidade entre calibração e teste. Sob mudança de distribuição, a cobertura pode falhar (muitas vezes virando subcobertura, o que é perigoso).

Tipos de mudança

  • Mudança de covariáveis (covariate shift): (P(X)) muda, mas (P(Y\mid X)) permanece o mesmo.
  • Mudança de rótulos (label shift): (P(Y)) muda.
  • Deriva de conceito (concept drift): (P(Y\mid X)) muda (mais difícil; não há almoço grátis).

Mitigações práticas

  1. Recalibre com frequência

    • Se você puder coletar novos dados rotulados, atualize a janela de calibração conformal regularmente.
    • Em geral, essa é a abordagem mais simples e eficaz.
  2. Divisão sensível ao tempo para séries temporais

  3. Conformal ponderado sob mudança de covariáveis (ponderação por importância (importance weighting))

    • Se você puder estimar pesos (w(x)\approx \frac{p_{\text{test}}(x)}{p_{\text{cal}}(x)}), pode formar um quantil ponderado das pontuações de calibração para mirar cobertura no teste.
    • Isso pode ajudar sob mudança de covariáveis, mas a estimação de pesos pode ser instável.
  4. Conformal estratificado/Mondrian

    • Se a mudança estiver concentrada em subgrupos conhecidos, calibre por subgrupo.
  5. Conformal online / calibração em janela móvel

    • Em cenários de streaming, mantenha um buffer de calibração e atualize limiares ao longo do tempo.
    • Tenha cuidado: garantir cobertura online tipicamente exige suposições e um desenho de protocolo cuidadoso.

Diagnósticos sob mudança

Quando você suspeitar de mudança, monitore:

  • Cobertura empírica em um pequeno conjunto canário (canary set) rotulado (se disponível)
  • Mudanças nas distribuições de features, distribuições de confiança e tamanhos de conjuntos
  • Deriva de cobertura baseada em fatias (por geografia, tipo de dispositivo, período de tempo etc.)

Isso se conecta naturalmente a monitoramento de avaliação e práticas de experimento (veja Desenho de Experimentos e Poder Estatístico para ideias de comparação rigorosa).

Onde a predição conformal é usada

  • Regressão de alto risco: previsão de demanda com buffers de risco, intervalos de predição de valores laboratoriais médicos, previsão de carga de energia
  • Classificação com abstenção (abstention): mostrar um conjunto de diagnósticos plausíveis; acionar revisão humana quando o tamanho do conjunto exceder um limiar
  • Aprendizado ativo (active learning) / priorização de rotulagem (labeling prioritization): rotular pontos com conjuntos/intervalos grandes
  • Ranqueamento e recuperação (ranking and retrieval): ideias conformais podem fornecer conjuntos de itens que atendem a um limiar de pontuação com controle de erro (mais especializado)

Limitações e equívocos comuns

  • “Conformal fornece probabilidades calibradas.” Não necessariamente. Ele fornece validade de conjuntos, não calibração de probabilidades (embora as duas possam interagir).
  • “A cobertura vale para cada indivíduo.” As garantias padrão são marginais, não por usuário/por-(x).
  • “Funciona sob qualquer mudança.” Não — a trocabilidade (ou uma adaptação como ponderação por importância correta) é fundamental.
  • “Os intervalos são sempre simétricos.” Apenas se você escolher pontuações simétricas; o conformal pode produzir conjuntos assimétricos ou estruturados dependendo da pontuação.

Resumo

A predição conformal oferece uma forma fundamentada e agnóstica ao modelo de transformar predições em conjuntos/intervalos com cobertura em amostra finita sob trocabilidade. Na prática:

  • Conformal por divisão é simples e amplamente usado.
  • Jackknife+ / CV+ melhoram a eficiência, especialmente com poucos dados.
  • Classificação e regressão diferem principalmente na escolha da pontuação e no formato da saída (conjuntos vs. intervalos).
  • A avaliação deve incluir não apenas cobertura, mas tamanho do conjunto, diagnósticos por fatias e verificações de robustez.
  • Sob mudança de distribuição, as garantias padrão podem falhar; mitigações práticas incluem recalibração frequente, calibração sensível ao tempo, estratificação e (com cuidado) métodos conformais ponderados.

A predição conformal tornou-se uma ferramenta fundamental em kits modernos de confiabilidade em ML — especialmente quando você precisa de incerteza com garantias, e não apenas heurísticas.