Crea un modello di rischio di machine learning per la salute mentale utilizzando Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Crea un modello di rischio di machine learning per la salute mentale utilizzando Amazon SageMaker Data Wrangler

Questo post è stato scritto da Shibangi Saha, Data Scientist, e Graciela Kravtzov, co-fondatrice e CTO, di Equilibrium Point.

Molte persone stanno sperimentando nuovi sintomi di malattie mentali, come stress, ansia, depressione, uso di sostanze e disturbo da stress post-traumatico (PTSD). Secondo Kaiser Family Foundation, circa la metà degli adulti (47%) a livello nazionale ha riportato impatti negativi sulla salute mentale durante la pandemia, un aumento significativo rispetto ai livelli pre-pandemici. Inoltre, alcuni sessi e gruppi di età sono tra i più propensi a segnalare stress e preoccupazioni, a tassi molto più elevati di altri. Inoltre, alcuni gruppi etnici specifici hanno maggiori probabilità di segnalare un "impatto importante" sulla loro salute mentale rispetto ad altri.

Diversi sondaggi, compresi quelli raccolti dai Centers for Disease Control (CDC), hanno mostrato aumenti sostanziali dei sintomi di salute comportamentali auto-riferiti. Secondo un rapporto del CDC, che ha intervistato gli adulti negli Stati Uniti alla fine di giugno del 2020, il 31% degli intervistati ha riportato sintomi di ansia o depressione, il 13% ha riferito di aver iniziato o aumentato l'uso di sostanze, il 26% ha riportato sintomi legati allo stress e l'11% riferito di avere gravi pensieri suicidi negli ultimi 30 giorni.

I dati auto-riferiti, sebbene assolutamente critici nella diagnosi dei disturbi di salute mentale, possono essere soggetti a influenze legate al continuo stigma che circonda la salute mentale e il trattamento della salute mentale. Piuttosto che fare affidamento esclusivamente sui dati auto-riferiti, possiamo stimare e prevedere il disagio mentale utilizzando i dati delle cartelle cliniche e dei dati delle affermazioni per cercare di rispondere a una domanda fondamentale: possiamo prevedere chi avrà probabilmente bisogno di aiuto per la salute mentale prima che ne abbia bisogno? Se questi individui possono essere identificati, è possibile sviluppare e utilizzare risorse e programmi di intervento precoce per rispondere a qualsiasi nuovo o aumento dei sintomi sottostanti per mitigare gli effetti ei costi dei disturbi mentali.

Più facile a dirsi che a farsi per coloro che hanno lottato con la gestione e l'elaborazione di grandi volumi di dati sui reclami complessi e pieni di lacune! In questo post, condividiamo come Punto di equilibrio IoT utilizzato Gestore di dati di Amazon SageMaker per semplificare la preparazione dei dati sui reclami per il nostro caso d'uso di salute mentale, garantendo al contempo la qualità dei dati in ogni fase del processo.

Panoramica della soluzione

La preparazione dei dati o l'ingegneria delle funzionalità è un processo noioso, che richiede a data scientist e ingegneri esperti di dedicare molto tempo ed energie alla formulazione di ricette per le varie trasformazioni (passaggi) necessarie per ottenere la forma corretta dei dati. In effetti, la ricerca mostra che la preparazione dei dati per l'apprendimento automatico (ML) consuma fino all'80% del tempo dei data scientist. In genere, scienziati e ingegneri utilizzano vari framework di elaborazione dati, come Pandas, PySpark e SQL, per codificare le loro trasformazioni e creare lavori di elaborazione distribuiti. Con Data Wrangler puoi automatizzare questo processo. Data Wrangler è un componente di Amazon Sage Maker Studio che fornisce una soluzione end-to-end per importare, preparare, trasformare, mettere in evidenza e analizzare i dati. Puoi integrare un Data Wrangler flusso di dati nei tuoi flussi di lavoro ML esistenti per semplificare e snellire l'elaborazione dei dati e la progettazione delle funzionalità utilizzando poca o nessuna codifica.

In questo post, esamineremo i passaggi per trasformare i set di dati grezzi originali in funzionalità pronte per il ML da utilizzare per la creazione dei modelli di previsione nella fase successiva. Innanzitutto, approfondiamo la natura dei vari set di dati utilizzati per il nostro caso d'uso e come abbiamo unito questi set di dati tramite Data Wrangler. Dopo i join e il consolidamento del set di dati, descriviamo le singole trasformazioni che abbiamo applicato al set di dati come la deduplicazione, la gestione dei valori mancanti e le formule personalizzate, seguite da come abbiamo utilizzato l'analisi del modello rapido integrata per convalidare lo stato corrente delle trasformazioni per le previsioni.

Dataset

Per il nostro esperimento, abbiamo prima scaricato i dati dei pazienti dal nostro cliente di salute comportamentale. Questi dati includono quanto segue:

  • Dati sui reclami
  • Contano le visite al pronto soccorso
  • Conta la visita ospedaliera
  • Conteggi delle prescrizioni di farmaci relativi alla salute mentale
  • La codifica delle condizioni gerarchiche (HCC) diagnostica i conteggi relativi alla salute mentale

L'obiettivo era unire questi set di dati separati in base all'ID del paziente e utilizzare i dati per prevedere una diagnosi di salute mentale. Abbiamo utilizzato Data Wrangler per creare un enorme set di dati di diversi milioni di righe di dati, che è un'unione di cinque set di dati separati. Abbiamo anche utilizzato Data Wrangler per eseguire diverse trasformazioni per consentire i calcoli delle colonne. Nelle sezioni seguenti descriviamo le varie trasformazioni di preparazione dei dati che abbiamo applicato.

Elimina colonne duplicate dopo un join

Amazon SageMaker Data Wrangler fornisce numerose trasformazioni di dati ML per semplificare la pulizia, la trasformazione e la messa in evidenza dei dati. Quando aggiungi una trasformazione, viene aggiunto un passaggio al flusso di dati. Ogni trasformazione che aggiungi modifica il tuo set di dati e produce un nuovo dataframe. Tutte le trasformazioni successive si applicano al dataframe risultante. Data Wrangler include trasformazioni integrate, che puoi utilizzare per trasformare le colonne senza alcun codice. Puoi anche aggiungere trasformazioni personalizzate usando PySpark, Pandas e PySpark SQL. Alcune trasformazioni funzionano sul posto, mentre altre creano una nuova colonna di output nel set di dati.

Per i nostri esperimenti, poiché dopo ogni join sull'ID paziente, ci sono state lasciate colonne ID paziente duplicate. Avevamo bisogno di eliminare queste colonne. Abbiamo eliminato la colonna ID paziente corretta, come mostrato nello screenshot seguente utilizzando il predefinito Gestisci colonne ->Colonna di rilascio trasformare, per mantenere solo una colonna ID paziente (patient_id nel set di dati finale).

ML8274-immagine001

Ruota un set di dati utilizzando Pandas

I set di dati delle richieste erano a livello di paziente con visita di emergenza (ER), ricovero (IP), conteggi delle prescrizioni e dati delle diagnosi già raggruppati in base ai codici HCC corrispondenti (circa 189 codici). Per creare un datamart paziente, aggreghiamo i codici HCC dei reclami per paziente e spostiamo il codice HCC dalle righe alle colonne. Abbiamo utilizzato Panda per ruotare il set di dati, contare il numero di codici HCC per paziente e quindi unirci al set di dati principale sull'ID paziente. Abbiamo utilizzato l'opzione di trasformazione personalizzata in Data Wrangler scegliendo Python (Panda) come framework di scelta.

ML8274-immagine002

Il frammento di codice seguente mostra la logica di trasformazione per ruotare la tabella:

# 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

Crea nuove colonne usando formule personalizzate

Abbiamo studiato la letteratura di ricerca per determinare quali codici HCC sono deterministici nelle diagnosi di salute mentale. Abbiamo quindi scritto questa logica utilizzando una trasformazione di formula personalizzata di Data Wrangler che utilizza un'espressione Spark SQL per calcolare una colonna target (MH) di diagnosi di salute mentale, che abbiamo aggiunto alla fine di DataFrame.

ML8274-immagine003

Abbiamo utilizzato la seguente logica di trasformazione:

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

Elimina colonne da DataFrame usando PySpark

Dopo il calcolo della colonna di destinazione (MH), abbiamo eliminato tutte le colonne duplicate non necessarie. Abbiamo conservato l'ID paziente e la colonna MH da unire al nostro set di dati primario. Ciò è stato facilitato da una trasformazione SQL personalizzata che utilizza PySpark SQL come framework di nostra scelta.

ML8274-immagine005

Abbiamo utilizzato la seguente logica:

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

Sposta la colonna MH per iniziare

Il nostro algoritmo ML richiede che l'input etichettato sia nella prima colonna. Pertanto, abbiamo spostato la colonna calcolata MH all'inizio di DataFrame per essere pronta per l'esportazione.

ML8274-immagine006

Riempi gli spazi vuoti con 0 usando Panda

Il nostro algoritmo ML richiede inoltre che i dati di input non abbiano campi vuoti. Pertanto, abbiamo riempito i campi vuoti del set di dati finale con 0. Possiamo farlo facilmente tramite una trasformazione personalizzata (Panda) in Data Wrangler.

ML8274-immagine007

Abbiamo utilizzato la seguente logica:

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

Cast colonna da float a long

Puoi anche analizzare e trasmettere facilmente una colonna a qualsiasi nuovo tipo di dati in Data Wrangler. Ai fini dell'ottimizzazione della memoria, impostiamo la colonna di input dell'etichetta sulla salute mentale come float.

ML8274-immagine008

Analisi rapida del modello: grafico dell'importanza delle caratteristiche

Dopo aver creato il nostro set di dati finale, abbiamo utilizzato il tipo di analisi Modello rapido in Data Wrangler per identificare rapidamente le incongruenze dei dati e se la precisione del nostro modello rientrava nell'intervallo previsto o se era necessario continuare la progettazione delle funzionalità prima di dedicare il tempo all'addestramento del modello. Il modello ha restituito un punteggio F1 di 0.901, con 1 come il più alto. Un punteggio F1 è un modo per combinare la precisione e il richiamo del modello, ed è definito come la media armonica dei due. Dopo aver esaminato questi primi risultati positivi, eravamo pronti per esportare i dati e procedere con l'addestramento del modello utilizzando il set di dati esportato.

ML8274-immagine009

Esporta il set di dati finale su Amazon S3 tramite un notebook Jupyter

Come passaggio finale, per esportare il set di dati nella sua forma attuale (trasformata) in Servizio di archiviazione semplice Amazon (Amazon S3) per un uso futuro sull'addestramento del modello, utilizziamo il Salva su Amazon S3 (tramite Jupyter Notebook) opzione di esportazione. Questo notebook avvia un sistema distribuito e scalabile Elaborazione di Amazon SageMaker job che applica la ricetta creata (flusso di dati) a input specificati (in genere set di dati più grandi) e salva i risultati in Amazon S3. Puoi anche esportare le tue colonne trasformate (caratteristiche). Negozio di funzionalità Amazon SageMaker o esportare le trasformazioni come pipeline utilizzando Pipeline di Amazon SageMakero semplicemente esportare le trasformazioni come codice Python.

Per esportare i dati su Amazon S3, hai tre opzioni:

  • Esporta i dati trasformati direttamente in Amazon S3 tramite l'interfaccia utente di Data Wrangler
  • Esporta le trasformazioni come processo di elaborazione SageMaker tramite un notebook Jupyter (come facciamo per questo post).
  • Esporta le trasformazioni in Amazon S3 tramite un nodo di destinazione. Un nodo di destinazione dice a Data Wrangler dove archiviare i dati dopo che li hai elaborati. Dopo aver creato un nodo di destinazione, si crea un processo di elaborazione per l'output dei dati.

ML8274-immagine010

Conclusione

In questo post, abbiamo mostrato come Equilibrium Point IoT utilizza Data Wrangler per accelerare il processo di caricamento di grandi quantità di dati sui reclami per la pulizia e la trasformazione dei dati in preparazione per ML. Abbiamo anche dimostrato come incorporare l'ingegneria delle funzionalità con trasformazioni personalizzate utilizzando Pandas e PySpark in Data Wrangler, consentendoci di esportare i dati passo dopo passo (dopo ogni join) per scopi di garanzia della qualità. L'applicazione di queste trasformazioni di facile utilizzo in Data Wrangler ha ridotto di quasi il 50% il tempo dedicato alla trasformazione dei dati end-to-end. Inoltre, la funzione di analisi del modello rapido in Data Wrangler ci ha consentito di convalidare facilmente lo stato delle trasformazioni durante il ciclo di preparazione dei dati e ingegneria delle funzionalità.

Ora che abbiamo preparato i dati per il nostro caso d'uso di modellazione del rischio per la salute mentale, come passaggio successivo, prevediamo di creare un modello ML utilizzando SageMaker e gli algoritmi integrati che offre, utilizzando il nostro set di dati sui reclami per identificare i membri che dovrebbero cercare la salute mentale servizi prima che arrivino al punto in cui ne hanno bisogno. Rimani sintonizzato!


Informazioni sugli autori

Crea un modello di rischio di machine learning per la salute mentale utilizzando Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Shibangi Saha è un Data Scientist presso Equilibrium Point. Combina la sua esperienza nei dati sui reclami dei pagatori sanitari e nell'apprendimento automatico per progettare, implementare, automatizzare e documentare pipeline di dati sanitari, reportistica e processi di analisi che guidano approfondimenti e miglioramenti attuabili nel sistema di erogazione dell'assistenza sanitaria. Shibangi ha conseguito il Master of Science in Bioinformatica presso il Northeastern University College of Science e un Bachelor of Science in Biology and Computer Science presso il Khoury College of Computer Science and Information Sciences.

Crea un modello di rischio di machine learning per la salute mentale utilizzando Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Graciela Kravtzov è il co-fondatore e CTO di Equilibrium Point. Grace ha ricoperto posizioni di leadership di livello C/VP in Ingegneria, Operazioni e Qualità e ha lavorato come consulente esecutivo per la strategia aziendale e lo sviluppo di prodotti nei settori sanitario e dell'istruzione e nello spazio industriale IoT. Grace ha conseguito un Master of Science in Ingegnere Elettromeccanico presso l'Università di Buenos Aires e un Master of Science in Computer Science presso la Boston University.

Crea un modello di rischio di machine learning per la salute mentale utilizzando Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Arunprasath Shankar è uno specialista in Solutions Architect di intelligenza artificiale e apprendimento automatico (AI / ML) con AWS, che aiuta i clienti globali a scalare le loro soluzioni di intelligenza artificiale in modo efficace ed efficiente nel cloud. Nel suo tempo libero, Arun ama guardare film di fantascienza e ascoltare musica classica.

Crea un modello di rischio di machine learning per la salute mentale utilizzando Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Ricerca verticale. Ai. Ajai Sharma è Senior Product Manager per Amazon SageMaker, dove si concentra su SageMaker Data Wrangler, uno strumento visivo di preparazione dei dati per i data scientist. Prima di AWS, Ajai è stato un esperto di scienza dei dati presso McKinsey and Company, dove ha guidato impegni incentrati sul ML per le principali società finanziarie e assicurative di tutto il mondo. Ajai è appassionato di scienza dei dati e ama esplorare gli algoritmi e le tecniche di apprendimento automatico più recenti.

Timestamp:

Di più da Apprendimento automatico di AWS