Cree un modelo de riesgo de aprendizaje automático de salud mental con Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Cree un modelo de riesgo de aprendizaje automático de salud mental con Amazon SageMaker Data Wrangler

Esta publicación está coescrita por Shibangi Saha, científico de datos, y Graciela Kravtzov, cofundadora y CTO de Equilibrium Point.

Muchas personas experimentan nuevos síntomas de enfermedades mentales, como estrés, ansiedad, depresión, consumo de sustancias y trastorno de estrés postraumático (TEPT). De acuerdo a Kaiser Family Foundation, aproximadamente la mitad de los adultos (47 %) en todo el país informaron impactos negativos en la salud mental durante la pandemia, un aumento significativo con respecto a los niveles previos a la pandemia. Además, ciertos géneros y grupos de edad se encuentran entre los más propensos a reportar estrés y preocupación, en tasas mucho más altas que otros. Además, es más probable que algunos grupos étnicos específicos reporten un “impacto importante” en su salud mental que otros.

Varias encuestas, incluidas las recopiladas por los Centros para el Control de Enfermedades (CDC), han mostrado aumentos sustanciales en los síntomas de salud conductual autoinformados. Según un informe de los CDC, que encuestó a adultos en los EE. UU. a fines de junio de 2020, el 31 % de los encuestados informó síntomas de ansiedad o depresión, el 13 % informó haber comenzado o aumentado el consumo de sustancias, el 26 % informó síntomas relacionados con el estrés y el 11 % informó haber tenido pensamientos serios de suicidio en los últimos 30 días.

Los datos autoinformados, si bien son absolutamente críticos para diagnosticar los trastornos de salud mental, pueden estar sujetos a influencias relacionadas con el estigma continuo que rodea a la salud mental y el tratamiento de la salud mental. En lugar de depender únicamente de los datos autoinformados, podemos estimar y pronosticar la angustia mental utilizando datos de registros de salud y datos de reclamos para tratar de responder una pregunta fundamental: ¿podemos predecir quién probablemente necesitará ayuda de salud mental antes de que la necesiten? Si se puede identificar a estas personas, se pueden desarrollar y desplegar programas y recursos de intervención temprana para responder a cualquier síntoma subyacente nuevo o al aumento de estos para mitigar los efectos y los costos de los trastornos mentales.

¡Es más fácil decirlo que hacerlo para aquellos que han luchado con la gestión y el procesamiento de grandes volúmenes de datos de reclamaciones complejos y llenos de lagunas! En esta publicación, compartimos cómo Punto de equilibrio IoT usado Wrangler de datos de Amazon SageMaker para agilizar la preparación de datos de reclamos para nuestro caso de uso de salud mental, al tiempo que garantiza la calidad de los datos en cada paso del proceso.

Resumen de la solución

La preparación de datos o la ingeniería de características es un proceso tedioso, que requiere que científicos e ingenieros de datos experimentados dediquen mucho tiempo y energía a formular recetas para las diversas transformaciones (pasos) necesarios para que los datos tengan la forma correcta. De hecho, la investigación muestra que la preparación de datos para el aprendizaje automático (ML) consume hasta el 80 % del tiempo de los científicos de datos. Por lo general, los científicos e ingenieros usan varios marcos de procesamiento de datos, como Pandas, PySpark y SQL, para codificar sus transformaciones y crear trabajos de procesamiento distribuido. Con Data Wrangler, puede automatizar este proceso. Data Wrangler es un componente de Estudio Amazon SageMaker que proporciona una solución integral para importar, preparar, transformar, caracterizar y analizar datos. Puedes integrar un Data Wrangler flujo de datos en sus flujos de trabajo de ML existentes para simplificar y agilizar el procesamiento de datos y la ingeniería de funciones con poca o ninguna codificación.

En esta publicación, repasamos los pasos para transformar los conjuntos de datos sin procesar originales en características listas para ML para usar en la construcción de modelos de predicción en la siguiente etapa. Primero, profundizamos en la naturaleza de los diversos conjuntos de datos utilizados para nuestro caso de uso y cómo los unimos a través de Data Wrangler. Después de las uniones y la consolidación del conjunto de datos, describimos las transformaciones individuales que aplicamos en el conjunto de datos, como la eliminación de duplicados, el manejo de valores faltantes y fórmulas personalizadas, seguido de cómo usamos el análisis de modelo rápido integrado para validar el estado actual de las transformaciones. para predicciones.

Conjuntos de datos

Para nuestro experimento, primero descargamos datos de pacientes de nuestro cliente de salud conductual. Estos datos incluyen lo siguiente:

  • Datos de reclamaciones
  • Recuento de visitas a la sala de emergencias
  • Recuento de visitas de pacientes hospitalizados
  • Recuentos de prescripción de medicamentos relacionados con la salud mental
  • La codificación jerárquica de condiciones (HCC) diagnostica recuentos relacionados con la salud mental

El objetivo era unir estos conjuntos de datos separados en función de la identificación del paciente y utilizar los datos para predecir un diagnóstico de salud mental. Usamos Data Wrangler para crear un conjunto de datos masivo de varios millones de filas de datos, que es una unión de cinco conjuntos de datos separados. También usamos Data Wrangler para realizar varias transformaciones para permitir los cálculos de columnas. En las siguientes secciones, describimos las diversas transformaciones de preparación de datos que aplicamos.

Eliminar columnas duplicadas después de una unión

Amazon SageMaker Data Wrangler proporciona numerosas transformaciones de datos de ML para agilizar la limpieza, la transformación y la caracterización de sus datos. Cuando agrega una transformación, agrega un paso al flujo de datos. Cada transformación que agrega modifica su conjunto de datos y produce un nuevo marco de datos. Todas las transformaciones posteriores se aplican al marco de datos resultante. Data Wrangler incluye transformaciones integradas, que puede usar para transformar columnas sin ningún código. También puede agregar transformaciones personalizadas mediante PySpark, Pandas y PySpark SQL. Algunas transformaciones funcionan en su lugar, mientras que otras crean una nueva columna de salida en su conjunto de datos.

Para nuestros experimentos, ya que después de cada unión en la ID del paciente, nos quedamos con columnas de ID de paciente duplicadas. Necesitábamos eliminar estas columnas. Eliminamos la columna de ID del paciente de la derecha, como se muestra en la siguiente captura de pantalla usando el preconstruido Administrar columnas ->Columna de caída transform, para mantener solo una columna de ID de paciente (patient_id en el conjunto de datos final).

ML8274-imagen001

Pivote un conjunto de datos usando Pandas

Los conjuntos de datos de reclamos estaban a nivel de paciente con visita de emergencia (ER), paciente hospitalizado (IP), recuentos de recetas y datos de diagnóstico ya agrupados por sus códigos HCC correspondientes (aproximadamente 189 códigos). Para crear un datamart de pacientes, agregamos los códigos HCC de reclamos por paciente y cambiamos el código HCC de filas a columnas. Utilizamos Pandas para pivotar el conjunto de datos, contar la cantidad de códigos HCC por paciente y luego unirnos al conjunto de datos principal en la identificación del paciente. Usamos la opción de transformación personalizada en Data Wrangler eligiendo Python (Pandas) como el marco de trabajo elegido.

ML8274-imagen002

El siguiente fragmento de código muestra la lógica de transformación para hacer pivotar la tabla:

# Table is available as variable df
import pandas as pd
import numpy as np table = pd.pivot_table(df, values = 'claim_count', index=['patient_id0'], columns = 'hcc', fill_value=0).reset_index()
df = table

Crear nuevas columnas usando fórmulas personalizadas

Estudiamos la literatura de investigación para determinar qué códigos HCC son deterministas en los diagnósticos de salud mental. Luego, escribimos esta lógica usando una transformación de fórmula personalizada de Data Wrangler que usa una expresión Spark SQL para calcular una columna de destino de Diagnóstico de salud mental (MH), que agregamos al final del DataFrame.

ML8274-imagen003

Utilizamos la siguiente lógica de transformación:

# Output: MH
IF (HCC_Code_11 > 0 or HCC_Code_22 > 0 or HCC_Code_23 > 0 or HCC_Code_54 > 0 or HCC_Code_55 > 0 or HCC_Code_57 > 0 or HCC_Code_72 > 0, 1, 0)

Soltar columnas del DataFrame usando PySpark

Después del cálculo de la columna objetivo (MH), descartamos todas las columnas duplicadas innecesarias. Conservamos la identificación del paciente y la columna MH para unirlos a nuestro conjunto de datos principal. Esto fue facilitado por una transformación de SQL personalizada que utiliza PySpark SQL como marco de nuestra elección.

ML8274-imagen005

Utilizamos la siguiente lógica:

/* Table is available as variable df */ select MH, patient_id0 from df

Mueva la columna MH para comenzar

Nuestro algoritmo ML requiere que la entrada etiquetada esté en la primera columna. Por lo tanto, movimos la columna calculada de MH al inicio de DataFrame para que esté lista para la exportación.

ML8274-imagen006

Completa los espacios en blanco con 0 usando Pandas

Nuestro algoritmo ML también requiere que los datos de entrada no tengan campos vacíos. Por lo tanto, llenamos los campos vacíos del conjunto de datos final con ceros. Podemos hacer esto fácilmente a través de una transformación personalizada (Pandas) en Data Wrangler.

ML8274-imagen007

Utilizamos la siguiente lógica:

# Table is available as variable df
df.fillna(0, inplace=True)

Columna fundida de flotante a larga

También puede analizar y convertir una columna a cualquier tipo de datos nuevo fácilmente en Data Wrangler. Para fines de optimización de la memoria, convertimos nuestra columna de entrada de etiqueta de salud mental como flotante.

ML8274-imagen008

Análisis rápido del modelo: gráfico de importancia de características

Después de crear nuestro conjunto de datos final, utilizamos el tipo de análisis Quick Model en Data Wrangler para identificar rápidamente las inconsistencias de los datos y si la precisión de nuestro modelo estaba en el rango esperado, o si necesitábamos continuar con la ingeniería de características antes de dedicar tiempo a entrenar el modelo. El modelo arrojó una puntuación F1 de 0.901, siendo 1 la más alta. Una puntuación F1 es una forma de combinar la precisión y la recuperación del modelo, y se define como la media armónica de las dos. Después de inspeccionar estos resultados positivos iniciales, estábamos listos para exportar los datos y continuar con el entrenamiento del modelo usando el conjunto de datos exportado.

ML8274-imagen009

Exporte el conjunto de datos final a Amazon S3 a través de un cuaderno Jupyter

Como paso final, para exportar el conjunto de datos en su forma actual (transformado) a Servicio de almacenamiento simple de Amazon (Amazon S3) para uso futuro en el entrenamiento de modelos, usamos el Guardar en Amazon S3 (a través de Jupyter Notebook) opción de exportación. Este portátil inicia un sistema distribuido y escalable Procesamiento de Amazon SageMaker trabajo que aplica la receta creada (flujo de datos) a entradas específicas (generalmente conjuntos de datos más grandes) y guarda los resultados en Amazon S3. También puede exportar sus columnas transformadas (características) a Tienda de funciones de Amazon SageMaker o exporte las transformaciones como una tubería usando Canalizaciones de Amazon SageMaker, o simplemente exporte las transformaciones como código de Python.

Para exportar datos a Amazon S3, tiene tres opciones:

  • Exporte los datos transformados directamente a Amazon S3 a través de la interfaz de usuario de Data Wrangler
  • Exporte las transformaciones como un trabajo de procesamiento de SageMaker a través de un cuaderno Jupyter (como lo hacemos para esta publicación).
  • Exporte las transformaciones a Amazon S3 a través de un nodo de destino. Un nodo de destino le dice a Data Wrangler dónde almacenar los datos después de haberlos procesado. Después de crear un nodo de destino, crea un trabajo de procesamiento para generar los datos.

ML8274-imagen010

Conclusión

En esta publicación, mostramos cómo Equilibrium Point IoT usa Data Wrangler para acelerar el proceso de carga de grandes cantidades de nuestros datos de reclamos para la limpieza y transformación de datos en preparación para ML. También demostramos cómo incorporar la ingeniería de características con transformaciones personalizadas mediante Pandas y PySpark en Data Wrangler, lo que nos permite exportar datos paso a paso (después de cada combinación) con fines de control de calidad. La aplicación de estas transformaciones fáciles de usar en Data Wrangler redujo el tiempo dedicado a la transformación de datos de un extremo a otro en casi un 50 %. Además, la función de análisis Quick Model en Data Wrangler nos permitió validar fácilmente el estado de las transformaciones a medida que avanzamos en el proceso de preparación de datos e ingeniería de funciones.

Ahora que hemos preparado los datos para nuestro caso de uso de modelado de riesgo de salud mental, como próximo paso, planeamos construir un modelo de ML usando SageMaker y los algoritmos integrados que ofrece, utilizando nuestro conjunto de datos de reclamos para identificar a los miembros que deberían buscar salud mental. servicios antes de que lleguen al punto en que los necesiten. ¡Manténganse al tanto!


Acerca de los autores

Cree un modelo de riesgo de aprendizaje automático de salud mental con Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Shibangui Saha es científico de datos en Equilibrium Point. Combina su experiencia en datos de reclamos de pagadores de atención médica y aprendizaje automático para diseñar, implementar, automatizar y documentar canalizaciones de datos de salud, informes y procesos analíticos que generan conocimientos y mejoras procesables en el sistema de prestación de atención médica. Shibangi recibió su Maestría en Ciencias en Bioinformática de la Facultad de Ciencias de la Universidad Northeastern y una Licenciatura en Ciencias en Biología y Ciencias de la Computación de la Facultad de Ciencias de la Computación y Ciencias de la Información de Khoury.

Cree un modelo de riesgo de aprendizaje automático de salud mental con Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Graciela Kravtzov es cofundador y CTO de Equilibrium Point. Grace ha ocupado puestos de liderazgo de nivel C/vicepresidente en Ingeniería, Operaciones y Calidad, y se desempeñó como consultora ejecutiva para la estrategia comercial y el desarrollo de productos dentro de las industrias de atención médica y educación y el espacio industrial de IoT. Grace recibió una Maestría en Ciencias en Ingeniería Electromecánica de la Universidad de Buenos Aires y una Maestría en Ciencias en Informática de la Universidad de Boston.

Cree un modelo de riesgo de aprendizaje automático de salud mental con Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Arunprasath Shankar es un arquitecto de soluciones especializado en inteligencia artificial y aprendizaje automático (AI / ML) en AWS, que ayuda a los clientes globales a escalar sus soluciones de inteligencia artificial de manera efectiva y eficiente en la nube. En su tiempo libre, a Arun le gusta ver películas de ciencia ficción y escuchar música clásica.

Cree un modelo de riesgo de aprendizaje automático de salud mental con Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai. Ajai Sharma es gerente sénior de productos de Amazon SageMaker, donde se enfoca en SageMaker Data Wrangler, una herramienta de preparación de datos visuales para científicos de datos. Antes de AWS, Ajai fue experto en ciencia de datos en McKinsey and Company, donde lideró compromisos centrados en ML para firmas financieras y de seguros líderes en todo el mundo. A Ajai le apasiona la ciencia de datos y le encanta explorar los últimos algoritmos y técnicas de aprendizaje automático.

Sello de tiempo:

Mas de Aprendizaje automático de AWS