Quantificando Incerteza de Modelos de Regressão com Previsão Conforme

Gustavo Bruschi
Data Hackers
Published in
12 min readOct 3, 2023

--

Tutorial prático de Previsões Conformes (Conformal Predictions) para quantificar incertezas em modelos de Regressão

Nos tutoriais anteriores, dei uma breve explicada sobre o que é Previsão Conforme, alguns métodos para o caso de Classificação Multiclass e para Classificação Binária. É um método versátil que pode transformar qualquer incerteza de modelos de Machine Learning em uma ferramenta confiável.

Neste tutorial, pretendo trazer outra utilização relevante das Previsões Conformes, demonstrando detalhadamente, como podemos utilizá-las em modelos de Regressão.

Não confie em previsões pontuais - Intervalo de Confiança x Intervalo de Previsão

Um grande desejo do ser humano é fazer prever o futuro. As previsões realizadas por modelos conseguem caracterizar e reduzir a incerteza, mas isso não a elimina completamente.

Na regressão (e séries temporais também), o target está em uma escala contínua, ao contrário da classificação, onde o objetivo é prever classes distintas (ex: cachorro e gato). Quando aplicamos alguma função perda para treinar o modelo de regressão, como por exemplo a L2 𝐿(𝑦, 𝑥) = (𝑦 − 𝑥)2, a previsão do modelo pode ser interpretada como a média condicional do alvo: 𝔼(𝑌 |𝑋). O que gerará uma previsão pontual.

Com a previsão conforme, podemos transformar essa previsão de ponto em um intervalo de previsão que vem com a garantia de cobrir o verdadeiro resultado em observações futuras.

E relembrando, intervalo de confiança e intervalos de previsão não são a mesma coisa, não os confunda !

Intervalos de Confiança (ICs) são estimativas calculadas a partir de dados de amostra para determinar os intervalos que provavelmente contêm o parâmetro populacional (por ex: média, desvio padrão, etc) de interesse. Por exemplo, assumindo distribuição normal, se nossa população possuí média 2 e desvio padrão 6, um IC da média sugere que a média da população provavelmente está entre 2 e 6. E com que segurança podemos dizer isso ? Obviamente 100%, certo ? Porque conhecemos todos os valores e podemos calculá-los com muita facilidade.

No mundo real isso seria praticamente impossível, então nos baseamos em parâmetros amostrais. Nos baseando em múltiplas amostras aleatórias das mesma população (afinal uma única amostra não é confiável), calculamos os ICs para cada amostra e uma certa porcentagem dessas faixas conterá o verdadeiro parâmetro da população.

Essa certa porcentagem é chamada de nível de confiança. Um nível de confiança de 95% significa que, de 100 amostras aleatórias coletadas, espero que 95 dos intervalos de confiança contenham o verdadeiro parâmetro da população.

Agora, os Intervalos de Previsão (IP) é um intervalo estimado de valores que pode conter o valor provável de uma única nova observação, com base em dados anteriores. Geralmente o IP é estimado por um modelo de regressão ou série temporal para prever o valor de uma variável independente.

Aqui, o nível de confiança tem outro propósito. Um nível de confiança de 95% significa que, a previsão do modelo fiquem dentro de uma determinada faixa de valores.

IPs e ICs de certa forma são relacionados, mas de longe são conceitos super diferentes, dado como possuem propósitos e maneira de ser calculados diferentes.

O IP prevê em que faixa uma observação individual futura cairá, enquanto um IC mostra a faixa provável de valores associados a algum parâmetro estatístico dos dados, como a média da população.

“Validade” e “Eficiência”

Na previsão probabilística, os dois critérios críticos de avaliação são validade (“validity”) e a eficiência (“efficiency”).

Validade, também chamado de cobertura (“coverage”) ou calibração (“calibration”), é um critério necessário na avaliação de modelos preditivos probabílisticos. Diz respeito à garantir que não haja viés nas previsões.

“A calibração refere-se à consistência estatística entre as previsões distributivas e as observações e é uma propriedade conjunta das previsões e dos eventos que se materializam.” Gneiting, Balabdaoui e Raftery (2007)

Imagine que uma previsão estimada com IP com 95% de confiança, então (em média) os intervalos de previsão devem (por definição) cobrir aproximadamente 95% das observações reais. De forma que estejam dentro dos IPs gerados pelo modelo de previsão.

Se as previsões produzidas pelo modelo não forem probabilisticamente válidas, confiar nessas previsões para a tomada de decisões pode ser arriscado e perigoso. Em aplicações de alto risco, como medicina e carros autônomos, as previsões que não têm validade (têm um viés) podem levar a resultados catastróficos.

A eficiência, também chamada de largura (“width”) ou nítidez (“sharpness”), é um critério desejável, mas não mas não obrigatória após o requisito de validade ter sido satisfeito. Diz respeito à largura dos intervalos de previsão, pois ter um modelo preditivo mais eficiente significa IPs mais estreitos.

A nitidez refere-se à concentração das distribuições preditivas e é uma propriedade apenas das previsões. Gneiting, Balabdaoui e Raftery (2007)

Quanto mais concentradas forem as distribuições preditivas, mais válidas serão as previsões, e quanto mais eficiência, melhor, sujeitas a calibração.

O exemplo abaixo mostra a validade (cobertura/calibração) e eficiência (largura/nitidez) para dois modelos de previsão probabilística. Cada modelo produz um intervalo de previsão para cada x_i neste cenário; esse intervalo de previsão tenta cobrir o verdadeiro y_i, representado pelos pontos vermelhos com um nível de confiança especificado (digamos, 95%). A validade (cobertura) é calculada como a fração dos valores reais contidos nessas regiões. A largura dessas regiões é relatada em múltiplos do desvio padrão dos valores y_i do conjunto de treinamento.

Fonte: https://valeman.medium.com/how-to-evaluate-probabilistic-forecasts-ace8b7ad3491

Os Modelos 1 e 2 possuem cobertura de 80% e 60%, respectivamente. O primeiro é melhor em termos de Validade, pois é menos inviesado. Porém do ponto de vista de Eficiência, o segundo modelo é melhor, uma vez que a largura média do IP é menor (0,7 desvios padrão).

Como funciona a Previsão Conforme para Regressão ?

Afim de garantir a Validade e a Eficiência mostrado anteriormente. A Previsão Conforme irá produzir intervalos de previsão para os modelos de regressão

A boa notícia é que, na maioria das vezes, podemos usar a mesma receita utilizada nos artigos anteriores:

  • Divida os dados nos conjuntos de treinamento e calibração
  • Treine o modelo nos dados de treinamento
  • Calcular pontuações de não conformidade
  • Encontre o limite 𝑞
  • Crie intervalos de previsão para novos dados

A principal diferença entre classificação e regressão é a pontuação de não conformidade que usamos: 𝑠(𝑦, 𝑥) = |𝑦 − 𝑓(𝑥)|.

Esta função calcula o residual absoluto da previsão quando o y verdadeiro é usado nesta fórmula. Conformizar esta pontuação significa encontrar o limiar 𝑞 onde o nível de confiança 1 − 𝛼 das previsões tem uma pontuação abaixo dela e 𝛼 tem uma pontuação acima dela. Para calcular o intervalo de previsão para um novo ponto de dados, incluímos todos os y’s possíveis que produzem uma pontuação abaixo de 𝑞.

Obs: No gráfico o nível de confiança 1 − 𝛼 é 1 — 𝛆. E o limiar 𝑞 é 𝛼ₛ. Fonte: Conformal Prediction: An easy way to estimate prediction intervals

Regressão Média Conformalizada (“Conformalized Mean Regression”)

Usando a Previsão Conforme, transformaremos a previsão de ponto em um Intervalo de Previsão.

https://mindfulmodeler.substack.com/p/week-3-conformal-prediction-for-regression

Para exemplicar, vamos utilizar a Rent Index Data, que são dados coletados para o cálculo de índice de aluguéis na cidade de Munique.

A base possuí informações como o aluguel por metro quadrado, e características do apartamento, como localização, tamanho e comodidades.

O índice de aluguel de Munique geralmente é modelado com modelos aditivos generalizados devido à exigência regulatória de que o modelo seja interpretável. Mas usaremos modelos de ML como Random Forest e Gradient Boosting.

Este é um caso de uso perfeito para Previsão Conforme, porque não estamos interessados apenas na previsão média, mas em uma faixa de aluguéis aceitáveis por metro quadrado.

Primeiramente, vamos importar a base de dados, e realizar a divisão dos dados em treino, teste e calibração.

Agora, treinaremos um modelo de RandomForestRegressor, utilizando tunagem de hiperparâmetros para escolher o modelo mais otimizado.

Ao avaliar o MSE do modelo, vemos que em média, a previsão está errada em 1,64 euros por metro quadrado.

Agora, vamos utilizar Previsão Conforme com as libs MAPIE para gerar os Intervalos de Previsão (IP). Vamos assumir um alpha de 33% (ou intervalo de 67%).

Ótimo! Agora vamos trabalhar com os resultados. Vamos dar uma olhada nos IPs do quinto apartamento da base.

Este apartamento possui 70 metros quadrados. A renda prevista por metro quadrado é de 6,11 euros. Com IPs de 67% de [4,2; 8.0]. Se multiplicarmos isso pela área, o aluguel previsto será de 427,50 euros, enquanto o aluguel real para esse ponto de dados é de 500,36 euros. Se multiplicarmos os IPs com os metros quadrados, obtemos intervalos de [294,18; 561,05].

Agora, vamos verificar a relação entre o aluguel por metro quadrado e a área. Podemos visualizar os IPs pela feature “área”. Definiremos uma função que recebe o nome da feature e produz um gráfico de dispersão que inclui os IPs.

Quanto maior a área, menor o aluguel, o que faz sentido, já que a meta é o aluguel por metro quadrado e não o aluguel total.

Mas por que os intervalos de previsão possuem uma aparência bagunçada em uma certa região de metros quadrados ? Parecem ter sido coloridos por uma criança de 5 anos. Isso acontece porque não há garantia de que dois pontos com áreas semelhantes terão previsões semelhantes, uma vez que normalmente diferem em muitas outras características.

Com alguns dados novos restantes, podemos verificar quão grandes são os intervalos de previsão. MAPIE fornece algumas funções convenientes para avaliar larguras (“width”) e cobertura (“coverage”) de intervalos de predição.

Conformalized Quantile Regression (CQR) - Teoria

A outra maneira de criar intervalos de predição conformes é começar com dois modelos de regressão quantílica e aplicar Previsão Conforme e obter o intervalo entre eles. Isso significa que você precisa de um modelo para o quantil inferior e outro para o quantil superior do target, que no nosso caso é o aluguel por metro quadrado.

Dois modelos de regressão quantílica já fornecem intervalos de previsão, mas não há garantia formal de que, para dados futuros, os intervalos terão a cobertura desejada do resultado verdadeiro. Traduzido para o caso de uso do índice de aluguel: O intervalo do quantil 1/6 (17%)estimado ao quantil 5/6 (83%)estimado pode ou não conter 2/3 (66%) dos dados. Felizmente, podemos usar previsão conforme para garantir a cobertura.

Sendo assim, surge a Regressão Quantílica Conformalizada (“Conformalized Quantile Regression” ou CQR). O algoritmo foi proposto em 2019 por uma equipe de acadêmicos de Stanford: Yaniv Romano, Evan Patterson e Emmanuel Candès. Link do paper.

É um método destinado a corrigir os intervalos fornecidos pelo modelo de regressão quantílica, de forma que o número de erros observados em novos dados esteja muito próximo da tolerância que você definiu. Tolerância (ou 𝛼), é a porcentagem de erros (ou seja, observações que ficam fora dos intervalos previstos) que você está disposto a aceitar.

https://mindfulmodeler.substack.com/p/week-3-conformal-prediction-for-regression

Em detalhes, as etapas são:

  1. Ajustar o modelo de regressão quantil no conjunto de treinamento
  2. Usar o modelo obtido na etapa anterior para prever intervalos nos dados de calibração
  3. Calcule os score de conformidades nos dados de calibração e intervalos obtidos na etapa anterior
  4. Obtenha o quantil 1 - 𝛼 da distribuição das pontuações de conformidade obtidas anterior
  5. Use o modelo obtido na etapa 1 para fazer previsões sobre o conjunto de teste
  6. Calcule a extremidade esquerda (direita) do intervalo subtraindo (adicionando) o quantil obtido na etapa 4 às previsões obtidas no ponto 5.

Inicialmente, vamos fazer uma implantação traduzida em um pequeno código no Python. Para o modelo de regressão quantílica, usarei RandomForestQuantileRegressor do skgarden, mas você pode substituí-lo por qualquer modelo de regressão, usando perda quantílica (“quantile loss”).

O código fonte desse exemplo foi dado pelo Samuele Mazzanti em seu excelent artigo “How to Predict Risk-Proportional Intervals with Conformal Quantile Regression”

O algoritmo gira em torno dos scores de conformidade calculados nos dados de calibração (passo 3). No caso do método CQR, estes scores expressam a distância entre cada observação e o extremo mais próximo do intervalo.

O sinal é dado pela posição do ponto, esteja ele dentro ou fora do intervalo. Quando o ponto está dentro do intervalo, o sinal é negativo, e quando o ponto está fora do intervalo, o sinal é positivo. Como consequência, a pontuação é zero apenas se o ponto estiver exatamente em um dos extremos do intervalo.

Por exemplo, vamos pegar um intervalo preditivo limitado entre 2 e 8. Para alguns valores diferentes da variável alvo, estes seriam os respectivos scores de conformidade.

Pontuações de conformidade de diferentes observações em relação a um intervalo entre 2 e 8. As cruzes vermelhas são os valores reais. Esse exemplo foi dado pelo Samuele Mazzanti em seu excelent artigo “How to Predict Risk-Proportional Intervals with Conformal Quantile Regression”

Mas qual é o sentido de calcular o quantil de scores de conformidade e adicioná-lo em ambos os lados dos intervalos?

Suponha que o quantil de scores de conformidade seja $1000, dado 𝛼 = 5%. Isso significa que 95% das observações não estão mais distantes do que $1000 do respectivo intervalo. Como consequência, ao aumentar todos os intervalos em $1000 em ambos os lados, esperamos atingir o objetivo de que 95% das observações cairão dentro de seu intervalo.

Isso também funciona se o quantil de pontuações de conformidade for negativo. Por exemplo, dado um quantil de -$500, isso significa que os intervalos são muito amplos. De fato, “cortando” todos os intervalos em $500 em ambos os lados, atingiremos novamente o número desejado de erros.

Conformalized Quantile Regression (CQR) - MAPIE

Agora, vamos à implementação. Na lib MAPIE, são necessários três modelos: um para mediana (quantil 0,5), modelo para o quantil inferior, e um modelo para o quantil superior. A mediana não é realmente usada para calibração. A previsão do modelo mediano acaba de ser devolvida a você junto com o intervalo conformado.

É tranquilo treinar alguns modelos de GradientBoosting utilizando as opções de perda quantilica (“quantile loss”) no sklearn.

Vamos em frente e criar o CQR. Já precisamos passar o 𝛼 para MAPIE ao iniciar o objeto preditor.

Então, vamos olhar para a distribuição de larguras do intervalo:

Visualmente, os intervalos aparentam ser saudáveis. É bom ter a confirmação de que nossos intervalos conformes são adaptativos. Vejamos como estão os x primeiros:

E, novamente, vamos visualizar os intervalos de previsão por features:

Com os conjuntos de dados X_new e y_new, podemos medir avaliar larguras (“width”) e cobertura (“coverage”) dos intervalos de predição está correta:

A cobertura parece boa (68,2%), sendo igual ao modelo de Regressão Média Conformalizada. Por outro lado, os intervalos são mais largos (3,94).

Considerações Finais:

Em sua essência, a Previção Conforme consiste em associar cada previsão a um nível de confiança, garantindo que o erro das previsões fique fora do intervalo de confiança. Por outras palavras, se prevermos com 95% de confiança, podemos ter 95% de certeza de que o valor real estará dentro desse intervalo de previsão.

Isto é especialmente crucial em domínios como finanças, saúde e energia, onde as consequências de previsões erradas podem ser avassaladoras.

E esse tipo de técnica se estende em diferentes situações que envolvem Machine Learning além de Classificação Binária, como Multiclass, Regressão e Séries Temporais. Portanto, fiquem atentos para os próximos artigos.

Notas:

Quaisquer erros são de minha autoria. Fiquem à vontade para dar feedbacks e críticas construtivas.

Referências:

--

--