Qualidade de dados em ML: EDA, feature engineering e como evitar viés algorítmico

Em projetos de machine learning, a qualidade dos dados determina a qualidade do modelo. Não existe algoritmo que compense dados ruins — e, na prática, a fase de preparação de dados consome cerca de 80% do esforço total de um projeto de ML. O que resta é a escolha e o treinamento do modelo propriamente dito.

É como preparar uma receita: você pode ter o melhor chef do mundo, mas se os ingredientes estiverem estragados ou incompletos, o resultado vai ser ruim. Os dados de entrada precisam ser limpos, completos, representativos e livres de inconsistências antes de chegarem ao modelo.

Este artigo cobre as três etapas centrais dessa preparação — análise exploratória de dados (EDA), feature engineering e identificação de viés — com exemplos práticos em Python.

O que é análise exploratória de dados (EDA)?

Análise Exploratória de Dados (EDA) é o processo de investigar dados com estatísticas e visualizações para compreendê-los antes de modelar. Diferente da análise clássica, que parte de hipóteses pré-definidas, a EDA tem uma abordagem aberta: você explora os dados sem pressupostos, deixando que eles revelem padrões, anomalias e relações.

Na prática, EDA responde perguntas como:

  • Quais variáveis existem e o que elas representam?
  • Há valores ausentes? Em que proporção?
  • Existem outliers — valores fora do padrão esperado?
  • Quais variáveis têm correlação com o que estou tentando prever?
  • Há viés na amostra que pode comprometer o modelo?

Ferramentas essenciais em Python

Com a biblioteca Pandas, é possível calcular estatísticas descritivas de todo o dataset com uma linha:

df.describe()  # média, desvio padrão, percentis para cada coluna
df.isnull().sum()  # soma de valores nulos por coluna
df.corr()  # matriz de correlação entre variáveis

Seaborn e Matplotlib geram as visualizações principais:

  • Histogramas: mostram como os valores de uma variável estão distribuídos
  • Boxplots: exibem mediana, quartis e outliers visualmente
  • Gráficos de dispersão: revelam relações entre duas variáveis

Exemplo: em um dataset de diagnóstico de diabetes, um gráfico de dispersão entre insulina e espessura da pele pode revelar uma correlação positiva em pacientes diabéticos que não aparece nos dados tabulares brutos. Essa descoberta pode influenciar diretamente quais variáveis entrar no modelo.

EDA não é um passo único

Um erro comum é fazer EDA uma vez e considerar o trabalho feito. Na prática, a análise exploratória deve ser recorrente — especialmente em produção. Dados mudam ao longo do tempo: uma variável que era positivamente correlacionada com o alvo pode inverter sua relação meses depois, conforme o comportamento dos usuários ou do mercado evolui.

O que é feature engineering?

Feature engineering é o processo de criar, transformar e selecionar as variáveis que vão entrar no modelo de ML. Não se trata apenas de escolher quais colunas usar — envolve criar novas variáveis a partir das existentes, tratar problemas de qualidade e garantir que os dados estão no formato que os algoritmos conseguem interpretar.

Usando a mesma analogia culinária: não basta ter os ingredientes certos — eles precisam ser descascados, cortados e cozinhados no ponto certo.

Criação de features

Às vezes a informação mais valiosa não está explícita nos dados. Em um dataset com datas de cadastro de usuários, a data em si pode não ser relevante — mas o mês pode revelar sazonalidade. A partir de uma coluna, cria-se outra:

df['mes_cadastro'] = pd.to_datetime(df['data_cadastro']).dt.month

Em um dataset de casas na Califórnia, o preço por quarto pode ser mais informativo que o número absoluto de quartos:

df['pessoas_por_quarto'] = df['populacao'] / df['total_quartos']

Transformações essenciais

Valores ausentes (missing values): a maioria dos algoritmos não aceita dados com valores nulos. A regra prática: se mais de 20% dos valores de uma coluna estão ausentes, a coluna provavelmente não deve ser usada. Para menos de 20%, preencha com a média ou mediana. Para menos de 2%, eliminar as linhas afetadas é aceitável.

# Preencher ausentes com a média da coluna
df['total_quartos'].fillna(df['total_quartos'].mean(), inplace=True)

Outliers: valores muito fora do padrão podem distorcer o treinamento. Sempre investigue a causa antes de remover — um outlier pode ser um erro de entrada de dados ou um caso genuinamente excepcional que o modelo precisa aprender a lidar. O boxplot é a ferramenta visual mais direta para identificá-los.

One-hot encoding: algoritmos trabalham com números, não com categorias textuais. A técnica transforma uma coluna categórica em várias colunas binárias (0 ou 1):

df = pd.get_dummies(df, columns=['proximidade_oceano'])
# Cria colunas: proximidade_oceano_NEAR BAY, proximidade_oceano_INLAND, etc.

Binning: transforma valores numéricos em categorias. Útil quando a precisão numérica não importa, mas a faixa sim. Exemplo: transformar preços exatos de casas em “Alto”, “Médio” e “Baixo”.

Seleção de features

Nem toda variável melhora o modelo. Incluir features irrelevantes ou redundantes pode fazer o modelo identificar correlações espúrias e piorar a generalização. Teste diferentes combinações e meça o impacto nas métricas de validação — esse processo é trabalhoso, mas crítico.

O que é viés algorítmico e por que ele importa?

Viés algorítmico (bias) é quando um modelo de ML toma decisões que penalizam sistematicamente grupos específicos de pessoas, geralmente como reflexo de desigualdades já presentes nos dados de treinamento.

O viés pode ser introduzido em qualquer etapa:

  • Definição do problema: objetivos mal formulados que ignoram grupos minoritários
  • Coleta de dados: amostras não representativas da população real
  • Preparação de dados: exclusão inadvertida de grupos
  • Escolha de métricas: otimizar acurácia geral pode mascarar erros sistemáticos em subgrupos

Casos reais de viés em IA

Um caso documentado: o sistema de recorte automático de fotos de uma rede social priorizava sistematicamente pessoas de pele mais clara. Em testes de paridade demográfica com 50% de chance para cada grupo, houve diferença de 4% favorecendo pessoas brancas sobre negras (de ambos os sexos) e 7% favorecendo mulheres brancas sobre negras. O mecanismo era indireto: o algoritmo aprendia com engajamento (curtidas, cliques), e fotos de determinados grupos recebiam mais interação — o que o modelo interpretava como “mais relevante”.

Outro caso: sistemas de reconhecimento facial com taxa de erro muito maior para mulheres de pele escura do que para homens de pele clara, por causa de bases de treinamento compostas majoritariamente por rostos masculinos brancos.

O viés algorítmico não é intencional — mas seus efeitos são reais e mensuráveis.

Como mitigar viés

Diversidade nos dados de treinamento: a representação de todos os grupos relevantes é a medida mais eficaz. Antes de rotular, analise se a base de dados reflete a diversidade da população que o modelo vai atender.

Análise de subgrupos nas métricas: acurácia geral pode esconder disparidades. Calcule métricas separadamente para diferentes grupos (gênero, etnia, faixa etária) e investigue diferenças significativas.

Auditoria externa: frameworks como o IBM AI Fairness 360 automatizam a checagem de métricas de equidade. Auditorias externas — como as realizadas pela Algorithmic Justice League — oferecem credibilidade e identificam padrões que equipes internas podem não perceber.

Monitoramento contínuo: viés pode surgir ou se agravar ao longo do tempo, conforme os padrões de uso mudam. O monitoramento pós-deploy não é opcional.

A representação de Rumman Chowdhury, então diretora de engenharia de software do Twitter, ao reconhecer o problema é reveladora: “Nem tudo no Twitter é um bom candidato para um algoritmo. Em alguns casos, a decisão é mais bem tomada por pessoas.” Essa honestidade sobre as limitações da IA é o tipo de postura que separa projetos responsáveis dos irresponsáveis.

Como saber se os dados estão prontos para um modelo?

Um checklist prático antes de iniciar o treinamento:

  • Todas as colunas têm um significado claro de negócio?
  • O percentual de valores ausentes por coluna é aceitável (<20%)?
  • Outliers foram investigados e tratados?
  • Variáveis categóricas foram transformadas em numéricas?
  • A base cobre todos os grupos relevantes da população-alvo?
  • As métricas de sucesso do modelo incluem avaliação por subgrupos?

Se algum desses pontos não estiver resolvido, investir mais tempo na preparação dos dados é mais valioso do que escolher um algoritmo mais sofisticado.

Na Ateliware, essa avaliação faz parte do Discovery guiado por IA — onde mapeamos a qualidade e a representatividade dos dados disponíveis antes de definir a arquitetura técnica de qualquer solução de machine learning.

Referências

Posts relacionados