Bygg en risikomodell for maskinlæring for mental helse ved å bruke Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Bygg en risikomodell for maskinlæring for mental helse ved å bruke Amazon SageMaker Data Wrangler

Dette innlegget er skrevet av Shibangi Saha, dataforsker, og Graciela Kravtzov, medgründer og CTO, av Equilibrium Point.

Mange individer opplever nye symptomer på psykiske lidelser, som stress, angst, depresjon, rusmiddelbruk og posttraumatisk stresslidelse (PTSD). I følge Kaiser Family Foundation, har omtrent halvparten av voksne (47 %) på landsbasis rapportert negative psykiske helsepåvirkninger under pandemien, en betydelig økning fra nivåene før pandemien. Visse kjønn og aldersgrupper er også blant de mest sannsynlige til å rapportere stress og bekymringer, med mye høyere priser enn andre. I tillegg er det mer sannsynlig at noen få spesifikke etniske grupper rapporterer en "stor innvirkning" på deres mentale helse enn andre.

Flere undersøkelser, inkludert de som er samlet inn av Centers for Disease Control (CDC), har vist betydelig økning i selvrapporterte atferdshelsesymptomer. I følge en CDC-rapport, som undersøkte voksne over hele USA i slutten av juni 2020, rapporterte 31 % av respondentene symptomer på angst eller depresjon, 13 % rapporterte å ha startet eller økt rusmiddelbruk, 26 % rapporterte stressrelaterte symptomer og 11 % rapportert å ha hatt alvorlige selvmordstanker de siste 30 dagene.

Selvrapporterte data, selv om de er helt avgjørende for å diagnostisere psykiske lidelser, kan være gjenstand for påvirkning knyttet til det vedvarende stigmaet rundt mental helse og psykisk helsebehandling. I stedet for å stole utelukkende på selvrapporterte data, kan vi estimere og forutsi psykiske plager ved å bruke data fra helsejournaler og påstandsdata for å prøve å svare på et grunnleggende spørsmål: kan vi forutsi hvem som sannsynligvis vil trenge psykisk helsehjelp før de trenger det? Hvis disse personene kan identifiseres, kan tidlige intervensjonsprogrammer og ressurser utvikles og distribueres for å reagere på nye eller økende underliggende symptomer for å dempe effektene og kostnadene ved psykiske lidelser.

Lettere sagt enn gjort for de som har slitt med å administrere og behandle store mengder komplekse, gapfylte kravdata! I dette innlegget deler vi hvordan Equilibrium Point IoT brukt Amazon SageMaker Data Wrangler å strømlinjeforme kravdataforberedelse for vår brukssak for psykisk helse, samtidig som vi sikrer datakvalitet gjennom hvert trinn i prosessen.

Løsningsoversikt

Dataforberedelse eller funksjonsteknikk er en kjedelig prosess, som krever at erfarne dataforskere og ingeniører bruker mye tid og energi på å formulere oppskrifter for de ulike transformasjonene (trinnene) som trengs for å få dataene i riktig form. Faktisk viser forskning at dataforberedelse for maskinlæring (ML) bruker opptil 80 % av dataforskernes tid. Vanligvis bruker forskere og ingeniører ulike databehandlingsrammer, som Pandas, PySpark og SQL, for å kode sine transformasjoner og lage distribuerte prosesseringsjobber. Med Data Wrangler kan du automatisere denne prosessen. Data Wrangler er en komponent av Amazon SageMaker Studio som gir en ende-til-ende-løsning for å importere, forberede, transformere, presentere og analysere data. Du kan integrere en Data Wrangler dataflyt inn i eksisterende ML-arbeidsflyter for å forenkle og strømlinjeforme databehandling og funksjonsutvikling ved bruk av lite eller ingen koding.

I dette innlegget går vi gjennom trinnene for å transformere originale rådatasett til ML-klare funksjoner som kan brukes til å bygge prediksjonsmodellene i neste trinn. Først fordyper vi oss i naturen til de ulike datasettene som brukes for vår brukssituasjon, og hvordan vi ble med disse datasettene via Data Wrangler. Etter sammenføyningene og datasettkonsolideringen beskriver vi de individuelle transformasjonene vi brukte på datasettet som de-duplisering, håndtering av manglende verdier og egendefinerte formler, etterfulgt av hvordan vi brukte den innebygde Quick Model-analysen for å validere gjeldende tilstand for transformasjoner for spådommer.

datasett

For eksperimentet vårt lastet vi først ned pasientdata fra vår atferdshelseklient. Disse dataene inkluderer følgende:

  • Kravdata
  • Legevaktbesøk teller
  • Døgnbesøk teller
  • Reseptantall knyttet til psykisk helse
  • Hierarkisk tilstandskoding (HCC) diagnostiserer tellinger knyttet til psykisk helse

Målet var å slå sammen disse separate datasettene basert på pasient-ID og bruke dataene til å forutsi en psykisk helsediagnose. Vi brukte Data Wrangler til å lage et massivt datasett med flere millioner rader med data, som er en sammenføyning av fem separate datasett. Vi brukte også Data Wrangler til å utføre flere transformasjoner for å tillate kolonneberegninger. I de følgende avsnittene beskriver vi de ulike dataforberedende transformasjonene som vi brukte.

Slipp dupliserte kolonner etter en sammenføyning

Amazon SageMaker Data Wrangler gir en rekke ML-datatransformasjoner for å strømlinjeforme rengjøring, transformering og presentasjon av dataene dine. Når du legger til en transformasjon, legger den til et trinn i dataflyten. Hver transformasjon du legger til, endrer datasettet og produserer en ny dataramme. Alle påfølgende transformasjoner gjelder for den resulterende datarammen. Data Wrangler inkluderer innebygde transformasjoner, som du kan bruke til å transformere kolonner uten noen kode. Du kan også legge til tilpassede transformasjoner ved å bruke PySpark, Pandas og PySpark SQL. Noen transformasjoner fungerer på plass, mens andre oppretter en ny utdatakolonne i datasettet ditt.

For våre eksperimenter, siden etter hver sammenføyning på pasient-IDen, satt vi igjen med dupliserte pasient-ID-kolonner. Vi måtte droppe disse kolonnene. Vi droppet den høyre pasient-ID-kolonnen, som vist i følgende skjermbilde ved bruk av den forhåndsbygde Administrer kolonner ->Slipp kolonne transform, for å opprettholde bare én pasient-ID-kolonne (pasient_id i det endelige datasettet).

ML8274-image001

Pivot et datasett ved hjelp av Pandas

Datasettene for påstander var pasientnivå med akuttbesøk (ER), innleggelse (IP), antall resepter og diagnosedata allerede gruppert etter deres korrespondent HCC-koder (omtrent 189 koder). For å bygge en pasientdatamart, samler vi HCC-kodene etter pasient og pivoterer HCC-koden fra rader til kolonner. Vi brukte Pandas for å pivotere datasettet, telle antall HCC-koder etter pasient, og deretter koble til det primære datasettet på pasient-ID. Vi brukte det tilpassede transformasjonsalternativet i Data Wrangler og valgte Python (Pandas) som rammeverket.

ML8274-image002

Følgende kodebit viser transformasjonslogikken for å pivotere 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

Opprett nye kolonner ved hjelp av egendefinerte formler

Vi studerte forskningslitteratur for å finne ut hvilke HCC-koder som er deterministiske i psykiske helsediagnoser. Vi skrev deretter denne logikken ved å bruke en Data Wrangler-tilpasset formeltransformasjon som bruker et Spark SQL-uttrykk for å beregne en målkolonne for Mental Health Diagnosis (MH), som vi la til på slutten av DataFrame.

ML8274-image003

Vi brukte følgende transformasjonslogikk:

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

Slipp kolonner fra DataFrame ved hjelp av PySpark

Etter beregning av målkolonnen (MH) droppet vi alle de unødvendige dupliserte kolonnene. Vi bevarte pasient-IDen og MH-kolonnen for å bli med i vårt primære datasett. Dette ble tilrettelagt av en tilpasset SQL-transformasjon som bruker PySpark SQL som et rammeverk etter eget valg.

ML8274-image005

Vi brukte følgende logikk:

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

Flytt MH-kolonnen for å starte

Vår ML-algoritme krever at den merkede inngangen er i den første kolonnen. Derfor flyttet vi den MH-kalkulerte kolonnen til starten av DataFrame for å være klar for eksport.

ML8274-image006

Fyll ut de tomme feltene med 0 ved å bruke Pandas

Vår ML-algoritme krever også at inndataene ikke har tomme felt. Derfor fylte vi det endelige datasettets tomme felt med 0-er. Vi kan enkelt gjøre dette via en tilpasset transformasjon (Pandas) i Data Wrangler.

ML8274-image007

Vi brukte følgende logikk:

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

Støpt søyle fra flyte til lang

Du kan også analysere og kaste en kolonne til en hvilken som helst ny datatype enkelt i Data Wrangler. For minneoptimaliseringsformål støpte vi inndatakolonnen for mental helseetikett som flytende.

ML8274-image008

Rask modellanalyse: Graf for funksjonens betydning

Etter å ha opprettet vårt endelige datasett, brukte vi Quick Model-analysetypen i Data Wrangler for raskt å identifisere datainkonsekvenser og om modellnøyaktigheten vår var innenfor det forventede området, eller om vi trengte å fortsette funksjonsutvikling før vi brukte tiden på å trene modellen. Modellen ga en F1-poengsum på 0.901, hvor 1 er den høyeste. En F1-score er en måte å kombinere presisjonen og tilbakekallingen av modellen på, og den er definert som det harmoniske gjennomsnittet av de to. Etter å ha inspisert disse første positive resultatene, var vi klare til å eksportere dataene og fortsette med modelltrening ved å bruke det eksporterte datasettet.

ML8274-image009

Eksporter det endelige datasettet til Amazon S3 via en Jupyter-notisbok

Som et siste trinn, å eksportere datasettet i sin nåværende form (transformert) til Amazon enkel lagringstjeneste (Amazon S3) for fremtidig bruk på modelltrening, bruker vi Lagre til Amazon S3 (via Jupyter Notebook) eksportalternativ. Denne notatboken starter en distribuert og skalerbar Amazon SageMaker-prosessering jobb som bruker den opprettede oppskriften (dataflyt) på spesifiserte innganger (vanligvis større datasett) og lagrer resultatene i Amazon S3. Du kan også eksportere de transformerte kolonnene (funksjonene) til Amazon SageMaker Feature Store eller eksporter transformasjonene som en rørledning ved hjelp av Amazon SageMaker-rørledninger, eller bare eksporter transformasjonene som Python-kode.

For å eksportere data til Amazon S3, har du tre alternativer:

  • Eksporter de transformerte dataene direkte til Amazon S3 via Data Wrangler-grensesnittet
  • Eksporter transformasjonene som en SageMaker-behandlingsjobb via en Jupyter-notisbok (som vi gjør for dette innlegget).
  • Eksporter transformasjonene til Amazon S3 via en destinasjonsnode. En destinasjonsnode forteller Data Wrangler hvor dataene skal lagres etter at du har behandlet dem. Etter at du har opprettet en destinasjonsnode, oppretter du en behandlingsjobb for å sende ut dataene.

ML8274-image010

konklusjonen

I dette innlegget viste vi frem hvordan Equilibrium Point IoT bruker Data Wrangler for å fremskynde innlastingsprosessen av store mengder av våre kravdata for datarensing og transformasjon som forberedelse til ML. Vi demonstrerte også hvordan vi kan integrere funksjonsteknikk med tilpassede transformasjoner ved å bruke Pandas og PySpark i Data Wrangler, slik at vi kan eksportere data trinn for trinn (etter hver sammenføyning) for kvalitetssikringsformål. Bruken av disse brukervennlige transformasjonene i Data Wrangler kuttet ned tiden brukt på ende-til-ende datatransformasjon med nesten 50 %. Quick Model-analysefunksjonen i Data Wrangler tillot oss også å enkelt validere tilstanden til transformasjoner mens vi sykler gjennom prosessen med dataforberedelse og funksjonsutvikling.

Nå som vi har forberedt dataene for brukssaken vår for mental helserisikomodellering, som neste trinn, planlegger vi å bygge en ML-modell ved å bruke SageMaker og de innebygde algoritmene den tilbyr, ved å bruke vårt påstandsdatasett for å identifisere medlemmer som bør søke mental helse tjenester før de kommer til et punkt der de trenger det. Følg med!


Om forfatterne

Bygg en risikomodell for maskinlæring for mental helse ved å bruke Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Shibangi Saha er en dataforsker ved Equilibrium Point. Hun kombinerer ekspertisen sin innen kravdata og maskinlæring for å designe, implementere, automatisere og dokumentere for helsedatapipelines, rapportering og analyseprosesser som gir innsikt og handlingsdyktige forbedringer i leveringssystemet for helsetjenester. Shibangi mottok sin Master of Science in Bioinformatics fra Northeastern University College of Science og en Bachelor of Science in Biology and Computer Science fra Khoury College of Computer Science and Information Sciences.

Bygg en risikomodell for maskinlæring for mental helse ved å bruke Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Graciela Kravtzov er medgründer og CTO for Equilibrium Point. Grace har hatt C-nivå/VP-lederstillinger innen Engineering, Operations og Quality, og fungert som en utøvende konsulent for forretningsstrategi og produktutvikling innen helse- og utdanningsindustrien og IoT-industrien. Grace mottok en Master of Science-grad i elektromekanisk ingeniør fra University of Buenos Aires og en Master of Science-grad i informatikk fra Boston University.

Bygg en risikomodell for maskinlæring for mental helse ved å bruke Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Arunprasath Shankar er en kunstig intelligens og maskinlæring (AI / ML) spesialistløsningsarkitekt med AWS, som hjelper globale kunder å skalere sine AI-løsninger effektivt og effektivt i skyen. På fritiden liker Arun å se sci-fi-filmer og lytte til klassisk musikk.

Bygg en risikomodell for maskinlæring for mental helse ved å bruke Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikalt søk. Ai. Ajai Sharma er senior produktsjef for Amazon SageMaker hvor han fokuserer på SageMaker Data Wrangler, et visuelt dataforberedelsesverktøy for dataforskere. Før AWS var Ajai en datavitenskapsekspert hos McKinsey and Company hvor han ledet ML-fokuserte engasjementer for ledende finans- og forsikringsselskaper over hele verden. Ajai er lidenskapelig opptatt av datavitenskap og elsker å utforske de nyeste algoritmene og maskinlæringsteknikkene.

Tidstempel:

Mer fra AWS maskinlæring