Créez un modèle de risque d'apprentissage automatique en matière de santé mentale à l'aide d'Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Créer un modèle de risque d'apprentissage automatique pour la santé mentale à l'aide d'Amazon SageMaker Data Wrangler

Cet article est co-écrit par Shibangi Saha, Data Scientist, et Graciela Kravtzov, co-fondatrice et CTO, d'Equilibrium Point.

De nombreuses personnes présentent de nouveaux symptômes de maladie mentale, comme le stress, l’anxiété, la dépression, la consommation de substances et le trouble de stress post-traumatique (SSPT). Selon Fondation de la famille Kaiser, environ la moitié des adultes (47 %) à l’échelle nationale ont signalé des impacts négatifs sur leur santé mentale pendant la pandémie, soit une augmentation significative par rapport aux niveaux d’avant la pandémie. En outre, certains sexes et groupes d’âge sont parmi les plus susceptibles de signaler du stress et de l’inquiétude, à des taux beaucoup plus élevés que d’autres. De plus, quelques groupes ethniques spécifiques sont plus susceptibles que d’autres de signaler un « impact majeur » sur leur santé mentale.

Plusieurs enquêtes, y compris celles recueillies par les Centers for Disease Control (CDC), ont montré une augmentation substantielle des symptômes de santé comportementale autodéclarés. Selon un rapport du CDC, qui a interrogé des adultes aux États-Unis fin juin 2020, 31 % des personnes interrogées ont signalé des symptômes d'anxiété ou de dépression, 13 % ont déclaré avoir commencé ou augmenté leur consommation de substances, 26 % ont signalé des symptômes liés au stress et 11 %. ont déclaré avoir eu de sérieuses pensées suicidaires au cours des 30 derniers jours.

Les données autodéclarées, bien qu’absolument essentielles au diagnostic des troubles de santé mentale, peuvent être soumises à des influences liées à la stigmatisation persistante entourant la santé mentale et le traitement de la santé mentale. Plutôt que de nous fier uniquement aux données autodéclarées, nous pouvons estimer et prévoir la détresse mentale en utilisant les données des dossiers de santé et des réclamations pour tenter de répondre à une question fondamentale : pouvons-nous prédire qui aura probablement besoin d’une aide en matière de santé mentale avant d’en avoir besoin ? Si ces personnes peuvent être identifiées, des programmes et des ressources d'intervention précoce peuvent être développés et déployés pour répondre à tout nouveau symptôme sous-jacent ou augmentation de ceux-ci afin d'atténuer les effets et les coûts des troubles mentaux.

Plus facile à dire qu'à faire pour ceux qui ont eu du mal à gérer et à traiter de gros volumes de données de sinistres complexes et truffées de lacunes ! Dans cet article, nous partageons comment IoT au point d’équilibre d'utiliser Gestionnaire de données Amazon SageMaker rationaliser la préparation des données de réclamation pour notre cas d'utilisation en matière de santé mentale, tout en garantissant la qualité des données à chaque étape du processus.

Vue d'ensemble de la solution

La préparation des données ou l'ingénierie des fonctionnalités est un processus fastidieux, qui nécessite des scientifiques et des ingénieurs de données expérimentés qui consacrent beaucoup de temps et d'énergie à la formulation de recettes pour les différentes transformations (étapes) nécessaires pour donner aux données la bonne forme. En fait, les recherches montrent que la préparation des données pour l'apprentissage automatique (ML) consomme jusqu'à 80 % du temps des data scientists. En règle générale, les scientifiques et les ingénieurs utilisent divers frameworks de traitement de données, tels que Pandas, PySpark et SQL, pour coder leurs transformations et créer des tâches de traitement distribué. Avec Data Wrangler, vous pouvez automatiser ce processus. Data Wrangler est un composant de Amazon SageMakerStudio qui fournit une solution de bout en bout pour importer, préparer, transformer, présenter et analyser des données. Vous pouvez intégrer un Data Wrangler flux de données dans vos flux de travail ML existants pour simplifier et rationaliser le traitement des données et l'ingénierie des fonctionnalités en utilisant peu ou pas de codage.

Dans cet article, nous passons en revue les étapes permettant de transformer les ensembles de données brutes d'origine en fonctionnalités prêtes pour le ML à utiliser pour créer les modèles de prédiction à l'étape suivante. Tout d'abord, nous examinons la nature des différents ensembles de données utilisés pour notre cas d'utilisation et comment nous avons rejoint ces ensembles de données via Data Wrangler. Après les jointures et la consolidation de l'ensemble de données, nous décrivons les transformations individuelles que nous avons appliquées sur l'ensemble de données, telles que la déduplication, la gestion des valeurs manquantes et les formules personnalisées, suivies de la façon dont nous avons utilisé l'analyse du modèle rapide intégrée pour valider l'état actuel des transformations. pour les prédictions.

Jeux de données

Pour notre expérience, nous avons d’abord téléchargé les données des patients de notre client de santé comportementale. Ces données comprennent les éléments suivants :

  • Données sur les sinistres
  • Les visites aux urgences comptent
  • Nombre de visites chez les patients hospitalisés
  • Nombre d’ordonnances de médicaments liées à la santé mentale
  • Nombre de diagnostics par codage hiérarchique des affections (CHC) liés à la santé mentale

L’objectif était de joindre ces ensembles de données distincts en fonction de l’identification du patient et d’utiliser les données pour prédire un diagnostic de santé mentale. Nous avons utilisé Data Wrangler pour créer un ensemble de données massif de plusieurs millions de lignes de données, qui constitue une jointure de cinq ensembles de données distincts. Nous avons également utilisé Data Wrangler pour effectuer plusieurs transformations afin de permettre les calculs de colonnes. Dans les sections suivantes, nous décrivons les différentes transformations de préparation de données que nous avons appliquées.

Supprimer les colonnes en double après une jointure

Amazon SageMaker Data Wrangler propose de nombreuses transformations de données ML pour rationaliser le nettoyage, la transformation et la mise en valeur de vos données. Lorsque vous ajoutez une transformation, cela ajoute une étape au flux de données. Chaque transformation que vous ajoutez modifie votre ensemble de données et produit une nouvelle trame de données. Toutes les transformations suivantes s'appliquent à la trame de données résultante. Data Wrangler inclut des transformations intégrées, que vous pouvez utiliser pour transformer des colonnes sans aucun code. Vous pouvez également ajouter des transformations personnalisées à l'aide de PySpark, Pandas et PySpark SQL. Certaines transformations fonctionnent sur place, tandis que d'autres créent une nouvelle colonne de sortie dans votre ensemble de données.

Pour nos expériences, puisqu'après chaque jointure sur l'ID patient, nous nous retrouvions avec des colonnes d'ID patient en double. Nous devions supprimer ces colonnes. Nous avons supprimé la colonne d'identification du patient de droite, comme le montre la capture d'écran suivante à l'aide du fichier prédéfini Gérer les colonnes ->Déposer la colonne transformer, pour conserver une seule colonne d’ID patient (patient_id dans l’ensemble de données final).

ML8274-image001

Faire pivoter un ensemble de données à l'aide de Pandas

Les ensembles de données sur les réclamations étaient au niveau des patients avec les visites d'urgence (ER), les patients hospitalisés (IP), le nombre de prescriptions et les données de diagnostic déjà regroupées par leurs codes HCC correspondants (environ 189 codes). Pour créer un datamart patient, nous regroupons les codes HCC des réclamations par patient et faisons pivoter le code HCC des lignes vers les colonnes. Nous avons utilisé Pandas pour faire pivoter l'ensemble de données, compter le nombre de codes HCC par patient, puis nous joindre à l'ensemble de données principal sur l'ID du patient. Nous avons utilisé l'option de transformation personnalisée dans Data Wrangler en choisissant Python (Pandas) comme framework de choix.

ML8274-image002

L'extrait de code suivant montre la logique de transformation pour faire pivoter le tableau :

# 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

Créer de nouvelles colonnes à l'aide de formules personnalisées

Nous avons étudié la littérature de recherche pour déterminer quels codes HCC sont déterministes dans les diagnostics de santé mentale. Nous avons ensuite écrit cette logique à l'aide d'une transformation de formule personnalisée Data Wrangler qui utilise une expression Spark SQL pour calculer une colonne cible de diagnostic de santé mentale (MH), que nous avons ajoutée à la fin du DataFrame.

ML8274-image003

Nous avons utilisé la logique de transformation suivante :

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

Supprimez les colonnes du DataFrame à l'aide de PySpark

Après calcul de la colonne cible (MH), nous avons supprimé toutes les colonnes en double inutiles. Nous avons conservé l'ID du patient et la colonne MH pour les joindre à notre ensemble de données principal. Cela a été facilité par une transformation SQL personnalisée qui utilise PySpark SQL comme framework de notre choix.

ML8274-image005

Nous avons utilisé la logique suivante :

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

Déplacez la colonne MH pour commencer

Notre algorithme ML nécessite que l'entrée étiquetée se trouve dans la première colonne. Par conséquent, nous avons déplacé la colonne calculée MH au début du DataFrame pour être prête à être exportée.

ML8274-image006

Remplissez les espaces avec 0 en utilisant Pandas

Notre algorithme ML exige également que les données d'entrée ne comportent pas de champs vides. Par conséquent, nous avons rempli les champs vides de l’ensemble de données final avec des 0. Nous pouvons facilement le faire via une transformation personnalisée (Pandas) dans Data Wrangler.

ML8274-image007

Nous avons utilisé la logique suivante :

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

Colonne coulée de flotteur à long

Vous pouvez également analyser et convertir facilement une colonne en n’importe quel nouveau type de données dans Data Wrangler. À des fins d'optimisation de la mémoire, nous transformons notre colonne d'entrée d'étiquette de santé mentale en flottant.

ML8274-image008

Analyse rapide du modèle : graphique d'importance des fonctionnalités

Après avoir créé notre ensemble de données final, nous avons utilisé le type d'analyse Quick Model dans Data Wrangler pour identifier rapidement les incohérences des données et si la précision de notre modèle était dans la plage attendue, ou si nous devions poursuivre l'ingénierie des fonctionnalités avant de passer le temps à entraîner le modèle. Le modèle a renvoyé un score F1 de 0.901, 1 étant le plus élevé. Un score F1 est un moyen de combiner la précision et le rappel du modèle, et il est défini comme la moyenne harmonique des deux. Après avoir inspecté ces premiers résultats positifs, nous étions prêts à exporter les données et à procéder à la formation du modèle à l'aide de l'ensemble de données exporté.

ML8274-image009

Exportez l'ensemble de données final vers Amazon S3 via un notebook Jupyter

Comme dernière étape, exporter l'ensemble de données dans sa forme actuelle (transformée) vers Service de stockage simple Amazon (Amazon S3) pour une utilisation future sur la formation de modèles, nous utilisons le Enregistrer sur Amazon S3 (via Jupyter Notebook) option d'exportation. Ce notebook démarre un système distribué et évolutif Traitement d'Amazon SageMaker tâche qui applique la recette créée (flux de données) aux entrées spécifiées (généralement des ensembles de données plus volumineux) et enregistre les résultats dans Amazon S3. Vous pouvez également exporter vos colonnes transformées (fonctionnalités) vers Magasin de fonctionnalités Amazon SageMaker ou exportez les transformations sous forme de pipeline en utilisant Pipelines Amazon SageMaker, ou exportez simplement les transformations sous forme de code Python.

Pour exporter des données vers Amazon S3, vous disposez de trois options :

  • Exportez les données transformées directement vers Amazon S3 via l'interface utilisateur Data Wrangler
  • Exportez les transformations en tant que tâche SageMaker Processing via un notebook Jupyter (comme nous le faisons pour cet article).
  • Exportez les transformations vers Amazon S3 via un nœud de destination. Un nœud de destination indique à Data Wrangler où stocker les données après les avoir traitées. Après avoir créé un nœud de destination, vous créez une tâche de traitement pour générer les données.

ML8274-image010

Conclusion

Dans cet article, nous avons montré comment Equilibrium Point IoT utilise Data Wrangler pour accélérer le processus de chargement de grandes quantités de nos données de réclamations pour le nettoyage et la transformation des données en vue du ML. Nous avons également démontré comment intégrer l'ingénierie des fonctionnalités avec des transformations personnalisées à l'aide de Pandas et PySpark dans Data Wrangler, nous permettant d'exporter les données étape par étape (après chaque jointure) à des fins d'assurance qualité. L'application de ces transformations faciles à utiliser dans Data Wrangler a réduit de près de 50 % le temps consacré à la transformation des données de bout en bout. De plus, la fonctionnalité d'analyse de modèle rapide de Data Wrangler nous a permis de valider facilement l'état des transformations tout au long du processus de préparation des données et d'ingénierie des fonctionnalités.

Maintenant que nous avons préparé les données pour notre cas d'utilisation de modélisation des risques pour la santé mentale, nous prévoyons de créer un modèle ML à l'aide de SageMaker et des algorithmes intégrés qu'il propose, en utilisant notre ensemble de données de réclamations pour identifier les membres qui devraient rechercher des soins de santé mentale. services avant d’arriver au point où ils en ont besoin. Restez à l'écoute!


À propos des auteurs

Créez un modèle de risque d'apprentissage automatique en matière de santé mentale à l'aide d'Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Shibangi Saha est Data Scientist chez Equilibrium Point. Elle combine son expertise en données de réclamations des payeurs de soins de santé et en apprentissage automatique pour concevoir, mettre en œuvre, automatiser et documenter des pipelines de données de santé, des processus de reporting et d'analyse qui génèrent des informations et des améliorations concrètes dans le système de prestation de soins de santé. Shibangi a obtenu sa maîtrise ès sciences en bioinformatique du Northeastern University College of Science et un baccalauréat ès sciences en biologie et informatique du Khoury College of Computer Science and Information Sciences.

Créez un modèle de risque d'apprentissage automatique en matière de santé mentale à l'aide d'Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Graciela Kravtzov est le co-fondateur et CTO d'Equilibrium Point. Grace a occupé des postes de direction de niveau C/VP dans les domaines de l'ingénierie, des opérations et de la qualité, et a servi en tant que consultante exécutive pour la stratégie commerciale et le développement de produits dans les secteurs de la santé et de l'éducation et dans l'espace industriel de l'IoT. Grace est titulaire d'une maîtrise ès sciences en ingénieur électromécanique de l'Université de Buenos Aires et d'une maîtrise ès sciences en informatique de l'Université de Boston.

Créez un modèle de risque d'apprentissage automatique en matière de santé mentale à l'aide d'Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Arunprasath Shankar est un architecte de solutions spécialisé en intelligence artificielle et apprentissage automatique (AI / ML) avec AWS, qui aide les clients du monde entier à faire évoluer leurs solutions d'IA de manière efficace et efficiente dans le cloud. Dans ses temps libres, Arun aime regarder des films de science-fiction et écouter de la musique classique.

Créez un modèle de risque d'apprentissage automatique en matière de santé mentale à l'aide d'Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Recherche verticale. Aï. Ajaï Sharma est chef de produit senior pour Amazon SageMaker, où il se concentre sur SageMaker Data Wrangler, un outil visuel de préparation de données pour les data scientists. Avant AWS, Ajai était expert en science des données chez McKinsey and Company, où il a dirigé des missions axées sur le ML pour de grandes sociétés de finance et d'assurance du monde entier. Ajai est passionné par la science des données et aime explorer les derniers algorithmes et techniques d'apprentissage automatique.

Horodatage:

Plus de Apprentissage automatique AWS