Generación de datos sintéticos: una solución eficiente para el problema de datos insuficientes

Inteligencia Artificial en Salud

Generación de datos sintéticos: una solución eficiente para el problema de datos insuficientes

La generación de datos sintéticos es un proceso en el que se crean datos artificiales con el fin de simular datos reales. Este proceso puede ser muy útil en una amplia variedad de industrias, incluyendo el sector de la salud. En general, hay varias técnicas que se utilizan para generar datos sintéticos, cada una con sus fortalezas y debilidades, pero sin duda se reconoce que la Generación de datos sintéticos: una solución eficiente para el problema de datos insuficientes .

Una de las técnicas más comunes es la generación de datos aleatorios. Esta técnica implica la creación de datos mediante la generación de números aleatorios. La principal ventaja de esta técnica es que es relativamente fácil de implementar y puede generar grandes cantidades de datos rápidamente. Sin embargo, los datos generados pueden ser muy diferentes de los datos reales, lo que puede limitar su utilidad en ciertas aplicaciones.

Otra técnica común es la generación de datos basada en modelos. Esta técnica implica la creación de modelos estadísticos que pueden utilizarse para simular datos reales. La principal ventaja de esta técnica es que los datos generados son más similares a los datos reales que los generados aleatoriamente. Sin embargo, la calidad de los datos generados depende en gran medida de la calidad del modelo estadístico utilizado.

En el sector de la salud, la generación de datos sintéticos puede ser especialmente útil para la investigación y el desarrollo de nuevos tratamientos. Por ejemplo, los datos sintéticos pueden utilizarse para simular la eficacia y seguridad de un nuevo medicamento antes de su uso en ensayos clínicos. Además, los datos sintéticos también pueden ser útiles para mejorar la precisión de los diagnósticos y para predecir la evolución de enfermedades.

Sin embargo, la generación de datos sintéticos en el sector de la salud también presenta desafíos únicos. Por ejemplo, es importante garantizar la privacidad de los datos de los pacientes al generar datos sintéticos. Además, es importante que los datos generados sean lo suficientemente precisos como para ser útiles en la investigación y el desarrollo de tratamientos médicos.

Pero qué son los datos sintéticos ?

Los datos sintéticos son datos generados artificialmente que imitan los patrones existentes en los datos reales.   Estos datos se usan en aplicaciones como la minería de datos, el aprendizaje automático y la simulación de sistemas complejos. Los datos sintéticos tras su creación, y gracias a estos modelos,  podrían  ser similares a los datos de entrenamiento, De hecho se entrenan a partir de datos reales.  En el ámbito de la salud, la generación de datos sintéticos y en especial los datos generados por las GAN pueden utilizarse para generar datos sintéticos que representen de forma bastante fidedigna diferentes enfermedades y condiciones clínicas. Esto es especialmente útil en casos en los que no se cuenta con suficientes datos de pacientes reales debido a restricciones de privacidad o de disponibilidad.

Ventajas y desventajas

La Generación de datos sintéticos: una solución eficiente para el problema de datos insuficientes en el campo de la salud .  Estos datos sintéticos nos pueden ayudar a entrenar modelos de aprendizaje profundo  en la identificación de enfermedades y el diagnóstico temprano, pero sobre todo para fomentar el uso secundario de los datos para investigación clínica.

Pero cuidado:  A pesar de sus beneficios, las GAN también plantean desafíos importantes, como la necesidad de asegurarse de que los datos generados sean representativos y no sesgados.  Además, en el ámbito de la salud, es esencial garantizar que  los datos generados a partir de datos reales, no comprometan la privacidad y la confidencialidad de los pacientes.

Datos aleatorios versus datos sintéticos

En el pasado, cuando se utilizaban datos aleatorios para entrenar modelos de aprendizaje automático, había ciertas limitaciones que dificultaban la efectividad del modelo. La principal limitación era la falta de suficientes datos reales y representativos para entrenar el modelo. Esto llevaba a que los modelos no fueran lo suficientemente precisos en la toma de decisiones y, en algunos casos, incluso podían generar resultados perjudiciales.

Por otro lado, el uso de datos sintéticos para entrenar modelos de aprendizaje automático ha revolucionado la forma en que se aborda este problema. Con la generación de datos sintéticos, los modelos pueden ser entrenados con una cantidad ilimitada de datos que son representativos de la realidad. Esto permite una mayor precisión y un mejor rendimiento del algoritmo y por ende de sus predicciones.

Además, los datos sintéticos pueden ser generados de forma más rápida y a un costo mucho menor que la recolección de datos reales, lo que lo hace una opción más accesible para muchos investigadores y empresas.

Los modelos matemáticos detrás de las redes Neuronales

Es importante mencionar que las redes neuronales utilizan como mecanismo de aprendizaje un conjunto de iteraciones repetitivas que en algunos casos puede llegar a varios miles.

Este número de repeticiones, se utilizan  para el entrenamiento del modelo, y no hay una fórmula matemática que determine el número óptimo de “épocas” para entrenar un modelo.  ,Esto depende de muchos factores, como la complejidad del modelo, el tamaño del conjunto de datos y la naturaleza del problema que se está tratando de resolver.

Luego utilizamos con fines de evaluación una función derivada con una curva de de gradiente,  que nos permite evaluar si el número de épocas utilizado si ajusta a lo que andamos buscando. Por el contrario puede suceder que se sobrepase y produzca un fenómeno conocido como sobre-entrenamiento o overfitting.

Función de  gradiente para la evaluación de las redes neuronales

 

Creando datos sinteticos:  La distintas opciones:

1.) Creando un modelo con Redes Neuronales Generativas Adversas :

En este artículo describimos cómo construir varios modelos para la generación de datos sintéticos . En primer lugar analizaremos el modelo generativo adverso  (GAN) para sintetizar datos, en este caso para un conjunto de pacientes con enfermedades cardiovasculares. Comenzaremos diciendo que las  GAN son un red neuronal dentro del aprendizaje automático suprvisado que consta de dos partes: un generador y un discriminador. El generador se entrena para producir muestras sintéticas que se parezcan a los datos reales, mientras que el discriminador se entrena para distinguir entre las muestras reales y sintéticas.

A medida que el generador mejora su capacidad para producir muestras convincentes, el discriminador se vuelve más hábil para detectar las diferencias entre los datos reales y sintéticos.

La construcción de un modeloa partir de las GAN para sintetizar datos es especialmente útil en el campo de la salud, donde a menudo hay limitaciones en la cantidad y calidad de los datos disponibles. Los datos de pacientes son particularmente sensibles y a menudo están protegidos por leyes de privacidad. Además, los datos pueden ser costosos de recopilar y pueden estar sujetos a errores y sesgos.

La capacidad de sintetizar datos de pacientes mediante modelos GAN puede ayudar a abordar estas limitaciones al proporcionar una fuente de datos sintéticos que sean menos costosos, más fácilmente accesibles y más protegidos en términos de privacidad.

Mas abajo explico  klos pasos que iuse para cargar los datos, preprocesarlos y entrenar la red neuronal GAN. Mostraere como  diseñó el generador y el discriminador, cómo se entrenó el modelo y cómo se evaluó la calidad de los datos sintéticos generados.

Tambien explico cómo se utilizó la función de pérdida binaria cruzada para entrenar el discriminador y el generador, y cómo se utilizó la función de pérdida de similitud de Jensen-Shannon para evaluar la calidad de los datos sintéticos.

 

Este modelo en detalle:

Estos son los pasos que he seguido para crear el modelo de datos sintético:

  1. Cargamos un conjunto de datos reales de un archivo CSV utilizando la biblioteca Pandas. Este conjunto de datos es un conjunto de datos ficticio sobre la probabilidad sufrir una cardiopatia.  El archivo tiene seis variables: Sexo, Tabaco, HTA (hipertensión arterial), Diabetes, Obesidad y Edad.
  2. Preparamos los datos para el entrenamiento del modelo GAN. Hemos realizado varios pasos de preprocesamiento, que incluyen la conversión de valores no numéricos a ceros, la conversión de valores numéricos a enteros y la definición de la dimensión del espacio latente.
  3. Creamos el modelo GAN utilizando la biblioteca TensorFlow. El modelo consta de un generador y un discriminador.
  4. Entrenamos el modelo GAN. Durante el entrenamiento, el discriminador aprende a distinguir entre datos reales y sintéticos, mientras que el generador aprende a crear datos sintéticos que sean similares a los datos reales.
  5. Generamos datos sintéticos utilizando el modelo GAN. Hemos utilizado el generador para crear 10,000 filas de datos sintéticos, que se han guardado en un archivo CSV llamado ‘synthetic_data.csv’.
  6. Hemos cargado los datos sintéticos desde el archivo ‘synthetic_data.csv’ utilizando la biblioteca Pandas. También hemos convertido los valores de punto flotante en valores enteros.
  7. Hemos inspeccionado los datos sintéticos para asegurarnos de que son similares a los datos reales. Hemos observado que los datos sintéticos tienen valores similares a los valores reales y que las distribuciones de características son similares. Sin embargo, es importante tener en cuenta que los datos sintéticos no pueden reemplazar completamente los datos reales.  Es posible que haya diferencias sutiles entre los datos sintéticos y los datos reales que puedan afectar la precisión de los modelos de aprendizaje automático entrenados con estos datos.

Por acá adjunto un modelo desarrollado que he desarrollado y que utiliza la metodología de las GAN

2.) El modelo de agrupamiento

La técnica de agrupamiento es un método utilizado en la generación de datos sintéticos que implica la agrupación de datos reales en grupos similares y la generación de datos sintéticos para cada grupo. Esta técnica es particularmente útil para generar datos que sean más similares a los datos reales que los generados aleatoriamente y se utiliza en una amplia variedad de aplicaciones.

La teoría detrás de la técnica de agrupamiento se basa en el uso de modelos matemáticos que permiten identificar grupos similares en los datos reales. Estos modelos se basan en el análisis de las características de los datos reales y se utilizan para determinar las características importantes que deben ser incluidas en los datos sintéticos generados. Además, los modelos matemáticos utilizados en la técnica de agrupamiento también pueden incluir técnicas de suavizado y transformación de datos para mejorar la precisión de los datos generados.

La técnica de agrupamiento tiene varias ventajas sobre otras técnicas de generación de datos sintéticos. En particular, la técnica de agrupamiento permite generar datos sintéticos que sean más similares a los datos reales que los generados aleatoriamente. Además, la técnica de agrupamiento también permite controlar la distribución de los datos generados en función de los grupos identificados, lo que hace que sean más útiles en la investigación y el desarrollo de tratamientos médicos.

El modelo matemático utilizado en la técnica de agrupamiento se basa en algoritmos de aprendizaje automático que permiten identificar grupos similares en los datos reales. Estos algoritmos se basan en el análisis de las características de los datos reales y se utilizan para agrupar los datos en grupos similares. Una vez que se han identificado los grupos, se utilizan modelos matemáticos para generar datos sintéticos que sean similares a los datos reales dentro de cada grupo.

En la práctica, la técnica de agrupamiento se utiliza mediante la selección de un conjunto de características importantes que deben ser incluidas en los datos sintéticos generados. Estas características se seleccionan en función del conocimiento previo del fenómeno que se está estudiando y pueden incluir factores demográficos, clínicos o de exposición.

Técnica empleada:

En el ejemplo a continuación seguiremos esta técnica:

utilizaremos la biblioteca de aprendizaje automático Scikit-Learn para aplicar la técnica de agrupamiento K-means a un conjunto de datos de entrenamiento. Seleccionamos un conjunto de características relevantes para el agrupamiento y utilizamos la técnica de agrupamiento para generar cinco grupos similares.

Luego, generamos datos sintéticos para cada grupo utilizando los valores promedio de las características de cada grupo. Generamos 100 datos sintéticos para cada grupo utilizando una distribución normal con la media y la desviación estándar de las características del grupo.

Por acá adjunto un modelo desarrollado que he desarrollado y que utiliza la metodología de agrupamiento

3.) La tecnica CT-GAN

La CTGAN (Conditional Tabular GAN) es una técnica de generación de datos sintéticos basada en redes generativas adversarias (GAN) que se utiliza para generar datos tabulares condicionales. A diferencia de las técnicas de generación de datos tabulares tradicionales que se basan en modelos de regresión o árboles de decisión, la CTGAN utiliza la arquitectura de las redes GAN para generar datos tabulares que sean similares a los datos reales.

La técnica CTGAN es especialmente útil en el contexto de los datos tabulares condicionales, donde la generación de datos depende de una o varias variables de entrada. Por ejemplo, en el caso de la generación de datos de pacientes de un hospital, las variables de entrada pueden incluir la edad, el género, los antecedentes médicos y otros factores que influyen en la salud de un paciente. La CTGAN utiliza esta información para generar datos tabulares que sean similares a los datos reales y que se ajusten a las condiciones especificadas.

La técnica CTGAN utiliza dos redes neuronales: una red generadora y una red discriminadora. La red generadora crea datos sintéticos a partir de una distribución de ruido aleatorio y las condiciones especificadas, mientras que la red discriminadora intenta distinguir entre los datos reales y los datos sintéticos generados por la red generadora. El proceso de entrenamiento implica ajustar los pesos de ambas redes para que la red generadora pueda generar datos sintéticos que sean cada vez más similares a los datos reales.

En resumen, la CTGAN es una técnica de generación de datos sintéticos basada en redes GAN que se utiliza para generar datos tabulares condicionales. La técnica es especialmente útil en el sector de la salud, donde la generación de datos depende de múltiples factores de entrada. La CTGAN utiliza una red generadora y una red discriminadora para generar datos sintéticos que sean cada vez más similares a los datos reales. En general, la CTGAN es una técnica prometedora para la generación de datos sintéticos que puede ser útil en una amplia variedad de aplicaciones.

Técnica empleada:

En este modelo, se utiliza la biblioteca CTGAN y se carga un conjunto de datos existente en formato CSV. Antes de generar los datos sintéticos, se reemplazan los valores faltantes con el valor más común en cada columna y se cambian los tipos de datos a enteros.

A continuación, se especifica el número de filas a generar y el número de épocas para ajustar el modelo CTGAN a los datos originales. Se utiliza un bucle “for” para ajustar el modelo CTGAN en múltiples épocas. Después de cada época, se genera un nuevo conjunto de datos sintéticos utilizando la función “sample” de CTGAN.

Finalmente, se cambian los tipos de datos de los datos sintéticos a enteros sin decimales y se guardan en un archivo CSV para su uso posterior.

Por acá adjunto un modelo desarrollado que he desarrollado y que utiliza la metodología CT-GAN

4.)  El modelo bootstrap

La técnica Bootstrap es una técnica de remuestreo que se utiliza para generar muestras aleatorias a partir de un conjunto de datos existente. Esta técnica es particularmente útil para generar muestras más grandes o para estimar la precisión de una estadística utilizando muestras repetidas.

El proceso de Bootstrap implica la selección aleatoria de muestras con reemplazo de un conjunto de datos existente. Cada muestra generada a partir de este proceso se utiliza como una muestra independiente para estimar las estadísticas de interés, como la media, la mediana, el error estándar, etc. Al repetir este proceso muchas veces, se pueden generar muchas muestras independientes y estimar la variabilidad de las estadísticas de interés.

La técnica Bootstrap se utiliza a menudo en el sector de la salud para generar datos sintéticos y realizar análisis estadísticos. Una de las principales ventajas de la técnica Bootstrap es que se puede utilizar con cualquier conjunto de datos existente sin necesidad de hacer suposiciones sobre la distribución de los datos. Además, la técnica Bootstrap también es útil en situaciones en las que los datos reales son limitados o difíciles de obtener.

Técnica empleada:

La técnica de remuestreo con reemplazo implica la selección aleatoria de muestras con reemplazo de un conjunto de datos existente. Cada muestra generada a partir de este proceso se utiliza como una muestra independiente para estimar las estadísticas de interés.

En este modelo, se utiliza la biblioteca de manipulación de datos pandas para cargar los datos de entrenamiento desde un archivo CSV. Luego, se utiliza la función “sample” de pandas para realizar el remuestreo con reemplazo y generar 1000 muestras aleatorias a partir de los datos de entrenamiento. Finalmente, se guarda el DataFrame generado en un archivo CSV con un nombre nuevo.

La técnica de remuestreo Bootstrap es especialmente útil para generar muestras más grandes o para estimar la precisión de una estadística utilizando muestras repetidas. Además, la técnica Bootstrap se puede utilizar con cualquier conjunto de datos existente sin necesidad de hacer suposiciones sobre la distribución de los datos.

Por acá adjunto un modelo desarrollado que he desarrollado y que utiliza la metodología de Bootstrap

Resumen

En resumen, la generación de datos sintéticos es un proceso en el que se crean datos artificiales con el fin de simular datos reales. En el sector de la salud, la generación de datos sintéticos puede ser especialmente útil para la investigación y el desarrollo de nuevos tratamientos. Hay varias técnicas que se utilizan para generar datos sintéticos, cada una con sus fortalezas y debilidades. Algunas de las técnicas más comunes incluyen la generación de datos aleatorios, la generación de datos basada en modelos, la técnica CUD, la técnica GAN y la técnica de agrupamiento. Al utilizar estas técnicas, es importante tener en cuenta sus fortalezas y debilidades y aplicarlas en el contexto adecuado.

 

El presente artículo: Generación de datos sintéticos: una solución eficiente para el problema de datos insuficientes,  fue creado por el Dr. Juan Ignacio Barrios,  quien es médico y cirujano especialista en informática médica.

El Doctor Barrios Arce, posee un máster en Business Intelligence y es experto en el área del Big Data y la ciencia de datos. Aplica modelos de inteligencia artificial en sus investigaciones.  Colabora como profesor visitante de la cátedra de informática médica en la Universidad de Barcelona desde el año 2015 .  También es faculty member de la Universidad de Rochester NY, en los Estados Unidos de Norte América.

 

 

 

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

HTML Snippets Powered By : XYZScripts.com