A abordagem geral é fazer a análise estatística tradicional em seu conjunto de dados para definir um processo aleatório multidimensional que irá gerar dados com as mesmas características estatísticas. A virtude dessa abordagem é que seus dados sintéticos são independentes do seu modelo de ML, mas estatisticamente "próximos" dos seus dados. (veja abaixo a discussão de sua alternativa)
Em essência, você está estimando a distribuição de probabilidade multivariada associada ao processo. Depois de estimar a distribuição, é possível gerar dados sintéticos por meio do método Monte Carlo ou métodos de amostragem repetida semelhantes. Se seus dados se assemelham a alguma distribuição paramétrica (por exemplo, lognormal), essa abordagem é direta e confiável. A parte complicada é estimar a dependência entre variáveis. Veja: https://www.encyclopediaofmath.org/index.php/Multi-dimensional_statistical_analysis .
Se seus dados forem irregulares, os métodos não paramétricos serão mais fáceis e provavelmente mais robustos. A estimativa da densidade kernal multivariada é um método acessível e atraente para pessoas com antecedentes de ML. Para uma introdução geral e links para métodos específicos, consulte: https://en.wikipedia.org/wiki/Nonparametric_statistics .
Para validar que esse processo funcionou para você, você passa pelo processo de aprendizado de máquina novamente com os dados sintetizados e deve terminar com um modelo bastante próximo do original. Da mesma forma, se você colocar os dados sintetizados no seu modelo de ML, deverá obter saídas com distribuição semelhante à das saídas originais.
Por outro lado, você está propondo isso:
[dados originais -> construir modelo de aprendizado de máquina -> use o modelo ml para gerar dados sintéticos .... !!!]
Isso realiza algo diferente do método que acabei de descrever. Isso resolveria o problema inverso : "que entradas poderiam gerar qualquer conjunto de saídas do modelo". A menos que seu modelo de ML esteja super ajustado aos dados originais, esses dados sintetizados não serão parecidos com os dados originais em todos os aspectos, ou mesmo na maioria.
Considere um modelo de regressão linear. O mesmo modelo de regressão linear pode ter um ajuste idêntico aos dados que possuem características muito diferentes. Uma demonstração famosa disso é através do quarteto de Anscombe .
Embora eu não tenha referências, acredito que esse problema também possa surgir em regressão logística, modelos lineares generalizados, SVM e agrupamento K-means.
Existem alguns tipos de modelo de ML (por exemplo, árvore de decisão) em que é possível invertê-los para gerar dados sintéticos, embora isso dê algum trabalho. Consulte: Gerando dados sintéticos para corresponder aos padrões de mineração de dados .
Existe uma abordagem muito comum para lidar com conjuntos de dados desequilibrados, chamados SMOTE, que gera amostras sintéticas da classe minoritária. Ele funciona perturbando amostras minoritárias usando as diferenças com seus vizinhos (multiplicado por algum número aleatório entre 0 e 1)
Aqui está uma citação do artigo original:
Você pode encontrar mais informações aqui .
fonte
O aumento de dados é o processo de criação sintética de amostras com base nos dados existentes. Os dados existentes são levemente perturbados para gerar novos dados que retêm muitas das propriedades dos dados originais. Por exemplo, se os dados são imagens. Os pixels da imagem podem ser trocados. Muitos exemplos de técnicas de aumento de dados podem ser encontrados aqui .
fonte