Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Los datos clínicos son una parte vital en la toma de decisiones de los
profesionales para cada paciente. Estos se conforman de datos estructurados y
no estructurados, en el primer caso, se puede almacenar información
concerniente a valores demográficos, pruebas de laboratorio, diagnostico
concreto y medicamento suministrado; en el segundo caso, se encuentra
información de texto libre, caracterizada por su libertad semántica y léxica,
permitiendo a cada encargado describir de manera específica tanto el estado del
paciente como su posterior tratamiento. Estas notas clínicas representan más del
80% de la información de los EMR (Registros Médicos Electrónicos) [1] siendo
una fuente importante de datos para procesamiento y análisis.
Materiales:
Para el desarrollo del workflow se implementan códigos en lenguaje de
programación Python, por su versatilidad y por sus herramientas disponibles
que facilitan la mayor parte de los procesos con datos, nos apoyamos en librerías
como: Pandas, Sickitlearn y Numpy, para el preprocesamiento de los datos
estructurados, Matplotlip y Seaborn, para visualizar datos y resultados,
LightGBM para el algoritmo de clasificación de los datos estructurados, NLTK
para el preprocesamiento de datos no estructurados, Gensim, para la
incrustación de las notas clínicas, y Keras para la red neuronal convolucional.
Además, se realiza a partir de la base de datos pública (Medical Information
Mart for Intensive Care) MIMIC en su tercera edición, que incluye una colección
completa de registros de salud electrónicos (EHR), que abarcan información
anónima asociada con más de cuarenta mil pacientes que estuvieron en unidades
de cuidados críticos del Centro Médico Beth Israel Deaconess entre 2001 y 2012.
La base de datos incluye información como datos demográficos, mediciones de
signos vitales, resultados de pruebas de laboratorio, procedimientos,
medicamentos, notas de los cuidadores, informes de imágenes y mortalidad
(incluida después del alta hospitalaria) [3].
Metodología:
La base de datos tiene a disponibilidad información estructurada y no
estructurada, ambas tienen sus propios procedimientos para la extracción de los
datos, por lo que separaremos los procesos para cada caso.
1. Datos estructurados:
La base de datos puede proporcionar, por medio de los datos estructurados, una
fuente complementaría de información que permite implementar un algoritmo de
clasificación para determinar si un paciente contiene riesgo de sepsis en un
registro de datos, con las variables seleccionadas. Para este caso estipulamos dos
partes principales: Preprocesamiento y Modelamiento.
Primero se optimizan los datos por medio del cambio del formato de csv a
parquet, ya que algunas investigaciones han demostrado que este formato
permite reducir los tiempos de procesamiento en la mayor parte de los casos [4].
1.2. Modelamiento:
Dado que depende de los cálculos del árbol, divide la hoja del árbol con el mejor
ajuste, mientras que otros cálculos de impulso dividen la profundidad del árbol
de manera astuta o nivelada en oposición a la hoja. Así que cuando se desarrolla
en una hoja similar en Light GBM, el cálculo por hojas puede disminuir más
desgracias que el cálculo por niveles y, por lo tanto, produce una precisión
mucho mayor que puede ser lograda de vez en cuando por cualquiera de los
cálculos de impulso actuales. De la misma manera, es sorprendentemente
extremadamente rápido, de ahí la palabra ‘Luz’. [7]
2. Datos no estructurados:
Por otro lado, para obtener información útil y procesable de las notas clínicas,
es necesario realizar diferentes transformaciones, para lo cual se establecen para
el modelo estructural del flujo de trabajo, tres partes principales:
Preprocesamiento, Incrustación y Clasificación.
Las notas clínicas, al igual que otro conjunto de datos, tienen ciertas
características similares entre ellas, títulos, abreviaturas, fechas, datos anónimos
con una sintaxis similar, entre otros. Todos estos aspectos se eliminan previo a
cualquier procesamiento, de manera que se pueda obtener por cada escrito solo
la información relevante y necesaria, proceso al cual se le llama limpieza.
Posteriormente, el texto se tokeniza, se remueven palabras inútiles, se lematiza y
se convierten a minúsculas todas las palabras por separado.
Se construye una red neuronal con las capas que se observan en la figura _,
donde la capa de incrustaciones posee los valores correspondientes a cada una de
las palabras del vocabulario.
Resultados:
El modelamiento de los datos estructurados puede arrojar los resultados por
medio de las matrices de confusión, estas matrices permiten conocer el
rendimiento del modelo en función de los Dataframes obtenidos. El resumen de
las matrices de confusión puede verse en la tabla a continuación:
Dataframe Dataframe
Ámbito Not imputed Imputed ¿ Interpolation
NoBalanced Balanced NoBalanced Balanced
Registros positivos 820 700 1.658 1.290
Registros negativos 352.458 120.243 351.620 119.653
Registros clasificados
366 281 226 219
positivos
Registros clasificados
352.912 120.662 353.052 120.724
negativos
Registros falsos positivos 73 38 28 41
Registros falsos
527 457 1460 1.112
negativos
Registros verdaderos
293 243 198 178
positivos
Registros verdaderos
352.385 120.205 351.592 119.612
negativos
Otros resultados pueden verse por medio del reporte de clasificación, este
permite observar el rendimiento del modelo por medio del valor de precisión,
recall y f1-score. Estos datos se resumen en la siguiente tabla.
Dataframe Dataframe
Ámbito Not imputed Imputed ¿ Interpolation
NoBalanced Balanced NoBalanced Balanced
Precision 0.800 0.865 0.876 0.812
Recall 0.357 0.347 0.119 0.134
F1-score 0.494 0.495 0.21 0.230
Métrica Valor
Precision 0.8945
Accuracy 0.9922
Recall 0.5636
AUC 0.8245
F1-score 0.6915
Estos valores evolucionan con las iteraciones realizadas por la red neuronal, su
desarrollo puede observarse por medio de las siguientes gráficas.
Finalmente, se puede concluir que la función de la red neuronal no es muy
estable en la mayor parte de las métricas, además tiene ciertos picos de caída
que pueden aparentar a simple vista problemas de comprensión, sin embargo, es
importante mencionar que la red neuronal siempre trata de adaptarse a los
datos que recibe y en este caso intenta encontrar patrones complejos al interior
de los textos, en caso de que alguno de esos patrones encontrados no brinde gran
importancia o relevancia en las métricas, se descarta por completo y se inicia un
nuevo análisis en la iteración o epoch siguiente.