Comparamos o desempenho de 7 geradores de dados sintéticos disponíveis publicamente, provenientes de 4 fornecedores distintos, utilizando um conjunto de dados de validação composto por 70.000 amostras, com 4 características numéricas e 7 categóricas, para avaliar sua capacidade de replicar características de dados do mundo real.
Abaixo, você pode ver os resultados dos testes de desempenho, onde comparamos estatisticamente os geradores de dados sintéticos.
O gráfico acima avalia o desempenho de vários sintetizadores de dados sintéticos usando diversas métricas-chave. Para todas as métricas, um valor mais baixo indica melhor desempenho, o que significa que os dados sintéticos são mais semelhantes aos dados reais.
Para cada métrica, o gráfico exibe duas barras distintas:
- Média: Representa a pontuação média de erro ou distância em todas as colunas para essa métrica. Ela fornece uma boa visão geral do desempenho.
- Máximo: Representa o pior erro ou distância encontrada em qualquer coluna individual para essa métrica. Esse valor é crucial para identificar os pontos mais fracos ou as maiores imprecisões no conjunto de dados sintéticos.
Você pode encontrar informações mais detalhadas sobre as métricas na metodologia . Veja para que elas são mais indicadas:
Por que os dados sintéticos são importantes para as empresas?
Os dados sintéticos são importantes para as empresas por três motivos:
- privacidade,
- testes de produtos,
- e treinamento de algoritmos de aprendizado de máquina.
Os líderes do setor também começaram a discutir a importância de abordagens centradas em dados para o desenvolvimento de modelos de IA/ML, às quais os dados sintéticos podem agregar valor significativo.
A geração de dados sintéticos é fundamental para garantir a qualidade dos dados , especialmente na preservação da privacidade. Por definição, os dados sintéticos imitam as propriedades estatísticas dos dados reais sem expor informações sensíveis. No entanto, se os dados sintéticos puderem ser submetidos a engenharia reversa para reconstruir o conjunto de dados original, isso compromete seu propósito fundamental de salvaguardar a privacidade.
Os Modelos de Linguagem de Grande Porte (LLMs, na sigla em inglês) estão entre os maiores produtores de dados sintéticos. Numerosos benchmarks para LLMs de última geração (SOTA, na sigla em inglês) dependem desses modelos para gerar casos de teste para avaliar outros LLMs. Além disso, os próprios LLMs são frequentemente treinados com dados sintéticos, aproveitando a diversidade e a escala de conjuntos de dados artificiais para melhorar seu desempenho.
Assim como na maioria dos tópicos relacionados à IA, o aprendizado profundo também é fundamental para a geração de dados sintéticos. Os dados sintéticos criados por algoritmos de aprendizado profundo também estão sendo usados para aprimorar outros algoritmos de aprendizado profundo.
Quando se utilizam dados sintéticos?
Ao selecionar uma tecnologia para aprimorar a privacidade, as empresas enfrentam um dilema entre privacidade e utilidade dos dados. Portanto, precisam definir as prioridades de seu caso de uso antes de investir. Dados sintéticos não contêm informações pessoais; são dados de amostra com uma distribuição semelhante à dos dados originais.
Embora os dados sintéticos possam ser menos úteis do que os dados reais em alguns casos, eles também podem ser quase tão valiosos quanto os dados reais. Por exemplo, uma equipe da Deloitte Consulting gerou 80% dos dados de treinamento para um modelo de aprendizado de máquina por meio da síntese de dados. A precisão do modelo resultante foi semelhante à de um modelo treinado com dados reais.
A geração de dados sintéticos pode ajudar a construir modelos de aprendizado de máquina precisos, especialmente quando as empresas precisam de dados para treinar algoritmos de aprendizado de máquina e seus dados de treinamento são altamente desbalanceados (por exemplo, mais de 99% das instâncias pertencem a uma única classe).
Veja a lista de casos de uso de dados sintéticos .
Como as empresas geram dados sintéticos?
Figura 1. Fluxograma ilustrando o processo de geração de dados sintéticos, incluindo avaliação de utilidade e garantia de privacidade.
Fonte: Hasbrown 1
As empresas podem preferir métodos diferentes, como árvores de decisão . 2 técnicas de aprendizado profundo e ajuste proporcional iterativo 3 Para executar o processo de síntese de dados, devem escolher o método de acordo com os requisitos dos dados sintéticos e o nível de utilidade dos dados desejado para a finalidade específica da geração de dados.
Após a síntese dos dados, deve-se avaliar a utilidade dos dados sintéticos comparando-os com dados reais. O processo de avaliação da utilidade tem duas etapas:
- Comparações de propósito geral : Comparar parâmetros como distribuições e coeficientes de correlação medidos a partir dos dois conjuntos de dados.
- Avaliação de utilidade com reconhecimento da carga de trabalho : comparação da precisão dos resultados para o caso de uso específico por meio da análise de dados sintéticos.
Quais são as técnicas de geração de dados sintéticos?
Geração de acordo com a distribuição
Nos casos em que não existem dados reais, mas o analista de dados possui um conhecimento abrangente de como seria a distribuição do conjunto de dados, ele pode gerar uma amostra aleatória de qualquer distribuição, como Normal, Exponencial, Qui-quadrado, t, lognormal e Uniforme. Nessa técnica, a utilidade dos dados sintéticos varia dependendo do nível de conhecimento do analista sobre um ambiente de dados específico.
Ajustar dados reais a uma distribuição conhecida
Se houver dados reais disponíveis, as empresas podem gerar dados sintéticos determinando as distribuições que melhor se ajustam a esses dados. Caso desejem ajustar dados reais a uma distribuição conhecida e conheçam os parâmetros dessa distribuição, podem utilizar o método de Monte Carlo para gerar dados sintéticos. O método é uma técnica computacional que utiliza amostragem aleatória e modelagem estatística para resolver problemas que, embora possam ser determinísticos em princípio, são complexos demais para soluções analíticas diretas. As etapas são:
- Defina o problema : especifique o problema a ser resolvido, que geralmente envolve parâmetros com distribuições conhecidas ou assumidas.
- Gerar entradas aleatórias : Use a geração de números aleatórios para criar entradas, geralmente com base em uma distribuição de probabilidade.
- Executar o modelo : Realize simulações usando essas entradas para avaliar o resultado do sistema ou processo.
- Resultados agregados : Reúna os resultados de todas as simulações e calcule medidas estatísticas como médias, variâncias ou probabilidades.
O método de Monte Carlo ajuda a encontrar o melhor ajuste para dados sintéticos, mas nem sempre atende às necessidades de negócios. Modelos de aprendizado de máquina, como árvores de decisão, podem modelar distribuições complexas e não clássicas nesses casos. Isso permite que a geração de dados sintéticos seja altamente correlacionada com os dados originais. No entanto, os modelos de aprendizado de máquina correm o risco de sobreajuste, o que pode reduzir sua capacidade de generalização e previsão confiável de observações futuras.
As empresas podem usar a geração híbrida de dados sintéticos em casos onde apenas parte dos dados reais está disponível. Nesse caso, os analistas geram uma parte do conjunto de dados a partir de distribuições teóricas e outras partes com base em dados reais.
Utilizando aprendizado profundo
Modelos generativos profundos, como o Autoencoder Variacional (VAE) e a Rede Generativa Adversarial (GAN), podem gerar dados sintéticos.
Autoencoder Variacional
O VAE é um método não supervisionado no qual o codificador comprime o conjunto de dados original em uma estrutura mais compacta e transmite os dados para o decodificador. Em seguida, o decodificador gera uma saída que representa o conjunto de dados original. O sistema é treinado otimizando a correlação entre os dados de entrada e saída.
Figura 2. Estrutura codificador-decodificador para aprendizagem de espaço latente e geração de conteúdo.
Fonte: Uma explicação detalhada das principais tecnologias de IA generativa: de GANs a Transformers 4
Rede generativa adversarial
No modelo GAN, duas redes, um gerador e um discriminador, treinam o modelo iterativamente. O gerador recebe dados de amostra aleatórios e gera um conjunto de dados sintéticos. O discriminador compara os dados gerados sinteticamente com um conjunto de dados reais com base em condições previamente definidas.
Figura 3. O processo de treinamento da GAN: Gerador, Discriminador e Ajuste Fino.
Fonte: Rede Generativa Adversarial 5
Como gerar dados sintéticos em Python?
Existem diversas maneiras de gerar dados sintéticos para tarefas simples em Python e, com algum esforço, esses métodos também podem ser adaptados para tarefas complexas.
1. Geração básica de dados aleatórios usando NumPy
2. Geração de dados com distribuições específicas usando NumPy
3. Geração de dados realistas usando a biblioteca Faker
4. Geração de dados para classificação e regressão usando scikit-learn
Quais são as melhores práticas para a geração de dados sintéticos?
Figura 4. Melhores práticas para geração de dados sintéticos.
1- Garantir que os dados sintéticos espelhem os dados reais da aplicação.
A utilidade dos dados sintéticos varia dependendo da técnica utilizada para gerá-los. É necessário analisar o caso de uso e decidir se os dados sintéticos gerados são adequados para essa finalidade específica.
Exemplo da vida real:
O JP Morgan aplicou dados sintéticos no setor financeiro para gerar modelos financeiros precisos, protegendo a privacidade dos clientes. Sua abordagem inclui testar os dados sintéticos para garantir que reflitam as características reais de seus conjuntos de dados financeiros. Isso é particularmente importante ao usar dados sintéticos para treinar algoritmos de detecção de fraudes, onde os dados sintéticos devem se comportar como transações reais para identificar padrões fraudulentos. 6
2-Trabalhar com dados limpos
Dados limpos são um requisito essencial para a geração de dados sintéticos. Se você não limpar e preparar os dados antes da síntese, poderá ter uma situação em que "lixo entra, lixo sai". No processo de preparação de dados, certifique-se de aplicar os seguintes princípios:
- Limpeza de dados : Eliminação de dados imprecisos, formatados incorretamente, redundantes ou incompletos de um conjunto de dados.
- Harmonização de dados: Sintetizar dados de diversas fontes e fornecer aos clientes uma compreensão comparável das informações provenientes de várias pesquisas.
Exemplo da vida real:
O Instituto de Informática, Ciência de Dados e Bioestatística (I2DB) da Universidade de Washington em St. Louis adotou a plataforma MDClone em 2018. Por meio de um estudo pioneiro, eles confirmaram que dados sintéticos podem gerar os mesmos resultados analíticos que dados reais, preservando a privacidade. Essa iniciativa faz parte da estratégia mais ampla da universidade para aprimorar a pesquisa orientada por dados, fornecendo recursos seguros e inovadores para a comunidade acadêmica. 7
Antes da criação de dados sintéticos, os registros dos pacientes são limpos, o que envolve a remoção de erros e duplicatas e a garantia da consistência dos dados. Ao limpar e harmonizar os Registros Eletrônicos de Saúde (RES) de diferentes departamentos, o MDClone garante que as versões sintéticas desses registros mantenham a utilidade dos dados reais para a pesquisa médica, protegendo, ao mesmo tempo, a privacidade do paciente.
3- Recorra aos fornecedores, se necessário.
Identifique as capacidades de dados sintéticos da sua organização e terceirize com base nas lacunas de capacidade. As duas etapas importantes são a preparação e a síntese de dados. Os fornecedores podem automatizar ambas as etapas.
4- Garantir que os dados sintéticos estejam em conformidade com as normas de privacidade.
Ao gerar dados sintéticos, é fundamental garantir a privacidade dos indivíduos cujos dados são utilizados para criar o conjunto de dados sintéticos. O cumprimento das regulamentações de privacidade de dados, como o GDPR (Regulamento Geral de Proteção de Dados), a Lei de IA da UE e a HIPAA, é obrigatório. Os dados sintéticos devem ser completamente dissociados de quaisquer indivíduos reais, e não deve haver nenhuma maneira de rastreá-los até os registros originais.
Os conjuntos de dados do mundo real frequentemente contêm informações sensíveis, especialmente nos setores de saúde, finanças e telecomunicações. Se dados sintéticos forem gerados sem medidas robustas de privacidade, isso poderá acarretar repercussões legais e problemas de confiança do consumidor. Os dados sintéticos deixaram de ser uma área cinzenta e devem ser rotulados e documentados de acordo com a Lei de IA da UE (em vigor desde agosto de 2026). 8
Estudo de caso:
Algumas ferramentas de geração de dados sintéticos, como o Synthesized, auxiliam na conformidade em tempo real. Elas utilizam uma abordagem de "Dados como Código", que permite às empresas inserir regras de conformidade complexas diretamente no processo de geração de dados. Isso garante automaticamente que os dados de teste estejam atualizados e em conformidade com todos os requisitos legais. 9
5-Mitigação de Viés
A geração de dados sintéticos deve visar evitar a introdução ou perpetuação de vieses presentes em conjuntos de dados do mundo real. Isso envolve o monitoramento de potenciais vieses em atributos como raça, gênero ou nível socioeconômico, que podem levar a resultados discriminatórios se não forem controlados. A mitigação de vieses é crucial para garantir modelos justos e equitativos.
Dados tendenciosos levam a modelos tendenciosos, que, por sua vez, podem perpetuar as desigualdades sociais. Por exemplo, uma ferramenta de recrutamento por IA treinada com dados tendenciosos pode rejeitar desproporcionalmente candidatos de certos grupos demográficos. Garantir que os dados sintéticos sejam equilibrados e imparciais ajuda a desenvolver modelos de IA mais justos.
Metodologia de referência para geração de dados sintéticos
Realizamos o teste comparativo para avaliar o desempenho de 7 geradores de dados sintéticos disponíveis publicamente, utilizando um conjunto de dados de validação. O conjunto de dados consiste em 70.000 amostras e inclui 4 variáveis numéricas e 7 variáveis categóricas.
Preparação de dados
Primeiramente, o conjunto de dados foi homogeneizado, o que significa que as distribuições das características foram tornadas consistentes em todo o conjunto, eliminando a necessidade de pré-processamento adicional, como normalização ou tratamento de valores ausentes. Para preparar os dados para treinamento e avaliação, realizamos os seguintes passos:
- Embaralhamento : O conjunto de dados foi embaralhado aleatoriamente para garantir que os pontos de dados fossem distribuídos uniformemente e para evitar qualquer viés de ordenação.
- Divisão : O conjunto de dados embaralhado foi dividido aproximadamente em duas metades iguais:
- Dados de treinamento: 35.000 amostras foram usadas para treinar os geradores de dados sintéticos.
- Dados de validação: 35.000 amostras reservadas para avaliação, a fim de verificar a qualidade dos dados sintéticos gerados em comparação com dados reais não vistos.
Como o conjunto de dados foi homogeneizado, as distribuições de características nos conjuntos de treinamento e de validação foram semelhantes, garantindo uma comparação justa.
Treinamento de geradores de dados sintéticos
Selecionamos 7 geradores de dados sintéticos para este teste comparativo: YData, Mostly AI, Gretel e 4 geradores do Synthetic Data Vault. O processo de treinamento para cada gerador foi o seguinte:
- SDV e YData : Utilizamos os SDKs e modelos fornecidos pela SDV e pela YData, configurados com suas definições padrão para garantir consistência e reprodutibilidade.
- Principalmente IA e Gretel : Esses geradores foram treinados usando suas plataformas, com as configurações definidas conforme recomendado pelos fornecedores.
Cada gerador foi treinado exclusivamente com os dados de treinamento (35.000 amostras) para gerar conjuntos de dados sintéticos que imitam as características dos dados reais.
Avaliação
Após o treinamento, cada gerador de dados sintéticos produziu um conjunto de dados sintéticos. Avaliamos a qualidade desses conjuntos de dados sintéticos comparando-os tanto com os dados de treinamento (para avaliar o quão bem os geradores capturaram a distribuição de treinamento) quanto com os dados de validação (para avaliar a generalização para dados não vistos).
Avaliamos a qualidade dos dados sintéticos usando três métricas:
Distância de correlação (Δ)
Mede a diferença absoluta entre as matrizes de correlação de características numéricas em conjuntos de dados reais e sintéticos, avaliando o quão bem as relações (por exemplo, entre o tamanho da casa e o consumo de energia) são preservadas.
- Escala: 0 (perfeito) a 1 (pior).
- Objetivo: Garantir a manutenção das relações estruturais, o que é vital para tarefas como regressão.
Distância Kolmogorov-Smirnov (K)
Mede a diferença máxima entre as funções de distribuição cumulativa (FDCs) de características numéricas, avaliando o quão bem suas distribuições marginais (por exemplo, a distribuição das idades dos clientes) são capturadas.
- Intervalo: 0 (idêntico) a 1 (completamente diferente).
- Objetivo: Garantir distribuições numéricas realistas, que são cruciais para simulações ou análises estatísticas.
Distância de Variação Total (TVD)
Mede a diferença entre as distribuições de probabilidade de características categóricas, calculada como metade da soma das diferenças absolutas (por exemplo, distribuição das regiões dos clientes).
- Intervalo: 0 (idêntico) a 1 (completamente diferente).
- Objetivo: Avaliar a qualidade da representação das distribuições categóricas, o que é importante para tarefas como classificação.
Avaliação baseada em modelos
As métricas estatísticas fornecem uma primeira análise útil da qualidade dos dados sintéticos. No entanto, elas não são suficientes por si só. A avaliação mais significativa é baseada em modelos e concentra-se no desempenho dos dados sintéticos em cenários reais de treinamento. Em outras palavras, a questão fundamental é se os dados sintéticos melhoram o desempenho do modelo.
Configuração de avaliação
Avaliamos dados sintéticos gerados com as configurações padrão de cada sintetizador. Nossa análise focou em dois aspectos:
- Sobreajuste (overfitting) , para verificar se os dados sintéticos estavam muito próximos dos dados de treinamento originais.
- Utilidade prática , medida através do desempenho do modelo durante o treinamento.
Resultados de aumento de dados
Testamos se a adição de dados sintéticos ao conjunto de treinamento poderia melhorar a precisão. Os dados sintéticos foram adicionados incrementalmente, de 10% até 100% do tamanho original do conjunto de treinamento.
Em todos os casos, a precisão do modelo diminuiu. Mesmo a menor adição (10%) levou a uma queda no desempenho. À medida que mais dados sintéticos eram adicionados, a queda se tornava mais acentuada. Esse padrão indica que os dados sintéticos introduziram ruído adicional no processo de treinamento.
Impacto da Qualidade dos Dados
A magnitude da queda de desempenho dependeu da qualidade dos dados sintéticos. Sintetizadores com taxas de erro de referência mais baixas introduziram menos ruído e causaram reduções menores na precisão. Isso sugere que dados sintéticos de maior qualidade podem mitigar, mas não eliminar completamente, os efeitos negativos observados em nossos testes.
Limitações e considerações práticas
Não apresentamos resultados de desempenho para modelos treinados em conjuntos de dados aumentados. Esses modelos foram treinados usando configurações padrão, sem ajuste de hiperparâmetros. Como a implementação em situações reais exige uma otimização cuidadosa do modelo, incluir tais resultados não proporcionaria uma comparação justa ou realista.
Principais conclusões
Em avaliações baseadas em modelos, especialmente ao combinar dados reais e sintéticos, o volume de dados sintéticos é importante. Adicionar dados sintéticos em excesso pode mascarar o sinal dos dados reais e reduzir a eficácia do aprendizado. Sem um ajuste e personalização cuidadosos, isso pode levar a conclusões enganosas sobre o verdadeiro valor dos dados sintéticos.
Possíveis razões para as diferenças de desempenho
- Abordagem estatística: O YData concentra-se em maximizar a fidelidade estatística, o que explica sua maior precisão geral. Os modelos SDV variam de acordo com a técnica (cópula vs. GAN), resultando em diferenças de desempenho mais amplas e maiores erros no pior caso.
- Facilidade de uso versus controle: a MOSTLY AI prioriza a usabilidade e a automação, sacrificando um pouco do controle estatístico detalhado em prol de uma configuração mais rápida. A Gretel enfatiza a personalização, que pode melhorar os resultados quando ajustada corretamente, mas apresenta desempenho inferior com as configurações padrão.
- Arquitetura: Os modelos baseados em cópulas preservam melhor as distribuições e correlações para dados tabulares, enquanto os modelos baseados em GAN (CTGAN, CopulaGAN) introduzem mais variância, aumentando o erro em algumas características.
- Configurações padrão: Todas as ferramentas foram testadas com as configurações padrão. Os geradores projetados para personalização se beneficiam mais de ajustes, o que explica em parte seus resultados de benchmark mais fracos logo após a instalação.
Perguntas frequentes
Dados sintéticos são dados artificiais criados por meio de diferentes algoritmos que espelham as propriedades estatísticas dos dados originais, mas não revelam nenhuma informação sobre eventos ou pessoas do mundo real.
Por exemplo, dados produzidos por simulações computacionais se qualificariam como dados sintéticos. Isso inclui aplicações como sintetizadores musicais, imagens médicas, modelos econômicos e simuladores de voo, em que os resultados imitam fenômenos do mundo real, mas são inteiramente gerados por meio de algoritmos.
Os dados sintéticos são amplamente utilizados nas áreas da saúde, finanças, veículos autônomos, jogos, segurança cibernética e em qualquer campo onde a privacidade dos dados seja crucial ou onde os dados reais sejam escassos ou tendenciosos.
As limitações incluem possíveis imprecisões caso os dados sintéticos não reflitam com precisão as complexidades do mundo real, o risco de introduzir viés e a necessidade de algoritmos sofisticados e conhecimento especializado para gerar dados sintéticos de alta qualidade.
Os dados sintéticos podem ajudar a cumprir regulamentações de privacidade de dados, como o GDPR, garantindo que os dados usados para análise ou treinamento de IA não contenham informações de identificação pessoal. No entanto, a conformidade também depende da metodologia usada para gerar os dados sintéticos.
Embora os dados sintéticos possam complementar os dados reais em muitos cenários, especialmente quando a privacidade ou a escassez de dados são uma preocupação, eles nem sempre os substituem completamente. A decisão de usar dados sintéticos em vez de dados reais depende do caso de uso específico, da qualidade dos dados sintéticos e da importância da precisão.
Comentários 2
Compartilhe suas ideias
Seu endereço de e-mail não será publicado. Todos os campos são obrigatórios.
It is SimPy not SymPy - the two are very different..
Hi Jaiber, thank you for your comment, we also notice a lot of typos on the web. However, we had mentioned above that SymPy can help generate synthetic data with symbolic expressions, I clarified the wording a bit more. That seems correct to me. I believe you mean that SimPy discrete event simulation can be used to create synthetic data, too, right? If you have an example, happy to add, too.
How I can generate synthetic data given that I want the data on the tail to follow a specific distribution and data on the head of follows a different distribution?
You could combine distributions to create a single distribution which you can use for data generation.