Crie um modelo de risco de aprendizado de máquina de saúde mental usando o Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.

Crie um modelo de risco de machine learning de saúde mental usando o Amazon SageMaker Data Wrangler

Esta postagem foi co-escrita por Shibangi Saha, cientista de dados, e Graciela Kravtzov, cofundadora e CTO da Equilibrium Point.

Muitos indivíduos estão apresentando novos sintomas de doenças mentais, como estresse, ansiedade, depressão, uso de substâncias e transtorno de estresse pós-traumático (TEPT). De acordo com Kaiser Family Foundation, cerca de metade dos adultos (47%) em todo o país relataram impactos negativos na saúde mental durante a pandemia, um aumento significativo em relação aos níveis pré-pandemia. Além disso, determinados géneros e grupos etários estão entre os mais propensos a relatar stress e preocupação, em taxas muito mais elevadas do que outros. Além disso, alguns grupos étnicos específicos são mais propensos a relatar um “grande impacto” na sua saúde mental do que outros.

Várias pesquisas, incluindo aquelas coletadas pelos Centros de Controle de Doenças (CDC), mostraram aumentos substanciais nos sintomas de saúde comportamental autorrelatados. De acordo com um relatório do CDC, que entrevistou adultos nos EUA no final de junho de 2020, 31% dos entrevistados relataram sintomas de ansiedade ou depressão, 13% relataram ter iniciado ou aumentado o uso de substâncias, 26% relataram sintomas relacionados ao estresse e 11% relataram ter tido pensamentos graves de suicídio nos últimos 30 dias.

Os dados auto-relatados, embora absolutamente críticos no diagnóstico de perturbações de saúde mental, podem estar sujeitos a influências relacionadas com o estigma contínuo que rodeia a saúde mental e o tratamento de saúde mental. Em vez de confiar apenas em dados auto-relatados, podemos estimar e prever o sofrimento mental utilizando dados de registos de saúde e dados de sinistros para tentar responder a uma questão fundamental: podemos prever quem provavelmente necessitará de ajuda de saúde mental antes de precisar dela? Se estes indivíduos puderem ser identificados, podem ser desenvolvidos e implementados programas e recursos de intervenção precoce para responder a qualquer sintoma novo ou a um aumento dos sintomas subjacentes, a fim de mitigar os efeitos e custos das perturbações mentais.

É mais fácil falar do que fazer para aqueles que têm dificuldade em gerenciar e processar grandes volumes de dados de sinistros complexos e repletos de lacunas! Neste post, compartilhamos como Ponto de equilíbrio IoT usava Gerenciador de dados do Amazon SageMaker para agilizar a preparação de dados de sinistros para nosso caso de uso de saúde mental, garantindo ao mesmo tempo a qualidade dos dados em cada etapa do processo.

Visão geral da solução

A preparação de dados ou engenharia de recursos é um processo tedioso, exigindo que cientistas e engenheiros de dados experientes gastem muito tempo e energia na formulação de receitas para as várias transformações (etapas) necessárias para colocar os dados na forma correta. Na verdade, pesquisas mostram que a preparação de dados para aprendizado de máquina (ML) consome até 80% do tempo dos cientistas de dados. Normalmente, cientistas e engenheiros usam diversas estruturas de processamento de dados, como Pandas, PySpark e SQL, para codificar suas transformações e criar trabalhos de processamento distribuído. Com o Data Wrangler, você pode automatizar esse processo. O Data Wrangler é um componente do Estúdio Amazon SageMaker que fornece uma solução ponta a ponta para importar, preparar, transformar, caracterizar e analisar dados. Você pode integrar um Data Wrangler fluxo de dados em seus fluxos de trabalho de ML existentes para simplificar e agilizar o processamento de dados e a engenharia de recursos usando pouca ou nenhuma codificação.

Nesta postagem, percorremos as etapas para transformar conjuntos de dados brutos originais em recursos prontos para ML para usar na construção de modelos de previsão no próximo estágio. Primeiro, nos aprofundamos na natureza dos vários conjuntos de dados usados ​​em nosso caso de uso e como unimos esses conjuntos de dados por meio do Data Wrangler. Após as junções e a consolidação do conjunto de dados, descrevemos as transformações individuais que aplicamos no conjunto de dados, como eliminação de duplicação, tratamento de valores ausentes e fórmulas personalizadas, seguidas de como usamos a análise de modelo rápido integrada para validar o estado atual das transformações para previsões.

Conjuntos de dados

Para nosso experimento, primeiro baixamos dados de pacientes de nosso cliente de saúde comportamental. Esses dados incluem o seguinte:

  • Dados de reivindicações
  • Contagens de visitas ao pronto-socorro
  • Contagens de visitas de pacientes internados
  • Contagens de prescrição de medicamentos relacionadas à saúde mental
  • Contagens de diagnósticos de codificação hierárquica de condições (HCC) relacionadas à saúde mental

O objetivo era juntar esses conjuntos de dados separados com base na identificação do paciente e utilizar os dados para prever um diagnóstico de saúde mental. Usamos o Data Wrangler para criar um enorme conjunto de dados de vários milhões de linhas de dados, que é uma junção de cinco conjuntos de dados separados. Também usamos o Data Wrangler para realizar diversas transformações para permitir cálculos de colunas. Nas seções a seguir, descrevemos as diversas transformações de preparação de dados que aplicamos.

Eliminar colunas duplicadas após uma junção

O Amazon SageMaker Data Wrangler oferece inúmeras transformações de dados de ML para agilizar a limpeza, a transformação e a caracterização de seus dados. Ao adicionar uma transformação, ela adiciona uma etapa ao fluxo de dados. Cada transformação adicionada modifica seu conjunto de dados e produz um novo dataframe. Todas as transformações subsequentes se aplicam ao dataframe resultante. O Data Wrangler inclui transformações integradas, que você pode usar para transformar colunas sem nenhum código. Você também pode adicionar transformações personalizadas usando PySpark, Pandas e PySpark SQL. Algumas transformações operam no local, enquanto outras criam uma nova coluna de saída no seu conjunto de dados.

Para nossos experimentos, uma vez que após cada junção no ID do paciente, ficamos com colunas duplicadas de ID do paciente. Precisávamos eliminar essas colunas. Eliminamos a coluna direita de ID do paciente, conforme mostrado na captura de tela a seguir usando o pré-construído Gerenciar colunas ->Coluna de queda transformar, para manter apenas uma coluna de ID do paciente (paciente_id no conjunto de dados final).

ML8274-image001

Dinamize um conjunto de dados usando Pandas

Os conjuntos de dados de sinistros eram de nível de paciente com consulta de emergência (ER), paciente internado (IP), contagens de prescrição e dados de diagnóstico já agrupados por seus códigos HCC correspondentes (aproximadamente 189 códigos). Para construir um datamart de pacientes, agregamos os códigos HCC de reclamações por paciente e dinamizamos o código HCC de linhas para colunas. Usamos o Pandas para dinamizar o conjunto de dados, contar o número de códigos HCC por paciente e, em seguida, juntar-se ao conjunto de dados primário na ID do paciente. Usamos a opção de transformação personalizada no Data Wrangler escolhendo Python (Pandas) como estrutura de escolha.

ML8274-image002

O trecho de código a seguir mostra a lógica de transformação para dinamizar a tabela:

# 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

Crie novas colunas usando fórmulas personalizadas

Estudamos a literatura de pesquisa para determinar quais códigos HCC são determinísticos em diagnósticos de saúde mental. Em seguida, escrevemos essa lógica usando uma transformação de fórmula personalizada do Data Wrangler que usa uma expressão Spark SQL para calcular uma coluna de destino de diagnóstico de saúde mental (MH), que adicionamos ao final do DataFrame.

ML8274-image003

Usamos a seguinte lógica de transformação:

# 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)

Elimine colunas do DataFrame usando PySpark

Após o cálculo da coluna alvo (MH), eliminamos todas as colunas duplicadas desnecessárias. Preservamos o ID do paciente e a coluna MH para juntar ao nosso conjunto de dados primário. Isso foi facilitado por uma transformação SQL personalizada que usa PySpark SQL como estrutura de nossa escolha.

ML8274-image005

Usamos a seguinte lógica:

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

Mova a coluna MH para começar

Nosso algoritmo de ML exige que a entrada rotulada esteja na primeira coluna. Portanto, movemos a coluna calculada do MH para o início do DataFrame para estar pronta para exportação.

ML8274-image006

Preencha os espaços em branco com 0 usando Pandas

Nosso algoritmo de ML também exige que os dados de entrada não tenham campos vazios. Portanto, preenchemos os campos vazios do conjunto de dados final com 0s. Podemos fazer isso facilmente por meio de uma transformação personalizada (Pandas) no Data Wrangler.

ML8274-image007

Usamos a seguinte lógica:

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

Coluna fundida de flutuante a longa

Você também pode analisar e converter uma coluna para qualquer novo tipo de dados facilmente no Data Wrangler. Para fins de otimização de memória, lançamos nossa coluna de entrada do rótulo de saúde mental como flutuante.

ML8274-image008

Análise rápida do modelo: gráfico de importância do recurso

Depois de criar nosso conjunto de dados final, utilizamos o tipo de análise Quick Model no Data Wrangler para identificar rapidamente inconsistências de dados e se a precisão do nosso modelo estava na faixa esperada ou se precisávamos continuar a engenharia de recursos antes de gastar tempo treinando o modelo. O modelo retornou uma pontuação F1 de 0.901, sendo 1 a mais alta. Uma pontuação F1 é uma forma de combinar a precisão e a recuperação do modelo e é definida como a média harmônica dos dois. Após inspecionar esses resultados positivos iniciais, estávamos prontos para exportar os dados e prosseguir com o treinamento do modelo usando o conjunto de dados exportado.

ML8274-image009

Exporte o conjunto de dados final para o Amazon S3 por meio de um notebook Jupyter

Como etapa final, para exportar o conjunto de dados em sua forma atual (transformado) para Serviço de armazenamento simples da Amazon (Amazon S3) para uso futuro no treinamento de modelo, usamos o Salvar no Amazon S3 (via Jupyter Notebook) opção de exportação. Este notebook inicia um sistema distribuído e escalável Processamento do Amazon SageMaker trabalho que aplica a receita criada (fluxo de dados) a entradas especificadas (geralmente conjuntos de dados maiores) e salva os resultados no Amazon S3. Você também pode exportar suas colunas transformadas (recursos) para Loja de recursos Amazon SageMaker ou exporte as transformações como um pipeline usando Pipelines Amazon SageMakerou simplesmente exporte as transformações como código Python.

Para exportar dados para o Amazon S3, você tem três opções:

  • Exporte os dados transformados diretamente para o Amazon S3 por meio da UI do Data Wrangler
  • Exporte as transformações como um trabalho de processamento do SageMaker por meio de um notebook Jupyter (como fazemos nesta postagem).
  • Exporte as transformações para o Amazon S3 por meio de um nó de destino. Um nó de destino informa ao Data Wrangler onde armazenar os dados depois de processá-los. Depois de criar um nó de destino, você cria uma tarefa de processamento para gerar os dados.

ML8274-image010

Conclusão

Nesta postagem, mostramos como o Equilibrium Point IoT usa o Data Wrangler para acelerar o processo de carregamento de grandes quantidades de nossos dados de sinistros para limpeza e transformação de dados em preparação para ML. Também demonstramos como incorporar engenharia de recursos com transformações personalizadas usando Pandas e PySpark no Data Wrangler, permitindo-nos exportar dados passo a passo (após cada junção) para fins de garantia de qualidade. A aplicação dessas transformações fáceis de usar no Data Wrangler reduziu o tempo gasto na transformação de dados ponta a ponta em quase 50%. Além disso, o recurso de análise de modelo rápido no Data Wrangler nos permitiu validar facilmente o estado das transformações à medida que percorremos o processo de preparação de dados e engenharia de recursos.

Agora que preparamos os dados para nosso caso de uso de modelagem de risco de saúde mental, como próxima etapa, planejamos construir um modelo de ML usando o SageMaker e os algoritmos integrados que ele oferece, utilizando nosso conjunto de dados de reivindicações para identificar membros que devem procurar saúde mental serviços antes de chegarem ao ponto em que precisam deles. Fique atento!


Sobre os autores

Crie um modelo de risco de aprendizado de máquina de saúde mental usando o Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Shibangi Saha é cientista de dados na Equilibrium Point. Ela combina sua experiência em dados de sinistros de pagadores de saúde e aprendizado de máquina para projetar, implementar, automatizar e documentar pipelines de dados de saúde, relatórios e processos analíticos que geram insights e melhorias acionáveis ​​no sistema de prestação de cuidados de saúde. Shibangi recebeu seu mestrado em Bioinformática pela Northeastern University College of Science e bacharelado em Biologia e Ciência da Computação pela Khoury College of Computer Science and Information Sciences.

Crie um modelo de risco de aprendizado de máquina de saúde mental usando o Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Graciela Kravtzov é o cofundador e CTO da Equilibrium Point. Grace ocupou cargos de liderança de nível C/VP em Engenharia, Operações e Qualidade, e atuou como consultora executiva para estratégia de negócios e desenvolvimento de produtos nos setores de saúde e educação e no espaço industrial de IoT. Grace possui mestrado em Engenharia Eletromecânica pela Universidade de Buenos Aires e mestrado em Ciência da Computação pela Universidade de Boston.

Crie um modelo de risco de aprendizado de máquina de saúde mental usando o Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai.Arunprasath Shankar é arquiteto de soluções especialista em inteligência artificial e aprendizado de máquina (AI / ML) da AWS, ajudando clientes globais a dimensionar suas soluções de IA de maneira eficaz e eficiente na nuvem. Em seu tempo livre, Arun gosta de assistir filmes de ficção científica e ouvir música clássica.

Crie um modelo de risco de aprendizado de máquina de saúde mental usando o Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Pesquisa Vertical. Ai. Ajai Sharma é gerente de produto sênior do Amazon SageMaker, onde se concentra no SageMaker Data Wrangler, uma ferramenta visual de preparação de dados para cientistas de dados. Antes da AWS, Ajai foi especialista em ciência de dados na McKinsey and Company, onde liderou compromissos com foco em ML para empresas líderes de finanças e seguros em todo o mundo. Ajai é apaixonado por ciência de dados e adora explorar os mais recentes algoritmos e técnicas de aprendizado de máquina.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS