Estás leyendo la publicación: ¿Cómo construir modelos predictivos de salud usando PyHealth?
El aprendizaje automático se ha aplicado a muchas tareas relacionadas con la salud, como el desarrollo de nuevos tratamientos médicos, la gestión de datos y registros de pacientes y el tratamiento de enfermedades crónicas. Para lograr el éxito en esas aplicaciones SOTA, debemos confiar en la técnica que requiere mucho tiempo de evaluación de la construcción de modelos. Para aliviar esta carga, Yue Zhao et al han propuesto PyHealth, una caja de herramientas basada en Python. Como su nombre lo indica, esta caja de herramientas contiene una variedad de modelos ML y algoritmos de arquitectura para trabajar con datos médicos. En este artículo, analizaremos este modelo para comprender su funcionamiento y aplicación. A continuación se presentan los puntos principales que vamos a discutir en este artículo.
Tabla de contenido
- Aprendizaje automático en el cuidado de la salud
- ¿Cómo puede PyHealth ayudar en el cuidado de la salud?
- Funcionamiento de PyHealth
- PyHealth para la construcción de modelos
Primero analicemos el caso de uso del aprendizaje automático en la industria de la salud.
Aprendizaje automático en el cuidado de la salud
El aprendizaje automático se está utilizando en una variedad de entornos de atención médica, desde la gestión de casos de afecciones crónicas comunes hasta el aprovechamiento de los datos de salud del paciente junto con factores ambientales como la exposición a la contaminación y el clima.
La tecnología de aprendizaje automático puede ayudar a los profesionales de la salud a desarrollar tratamientos de medicamentos precisos adaptados a las características individuales mediante el procesamiento de enormes cantidades de datos. Los siguientes son algunos ejemplos de aplicaciones que se pueden abordar en este segmento:
Detección de enfermedades
La capacidad de diagnosticar enfermedades de manera rápida y adecuada es uno de los aspectos más críticos de una organización de atención médica exitosa. En áreas de gran necesidad como el diagnóstico y la terapia del cáncer, donde cientos de medicamentos se encuentran ahora en ensayos clínicos, los científicos y los especialistas en computación están entrando en la mezcla. Un método combina la computación cognitiva con la secuenciación genética de tumores, mientras que otro utiliza el aprendizaje automático para brindar diagnóstico y tratamiento en una variedad de campos, incluida la oncología.
Diagnóstico usando imagen
Las imágenes médicas y su capacidad para proporcionar una imagen completa de una enfermedad es otro aspecto importante en el diagnóstico de una enfermedad. El aprendizaje profundo se está volviendo más accesible a medida que las fuentes de datos se vuelven más diversas y puede usarse en el proceso de diagnóstico, por lo que se está volviendo cada vez más importante. Aunque estas aplicaciones de aprendizaje automático con frecuencia son correctas, tienen algunas limitaciones en el sentido de que no pueden explicar cómo llegaron a sus conclusiones.
Descubrimiento de medicamento
ML tiene el potencial de identificar nuevos medicamentos con importantes beneficios económicos para las compañías farmacéuticas, los hospitales y los pacientes. Algunas de las empresas de tecnología más grandes del mundo, como IBM y Google, han desarrollado sistemas ML para ayudar a los pacientes a encontrar nuevas opciones de tratamiento. La medicina de precisión es una frase significativa en esta área, ya que implica comprender los mecanismos que subyacen a trastornos complejos y desarrollar vías terapéuticas alternativas.
Herramientas quirúrgicas
Debido a la naturaleza de alto riesgo de las cirugías, siempre necesitaremos asistencia humana, pero el aprendizaje automático ha demostrado ser extremadamente útil en el sector de la cirugía robótica. El robot da Vinci, que permite a los cirujanos operar brazos robóticos para realizar cirugías con gran detalle y en espacios reducidos, es uno de los avances más populares en la profesión.
Estas manos son generalmente más precisas y firmes que las manos humanas. Hay instrumentos adicionales que emplean visión por computadora y aprendizaje automático para determinar las distancias entre varias partes del cuerpo para que la cirugía se pueda realizar correctamente.
¿Cómo PyHealth puede ayudar en el cuidado de la salud?
Los datos de salud suelen ser ruidosos, complicados y heterogéneos, lo que da como resultado un conjunto diverso de problemas de modelado de atención médica. Por ejemplo, la predicción de riesgos para la salud se basa en datos secuenciales de pacientes, el diagnóstico de enfermedades se basa en imágenes médicas y la detección de riesgos se basa en señales fisiológicas continuas.
Electroencefalograma (EEG) o electrocardiograma (ECG), por ejemplo, y notas clínicas multimodales (p. ej., texto e imágenes). A pesar de su importancia en la investigación del cuidado de la salud y la toma de decisiones clínicas, la complejidad y la variabilidad de los datos y las tareas de salud necesitan el desarrollo esperado desde hace mucho tiempo de un sistema de aprendizaje automático especializado para comparar modelos predictivos de salud.
PyHealth se compone de tres módulos: preprocesamiento de datos, modelado predictivo y evaluación. Tanto los informáticos como los científicos de datos sanitarios son los consumidores objetivo de PyHealth. Pueden ejecutar procesos complicados de aprendizaje automático en conjuntos de datos de atención médica en menos de 10 líneas de código utilizando PyHealth.
El módulo de preprocesamiento de datos convierte conjuntos de datos de atención médica complicados, como registros de salud electrónicos longitudinales, imágenes médicas, señales continuas (por ejemplo, electrocardiogramas) y notas clínicas en formatos compatibles con el aprendizaje automático.
El módulo de modelado predictivo ofrece más de 30 modelos de aprendizaje automático, incluidos árboles de conjuntos conocidos y enfoques basados en redes neuronales profundas, utilizando una API uniforme pero flexible, diseñada tanto para investigadores como para profesionales.
El módulo de evaluación incluye una serie de metodologías de evaluación (por ejemplo, validación cruzada y división de prueba de validación de tren), así como métricas de modelo de predicción.
Hay cinco ventajas distintas al usar PyHealth. Para empezar, contiene más de 30 algoritmos de salud predictivos de vanguardia, que incluyen tanto técnicas tradicionales como XGBoost como arquitecturas de aprendizaje profundo más recientes, como codificadores automáticos, modelos basados en convoluciones y basados en adversarios.
En segundo lugar, PyHealth tiene un amplio alcance e incluye modelos para una variedad de tipos de datos, incluidos secuencias, imágenes, señales fisiológicas y datos de texto no estructurados. En tercer lugar, para mayor claridad y facilidad de uso, PyHealth incluye una API unificada, documentación detallada y ejemplos interactivos para todos los algoritmos: se pueden implementar modelos complejos de aprendizaje profundo en menos de diez líneas de código.
En cuarto lugar, en la mayoría de los modelos de PyHealth se realizan pruebas unitarias con integración continua, multiplataforma, cobertura de código y comprobaciones de capacidad de mantenimiento del código. Finalmente, para mayor eficiencia y escalabilidad, la paralelización está habilitada en módulos seleccionados (preprocesamiento de datos), así como el cómputo GPU rápido para modelos de aprendizaje profundo a través de PyTorch.
Funcionamiento de PyHealth
PyHealth es una aplicación de Python 3 que utiliza NumPy, scipy, scikit-learn y PyTorch. Como se muestra en el diagrama a continuación, PyHealth consta de tres módulos principales: primero, el módulo de preprocesamiento de datos puede validar y convertir la entrada del usuario en un formato que los modelos de aprendizaje puedan entender;
En segundo lugar, el módulo de modelado predictivo se compone de una colección de modelos organizados por tipo de datos de entrada en secuencias, imágenes, EEG y texto. Para cada tipo de datos, se implementó un conjunto de modelos de aprendizaje dedicados, y el tercero es que el módulo de evaluación puede inferir automáticamente el tipo de tarea, como la clasificación múltiple, y realizar una evaluación integral por tipo de tarea.
La mayoría de los modelos de aprendizaje comparten la misma interfaz y están inspirados en scikit-API para aprender a diseñar y en el diseño general de aprendizaje profundo: I fit aprende los pesos y guarda las estadísticas necesarias del tren y los datos de validación; load model elige el modelo con la mejor precisión de validación y la inferencia predice los datos de prueba entrantes.
Para una exploración rápida de datos y modelos, el marco incluye una biblioteca de funciones auxiliares y de utilidad (verificación de parámetros, verificación de etiquetas y estimadores de partición). Por ejemplo, una verificación de etiquetas puede verificar la etiqueta de datos e inferir el tipo de tarea, como clasificación binaria o clasificación múltiple, automáticamente.
PyHealth para la construcción de modelos
Ahora, a continuación, analizaremos cómo podemos aprovechar la API de este marco. Primero, necesitamos instalar el paquete usando pip.
! pip instalar pyhealth
A continuación, podemos cargar los datos desde el propio repositorio. Para eso, necesitamos clonar el repositorio. Después de clonar el repositorio dentro de la carpeta de conjuntos de datos, hay una variedad de conjuntos de datos, como basados en secuencias, basados en imágenes, etc. Estamos usando el conjunto de datos mímico y está en formato zip, necesitamos descomprimirlo. A continuación se muestra el repositorio de clones de fragmentos y descomprima los datos.
! clon de git https://github.com/yzhao062/PyHealth.git! descomprima /content/PyHealth/datasets/mimic.zip
El archivo descomprimido se guarda en el directorio de trabajo actual con el nombre de la carpeta como una mímica. Luego de usar este conjunto de datos, necesitamos cargar la función del generador de datos de secuencia que sirve como funcionalidad para preparar el conjunto de datos para la experimentación.
from pyhealth.data.expdata_generator importar datos de secuencia como expdata_generator # inicializar el conjunto de datos # ID único para el conjunto de datos expdata_id = ‘2020.0811.data.phenotyping.test.v2′ cur_dataset = expdata_generator(expdata_id=expdata_id) cur_dataset.get_exp_data(sel_task=’phenotyping’, data_root=”/content/imitar”) cur_dataset.load_exp_data()
Ahora hemos cargado el conjunto de datos. Ahora podemos hacer más modelos como se muestra a continuación.
# cargar y ajustar el modelo desde pyhealth.models.sequence.embedgru import EmbedGRU # id único para el modelo expmodel_id = ‘2020.0811.model.phenotyping.test.v2’ clf = EmbedGRU(expmodel_id=expmodel_id, n_batchsize=5, use_gpu=False, n_epoch=100) # ajustar modelo clf.fit(cur_dataset.train, cur_dataset.valid)
Aquí está el resultado del ajuste.
Ultimas palabras
A lo largo de este artículo, hemos discutido cómo se puede usar el aprendizaje automático en la industria de la salud al observar las diversas aplicaciones. Como este dominio está siendo bastante extenso y norte aplicación numérica, hemos discutido una caja de herramientas basada en Python que está diseñada para construir un enfoque de modelado predictivo mediante el uso de varias técnicas de aprendizaje profundo como LSTM, GRU para datos de secuencia y CNN para datos basados en imágenes.