Aquarela

Aquarela Analytics branco

Dados desbalanceados: como equilibrar as ocorrências das classes?

dados_desbalanceados

A ciência de dados é uma área da inteligência artificial que tem crescido muito nos últimos anos. Essa área é responsável pelo estudo e análise de dados de diversos ramos para obtenção de ideias, identificação de padrões, desenvolvimento de modelos matemáticos e estatísticos para inferir sobre novos dados, entre outros. A partir disso, hoje iremos falar um pouco sobre um problema associado a ela, os chamados dados desbalanceados.

Veja também: 7 tendências em ciência de dados

Dados desbalanceados

Podemos pensar em um banco de dados (dataset) como uma tabela em que cada coluna representa uma informação sobre determinado tópico e as linhas são as quantidades de dados disponíveis. No mundo da ciência de dados, é comum encontrar datasets que relacionam os dados com uma classe (também chamada de categoria ou rótulo).

Na grande parte dos problemas cotidianos, é frequente que haja mais dados de uma classe do que de outra, conforme no exemplo da Figura 1, em que temos muito mais ocorrência de dados na classe A do que na classe B. Um exemplo mais prático disso seria na área da saúde, em que há mais exemplos disponíveis de pessoas saudáveis do que com algum problema de saúde (câncer, arritmia cardíaca, convulsões, entre outros); ou então em fraudes de pagamento, sendo mais comum a não ocorrência de fraude. 

Figura 1: Exemplo de dados desbalanceados em duas classes hipotéticas, A e B
Figura 1: Exemplo de dados desbalanceados em duas classes hipotéticas, A e B

Dessa forma, o desbalanceamento de dados é justamente a questão de termos mais informações a respeito de uma classe (majoritária) do que da outra (minoritária). Pode-se expandir a mesma lógica para problemas com múltiplas classes. 

Problemas causados pelos dados desbalanceados

Quando o assunto é análise exploratória de dados, o desbalanceamento não chega a ser tão comprometedor. Se a quantidade de dados disponível for o suficiente para buscar insights, o desbalanceamento não chega a ser um problema, uma vez que podemos obter algumas conclusões sem uma grande quantidade de dados. Entretanto, quando o assunto são modelos de aprendizado de máquina, a influência do desbalanceamento de dados fica evidente. 

Digamos que um cientista de dados esteja trabalhando para desenvolver um modelo de aprendizado de máquina para algum problema de classificação ou previsão e ele possui um banco de dados desbalanceado. Caso nenhuma medida seja tomada a esse respeito, é muito provável que o modelo projetado tenha facilidade em identificar os dados referentes à classe majoritária (afinal, ele teve mais exemplos de dados dessa classe), mas tenha dificuldade na identificação dos dados da classe minoritária. Isso pode gerar uma má interpretação do modelo, pois, a princípio, ele está tendo um bom desempenho no acerto geral (acurácia), mas, se a intenção for justamente identificar os dados da classe minoritária, ele se torna um péssimo modelo.

Para visualizarmos isso de forma mais simples, vamos olhar para a Figura 2, que mistura imagens de cachorros da raça Chihuahua com muffins.

Figura 2: Cachorros Chihuahuas e muffins
Figura 2: Cachorros Chihuahuas e muffins (Google Imagens)

Apesar de serem coisas completamente diferentes, os rostos dos Chihuahuas e os muffins da figura apresentam algumas características em comum, como formato, tamanho e cor. Para um modelo de aprendizado de máquina, essas características da classe Chihuahua e da classe muffin podem ser parecidas ao ponto de haver certa dificuldade para diferenciá-las. Nesse sentido, se por acaso tivermos muito mais imagens de Chihuahuas do que de muffins, o modelo apresentará dificuldades na classificação.

Tratando o problema

Vimos com um exemplo simples como o desbalanceamento de dados pode dificultar o trabalho de um cientista de dados. Portanto, é de suma importância que haja uma forma de lidar com esse problema de forma a minimizar a maior influência da classe majoritária sobre a minoritária. A busca de mais dados seria a forma mais simples e óbvia.

Retomando como exemplo a Figura 1, bastaria buscar mais dados da classe B até se igualar à da classe A. Acontece que nem sempre é tão fácil quanto parece. No exemplo da Figura 2, essa abordagem é perfeitamente viável, mas quando um profissional está trabalhando com o banco de dados de um cliente nem sempre isso é possível. Logo, outras ferramentas são necessárias para balancear os dados.

Undersampling

A técnica de undersampling consiste em retirar dados da classe majoritária para se igualar à da majoritária, conforme mostrado na Figura 3.

Figura 3: Exemplo da técnica de undersampling, com diminuição de dados da classe A para se igualar à quantidade de dados da classe B.
Figura 3: Exemplo da técnica de undersampling, com diminuição de dados da classe A para se igualar à quantidade de dados da classe B.

Ainda na técnica de undersampling, existem diversos métodos que podem ser aplicados para selecionar quais dados serão retirados. Por exemplo: retirar dados de maneira aleatória ou seguindo alguma métrica matemática de distância entre os dados de cada classe no plano amostral. Outras técnicas de undersampling procuram agrupar dados correlatos, podendo retirar algumas amostras sem comprometer muito a quantidade de informação da classe.

Oversampling

Já a técnica de oversampling consiste em gerar dados sintéticos da classe minoritária a partir dos seus dados originais de forma a se igualar com o número de dados da classe majoritária. As principais técnicas de oversampling são SMOTE e ADASYN, que utilizam cálculos matemáticos para gerar novas amostras que se assemelham às originais, aumentando a quantidade de dados e mantendo as características da classe.

A Figura 4 exemplifica a ideia geral da técnica de oversampling, em que foram gerados novas amostras de forma a igualar o número de ocorrência da classe B à da classe A.

Figura 4: Exemplo da técnica de oversampling, com a inserção de dados sintéticos na classe minoritária para de igualar à quantidade de dados da classe majoritária
Figura 4: Exemplo da técnica de oversampling, com a inserção de dados sintéticos na classe minoritária para de igualar à quantidade de dados da classe majoritária.

Dados desbalanceados – Considerações finais

O desbalanceamento de dados é um tema comum no dia a dia das pessoas que trabalham nesse meio, entretanto pode ser um empecilho nos momentos de construção de modelos de classificação ou regressão. A identificação e o tratamento de dados faltantes é essencial para o bom desenvolvimento das atividades de um time de cientistas de dados, visto que o desbalanceamento de dados é muitas vezes responsável por acrescentar um viés nos modelos de aprendizado de máquina, distorcendo suas análises de desempenho.

Dessa forma, o objetivo deste texto foi apresentar a problemática envolvida no desbalanceamento de dados, bem como indicar algumas técnicas e métodos utilizados para contornar esse problema. Assim, chega a ser instigante pensar que, em um mundo cada vez mais rodeado de acesso à informação e geração de grande quantidade de dados, ainda tenhamos um tema que trata justamente de classes com maior ocorrência de informação do que outras.

Gostou do artigo? Então, deixe o seu comentário.

Leia também: Web 3.0 e a democratização do acesso à informação.

Quem é a Aquarela Analytics?

A Aquarela Analytics é vencedora do Prêmio CNI de Inovação e referência nacional na aplicação de Inteligência Artificial Corporativa na indústria e em grandes empresas. Por meio da plataforma Vorteris, da metodologia DCM e o Canvas Analítico (Download e-book gratuito), atende clientes importantes, como: Embraer (aeroespacial), Scania, Mercedes-Benz, Grupo Randon (automotivo), SolarBR Coca-Cola (varejo alimentício), Hospital das Clínicas (saúde), NTS-Brasil (óleo e gás), Auren, SPIC Brasil (energia), Telefônica Vivo (telecomunicações), dentre outros.

Acompanhe os novos conteúdos da Aquarela Analytics no Linkedin e assinando a nossa Newsletter mensal!

Autor

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Send this to a friend