Build a mental health machine learning risk model using Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertical Search. Ai.

Byg en risikomodel for mental sundhed maskinlæring ved hjælp af Amazon SageMaker Data Wrangler

Dette indlæg er skrevet af Shibangi Saha, Data Scientist, og Graciela Kravtzov, medstifter og CTO, af Equilibrium Point.

Mange individer oplever nye symptomer på psykisk sygdom, såsom stress, angst, depression, stofbrug og posttraumatisk stresslidelse (PTSD). Ifølge Kaiser Family Foundation, har omkring halvdelen af ​​voksne (47 %) på landsplan rapporteret negative mentale helbredspåvirkninger under pandemien, en betydelig stigning i forhold til niveauerne før pandemien. Også visse køn og aldersgrupper er blandt de mest tilbøjelige til at rapportere stress og bekymringer, med satser meget højere end andre. Derudover er nogle få specifikke etniske grupper mere tilbøjelige til at rapportere en "større indvirkning" på deres mentale sundhed end andre.

Adskillige undersøgelser, herunder dem, der er indsamlet af Centers for Disease Control (CDC), har vist betydelige stigninger i selvrapporterede adfærdsmæssige sundhedssymptomer. Ifølge en CDC-rapport, som undersøgte voksne over hele USA i slutningen af ​​juni 2020, rapporterede 31% af de adspurgte symptomer på angst eller depression, 13% rapporterede at have startet eller øget stofbrug, 26% rapporterede stress-relaterede symptomer og 11% rapporteret at have haft alvorlige selvmordstanker inden for de seneste 30 dage.

Selvrapporterede data kan, selv om de er absolut kritiske ved diagnosticering af psykiske lidelser, være genstand for påvirkninger relateret til det fortsatte stigma omkring mental sundhed og mental sundhedsbehandling. I stedet for udelukkende at stole på selvrapporterede data, kan vi estimere og forudsige psykiske lidelser ved hjælp af data fra sundhedsjournaler og påstandsdata for at forsøge at besvare et grundlæggende spørgsmål: kan vi forudsige, hvem der sandsynligvis vil få brug for mental sundhedshjælp, før de har brug for det? Hvis disse personer kan identificeres, kan tidlige interventionsprogrammer og ressourcer udvikles og implementeres for at reagere på nye eller øgede underliggende symptomer for at afbøde virkningerne og omkostningerne ved psykiske lidelser.

Lettere sagt end gjort for dem, der har kæmpet med at administrere og behandle store mængder af komplekse, hulfyldte kravdata! I dette indlæg deler vi hvordan Ligevægtspunkt IoT anvendte Amazon SageMaker Data Wrangler at strømline skadesdataforberedelse til vores brugscase for mental sundhed, samtidig med at datakvaliteten sikres gennem hvert trin i processen.

Løsningsoversigt

Dataforberedelse eller feature engineering er en kedelig proces, der kræver, at erfarne dataforskere og ingeniører bruger meget tid og energi på at formulere opskrifter til de forskellige transformationer (trin), der er nødvendige for at få dataene i sin rigtige form. Faktisk viser forskning, at dataforberedelse til maskinlæring (ML) bruger op til 80 % af dataforskeres tid. Typisk bruger videnskabsmænd og ingeniører forskellige databehandlingsrammer, såsom Pandas, PySpark og SQL, til at kode deres transformationer og skabe distribuerede behandlingsjob. Med Data Wrangler kan du automatisere denne proces. Data Wrangler er en del af Amazon SageMaker Studio der giver en end-to-end løsning til at importere, forberede, transformere, fremhæve og analysere data. Du kan integrere en Data Wrangler dataflow ind i dine eksisterende ML-arbejdsgange for at forenkle og strømline databehandling og funktionsteknologi ved brug af lidt eller ingen kodning.

I dette indlæg gennemgår vi trinene til at transformere originale rådatasæt til ML-klare funktioner til brug til at bygge forudsigelsesmodellerne i næste fase. Først dykker vi ned i karakteren af ​​de forskellige datasæt, der er brugt til vores use case, og hvordan vi tilsluttede disse datasæt via Data Wrangler. Efter sammenkædningerne og datasætkonsolideringen beskriver vi de individuelle transformationer, vi har anvendt på datasættet, såsom de-duplikering, håndtering af manglende værdier og brugerdefinerede formler, efterfulgt af, hvordan vi brugte den indbyggede Quick Model-analyse til at validere den aktuelle tilstand af transformationer for forudsigelser.

datasæt

Til vores eksperiment downloadede vi først patientdata fra vores adfærdsmæssige sundhedsklient. Disse data omfatter følgende:

  • Krav data
  • Skadestuebesøg tæller
  • Indlæggelsesbesøg tæller
  • Lægemiddelrecepter relateret til mental sundhed
  • Hierarkisk tilstandskodning (HCC) diagnosticerer tæller relateret til mental sundhed

Målet var at forbinde disse separate datasæt baseret på patient-id og bruge dataene til at forudsige en mental sundhedsdiagnose. Vi brugte Data Wrangler til at skabe et massivt datasæt med flere millioner rækker af data, som er en samling af fem separate datasæt. Vi brugte også Data Wrangler til at udføre flere transformationer for at tillade kolonneberegninger. I de følgende afsnit beskriver vi de forskellige dataforberedelsestransformationer, som vi har anvendt.

Slip dublerede kolonner efter en joinforbindelse

Amazon SageMaker Data Wrangler leverer adskillige ML-datatransformationer for at strømline rengøring, transformation og fremhævelse af dine data. Når du tilføjer en transformation, tilføjer den et trin til datastrømmen. Hver transformation, du tilføjer, ændrer dit datasæt og producerer en ny dataramme. Alle efterfølgende transformationer gælder for den resulterende dataramme. Data Wrangler inkluderer indbyggede transformationer, som du kan bruge til at transformere kolonner uden nogen kode. Du kan også tilføje brugerdefinerede transformationer ved hjælp af PySpark, Pandas og PySpark SQL. Nogle transformationer fungerer på plads, mens andre opretter en ny outputkolonne i dit datasæt.

For vores eksperimenter, da vi efter hver joinforbindelse på patient-id'et stod tilbage med duplikerede patient-id-kolonner. Vi var nødt til at droppe disse kolonner. Vi droppede den højre patient-ID-kolonne, som vist på det følgende skærmbillede ved hjælp af den forudbyggede Administrer kolonner ->Drop kolonne transformere for kun at opretholde én patient-id-kolonne (patient_id i det endelige datasæt).

ML8274-image001

Drej et datasæt ved hjælp af Pandas

Datasæt for påstande var patientniveau med akutbesøg (ER), indlæggelse (IP), antal recepter og diagnosedata, der allerede var grupperet efter deres korrespondent-HCC-koder (ca. 189 koder). For at opbygge en patientdatamart aggregerer vi påstandens HCC-koder efter patient og pivoterer HCC-koden fra rækker til kolonner. Vi brugte Pandas til at dreje datasættet, tælle antallet af HCC-koder efter patient og derefter slutte sig til det primære datasæt på patient-id. Vi brugte den tilpassede transformationsindstilling i Data Wrangler og valgte Python (Pandas) som den valgte ramme.

ML8274-image002

Følgende kodestykke viser transformationslogikken til at dreje tabellen:

# 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

Opret nye kolonner ved hjælp af tilpassede formler

Vi undersøgte forskningslitteratur for at bestemme, hvilke HCC-koder der er deterministiske i mentale sundhedsdiagnoser. Vi skrev derefter denne logik ved hjælp af en tilpasset Data Wrangler-formeltransformation, der bruger et Spark SQL-udtryk til at beregne en målkolonne for Mental Health Diagnosis (MH), som vi tilføjede til slutningen af ​​DataFrame.

ML8274-image003

Vi brugte følgende transformationslogik:

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

Slip kolonner fra DataFrame ved hjælp af PySpark

Efter beregning af målkolonnen (MH) droppede vi alle de unødvendige duplikerede kolonner. Vi bevarede patient-id'et og MH-kolonnen for at blive forbundet med vores primære datasæt. Dette blev lettet af en brugerdefineret SQL-transformation, der bruger PySpark SQL som en ramme efter vores valg.

ML8274-image005

Vi brugte følgende logik:

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

Flyt MH-kolonnen for at starte

Vores ML-algoritme kræver, at det mærkede input er i den første kolonne. Derfor flyttede vi den MH beregnede kolonne til starten af ​​DataFrame for at være klar til eksport.

ML8274-image006

Udfyld tomme felter med 0 ved hjælp af Pandas

Vores ML-algoritme kræver også, at inputdata ikke har tomme felter. Derfor udfyldte vi det endelige datasæts tomme felter med 0'er. Det kan vi nemt gøre via en brugerdefineret transformation (Pandas) i Data Wrangler.

ML8274-image007

Vi brugte følgende logik:

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

Støbt søjle fra flyder til lang

Du kan også nemt parse og caste en kolonne til enhver ny datatype i Data Wrangler. Til hukommelsesoptimeringsformål caster vi vores inputkolonne for mental sundhed label som float.

ML8274-image008

Hurtig modelanalyse: Graf for egenskaber

Efter at have oprettet vores endelige datasæt, brugte vi Quick Model-analysetypen i Data Wrangler til hurtigt at identificere datainkonsistens, og om vores modelnøjagtighed var inden for det forventede område, eller hvis vi havde brug for at fortsætte funktionsudvikling, før vi brugte tiden på at træne modellen. Modellen returnerede en F1-score på 0.901, hvor 1 er den højeste. En F1-score er en måde at kombinere præcision og genkaldelse af modellen på, og den er defineret som den harmoniske middelværdi af de to. Efter at have inspiceret disse indledende positive resultater var vi klar til at eksportere dataene og fortsætte med modeltræning ved hjælp af det eksporterede datasæt.

ML8274-image009

Eksporter det endelige datasæt til Amazon S3 via en Jupyter-notesbog

Som et sidste trin, at eksportere datasættet i dets nuværende form (transformeret) til Amazon Simple Storage Service (Amazon S3) til fremtidig brug på modeltræning, bruger vi Gem til Amazon S3 (via Jupyter Notebook) eksport mulighed. Denne notesbog starter en distribueret og skalerbar Amazon SageMaker-behandling job, der anvender den oprettede opskrift (dataflow) på specificerede input (normalt større datasæt) og gemmer resultaterne i Amazon S3. Du kan også eksportere dine transformerede kolonner (funktioner) til Amazon SageMaker Feature Store eller eksporter transformationerne som en pipeline vha Amazon SageMaker Pipelines, eller eksporter blot transformationerne som Python-kode.

For at eksportere data til Amazon S3 har du tre muligheder:

  • Eksporter de transformerede data direkte til Amazon S3 via Data Wrangler UI
  • Eksporter transformationerne som et SageMaker Processing-job via en Jupyter-notesbog (som vi gør for dette indlæg).
  • Eksporter transformationerne til Amazon S3 via en destinationsknude. En destinationsknude fortæller Data Wrangler, hvor dataene skal opbevares, efter at du har behandlet dem. Når du har oprettet en destinationsknude, opretter du et behandlingsjob for at udlæse dataene.

ML8274-image010

Konklusion

I dette indlæg viste vi, hvordan Equilibrium Point IoT bruger Data Wrangler til at fremskynde indlæsningsprocessen af ​​store mængder af vores kravdata til datarensning og -transformation som forberedelse til ML. Vi demonstrerede også, hvordan man integrerer feature engineering med brugerdefinerede transformationer ved hjælp af Pandas og PySpark i Data Wrangler, hvilket giver os mulighed for at eksportere data trin for trin (efter hver joinforbindelse) til kvalitetssikringsformål. Anvendelsen af ​​disse brugervenlige transformationer i Data Wrangler reducerede den tid brugt på end-to-end datatransformation med næsten 50 %. Quick Model-analysefunktionen i Data Wrangler gav os også mulighed for nemt at validere transformationstilstanden, mens vi cykler gennem processen med dataforberedelse og funktionsudvikling.

Nu hvor vi har forberedt dataene til vores brugscase for mental sundhed risikomodellering, som næste trin, planlægger vi at bygge en ML-model ved hjælp af SageMaker og de indbyggede algoritmer, den tilbyder, ved at bruge vores kravdatasæt til at identificere medlemmer, der bør søge mental sundhed tjenester, før de når et punkt, hvor de har brug for det. Bliv hængende!


Om forfatterne

Build a mental health machine learning risk model using Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertical Search. Ai.Shibangi Saha er dataforsker ved Equilibrium Point. Hun kombinerer sin ekspertise inden for sundhedsbetalingskravsdata og maskinlæring for at designe, implementere, automatisere og dokumentere til sundhedsdatapipelines, rapportering og analyseprocesser, der driver indsigt og handlingsrettede forbedringer i sundhedsydelsessystemet. Shibangi modtog sin Master of Science i bioinformatik fra Northeastern University College of Science og en Bachelor of Science i biologi og datalogi fra Khoury College of Computer Science and Information Sciences.

Build a mental health machine learning risk model using Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertical Search. Ai.Graciela Kravtzov er medstifter og CTO af Equilibrium Point. Grace har haft C-niveau/VP-lederstillinger inden for Engineering, Operations og Quality, og fungeret som executive konsulent for forretningsstrategi og produktudvikling inden for sundheds- og uddannelsesindustrien og IoT-industrien. Grace modtog en Master of Science-grad i elektromekanisk ingeniør fra University of Buenos Aires og en Master of Science-grad i Computer Science fra Boston University.

Build a mental health machine learning risk model using Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertical Search. Ai.Arunprasath Shankar er en specialist i kunstig intelligens og maskinlæring (AI/ML) med AWS, der hjælper globale kunder med at skalere deres AI-løsninger effektivt og effektivt i skyen. I sin fritid nyder Arun at se sci-fi-film og lytte til klassisk musik.

Build a mental health machine learning risk model using Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertical Search. Ai. Ajai Sharma er Senior Product Manager for Amazon SageMaker, hvor han fokuserer på SageMaker Data Wrangler, et visuelt dataforberedelsesværktøj til dataforskere. Før AWS var Ajai en Data Science Expert hos McKinsey and Company, hvor han ledede ML-fokuserede engagementer for førende finans- og forsikringsfirmaer verden over. Ajai er passioneret omkring datavidenskab og elsker at udforske de nyeste algoritmer og maskinlæringsteknikker.

Tidsstempel:

Mere fra AWS maskinindlæring