Bygg en riskmodell för maskininlärning för mental hälsa med Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Bygg en riskmodell för maskininlärning för mental hälsa med Amazon SageMaker Data Wrangler

Det här inlägget är skrivet av Shibangi Saha, Data Scientist, och Graciela Kravtzov, medgrundare och CTO på Equilibrium Point.

Många individer upplever nya symtom på psykisk ohälsa, såsom stress, ångest, depression, missbruk och posttraumatiskt stressyndrom (PTSD). Enligt Kaiser Family Foundation, har ungefär hälften av vuxna (47%) i hela landet rapporterat negativa effekter på mental hälsa under pandemin, en betydande ökning från nivåerna före pandemin. Vissa kön och åldersgrupper är också bland de mest benägna att rapportera stress och oro, i en takt som är mycket högre än andra. Dessutom är några specifika etniska grupper mer benägna att rapportera en "stor påverkan" på sin mentala hälsa än andra.

Flera undersökningar, inklusive de som samlats in av Centers for Disease Control (CDC), har visat på betydande ökningar av självrapporterade beteendemässiga hälsosymtom. Enligt en CDC-rapport, som undersökte vuxna över hela USA i slutet av juni 2020, rapporterade 31 % av de tillfrågade symtom på ångest eller depression, 13 % rapporterade att de hade börjat eller ökat droganvändning, 26 % rapporterade stressrelaterade symtom och 11 % rapporterat att de haft allvarliga självmordstankar under de senaste 30 dagarna.

Självrapporterade data, även om de är absolut kritiska för att diagnostisera psykiska störningar, kan vara föremål för påverkan relaterade till det fortsatta stigmat kring mental hälsa och behandling av mental hälsa. Istället för att enbart förlita oss på självrapporterade data, kan vi uppskatta och förutsäga psykisk ohälsa med hjälp av data från hälsojournaler och anspråksdata för att försöka svara på en grundläggande fråga: kan vi förutsäga vem som sannolikt kommer att behöva mentalvårdshjälp innan de behöver det? Om dessa individer kan identifieras kan tidiga insatser och resurser utvecklas och sättas in för att svara på nya eller ökade underliggande symtom för att mildra effekterna och kostnaderna för psykiska störningar.

Lättare sagt än gjort för dem som har kämpat med att hantera och bearbeta stora volymer av komplexa, klyftade anspråksdata! I det här inlägget delar vi hur Jämviktspunkt IoT Begagnade Amazon SageMaker Data Wrangler för att effektivisera beredningen av skadedata för vårt användningsfall för psykisk hälsa, samtidigt som vi säkerställer datakvaliteten under varje steg i processen.

Lösningsöversikt

Dataförberedelse eller funktionsteknik är en omständlig process som kräver att erfarna datavetare och ingenjörer lägger mycket tid och energi på att formulera recept för de olika transformationer (steg) som behövs för att få data i rätt form. Faktum är att forskning visar att dataförberedelse för maskininlärning (ML) tar upp till 80 % av dataforskarnas tid. Vanligtvis använder forskare och ingenjörer olika ramverk för databehandling, såsom Pandas, PySpark och SQL, för att koda sina transformationer och skapa distribuerade bearbetningsjobb. Med Data Wrangler kan du automatisera denna process. Data Wrangler är en komponent i Amazon SageMaker Studio som ger en helhetslösning för att importera, förbereda, transformera, presentera och analysera data. Du kan integrera en Data Wrangler data flöde i dina befintliga ML-arbetsflöden för att förenkla och effektivisera databearbetning och funktionsteknik med lite eller ingen kodning.

I det här inlägget går vi igenom stegen för att omvandla ursprungliga rådatauppsättningar till ML-förberedda funktioner att använda för att bygga förutsägelsemodellerna i nästa steg. Först fördjupar vi oss i arten av de olika datauppsättningarna som används för vårt användningsfall och hur vi sammanfogade dessa datauppsättningar via Data Wrangler. Efter kopplingarna och datauppsättningskonsolideringen beskriver vi de individuella transformationer vi tillämpade på datamängden som de-duplicering, hantering av saknade värden och anpassade formler, följt av hur vi använde den inbyggda Quick Model-analysen för att validera det aktuella tillståndet för transformationer för förutsägelser.

dataset

För vårt experiment laddade vi först ned patientdata från vår beteendevårdsklient. Dessa data inkluderar följande:

  • Anspråksdata
  • Akutbesök räknas
  • Slutenvårdsbesök räknas
  • Läkemedelsrecept relaterade till psykisk hälsa
  • Hierarkisk tillståndskodning (HCC) diagnostiserar antal relaterade till mental hälsa

Målet var att sammanfoga dessa separata datamängder baserat på patient-ID och använda data för att förutsäga en diagnos för mental hälsa. Vi använde Data Wrangler för att skapa en massiv datauppsättning med flera miljoner rader med data, som är en sammanfogning av fem separata datauppsättningar. Vi använde också Data Wrangler för att utföra flera transformationer för att möjliggöra kolumnberäkningar. I följande avsnitt beskriver vi de olika databeredningstransformationer som vi tillämpade.

Släpp dubbletter av kolumner efter en koppling

Amazon SageMaker Data Wrangler tillhandahåller många ML-dataomvandlingar för att effektivisera rengöring, transformering och presentation av dina data. När du lägger till en transformation lägger den till ett steg till dataflödet. Varje transformation du lägger till ändrar din datauppsättning och skapar en ny dataram. Alla efterföljande transformationer gäller för den resulterande dataramen. Data Wrangler inkluderar inbyggda transformeringar, som du kan använda för att transformera kolumner utan någon kod. Du kan också lägga till anpassade transformationer med PySpark, Pandas och PySpark SQL. Vissa transformationer fungerar på plats, medan andra skapar en ny utdatakolumn i din datauppsättning.

För våra experiment, eftersom efter varje sammanfogning på patient-ID, vi lämnades med dubbla patient-ID kolumner. Vi behövde släppa dessa kolumner. Vi tappade den högra patient-ID-kolumnen, som visas i följande skärmdump med den förbyggda Hantera kolumner ->Släpp kolumn transform, för att endast behålla en patient-ID-kolumn (patient_id i den slutliga datamängden).

ML8274-image001

Pivotera en datauppsättning med Pandas

Datauppsättningar för påståenden var patientnivå med akutbesök (ER), slutenvård (IP), antal recept och diagnosdata redan grupperade efter deras motsvarande HCC-koder (ungefär 189 koder). För att bygga en patientdatamart aggregerar vi påståendenas HCC-koder efter patient och pivoterar HCC-koden från rader till kolumner. Vi använde Pandas för att svänga datamängden, räkna antalet HCC-koder per patient och sedan ansluta till den primära datamängden på patient-ID. Vi använde det anpassade transformeringsalternativet i Data Wrangler och valde Python (Pandas) som ramverk.

ML8274-image002

Följande kodavsnitt visar transformationslogiken för att pivotera 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

Skapa nya kolumner med hjälp av anpassade formler

Vi studerade forskningslitteratur för att avgöra vilka HCC-koder som är deterministiska vid diagnoser av mental hälsa. Vi skrev sedan den här logiken med hjälp av en anpassad formeltransform av Data Wrangler som använder ett Spark SQL-uttryck för att beräkna en målkolumn för Mental Health Diagnosis (MH), som vi lade till i slutet av DataFrame.

ML8274-image003

Vi använde följande 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)

Släpp kolumner från DataFrame med PySpark

Efter beräkning av målkolumnen (MH) släppte vi alla onödiga dubbletter av kolumner. Vi bevarade patient-ID och MH-kolumnen för att ansluta till vår primära datauppsättning. Detta underlättades av en anpassad SQL-transform som använder PySpark SQL som ett ramverk som vi valt.

ML8274-image005

Vi använde följande logik:

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

Flytta MH-kolumnen för att starta

Vår ML-algoritm kräver att den märkta ingången finns i den första kolumnen. Därför flyttade vi den MH-beräknade kolumnen till början av DataFrame för att vara redo för export.

ML8274-image006

Fyll i tomrum med 0 med Pandas

Vår ML-algoritm kräver också att indata inte har några tomma fält. Därför fyllde vi den slutliga datauppsättningens tomma fält med nollor. Vi kan enkelt göra detta via en anpassad transformation (Pandas) i Data Wrangler.

ML8274-image007

Vi använde följande logik:

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

Gjuten pelare från flöte till lång

Du kan också enkelt analysera och casta en kolumn till valfri ny datatyp i Data Wrangler. För minnesoptimeringssyften gjuter vi vår indatakolumn för mental hälsa som flytande.

ML8274-image008

Snabb modellanalys: Graf för funktionsviktighet

Efter att ha skapat vår slutliga datauppsättning använde vi analystypen Quick Model i Data Wrangler för att snabbt identifiera datainkonsekvenser och om vår modellnoggrannhet låg inom det förväntade intervallet, eller om vi behövde fortsätta funktionsutveckling innan vi ägnade tiden åt att träna modellen. Modellen gav en F1-poäng på 0.901, där 1 var högst. En F1-poäng är ett sätt att kombinera precision och återkallande av modellen, och det definieras som det harmoniska medelvärdet av de två. Efter att ha inspekterat dessa initiala positiva resultat var vi redo att exportera data och fortsätta med modellträning med den exporterade datamängden.

ML8274-image009

Exportera den slutliga datamängden till Amazon S3 via en Jupyter-anteckningsbok

Som ett sista steg, att exportera datamängden i dess nuvarande form (transformerad) till Amazon enkel lagringstjänst (Amazon S3) för framtida användning på modellträning använder vi Spara till Amazon S3 (via Jupyter Notebook) exportalternativ. Den här anteckningsboken startar en distribuerad och skalbar Amazon SageMaker-bearbetning jobb som tillämpar det skapade receptet (dataflödet) på specificerade indata (vanligtvis större datamängder) och sparar resultaten i Amazon S3. Du kan också exportera dina transformerade kolumner (funktioner) till Amazon SageMaker Feature Store eller exportera transformationerna som en pipeline med hjälp av Amazon SageMaker-rörledningar, eller helt enkelt exportera transformationerna som Python-kod.

För att exportera data till Amazon S3 har du tre alternativ:

  • Exportera den transformerade datan direkt till Amazon S3 via Data Wrangler UI
  • Exportera transformationerna som ett SageMaker Processing-jobb via en Jupyter-anteckningsbok (som vi gör för det här inlägget).
  • Exportera transformationerna till Amazon S3 via en destinationsnod. En destinationsnod talar om för Data Wrangler var data ska lagras efter att du har bearbetat den. När du har skapat en destinationsnod skapar du ett bearbetningsjobb för att mata ut data.

ML8274-image010

Slutsats

I det här inlägget visade vi upp hur Equilibrium Point IoT använder Data Wrangler för att påskynda laddningsprocessen av stora mängder av våra anspråksdata för datarensning och transformation som förberedelse för ML. Vi visade också hur man integrerar funktionsteknik med anpassade transformationer med Pandas och PySpark i Data Wrangler, vilket gör att vi kan exportera data steg för steg (efter varje koppling) för kvalitetssäkringsändamål. Tillämpningen av dessa lättanvända transformationer i Data Wrangler minskade tiden som ägnas åt end-to-end datatransformation med nästan 50 %. Funktionen för snabbmodellanalys i Data Wrangler gjorde det också möjligt för oss att enkelt validera tillståndet för transformationer när vi cyklar genom processen för dataförberedelse och funktionsutveckling.

Nu när vi har förberett data för vårt användningsfall för modellering av psykisk hälsa, som nästa steg, planerar vi att bygga en ML-modell med SageMaker och de inbyggda algoritmerna som den erbjuder, med hjälp av vår datauppsättning för anspråk för att identifiera medlemmar som bör söka mental hälsa tjänster innan de kommer till en punkt där de behöver dem. Håll ögonen öppna!


Om författarna

Bygg en riskmodell för maskininlärning för mental hälsa med Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Shibangi Saha är en dataforskare vid Equilibrium Point. Hon kombinerar sin expertis inom sjukvårdsbetalardata och maskininlärning för att designa, implementera, automatisera och dokumentera för hälsodatapipelines, rapportering och analysprocesser som driver insikter och genomförbara förbättringar i sjukvårdens leveranssystem. Shibangi tog sin magisterexamen i bioinformatik från Northeastern University College of Science och en kandidatexamen i biologi och datavetenskap från Khoury College of Computer Science and Information Sciences.

Bygg en riskmodell för maskininlärning för mental hälsa med Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Graciela Kravtzov är medgrundare och CTO för Equilibrium Point. Grace har haft C-nivå/VP-ledarpositioner inom Engineering, Operations och Quality, och fungerat som exekutiv konsult för affärsstrategi och produktutveckling inom hälsovårds- och utbildningsindustrin och IoT-industrin. Grace fick en Master of Science-examen i elektromekanisk ingenjör från University of Buenos Aires och en Master of Science-examen i datavetenskap från Boston University.

Bygg en riskmodell för maskininlärning för mental hälsa med Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Arunprasath Shankar är en artificiell intelligens och maskininlärning (AI / ML) specialistlösningsarkitekt med AWS, som hjälper globala kunder att skala sina AI-lösningar effektivt och effektivt i molnet. På fritiden tycker Arun om att titta på sci-fi-filmer och lyssna på klassisk musik.

Bygg en riskmodell för maskininlärning för mental hälsa med Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Vertikal sökning. Ai. Ajai Sharma är senior produktchef för Amazon SageMaker där han fokuserar på SageMaker Data Wrangler, ett visuellt dataförberedande verktyg för datavetare. Före AWS var Ajai en datavetenskapsexpert på McKinsey and Company där han ledde ML-fokuserade engagemang för ledande finans- och försäkringsföretag över hela världen. Ajai brinner för datavetenskap och älskar att utforska de senaste algoritmerna och maskininlärningsteknikerna.

Tidsstämpel:

Mer från AWS maskininlärning