Recomendação de configurações para tarefas de regressão

O desbalanceamento dos dados pode enviesar a máquina para os padrões que ocorrem com maior frequência. Embora seja conhecido que balancear os dados antes de apresentá-lo à máquina de aprendizagem seja vantajoso para fins de generalização, tal procedimento é pouco discutido para tarefas de regressão.

Também é importante destacar que não existe um procedimento capaz de encontrar o melhor algoritmo de balanceamento para todos os problemas (referência); e, mais, avaliar todos os algoritmos existentes requer muito esforço computacional. Além disso, a integração ideal entre algoritmos de balanceamento e de aprendizagem de máquina depende dos dados sob análise.

Logo, o artigo

Juscimara Avelino, George D.C. Cavalcanti, Rafael M.O. Cruz. Imbalanced regression pipeline recommendationMachine Learning, 114, 146 (2025).

apresenta uma abordagem automática para a escolha da técnica de balanceamento e do algoritmo de aprendizagem mais apropriados por problema. A abordagem chama-se Meta-IR e isenta o usuário de avaliar cada possível par de técnica de balanceamento e de algoritmo de apresentarem por banco de dados. Vale salientar que a abordagem proposta é extensível para outra configurações do pipeline, tais como pré-processamento, detecção de outiliers e parâmetros da máquina de aprendizagem.

Para tanto, a proposta se vale de meta-aprendizagem e de aprendizagem multi-rótulo para extrair informações de várias tarefas com a finalidade de construir uma representação capaz de recomendar os melhores algoritmos por banco de dados.

A figura a seguir explicita vantagens da abordagem proposta em relação aos sistemas tradicionais de AutoML (Automated Machine Learning).

Vê-se que os sistemas tradicionais realizam grande parte do processamento quando recebem o banco de dados (figura (b)); assim, o processamento em tempo de produção (online) é muito alto. Por outro lado, a proposta realiza a maior parte do processamento offline (e o realiza apenas uma vez), agilizando a resposta em tempo de produção.

Os resultados experimentais mostram a vantagem do sistema proposto (Meta-IR) quando comparado a sistemas de AutoML, tais como: Auto-sklearn, H2O, TPOT, FLAML, LightAutoML e Nive AutoML.

O código-fonte e demais informações estão públicos em https://github.com/JusciAvelino/Meta-IR.

Desbalanceamento em tarefas de regressão

Classificação versus Regressão

Em aprendizagem supervisionada, as tarefas podem ser divididas em Classificação e em Regressão. Em Classificação, o objetivo é predizer uma classe. Por exemplo, em um sistema de detecção de fake news, deseja-se verificar se um conteúdo é fake ou não; logo, tem-se duas classes. Em uma tarefa diferente, o objetivo pode ser de outra natureza, tal como: prever a quantidade de chuva em determinada região numa data futura; esta é uma tarefa de Regressão.

Estas duas tarefas diferem primordialmente em razão das suas varáveis-alvo: uma é discreta (detecção de fake news) e a outra é contínua (previsão pluviométrica). Assim, quando a variável-alvo pode ser representada por um conjunto finito, a tarefa é dita de Classificação. Por outro lado, diz-se que a tarefa é de Regressão quando a variável-alvo é um valor real (contínuo). Ou seja, na detecção de fake news, tem-se duas classes (fake e não-fake), logo, um conjunto finito de valores. Já na tarefa de previsão pluviométrica, a quantidade de chuva, possivelmente dada em milímetros por metro quadrado, é um valor real, contínuo.

Dados desbalanceados

Dados desbalanceados são, frequentemente, encontrados em aplicações do mundo real e podem impor desafios às máquina de aprendizagem. Pode-se dizer que as classes estão desbalanceadas quando o número de instâncias em uma classe é muito menor do que o número de instâncias numa classe diferente. Na sentença anterior, foi utilizado o conceito de classe, remetendo a definição de dados desbalanceados para tarefas de Classificação. Mas, e para tarefas de Regressão?

Verdade que esta questão de desbalanceamento já foi amplamente discutida em tarefas de Classificação. Porém, vale destacar que em tarefas de Regressão, na qual a variável-alvo é um valor contínuo, dados desbalanceados também podem se apresentar como um obstáculo. Pois, os dados pouco representados podem ser coincidentemente os mais relevantes para a aplicação sob análise. Por exemplo, eventos climáticos extremos ocorrem com menos frequência, mas, erros em sua predição podem ser significantemente custosos.

Em Regressão, calculamos o quão desbalanceado está uma tarefa usando uma função de relevância que separa as instâncias em “normais” e “raras”, com base nos seus valores-alvo. Assim, podemos calcular o nível de desbalanceamento pela razão entre a quantidade de instâncias “raras” e “normais”. Caso tenhamos, bem mais instâncias “normais” do que “raras”, dizemos que a tarefa está desbalanceada.

Na figura acima, percebe-se que a quantidade de instâncias com valores de Y (variável-alvo) maiores do que 10 é pouca quando comparada a quantidade de instâncias com valores entre 5 e 8. Logo, boa parte dos valores-alvo é pouco representada e isso dificulta o processo de treinamento das máquinas de aprendizagem.

Algoritmos de balanceamento de dados para Regressão

Uma abordagem bastante usada para lidar com esta questão é o balanceamento dos dados. São vários os possíveis algoritmos na literatura especializada da área. Alguns algoritmos visam gerar instâncias sintéticas que pertençam à classe de instâncias “raras” com o intuito de “engordar” esta classe e, consequentemente, diminuir o desbalanceamento. Em contraste, outras abordagens eliminam algumas instâncias da classe “normal” e, existem, também, algoritmos híbridos que fazem a “engorda” e a eliminação simultaneamente.

Os principais algoritmos de balanceamento de dados para tarefas de regressão foram analisados no artigo listado a seguir. Além da descrição das vantagens e das desvantagens de cada algoritmo, também foram realizados experimentos usando trinta bancos de dados de Regressão de diferentes domínios (desde previsão da qualidade de vinho a incêndios em florestas, passando por tarefas relacionadas à saúde humana).

Juscimara G. Avelino, George D.C. Cavalcanti, Rafael M.O. Cruz. Resampling strategies for imbalanced regression: a survey and empirical analysisArtificial Intelligence Review, 2024.

As principais contribuições do artigo são:

  • Proposição de uma nova taxonomia para tarefas de regressão desbalanceadas levando em consideração o modelo de regressão, a estratégia de aprendizagem e as métricas;
  • Revisão das principais estratégias utilizadas para tarefas de regressão desbalanceada;
  • Condução de um extenso estudo experimental comparando o desempenho de estratégias de reamostragem e seus efeitos em múltiplos algoritmos de aprendizagem.

Seguem as principais conclusões após a análise dos experimentos:

  • A seleção da estratégia de balanceamento pode impactar significativamente os resultados e é melhor usar uma técnica de balanceamento do que não usar nenhuma;
  • A escolha da melhor técnica depende da tarefa, do modelo de aprendizagem e da métrica usada. Destaque positivo para a técnica Gaussian Noise, independente da métrica usada;
  • Como esperado, os modelos de regressão enfrentaram desafios significativos em tarefas com alto nível de desbalanceamento.

O código-fonte de todas as análises estão publicamente acessíveis no GitHub: https://github.com/JusciAvelino/imbalancedRegression.

Normalização dos atributos & Desempenho dos classificadores

Pré-processar os dados, antes de treinar uma máquina de aprendizagem, é uma etapa vital para se conseguir extrair o melhor de cada máquina. São várias as formas de pré-processar os dados e esta tarefa depende da aplicação em investigação. Por exemplo: em processamento de linguagem natural, é comum realizar a tokenization que objetiva separar sentenças em unidades menores, tais como palavras.

O foco desta post é o pré-processamento dos atributos com o objetivo de colocá-los em uma mesma escala, ou dentro de um mesmo critério, com o intuito de minimizar a influência indevida de um atributo sobre o outro. Esta tarefa é realizada por técnicas de scaling, muitas vezes chamadas de normalização.

Min-max scaler é a mais utilizada e difundida técnicas de scaling. Nela, cada um dos atributos é ajustado para caber em um intervalo, geralmente, entre 0 e 1. Outras técnicas de scaling permeiam as aplicações e, entre elas, destaco: standard scaler, maximum absolute scaler, robust scaler e quantile transformer.

Diante desse contexto com várias técnicas de scaling e vários classificadores, alguns questionamentos emergem:

  • Vale a pena normalizar os dados?
  • A escolha da técnica de scaling influencia no desempenho dos modelos de aprendizagem?
  • Qual técnica escolher para um dado classificador?
  • Quais classificadores são mais sensíveis às escolhas das técnicas de scaling?

Estas e outras questões são abordadas no artigo de Amorim et al. que realiza uma ampla avaliação usando 82 bancos de dados públicos e cinco técnicas de scaling. Foi mostrado que escolher bem a técnica de scaling melhora a precisão de classificadores. Em particular, algoritmos baseados em árvores de decisão são pouco sensíveis à escolha da técnicas de scaling. Logo, em alguns casos, não normalizar pode ser a melhor opção.

O nível de desbalancamento do banco de dados é um fator que influencia a escolha da técnica de scaling. O standard scaler obteve melhor desempenho em bancos de dados com baixos níveis de desbalanceameto, enquanto o quantile transformer apresenta-se como a melhor escolha para os níveis médio e alto de desbalanceamento.

Os autores também ressaltam que a melhor técnica de scaling para um sistema de múltiplos classificadores coincide com a melhor técnica empregada por seu classificador-base. Assim, a definição da melhor técnica de scaling, para um sistema de múltiplos classificadores, pode ser realizada avaliando o comportamento das técnicas em um classificador-base, o que torna todo o processo mais rápido e barato.

Sabendo que o emprego de técnicas de scaling é bastante negligenciado nas mais diversas aplicações, Amorim et al. colocam luz nesta questão e mostram que devemos ficar alertas em relação a esse ponto sensível, pois a escolha da técnica influencia significativamente o desempenho de modelos de classificação.

Lucas B.V. de Amorim, George D.C. Cavalcanti, Rafael M.O. Cruz, The choice of scaling technique matters for classification performance, Applied Soft Computing, 2023.

Aprendizagem em conjuntos de dados com classes desbalanceadas

Um dos pontos que devemos atentar ao treinar uma máquina de aprendizagem é o desbalanceamento entre as classes. Podemos dizer que as classes estão desbalanceadas quando o número de padrões em uma classe é muito menor do que o número de padrões numa classe diferente.

Veja o exemplo na figura acima que mostra duas classes: azul e vermelha. Nesse conjunto, temos 100 padrões da classe azul e 10 da classe vermelha. Logo, a quantidade de padrões na classe azul é 10 vezes maior do que a quantidade de padrões na classe vermelha. O imbalance ratio (IR) é usado para medir esse desbalanceamento, e é calculado como sendo a razão entre o número de padrões na classe majoritária e o número de padrões na classe minoritária. Para esse exemplo, o IR é igual a 10, pois temos uma razão de um para dez (1:10).

Em muitos problemas do mundo real, esse desbalanceamento é bem mais acentuado. Vamos supor um cenário no qual a razão fosse de 1:1000, ou seja, para cada padrão da classe vermelha, temos mil padrões da classe azul. Nesse cenário, caso uma máquina de aprendizagem sempre respondesse “classe azul”, para qualquer padrão fornecido como entrada, essa máquina atingiria uma acurácia (número de acertos dividido pelo número total de padrões avaliados) próxima a cem porcento. Para ser mais preciso, supondo um conjunto com 3003 padrões, sendo 3 da classe vermelha e 3000 da classe azul (para manter a proporção de 1 para 1000), a acurácia seria de 3000/3003, ou seja, 99,9001% de acerto.

Embora essa taxa de acerto, superior a 99,9%, seja bastante promissora, vale salientar que essa máquina de aprendizagem, de fato, não “aprendeu” nada. Ela, de certa forma, foi guiada a minimizar o erro no conjunto de treinamento (com ampla maioria de padrões da classe azul) e, nesse caso, o treinamento pode tê-la levado a desprezar os padrões da classe vermelha.

No exemplo acima, uma máquina conseguiu quase cem porcento de acerto, mesmo sem aprender a tarefa de maneira relevante. Para esses casos, a acurácia não é uma medida interessante, pois é uma medida global, calculada sem fazer distinção entre as classes. Quando avaliamos conjuntos de dados desbalanceados, devemos utilizar medidas que avaliem as classes separadamente, por exemplo: f-score, g-mean e area under the ROC curve.

É fato que várias máquinas de aprendizado podem, de maneira enviesada, priorizar a classe majoritária durante o seu treinamento. Assim, as principais alternativas para lidar com conjuntos de dados, nos quais as classes estejam desbalanceadas são:

  • pré-processamento: o objetivo é deixar todas as classes com um número similar de padrões, ou seja, balancear as classes. Técnicas de undersampling (remover padrões da classe majoritária) e/ou de oversampling (adicionar padrões na classe minoritária) são empregadas;
  • algoritmo com penalização: os algoritmos de aprendizagem são modificados com o intuito de torná-los sensíveis à questão do desbalanceamento. Assim, durante o processo de treinamento da máquina, o custo ao errar um padrão da classe minoritária é bem maior do que o custo associado a um erro na classe majoritária;
  • ensemble: nessa abordagem, técnicas de pré-processamento são usadas em conjunto com sistemas de múltiplos classificadores. Desta forma, ao invés de centralizar o conhecimento em apenas uma máquina de aprendizagem, o conhecimento extraído dos dados de treinamento é dividido em várias máquinas.

Das três alternativas listadas acima, a mais comumente usada é a primeira: pré-processamento. Embora, seja importante destacar a última, ensemble, pois essa tem alcançado resultados superiores quando comparada às demais (artigo).

E para tarefas multi-classe?

A questão fica um pouco mais sutil, quando temos mais de duas classes. Veja o exemplo na figura a seguir.

Observando essa imagem, podemos dizer que a classe verde é minoritária em relação à classe azul e majoritária em relação à classe vermelha. Assim, a relação entre as classes já não é tão óbvia quanto em problemas com duas classes. Além disso, o cálculo do IR, conforme descrito anteriormente, não representa uma medida tão confiável. Isso acontece porque diferentes conjuntos de dados podem ter o mesmo IR, desde que, a proporção, entre a quantidade de padrões na classe com mais exemplos e a quantidade de padrões na classe com menos exemplos, seja mantida. Note que, o IR do exemplo com três classes, é o mesmo do exemplo com duas classes: 10; pois, no cálculo do IR, o número de exemplos nas demais classes (que não seja a classe majoritária e a classe minoritária) não é levado em consideração. Mas, existem outras formas de calcular o IR, por exemplo: dividindo o número de exemplos na classe majoritária pela soma das quantidades de padrões de todas as outras classes. Assim, o IR para o problema para três classes ficaria igual a 3,33, ou seja, cem padrões da classe azul dividido por trinta (20 padrões da classe verde mais 10 da classe vermelha).

É relevante destacar, que essa questão do desbalanceamento entre classes, é mais grave quando lidamos com tarefas que dispõem de poucos padrões. Para tarefas, nas quais o número de padrões é extremamente alto para todas as classes, essa questão é minimizada. Ao acessar muitos padrões, podemos construir um conjunto de treinamento balanceado, basta realizar undersampling na classe majoritária.

Além disso, o desbalanceamento, por si só, não representa um problema! Basta que as classes (mesmo que desbalanceadas) estejam bem separadas no espaço de características, consequentemente, a tarefa da máquina de aprendizagem será bem simples. Veja, que no exemplo acima, as classes vermelha e verde, embora desbalanceadas, são linearmente separáveis. Logo, um Perceptron (uma reta) seria suficiente para realizar uma classificação perfeita dos exemplos dessas classes. A dificuldade emerge quando, além de desbalanceadas, as classes se sobrepõem. Observe que as bordas, entre as classes vermelha e azul e entre as classes azul e verde, são mais complexas de serem definidas.