¿Cómo generar un conjunto de datos sintético utilizando el modelo de aprendizaje automático aprendido con el conjunto de datos original?


19

En general, el modelo de aprendizaje automático se basa en conjuntos de datos. ¿Me gustaría saber si hay alguna forma de generar un conjunto de datos sintéticos utilizando un modelo de aprendizaje automático tan capacitado que conserve las características originales del conjunto de datos?

[datos originales -> construir modelo de aprendizaje automático -> usar el modelo ml para generar datos sintéticos ... !!!]

Es posible ? Indíqueme el recurso relacionado si es posible.

Respuestas:


27

El enfoque general es hacer un análisis estadístico tradicional en su conjunto de datos para definir un proceso aleatorio multidimensional que generará datos con las mismas características estadísticas. La virtud de este enfoque es que sus datos sintéticos son independientes de su modelo de ML, pero estadísticamente "cercanos" a sus datos. (ver abajo para discutir su alternativa)

En esencia, está estimando la distribución de probabilidad multivariada asociada con el proceso. Una vez que haya estimado la distribución, puede generar datos sintéticos a través del método Monte Carlo o métodos similares de muestreo repetido. Si sus datos se asemejan a alguna distribución paramétrica (por ejemplo, lognormal), este enfoque es sencillo y confiable. La parte difícil es estimar la dependencia entre variables. Ver: https://www.encyclopediaofmath.org/index.php/Multi-dimensional_statistical_analysis .

Si sus datos son irregulares, los métodos no paramétricos son más fáciles y probablemente más robustos. La estimación de densidad de kernel multivariante es un método accesible y atractivo para personas con antecedentes de LD. Para obtener una introducción general y enlaces a métodos específicos, consulte: https://en.wikipedia.org/wiki/Nonparametric_statistics .

Para validar que este proceso funcionó para usted, vuelva a realizar el proceso de aprendizaje automático con los datos sintetizados, y debería terminar con un modelo que sea bastante similar al original. Del mismo modo, si coloca los datos sintetizados en su modelo ML, debería obtener salidas que tengan una distribución similar a las salidas originales.

Por el contrario, está proponiendo esto:

[datos originales -> construir modelo de aprendizaje automático -> usar el modelo ml para generar datos sintéticos ... !!!]

Esto logra algo diferente al método que acabo de describir. Esto resolvería el problema inverso : "qué entradas podrían generar cualquier conjunto dado de salidas del modelo". A menos que su modelo ML esté sobreajustado a sus datos originales, estos datos sintetizados no se verán como sus datos originales en todos los aspectos, o incluso en la mayoría.

Considere un modelo de regresión lineal. El mismo modelo de regresión lineal puede tener un ajuste idéntico a los datos que tienen características muy diferentes. Una famosa demostración de esto es a través del cuarteto de Anscombe .

Los cuatro conjuntos son idénticos cuando se examinan utilizando estadísticas de resumen simples, pero varían considerablemente cuando se grafican

Aunque no tengo referencias, creo que este problema también puede surgir en la regresión logística, modelos lineales generalizados, SVM y agrupación de K-medias.

Hay algunos tipos de modelos ML (por ejemplo, árbol de decisión) en los que es posible invertirlos para generar datos sintéticos, aunque requiere algo de trabajo. Consulte: Generación de datos sintéticos para que coincidan con los patrones de minería de datos .


Es hora de leer más sobre Monte-Carlo y el análisis estadístico multidimensional ... gracias por una buena explicación ... !!!
Hadooper

2

Existe un enfoque muy común para tratar con conjuntos de datos desequilibrados, llamado SMOTE, que genera muestras sintéticas de la clase minoritaria. Funciona perturbando muestras minoritarias utilizando las diferencias con sus vecinos (multiplicado por algún número aleatorio entre 0 y 1)

Aquí hay una cita del artículo original:

Las muestras sintéticas se generan de la siguiente manera: tome la diferencia entre el vector de características (muestra) en consideración y su vecino más cercano. Multiplique esta diferencia por un número aleatorio entre 0 y 1 y agréguelo al vector de características en consideración.

Puedes encontrar más información aquí .


1

El aumento de datos es el proceso de creación sintética de muestras basadas en datos existentes. Los datos existentes están ligeramente perturbados para generar datos nuevos que retienen muchas de las propiedades de datos originales. Por ejemplo, si los datos son imágenes. Los píxeles de la imagen se pueden intercambiar. Muchos ejemplos de técnicas de aumento de datos se pueden encontrar aquí .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.