Δημιουργήστε εφαρμογές πρόβλεψης αποτελεσμάτων ασθενών χρησιμοποιώντας τα Amazon HealthLake και Amazon SageMaker

Κόμβος πηγής: 1854696

Η εργασία με τα δεδομένα υγειονομικής περίθαλψης μπορεί να είναι δύσκολη και οι πελάτες της AWS αναζητούν λύσεις για την επίλυση ορισμένων επιχειρηματικών προκλήσεων με τη βοήθεια τεχνικών δεδομένων και μηχανικής μάθησης (ML). Ορισμένα από τα δεδομένα είναι δομημένα, όπως τα γενέθλια, το φύλο και η οικογενειακή κατάσταση, αλλά τα περισσότερα από τα δεδομένα δεν είναι δομημένα, όπως οι κωδικοί διάγνωσης ή οι σημειώσεις του γιατρού. Αυτά τα δεδομένα έχουν σχεδιαστεί για να τα κατανοήσουν τα ανθρώπινα όντα, αλλά όχι για να τα κατανοήσουν οι υπολογιστές. Οι βασικές προκλήσεις της χρήσης δεδομένων υγειονομικής περίθαλψης είναι οι εξής:

  • Πώς να χρησιμοποιήσετε αποτελεσματικά τόσο δομημένα όσο και μη δομημένα δεδομένα για να έχετε μια πλήρη εικόνα των δεδομένων
  • Πώς να ερμηνεύσετε διαισθητικά τα αποτελέσματα της πρόβλεψης

Με την άνοδο των τεχνολογιών AI/ML, η επίλυση αυτών των προκλήσεων κατέστη δυνατή.

Μια σχετική περίπτωση χρήσης είναι η πρόβλεψη της έκβασης του ασθενούς, η οποία περιλαμβάνει επισκέψεις στο νοσοκομείο ή προβλέψεις επανεισδοχής που προκαλούνται από οξεία ή χρόνια πάθηση, προβλέψεις εξέλιξης της νόσου μέσα σε ένα συγκεκριμένο παράθυρο παρατήρησης και ούτω καθεξής. Οι πάροχοι υγειονομικής περίθαλψης, οι πληρωτές και οι φαρμακευτικές εταιρείες μπορούν να χρησιμοποιήσουν τα αποτελέσματα πρόβλεψης για να συστήσουν έγκαιρη παρέμβαση, να βελτιώσουν την επικοινωνία, να βελτιώσουν την εμπειρία φροντίδας ασθενών και να μειώσουν το συνολικό κόστος.

Σε αυτήν την ανάρτηση, σας δείχνουμε ένα παράδειγμα δημιουργίας ενός μοντέλου πρόβλεψης αποτελεσμάτων ασθενών που βασίζεται σε βαθιά μάθηση. Κατασκευάζουμε το μοντέλο μέσα Amazon Sage Maker με MIMIC-III δεδομένα που είναι αποθηκευμένα σε Amazon Healthlake και μετατρέψτε το σε μια ελαφριά εφαρμογή οπτικοποίησης και ερμηνείας. Ο στόχος πρόβλεψης για αυτό το παράδειγμα είναι η πρόβλεψη θνησιμότητας εντός 90 ημερών μετά την έξοδο από τη ΜΕΘ. Μπορείτε να τροποποιήσετε τη μεταβλητή στόχο για να ταιριάζει στις ανάγκες σας.

Το Amazon HealthLake βοηθά στην κατανόηση των δεδομένων υγείας

Το HealthLake είναι μια κατάλληλη υπηρεσία HIPAA που επιτρέπει στους παρόχους υγειονομικής περίθαλψης, στις εταιρείες ασφάλισης υγείας και στις φαρμακευτικές εταιρείες να αποθηκεύουν, να μετασχηματίζουν, να αναζητούν και να αναλύουν δεδομένα υγείας σε κλίμακα petabyte.

Η πηγή δεδομένων που εξάγαμε από το HealthLake API ονομάζεται MIMIC-III [1]. Είναι μια μεγάλη, ελεύθερα διαθέσιμη βάση δεδομένων που αποτελείται από αποδεδειγμένα δεδομένα που σχετίζονται με την υγεία που σχετίζονται με περισσότερους από 40,000 ασθενείς που παρέμειναν σε μονάδες εντατικής θεραπείας. Η βάση δεδομένων περιλαμβάνει πληροφορίες όπως δημογραφικά στοιχεία, ζωτικά σημεία, αποτελέσματα εργαστηριακών εξετάσεων, διαδικασίες, φάρμακα, σημειώσεις φροντιστών, αναφορές απεικόνισης και θνησιμότητα. Δεν μπορούμε να κοινοποιήσουμε τα δεδομένα σε αυτήν την ανάρτηση λόγω περιορισμών άδειας χρήσης, αλλά μπορείτε να επισκεφτείτε τον επίσημο ιστότοπο της MIMIC για να ζητήστε πρόσβαση σε δεδομένα.

Το HealthLake εξάγει αυτόματα κλινικές οντότητες και συνδέει τους κώδικες ICD-10-CM και RxNorm με μη δομημένο κείμενο, όπως σημειώσεις εκκένωσης, όταν το κείμενο αποθηκεύεται στο HealthLake ως Fast Healthcare Interoperable Resource (FHIR) DocumentReference τύπος. Οι εξαγόμενες οντότητες προστίθενται ξανά στο FHIR DocumentReference πόρου ως επέκταση FHIR. Κείμενο ενσωματωμένο στο DocumentReference θα πρέπει να είναι κωδικοποιημένη σε base64. Κατά τη δημιουργία των προγνωστικών μοντέλων, μπορούμε να συνδυάσουμε τις εξαγόμενες πληροφορίες με άλλα δομημένα δεδομένα και να έχουμε μια πιο ολιστική άποψη του ιατρικού ιστορικού του ασθενούς.

Επισκόπηση της λύσης

Το παρακάτω διάγραμμα αρχιτεκτονικής απεικονίζει τη γραμμή εκπαίδευσης μοντέλων, τη γραμμή εξαγωγής συμπερασμάτων και το μπροστινό μέρος απόδοσης πληροφοριών.

Χρησιμοποιούμε το HealthLake export API για την εξαγωγή των κανονικοποιημένων δεδομένων σε ένα Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) κάδος. Στη συνέχεια χρησιμοποιούμε ένα Κόλλα AWS ανιχνευτή για τη δημιουργία καταλόγου δεδομένων. Μπορούμε να χρησιμοποιήσουμε Αμαζόν Αθηνά με τον κατάλογο δεδομένων για την εκτέλεση ερωτημάτων τύπου SQL έναντι των εξαγόμενων δεδομένων. Τα μη δομημένα δεδομένα των αρχείων ασθενών υποβάλλονται σε επεξεργασία ξεχωριστά για την εξαγωγή δεδομένων ευρετηρίου και τον συνδυασμό τους με άλλες δομημένες πληροφορίες. Στη συνέχεια χρησιμοποιούμε ένα σημειωματάριο SageMaker με δοχεία TensorFlow για να εκπαιδεύσουμε ένα προσαρμοσμένο μοντέλο συνελικτικού νευρωνικού δικτύου. Το τεχνούργημα του μοντέλου αποθηκεύεται σε έναν κάδο S3 και αργότερα χρησιμοποιείται για τη δοκιμή της απόδοσης του μοντέλου σε αόρατα δεδομένα. Τέλος, εκτελούμε συμπεράσματα στο μοντέλο χρησιμοποιώντας μετασχηματισμό δέσμης SageMaker και αποθηκεύουμε τα αποτελέσματα στο Amazon S3. Αναπτύσσουμε επίσης στοιχεία οπτικοποίησης και τα αποδίδουμε μέσω Amazon API Gateway για τη βελτίωση της ερμηνείας του μοντέλου.

Σε αυτήν την ανάρτηση, σας καθοδηγούμε στα ακόλουθα βήματα:

  1. Δημιουργία συνόλων δεδομένων εκπαίδευσης και δοκιμής.
  2. Χρησιμοποιήστε τεχνικές ενσωμάτωσης για μια πιο πλούσια αναπαράσταση των μη δομημένων δεδομένων.
  3. Εκπαιδεύστε το μοντέλο.
  4. Αξιολογήστε τα αποτελέσματά μας.
  5. Οπτικοποιήστε τα αποτελέσματα με προσαρμοσμένα στοιχεία διεπαφής χρήστη.

Δημιουργία συνόλων δεδομένων εκπαίδευσης και δοκιμής

Αρχικά, δημιουργούμε μια δυαδική μεταβλητή για τον στόχο-θνησιμότητα εντός ενός παραθύρου 90 ημερών μετά την απόρριψη. Ένας ασθενής μπορεί να έχει πολλαπλές εγγραφές με την τιμή μεταβλητής στόχου ως 0 πριν οριστεί η κατάσταση θνησιμότητας αυτού του ασθενούς σε 1. Αυτή η κατάσταση ισχύει επίσης για πολλές άλλες μεταβλητές στόχου πρόβλεψης έκβασης ασθενών. Επομένως, χωρίζουμε τα δεδομένα κατά patient_id στην εκπαίδευση, την επικύρωση και τη δοκιμή συνόλων δεδομένων για την αποφυγή διαρροής πληροφοριών. Με αυτόν τον τρόπο, τα πολλαπλά αρχεία ενός ασθενούς δεν εμφανίζονται σε περισσότερες από μία κατηγορίες δεδομένων.

Αρχικά αφήνουμε στην άκρη το 20% των ασθενών για σκοπούς δοκιμής και αντιμετωπίζουμε αυτά τα αρχεία ασθενών όπως δεν έχουν δει ποτέ ο αλγόριθμος. Από το υπόλοιπο 80% των ασθενών, λαμβάνουμε άλλο 80% των δεδομένων για εκπαίδευση και 20% για επικύρωση. Ανεβάζουμε αυτά τα σύνολα δεδομένων στον κάδο S3 για μελλοντική χρήση.

Χρησιμοποιήστε τεχνικές ενσωμάτωσης

Οι παραδοσιακές μέθοδοι ML μπορούν να χρησιμοποιούν τεχνικές κωδικοποίησης που βασίζονται σε μέτρηση συχνότητας, όπως συχνότητα αντίστροφης συχνότητας εγγράφου όρου (TF-IDF). Σε αυτήν την ανάρτηση, χρησιμοποιούμε τεχνικές ενσωμάτωσης που επωφελούνται από μια πιο πλούσια αναπαράσταση των μη δομημένων δεδομένων μαθαίνοντας σχέσεις μεταξύ διαφορετικών ιατρικών κωδίκων.

Αρχικά λαμβάνουμε μια σειρά από ιατρικούς κώδικες και χρησιμοποιούμε το skip-gram για να μάθουμε τις σχέσεις μεταξύ διαφορετικών κωδίκων. Η εκμάθηση ενσωμάτωσης για κάθε ιατρικό κώδικα είναι συνήθως ένα διάνυσμα μήκους n (όπως 300) που χαρακτηρίζει το μεμονωμένο στοιχείο. Αυτές οι διαστάσεις συνήθως δεν έχουν σαφή σημασία, ωστόσο, παρόμοιες ιατρικές έννοιες θα πρέπει να προβάλλονται πιο κοντά η μία στην άλλη στον χώρο χαρακτηριστικών. Μάθαμε τέτοια διανύσματα για όλα τα λεξιλόγια κατά τη διάρκεια της εκπαίδευσης και τα στοιβάσαμε μαζί ως μήτρα. Αργότερα χρησιμοποιούμε αυτόν τον πίνακα ενσωμάτωσης για να εκπαιδεύσουμε ένα μοντέλο συνελικτικού νευρωνικού δικτύου και να εκτελέσουμε δοκιμές σε αόρατα δεδομένα.

Εκπαιδεύστε το μοντέλο

Αρχικά ορίζουμε τη δομή του νευρωνικού δικτύου και στη συνέχεια χρησιμοποιούμε μια εκπαιδευτική εικόνα TensorFlow που φιλοξενείται από το SageMaker για να εκπαιδεύσουμε το μοντέλο μας. Τα επίπεδα ορίζονται ως εξής:

  • Ενσωμάτωση στρώματος – Λαμβάνει ακατέργαστες αλληλουχίες ιατρικού κώδικα και μετατρέπει κάθε μεμονωμένο κώδικα σε ενσωματώσεις
  • Συνθετικό στρώμα – Λαμβάνει τις ενσωματώσεις και συνδυάζεται με ρυθμιζόμενα φίλτρα
  • Επίπεδο συγκέντρωσης – Εφαρμόζει υπολογισμούς συγκέντρωσης για να μειώσει το μέγεθος για την είσοδο των επόμενων επιπέδων
  • Επίπεδο εγκατάλειψης – Απενεργοποιεί τυχαία τις συνδέσεις για να μειώσει την υπερβολική τοποθέτηση
  • Επίπεδο συνένωσης – Συνδυάζει τις επεξεργασμένες πληροφορίες από τα προηγούμενα επίπεδα με δομημένες πληροφορίες όπως η ηλικία ή το φύλο του ασθενούς
  • Πλήρως συνδεδεμένο στρώμα με σιγμοειδές ενεργοποίηση – Εξάγει τις τελικές πιθανότητες πρόβλεψης

Κατά τη διάρκεια της εκπαίδευσης, χρησιμοποιούμε αυτές τις πιθανότητες πρόβλεψης για να υπολογίσουμε μετρήσεις και να καθοδηγήσουμε την κατεύθυνση της εκπαιδευτικής διαδικασίας. Κατά τη διάρκεια της δοκιμής, αυτές οι πιθανότητες εξάγονται ως αρχείο στο Amazon S3.

Όταν ολοκληρωθεί η διαδικασία εκπαίδευσης, αποθηκεύουμε το τεχνούργημα του μοντέλου και το ανεβάζουμε σε έναν κάδο S3 για μελλοντική χρήση.

Ελέγξτε τα αποτελέσματα

Η ακόλουθη απεικόνιση δείχνει την καμπύλη ROC (Receiver Operating Characteristics) και την αναφορά ταξινόμησης στα δεδομένα δοκιμής.

Η καμπύλη ROC δείχνει την απόδοση του μοντέλου σε διαφορετικά κατώφλια. Η AUC (Περιοχή κάτω από την καμπύλη) για την καμπύλη ROC είναι 0.82, η οποία μετρά την ικανότητα του μοντέλου να διαχωρίζει διαφορετικές κατηγορίες στόχων. Η αναφορά ταξινόμησης σάς παρέχει μια επισκόπηση της ακρίβειας, της ανάκλησης και της βαθμολογίας F1 του μοντέλου για κάθε κατηγορία. Ο σταθμισμένος μέσος όρος βαθμολογίας F1 για το μοντέλο είναι 0.74.

Οπτικοποίηση με προσαρμοσμένα στοιχεία διεπαφής χρήστη

Μπορούμε να οπτικοποιήσουμε τα αποτελέσματα της πρόβλεψης με πολλούς τρόπους. Για αυτήν την ανάρτηση, δείχνουμε μόνο πώς να αποδίδουμε τις τιμές SHAP (SHapley Additive Explanations) για να βελτιώσουμε την ερμηνευσιμότητα του μοντέλου. Το SHAP είναι μια θεωρητική προσέγγιση παιγνίων που εξηγεί την έξοδο ενός μοντέλου ML. Η οπτικοποίηση μπορεί να εμφανίσει τις λεπτομέρειες των παραγόντων που συμβάλλουν σε κάθε πρόβλεψη, ώστε να μπορείτε να κατανοήσετε διαισθητικά ποια χαρακτηριστικά ωθούν την προβλεπόμενη πιθανότητα υψηλότερα (προς το 1) ή χαμηλότερα (προς το 0) από τη βασική τιμή.

Αρχικά ορίζουμε ένα πρότυπο HTML και συνεχίζουμε να προσθέτουμε στοιχεία οπτικοποίησης στο πρότυπο. Στη συνέχεια, ανεβάζουμε το αρχείο HTML σε έναν κάδο S3 και ρυθμίζουμε ένα AWS Lambda λειτουργία για την ανάκτηση του περιεχομένου HTML και το περιεχόμενο αποστέλλεται σε μια πύλη API για απόδοση μιας ιστοσελίδας.

Ρύθμιση προτύπων HTML

Μπορούμε να ορίσουμε ένα πρότυπο HTML με κενά μπλοκ κώδικα μέσα σε αυτό με τον ακόλουθο κώδικα:

<div>
<h1>Dashboard</h1>
<div> <h2>Indicators</h2> {shap_value} </div>
</div>

Μπορούμε να δημιουργήσουμε το {<html-code-block>} αργότερα μέσω βιβλιοθηκών Python ή JavaScript και συνδέστε τον κώδικα στα μπλοκ.

Δημιουργήστε στοιχεία οπτικοποίησης

Ένα παράδειγμα δημιουργίας οπτικοποίησης τιμής SHAP μπορεί να μοιάζει με τον ακόλουθο κώδικα:

explainer = shap.KernelExplainer (tf_model, X_train)
shap_values = explainer.shap_values(X_test, nsamples=100)
shap.initjs()
shap.force_plot(explainer.expected_value[0], shap_values[0][0,:], X_test.iloc[0,:])

Αυτό μπορεί να δημιουργήσει μια διαισθητική εξήγηση των οδηγών πίσω από τις προβλέψεις. Όπως φαίνεται στην ακόλουθη απεικόνιση, τα κόκκινα tickers οδηγούν την πιθανότητα της πρόβλεψης του αποτελέσματος ενός ασθενούς στο υψηλότερο άκρο (προς το 1) και τα μπλε tickers οδηγούν την πιθανότητα στο χαμηλότερο άκρο (προς το 0). Ως αποτέλεσμα, αυτός ο ασθενής έχει πιθανότητα 0.34 σε σύγκριση με τη βασική τιμή της κοόρτης εκπαίδευσης 0.4481. Επομένως, αυτός ο ασθενής έχει μικρότερες πιθανότητες να είναι θετικός στη μεταβλητή στόχο.

Δημιουργήστε μια συνάρτηση Lambda για την ανάλυση του αρχείου HTML

Ένα παράδειγμα συνάρτησης Lambda μπορεί να είναι τόσο απλό όσο ο παρακάτω κώδικας:

import json
import boto3
def lambda_handler(event, context): s3 = boto3.client('s3') response = s3.get_object(Bucket='<bucket>', Key='<key>') return response['Body'].read().decode('utf-8')

Ο σκοπός αυτής της λειτουργίας είναι να ανακτήσει τις πληροφορίες που πρέπει να αποδοθούν χωρίς να εκτεθούν οι πόροι του Amazon S3 στο κοινό και να στείλει τις πληροφορίες σε μια πύλη API.

Δημιουργήστε μια πύλη API για απόδοση του αρχείου HTML

Μπορούμε να χρησιμοποιήσουμε το Κιτ ανάπτυξης AWS Cloud (AWS CDK) για να αυτοματοποιήσετε αυτές τις ρυθμίσεις. Για παράδειγμα:

api = apigw.LambdaRestApi( self, ‘visualization’, handler=lambda_handler, proxy=False) integration = apigw.LambdaIntegration( lambda_handler, proxy=False,
passthrough_behavior=apigw.PassthroughBehavior.WHEN_NO_TEMPLATES, integration_responses=[{ "statusCode": "200", "responseTemplates": {"text/html": "$input.path('$')"}, "responseParameters": { "method.response.header.Content-Type": "'text/html'"}
}])

Η integration_responses μέρος διασφαλίζει ότι το περιεχόμενο που επιστρέφεται αποδίδεται σωστά ως HTML από το API Gateway. Όταν αναπτύσσεται η πύλη API, λαμβάνετε μια διεύθυνση URL επίκλησης. Μπορείτε να αντιγράψετε και να επικολλήσετε αυτήν τη διεύθυνση URL σε ένα πρόγραμμα περιήγησης ιστού για να ελέγξετε το αποτέλεσμα της οπτικοποίησης.

Συμπέρασμα

Σε αυτήν την ανάρτηση, δείξαμε πώς να χρησιμοποιήσετε το Amazon SageMaker και το Amazon HealthLake για τη δημιουργία ενός μοντέλου βαθιάς μάθησης για την επίλυση μιας πρόκλησης στον τομέα της υγείας και των βιοεπιστημών και την ερμηνεία των αποτελεσμάτων μέσω τεχνικών οπτικοποίησης. Με αυτή τη λύση, τα νοσοκομεία μπορούν να φροντίζουν καλύτερα τους ασθενείς και να παρέχουν την κατάλληλη παρέμβαση προβλέποντας τα αποτελέσματα των ασθενών. Δείξαμε αυτήν τη λύση για μια πρόβλεψη θνησιμότητας εντός 90 ημερών μετά την έξοδο από τη ΜΕΘ, μπορείτε να εφαρμόσετε την ίδια μέθοδο σε άλλες περιπτώσεις χρήσης πρόβλεψης έκβασης ασθενών.

Το HealthLake διευκολύνει την εργασία με δεδομένα υγείας και την εξαγωγή σχετικών σημείων δεδομένων από μη δομημένα κλινικά κείμενα. Οι τεχνικές μοντελοποίησης βαθιάς μάθησης μας δίνουν επιλογές για τη δημιουργία πιο ακριβών μοντέλων με λιγότερη προσπάθεια μηχανικής χαρακτηριστικών και οι τεχνολογίες AWS καθιστούν δυνατή την οπτικοποίηση των ερμηνειών μοντέλων με μια ελαφριά λύση στο μπροστινό μέρος.

Για να μάθετε περισσότερα για το HealthLake, βλ Πόροι Amazon HealthLake και Κατανοώντας τα δεδομένα υγείας σας με το Amazon HealthLake. Για ένα πρακτικό σεμινάριο, επισκεφθείτε μας Εργαστήριο Amazon HealthLake. Για περισσότερα παραδείγματα χρήσης του HealthLake και της υγείας του πληθυσμού, βλ Εφαρμογές υγείας πληθυσμού με το Amazon HealthLake - Μέρος 1: Ανάλυση και παρακολούθηση χρησιμοποιώντας το Amazon QuickSight.

αναφορές

[1] MIMIC-III, μια ελεύθερα προσβάσιμη βάση δεδομένων εντατικής θεραπείας. Johnson AEW, Pollard TJ, Shen L, Lehman L, Feng M, Ghassemi M, Moody B, Szolovits P, Celi LA και Mark RG. Επιστημονικά Δεδομένα (2016). DOI: 10.1038/sdata.2016.35. Διαθέσιμο από: http://www.nature.com/articles/sdata201635


Σχετικά με τους Συγγραφείς

 Σουάι Κάο είναι Επιστήμονας Δεδομένων στην ομάδα Επαγγελματικών Υπηρεσιών στο Amazon Web Services. Η τεχνογνωσία του είναι η δημιουργία εφαρμογών μηχανικής μάθησης σε κλίμακα για πελάτες υγειονομικής περίθαλψης και βιοεπιστημών. Εκτός δουλειάς, του αρέσει να ταξιδεύει σε όλο τον κόσμο και να παίζει δεκάδες διαφορετικά όργανα.

Γκάριν Κέσλερ είναι Ανώτερος Διευθυντής Επιστήμης Δεδομένων στο Amazon Web Services, όπου καθοδηγεί ομάδες επιστημόνων δεδομένων και αρχιτέκτονες εφαρμογών για να παραδίδει κατά παραγγελία εφαρμογές μηχανικής μάθησης για πελάτες. Εκτός του AWS, ομιλεί για τη μηχανική εκμάθηση και τα μοντέλα νευρικής γλώσσας στο Georgetown. Όταν δεν εργάζεται, απολαμβάνει να ακούει (και να κάνει) μουσική αμφισβητήσιμης ποιότητας με φίλους και συγγενείς.

Kartik Kannapur είναι Επιστήμονας Δεδομένων με AWS Professional Services. Είναι κάτοχος μεταπτυχιακού τίτλου στα Εφαρμοσμένα Μαθηματικά και Στατιστική από το Πανεπιστήμιο Stony Brook και επικεντρώνεται στη χρήση μηχανικής μάθησης για την επίλυση επιχειρηματικών προβλημάτων πελατών.

Πηγή: https://aws.amazon.com/blogs/machine-learning/build-patient-outcome-prediction-applications-using-amazon-healthlake-and-amazon-sagemaker/

Σφραγίδα ώρας:

Περισσότερα από Ιστολόγιο μηχανικής εκμάθησης AWS