Maschinelles Lernen (ML) revolutioniert viele Branchen in einem beispiellosen Tempo. Die Gesundheits- und Biowissenschaftsbranche (HCLS) hat in den letzten Jahren eine rasante Entwicklung durchlaufen und ML in einer Vielzahl von Anwendungsfällen eingesetzt, um eine qualitativ hochwertige Versorgung zu gewährleisten und die Patientenergebnisse zu verbessern.
In einem typischen ML-Lebenszyklus verbringen Dateningenieure und Wissenschaftler den größten Teil ihrer Zeit mit der Datenvorbereitung und den Schritten der Funktionsentwicklung, bevor sie überhaupt mit dem Prozess der Modellerstellung und Schulung beginnen. Ein Tool zu haben, das die Eintrittsbarriere für die Datenaufbereitung senken und dadurch die Produktivität verbessern kann, ist eine sehr wünschenswerte Forderung für diese Personas. Amazon SageMaker Data Wrangler wurde von AWS speziell entwickelt, um die Lernkurve zu verkürzen und es Datenpraktikern zu ermöglichen, Datenvorbereitungs-, Bereinigungs- und Feature-Engineering-Aufgaben mit weniger Aufwand und Zeit zu erledigen. Es bietet eine GUI-Schnittstelle mit vielen integrierten Funktionen und Integrationen mit anderen AWS-Services wie z Amazon Simple Storage-Service (Amazon S3) und Amazon SageMaker Feature Store, sowie Partnerdatenquellen wie Snowflake und Databricks.
In diesem Beitrag zeigen wir, wie Data Wrangler verwendet wird, um Gesundheitsdaten für das Training eines Modells zur Vorhersage von Herzinsuffizienz vorzubereiten, wobei die demografischen Daten eines Patienten, frühere Erkrankungen und die Historie der Labortestergebnisse berücksichtigt werden.
Lösungsüberblick
Die Lösung besteht aus folgenden Schritten:
- Erwerben Sie einen Gesundheitsdatensatz als Eingabe für Data Wrangler.
- Verwenden Sie die integrierten Transformationsfunktionen von Data Wrangler, um das Dataset zu transformieren. Dazu gehören das Löschen von Spalten, das Merkmal Daten/Zeit, das Verbinden von Datensätzen, das Imputieren fehlender Werte, das Codieren von kategorialen Variablen, das Skalieren von numerischen Werten, das Ausbalancieren des Datensatzes und vieles mehr.
- Verwenden Sie die benutzerdefinierte Transformationsfunktion von Data Wrangler (Pandas- oder PySpark-Code), um zusätzliche Transformationen zu ergänzen, die über die integrierten Transformationen hinaus erforderlich sind, und demonstrieren Sie die Erweiterbarkeit von Data Wrangler. Dazu gehören das Filtern von Zeilen, das Gruppieren von Daten, das Bilden neuer Datenrahmen basierend auf Bedingungen und mehr.
- Verwenden Sie die integrierten Visualisierungsfunktionen von Data Wrangler, um visuelle Analysen durchzuführen. Dazu gehören Target Leakage, Merkmalskorrelation, schnelles Modell und mehr.
- Verwenden Sie die integrierten Exportoptionen von Data Wrangler, um den transformierten Datensatz nach Amazon S3 zu exportieren.
- Starten Sie ein Jupyter-Notebook, um das transformierte Dataset in Amazon S3 als Eingabe zum Trainieren eines Modells zu verwenden.
Generieren Sie einen Datensatz
Nachdem wir uns nun auf die ML-Problemstellung geeinigt haben, konzentrieren wir uns zunächst darauf, die benötigten Daten zu erfassen. Forschungsstudien wie z Vorhersage von Herzinsuffizienz kann Daten liefern, die bereits in gutem Zustand sind. Wir begegnen jedoch häufig Szenarien, in denen die Daten ziemlich chaotisch sind und Zusammenführungen, Bereinigungen und mehrere andere Transformationen erfordern, die sehr spezifisch für den Gesundheitsbereich sind, bevor sie für ML-Schulungen verwendet werden können. Wir möchten Daten finden oder generieren, die chaotisch genug sind, und Sie durch die Schritte der Vorbereitung mit Data Wrangler führen. Vor diesem Hintergrund haben wir Synthea als Werkzeug ausgewählt, um synthetische Daten zu generieren, die zu unserem Ziel passen. Synthea ist ein Open-Source-Generator für synthetische Patienten, der die Krankengeschichte synthetischer Patienten modelliert. Führen Sie die folgenden Schritte aus, um Ihr Dataset zu generieren:
- Befolgen Sie die Anweisungen gemäß der Quick-Start Dokumentation zum Erstellen einer Amazon SageMaker-Studio Domain und starten Sie Studio.
Dies ist ein vorausgesetzter Schritt. Es ist optional, wenn Studio bereits in Ihrem Konto eingerichtet ist. - Nachdem Studio gestartet wurde, auf der Launcher Tab, wählen Sie Systemendgerät.
Dadurch wird eine Terminalsitzung gestartet, die Ihnen eine Befehlszeilenschnittstelle zur Verfügung stellt, mit der Sie arbeiten können. - Um Synthea zu installieren und den Datensatz im CSV-Format zu generieren, führen Sie die folgenden Befehle in der gestarteten Terminalsitzung aus:
Wir liefern einen Parameter, um die Datensätze mit einer Bevölkerungsgröße von 10,000 zu generieren. Beachten Sie, dass der Größenparameter die Anzahl der lebenden Mitglieder der Population angibt. Darüber hinaus generiert Synthea auch Daten für tote Mitglieder der Bevölkerung, die möglicherweise einige zusätzliche Datenpunkte zusätzlich zur angegebenen Stichprobengröße hinzufügen.
Warten Sie, bis die Datengenerierung abgeschlossen ist. Dieser Schritt dauert normalerweise etwa eine Stunde oder weniger. Synthea generiert mehrere Datensätze, einschließlich patients
, medications
, allergies
, conditions
, und mehr. Für diesen Beitrag verwenden wir drei der resultierenden Datensätze:
- patienten.csv – Dieser Datensatz ist etwa 3.2 MB groß und enthält etwa 11,000 Zeilen mit Patientendaten (25 Spalten, einschließlich Patienten-ID, Geburtsdatum, Geschlecht, Adresse und mehr)
- Bedingungen.csv – Dieser Datensatz ist etwa 47 MB groß und enthält etwa 370,000 Zeilen mit Daten zu medizinischen Zuständen (sechs Spalten, einschließlich Patienten-ID, Beginndatum der Erkrankung, Zustandscode und mehr)
- Beobachtungen.csv – Dieser Datensatz ist etwa 830 MB groß und enthält etwa 5 Millionen Zeilen mit Beobachtungsdaten (acht Spalten, einschließlich Patienten-ID, Beobachtungsdatum, Beobachtungscode, Wert und mehr)
Es besteht eine Eins-zu-Viele-Beziehung zwischen den patients
und conditions
Datensätze. Es gibt auch eine Eins-zu-Viele-Beziehung zwischen den patients
und observations
Datensätze. Ein ausführliches Datenlexikon finden Sie unter CSV-Dateidatenwörterbuch.
- Um die generierten Datensätze in einen Quell-Bucket in Amazon S3 hochzuladen, führen Sie die folgenden Befehle in der Terminalsitzung aus:
Starten Sie DataWrangler
Auswählen SageMaker-Ressourcen auf der Navigationsseite in Studio und auf der Projekte Menü, wählen Sie Daten-Wrangler um einen Data Wrangler-Datenfluss zu erstellen. Detaillierte Schritte zum Starten von Data Wrangler aus Studio heraus finden Sie unter Erste Schritte mit Data Wrangler.
Daten importieren
Führen Sie die folgenden Schritte aus, um Ihre Daten zu importieren:
- Auswählen Amazon S3 und suchen Sie die Datei „patients.csv“ im S3-Bucket.
- Im Details Fenster, wählen Sie Erst k für Probennahme .
- Enter
1100
für Stichprobenumfang.
Im Vorschaubereich zieht Data Wrangler die ersten 100 Zeilen aus dem Datensatz und listet sie als Vorschau auf. - Auswählen
Import.
Data Wrangler wählt die ersten 1,100 Patienten aus den von Synthea generierten Gesamtpatienten (11,000 Zeilen) aus und importiert die Daten. Der Stichprobenansatz lässt Data Wrangler nur die Stichprobendaten verarbeiten. Es ermöglicht uns, unseren Datenfluss mit einem kleineren Datensatz zu entwickeln, was zu einer schnelleren Verarbeitung und einer kürzeren Feedback-Schleife führt. Nachdem wir den Datenfluss erstellt haben, können wir das entwickelte Rezept an a übermitteln SageMaker-Verarbeitung Auftrag zum horizontalen horizontalen Aufskalieren der Verarbeitung für den vollständigen oder größeren Datensatz auf verteilte Weise. - Wiederholen Sie diesen Vorgang für die
conditions
undobservations
Datensätze.- NB:
conditions
Datensatz, eingeben37000
für Stichprobenumfang, was 1/10 der insgesamt 370,000 von Synthea generierten Zeilen entspricht. - NB:
observations
Datensatz, eingeben500000
für Stichprobenumfang, was 1/10 der gesamten Beobachtungen von 5 Millionen Zeilen entspricht, die von Synthea generiert wurden.
- NB:
Sie sollten drei Datensätze sehen, wie im folgenden Screenshot gezeigt.
Transformieren Sie die Daten
Bei der Datentransformation werden die Struktur, der Wert oder das Format einer oder mehrerer Spalten im Dataset geändert. Der Prozess wird normalerweise von einem Data Engineer entwickelt und kann für Personen mit geringeren Data-Engineering-Kenntnissen eine Herausforderung darstellen, um die für die Transformation vorgeschlagene Logik zu entschlüsseln. Die Datentransformation ist Teil des umfassenderen Feature-Engineering-Prozesses, und die richtige Abfolge der Schritte ist ein weiteres wichtiges Kriterium, das bei der Entwicklung solcher Rezepte zu beachten ist.
Data Wrangler ist als Low-Code-Tool konzipiert, um die Eintrittsbarriere für eine effektive Datenaufbereitung zu verringern. Es enthält über 300 vorkonfigurierte Datentransformationen, aus denen Sie auswählen können, ohne eine einzige Codezeile schreiben zu müssen. In den folgenden Abschnitten sehen wir, wie die importierten Datensätze in Data Wrangler transformiert werden.
Löschen Sie Spalten in patienten.csv
Wir löschen zuerst einige Spalten aus der patients
Datensatz. Das Löschen redundanter Spalten entfernt nicht relevante Informationen aus dem Datensatz und hilft uns, die Menge an Rechenressourcen zu reduzieren, die zum Verarbeiten des Datensatzes und zum Trainieren eines Modells erforderlich sind. In diesem Abschnitt lassen wir Spalten wie SSN oder Passnummer weg, basierend auf dem gesunden Menschenverstand, dass diese Spalten keinen Vorhersagewert haben. Mit anderen Worten, sie helfen unserem Modell nicht, eine Herzinsuffizienz vorherzusagen. Unsere Studie befasst sich auch nicht mit anderen Spalten wie dem Geburtsort oder dem Einfluss der Gesundheitsausgaben auf die Herzinsuffizienz eines Patienten, daher lassen wir sie ebenfalls fallen. Redundante Spalten können auch identifiziert werden, indem die integrierten Analysen wie Target Leakage, Merkmalskorrelation, Multikollinearität und mehr ausgeführt werden, die in Data Wrangler integriert sind. Weitere Einzelheiten zu den unterstützten Analysetypen finden Sie unter Analysieren und visualisieren. Zusätzlich können Sie die verwenden Datenqualitäts- und Insights-Bericht automatisierte Analysen an den Datensätzen durchzuführen, um zu einer Liste redundanter Spalten zu gelangen, die entfernt werden müssen.
- Wählen Sie das Pluszeichen neben Datentypen für den Patients.csv-Datensatz und wählen Sie Transformation hinzufügen.
- Auswählen
Schritt hinzufügen und wählen Sie Spalten verwalten.
- Aussichten für Transformierenwählen Spalte löschen.
- Aussichten für Spalten zum Ablegen, wählen Sie die folgenden Spalten aus:
SSN
DRIVERS
PASSPORT
PREFIX
FIRST
LAST
SUFFIX
MAIDEN
RACE
ETHNICITY
BIRTHPLACE
ADDRESS
CITY
STATE
COUNTY
ZIP
LAT
LON
HEALTHCARE_EXPENSES
HEALTHCARE_COVERAGE
- Auswählen
Vorspann , um den transformierten Datensatz zu überprüfen, und wählen Sie dann aus Speichern.
Sie sollten die Stufe sehen Spalte löschen in Ihrer Liste der Transformationen.
Präsentieren Sie Datum/Uhrzeit in Patients.csv
Jetzt verwenden wir die Featureize Date/Time-Funktion, um das neue Feature zu generieren Year
von dem BIRTHDATE
Spalte in der patients
Datensatz. Wir verwenden die neue Funktion in einem weiteren Schritt, um das Alter eines Patienten zum Zeitpunkt der Beobachtung zu berechnen.
- Im Verwandelt sich Bereich von Ihnen Spalte löschen Seite für die
patients
Datensatz, wählen Schritt hinzufügen. - Wähle die Präsentieren Sie Datum/Uhrzeit verwandeln.
- Auswählen Spalten extrahieren.
- Aussichten für Eingabespalten, fügen Sie die Spalte hinzu
BIRTHDATE
. - Auswählen Jahr und abwählen Monat, Tag, Stunde, Minute, Zweite.
- Auswählen Vorspann, Dann wählen Speichern.
Fügen Sie Transformationen in observations.csv hinzu
Data Wrangler unterstützt benutzerdefinierte Transformationen mit Python (benutzerdefinierte Funktionen), PySpark, Pandas oder PySpark (SQL). Sie können Ihren Transformationstyp basierend auf Ihrer Vertrautheit mit jeder Option und Präferenz auswählen. Für die letzten drei Optionen legt Data Wrangler die Variable offen df
damit Sie auf den Datenrahmen zugreifen und Transformationen darauf anwenden können. Eine ausführliche Erklärung und Beispiele finden Sie unter Benutzerdefinierte Transformationen. In diesem Abschnitt fügen wir drei benutzerdefinierte Transformationen zu der hinzu observations
Datensatz.
- Fügen Sie Beobachtungen.csv eine Transformation hinzu und löschen Sie die
DESCRIPTION
Spalte. - Auswählen Vorspann, Dann wählen Speichern.
- Im Verwandelt sich Fenster, wählen Sie Schritt hinzufügen und wählen Sie Benutzerdefinierte Transformation.
- Wählen Sie im Dropdown-Menü die Option Python (Pandas).
- Geben Sie den folgenden Code ein:
Dies sind LONIC-Codes, die den folgenden Beobachtungen entsprechen, die wir als Merkmale zur Vorhersage von Herzinsuffizienz verwenden möchten:
- Auswählen Vorspann, Dann wählen Speichern.
- Fügen Sie eine zu extrahierende Transformation hinzu
Year
undQuarter
von demDATE
Spalte. - Auswählen Vorspann, Dann wählen Speichern.
- Auswählen Schritt hinzufügen und wählen Sie Benutzerdefinierte Transformation.
- Wählen Sie im Dropdown-Menü die Option Python (PySpark).
Die fünf Arten von Beobachtungen werden möglicherweise nicht immer am selben Datum aufgezeichnet. Beispielsweise kann ein Patient am 21. Januar seinen Hausarzt aufsuchen und seinen systolischen Blutdruck, seinen diastolischen Blutdruck, seine Herzfrequenz und seinen Body-Mass-Index messen und aufzeichnen lassen. Ein Labortest, der Blutplättchen enthält, kann jedoch zu einem späteren Zeitpunkt am 2. Februar durchgeführt werden. Daher ist es nicht immer möglich, Datenrahmen bis zum Beobachtungsdatum beizutreten. Hier verbinden wir Datenrahmen auf Quartalsbasis mit grober Granularität. - Geben Sie den folgenden Code ein:
- Auswählen Vorspann, Dann wählen Speichern.
- Auswählen Schritt hinzufügen, Dann wählen Zeilen verwalten.
- Aussichten für Transformieren, wählen Duplikate löschen.
- Auswählen Vorspann, Dann wählen Speichern.
- Auswählen Schritt hinzufügen und wählen Sie Benutzerdefinierte Transformation.
- Wählen Sie im Dropdown-Menü die Option Python (Pandas).
- Geben Sie den folgenden Code ein, um einen Durchschnitt von Datenpunkten zu nehmen, die den gleichen Zeitwert haben:
- Auswählen
Vorspann, Dann wählen Speichern.
Verknüpfen Sie patienten.csv und Beobachtungen.csv
In diesem Schritt zeigen wir, wie Sie komplexe Verknüpfungen für Datasets effektiv und einfach durchführen können, ohne Code über die leistungsstarke Benutzeroberfläche von Data Wrangler schreiben zu müssen. Weitere Informationen zu den unterstützten Join-Typen finden Sie unter Daten transformieren.
- Rechts von Transformieren: patienten.csv, wählen Sie das Pluszeichen neben aus Shritte und wählen Sie Registrieren.
Sie können die transformierte Patients.csv-Datei unten sehen Datensätze im linken Bereich. - Rechts von Transformieren: Beobachtungen.csv, Klicken Sie auf Shritte um den Join-Vorgang zu initiieren.
Die transformierte Datei „observations.csv“ wird nun unter aufgelistet Datensätze im linken Bereich. - Auswählen Einrichtung.
- Aussichten für Join-Typ, wählen Innere.
- Aussichten für Links, wählen Id.
- Aussichten für Rechts, wählen Vertrauen bei Patienten.
- Auswählen
Vorspann, Dann wählen Speichern.
Fügen Sie den verbundenen Datasets eine benutzerdefinierte Transformation hinzu
In diesem Schritt berechnen wir das Alter eines Patienten zum Zeitpunkt der Beobachtung. Wir streichen auch Spalten, die nicht mehr benötigt werden.
- Wählen Sie das Pluszeichen neben 1. Beitritt und wählen Sie Transformation hinzufügen.
- Fügen Sie eine benutzerdefinierte Transformation in Pandas hinzu:
- Auswählen Vorspann, Dann wählen Speichern.
Fügen Sie benutzerdefinierte Transformationen zu conditions.csv hinzu
- Wählen Sie das Pluszeichen neben Transformieren: Bedingungen.csv und wählen Sie Transformation hinzufügen.
- Fügen Sie eine benutzerdefinierte Transformation in Pandas hinzu:
Hinweis: Wie wir bereits gezeigt haben, können Sie Spalten entweder mit benutzerdefiniertem Code oder mit den von Data Wrangler bereitgestellten integrierten Transformationen löschen. Benutzerdefinierte Transformationen innerhalb von Data Wrangler bieten die Flexibilität, Ihre eigene Transformationslogik in Form von Codeausschnitten in die unterstützten Frameworks einzubringen. Diese Snippets können später gesucht und bei Bedarf angewendet werden.
Die Codes in der vorhergehenden Transformation sind SNOMED-CT-Codes, die den folgenden Bedingungen entsprechen. Das heart failure
or chronic congestive heart failure
Bedingung wird zum Etikett. Wir verwenden die verbleibenden Bedingungen als Merkmale zur Vorhersage einer Herzinsuffizienz. Wir löschen auch einige Spalten, die nicht mehr benötigt werden.
- Als Nächstes fügen wir eine benutzerdefinierte Transformation in PySpark hinzu:
Wir führen einen Left Outer Join durch, um alle Einträge im Herzinsuffizienz-Datenrahmen zu behalten. Eine neue Spalte
has_xxx
wird für jede Erkrankung außer Herzinsuffizienz basierend auf dem Beginndatum der Erkrankung berechnet. Wir interessieren uns nur für Erkrankungen, die vor der Herzinsuffizienz aufgezeichnet wurden, und verwenden sie als Merkmale zur Vorhersage einer Herzinsuffizienz. - Fügen Sie eine integrierte hinzu Spalten verwalten transformieren, um die redundanten Spalten zu löschen, die nicht mehr benötigt werden:
hypertension
diabetes
coronary
smoke
atrial
- Extrahieren
Year
undQuarter
von demheartfailure
Spalte.
Dies entspricht der Granularität, die wir zuvor bei der Transformation von verwendet habenobservations
Datensatz. - Wir sollten insgesamt 6 Schritte für conditions.csv haben.
Verbinden Sie conditions.csv mit dem verbundenen Dataset
Wir führen jetzt einen neuen Join durch, um das Bedingungs-Dataset mit dem Join zu verbinden patients
und observations
Datensatz.
- Auswählen Transformieren: 1. Join.
- Wählen Sie das Pluszeichen und wählen Sie aus Registrieren.
- Auswählen
Shritte neben Transformieren: Bedingungen.csv.
- Auswählen Einrichtung.
- Aussichten für Join-Typ, wählen Links außen.
- Aussichten für Links, wählen Id.
- Aussichten für Rechts, wählen Vertrauen bei Patienten.
- Auswählen
Vorspann, Dann wählen Speichern.
Fügen Sie den verbundenen Datasets Transformationen hinzu
Nachdem wir nun alle drei Datasets verbunden haben, wenden wir einige zusätzliche Transformationen an.
- Fügen Sie die folgende benutzerdefinierte Transformation in PySpark so hinzu
has_heartfailure
wird unsere Label-Spalte: - Fügen Sie die folgende benutzerdefinierte Transformation in PySpark hinzu:
- Löschen Sie die redundanten Spalten, die nicht mehr benötigt werden:
Id
DATE_year
DATE_quarter
patient
heartfailure
heartfailure_year
heartfailure_quarter
- Auf dem Analyse Registerkarte, für Analysetypwählen Tabellenzusammenfassung.
Ein kurzer Scan durch die Zusammenfassung zeigt, dass dieMARITAL
Spalte enthält fehlende Daten. - Wähle die Datum Registerkarte und fügen Sie einen Schritt hinzu.
- Auswählen Griff fehlt.
- Aussichten für Transformieren, wählen Füllung fehlt.
- Aussichten für Eingabespalten, wählen Ehe.
- Aussichten für Wert füllen, eingeben
S
.
Unsere Strategie hier ist, anzunehmen, dass der Patient ledig ist, wenn der Familienstand einen fehlenden Wert hat. Sie können eine andere Strategie haben. - Auswählen Vorspann, Dann wählen Speichern.
- Füllen Sie den fehlenden Wert mit 0 für aus
has_hypertension
,has_diabetes
,has_coronary
,has_smoke
,has_atrial
.
Marital
und Gender
sind kategoriale Variablen. Data Wrangler verfügt über eine integrierte Funktion zum Codieren kategorialer Variablen.
- Fügen Sie einen Schritt hinzu und wählen Sie aus Kategorial codieren.
- Aussichten für Transformieren, wählen One-Hot-Codierung.
- Aussichten für Eingabespalten, wählen Ehe.
- Aussichten für Ausgabestil, wählen Kolonne.
Dieser Ausgabestil erzeugt codierte Werte in separaten Spalten. - Auswählen Vorspann, Dann wählen Speichern.
- Wiederholen Sie diese Schritte für die Geschlecht Spalte.
Die One-Hot-Codierung teilt die Ehespalte in Marital_M
(verheiratet) und Marital_S
(einzeln) und teilt die Geschlechterspalte in Gender_M
(männlich) und Gender_F
(weiblich). Da Marital_M
und Marital_S
schließen sich gegenseitig aus (so sind Gender_M
und Gender_F
), können wir eine Spalte weglassen, um redundante Features zu vermeiden.
- Drop
Marital_S
undGender_F
.
Numerische Merkmale wie Systolen, Herzfrequenz und Alter haben unterschiedliche Einheitenstandards. Für ein auf linearer Regression basierendes Modell müssen wir diese numerischen Merkmale zuerst normalisieren. Andernfalls können einige Features mit höheren absoluten Werten einen ungerechtfertigten Vorteil gegenüber anderen Features mit niedrigeren absoluten Werten haben und zu einer schlechten Modellleistung führen. Data Wrangler hat den eingebauten Transformations-Min-Max-Scaler, um die Daten zu normalisieren. Für ein entscheidungsbaumbasiertes Klassifizierungsmodell ist keine Normalisierung erforderlich. Unsere Studie ist ein Klassifizierungsproblem, daher müssen wir keine Normalisierung anwenden. Unausgeglichene Klassen sind ein häufiges Problem bei der Klassifizierung. Ein Ungleichgewicht tritt auf, wenn das Trainings-Dataset eine stark verzerrte Klassenverteilung enthält. Wenn unser Datensatz beispielsweise unverhältnismäßig mehr Patienten ohne Herzinsuffizienz als Patienten mit Herzinsuffizienz enthält, kann dies dazu führen, dass das Modell dahingehend verzerrt wird, dass es keine Herzinsuffizienz vorhersagt, und eine schlechte Leistung erbringt. Data Wrangler hat eine eingebaute Funktion, um das Problem anzugehen.
- Fügen Sie eine benutzerdefinierte Transformation in Pandas hinzu, um den Datentyp von Spalten vom „Objekt“-Typ in den numerischen Typ zu konvertieren:
- Wähle die Analyse Tab.
- Aussichten für Analysetypwählen Histogramm.
- Aussichten für X Achse, wählen has_heartfailure.
- Auswählen
Vorspann.
Es ist offensichtlich, dass wir eine unausgeglichene Klasse haben (mehr Datenpunkte, die als keine Herzinsuffizienz gekennzeichnet sind, als Datenpunkte, die als Herzinsuffizienz gekennzeichnet sind). - Gehen Sie zurück zu den Datum Tab. Wählen Schritt hinzufügen und wählen Sie Saldodaten.
- Aussichten für Zielspalte, wählen has_heartfailure.
- Aussichten für Gewünschtes Verhältnis, eingeben
1
. - Aussichten für Transformieren, wählen SMOTEN.
SMOTE steht für Synthetic Minority Oversampling Technique. Es ist eine Technik, um neue Minderheitsinstanzen zu erstellen und dem Dataset hinzuzufügen, um ein Klassengleichgewicht zu erreichen. Ausführliche Informationen finden Sie unter SMOTE: Synthetic Minority Over-Sampling-Technik. - Auswählen Vorspann, Dann wählen Speichern.
- Wiederholen Sie die Histogrammanalyse in Schritt 20-23. Das Ergebnis ist eine ausgeglichene Klasse.
Visualisieren Sie Zielleckage und Merkmalskorrelation
Als Nächstes führen wir einige visuelle Analysen mit dem umfangreichen Toolset von Data Wrangler an erweiterten ML-unterstützten Analysetypen durch. Zuerst betrachten wir das Target Leakage. Ein Zielverlust tritt auf, wenn Daten im Trainingsdatensatz stark mit der Zielbezeichnung korrelieren, aber zum Zeitpunkt der Inferenz nicht in realen Daten verfügbar sind.
- Auf dem Registerkarte AnalyseZ. Analysetypwählen Zielleckage.
- Aussichten für Problemtyp, wählen Einstufung.
- Aussichten für Target, wählen has_heartfailure.
- Auswählen
Vorspann.
Basierend auf der Analyse,hr
ist eine Zielleckage. Wir werden es in einem nachfolgenden Schritt löschen.age
als Zielleck gekennzeichnet ist. Es ist vernünftig zu sagen, dass das Alter eines Patienten während der Inferenzzeit verfügbar ist, also behalten wir das Alter als Merkmal bei.Systolic
unddiastolic
werden auch als wahrscheinliches Zielleck gekennzeichnet. Wir erwarten, dass wir die beiden Messungen während der Inferenzzeit haben, also behalten wir sie als Merkmale bei. - Auswählen Speichern um die Analyse hinzuzufügen.
Dann betrachten wir die Merkmalskorrelation. Wir möchten Merkmale auswählen, die mit dem Ziel korrelieren, aber untereinander unkorreliert sind.
- Auf dem Registerkarte AnalyseZ. Analysetypwählen Feature-Korrelation.
- Aussichten für Korrelationstypwählen linear.
- Auswählen
Vorspann.
Die Koeffizientenwerte weisen auf starke Korrelationen zwischen den folgenden Paaren hin:
systolic
unddiastolic
bmi
undage
has_hypertension
undhas_heartfailure
(Etikett)
Bei stark korrelierten Merkmalen sind Matrizen rechnerisch schwierig zu invertieren, was zu numerisch instabilen Schätzungen führen kann. Um die Korrelation abzumildern, können wir einfach eine aus dem Paar entfernen. Wir fallen diastolic
und bmi
und halten systolic
und age
in einem Folgeschritt.
Lassen Sie diastolische und bmi-Säulen fallen
Fügen Sie zusätzliche Transformationsschritte hinzu, um die zu löschen hr
, diastolic
und bmi
Spalten mit der integrierten Transformation.
Generieren Sie den Data Quality and Insights-Bericht
AWS kürzlich angekündigt die neue Data Quality and Insights Report-Funktion in Data Wrangler. Dieser Bericht überprüft automatisch die Datenqualität und erkennt Anomalien in Ihren Daten. Data Scientists und Data Engineers können dieses Tool verwenden, um Domänenwissen effizient und schnell auf Prozessdatensätze für das Training von ML-Modellen anzuwenden. Dieser Schritt ist optional. Führen Sie die folgenden Schritte aus, um diesen Bericht zu unseren Datensätzen zu erstellen:
- Auf dem Analyse Registerkarte, für Analysetyp, wählen Datenqualitäts- und Insights-Bericht.
- Aussichten für Zielspalte, wählen has_heartfailure.
- Aussichten für ProblemtypWählen Klassifikation.
- Auswählen
Erstellen.
In wenigen Minuten wird ein Bericht mit einer Zusammenfassung, Grafiken und Empfehlungen erstellt.
Generieren Sie eine Schnellmodellanalyse
Wir haben unsere Datenvorbereitung, Bereinigung und Funktionsentwicklung abgeschlossen. Data Wrangler verfügt über eine integrierte Funktion, die eine grobe Schätzung der erwarteten vorhergesagten Qualität und der Vorhersagekraft von Merkmalen in unserem Datensatz liefert.
- Auf dem Analyse Registerkarte, für Analysetypwählen Schnelles Modell.
- Aussichten für Label, wählen has_heartfailure.
- Auswählen
Vorspann.
Gemäß unserer Schnellmodellanalyse können wir das Feature sehen has_hypertension
hat unter allen Features die höchste Punktzahl für Feature-Wichtigkeit.
Exportieren Sie die Daten und trainieren Sie das Modell
Lassen Sie uns nun die transformierten ML-fähigen Features in einen S3-Ziel-Bucket exportieren und die gesamte Feature-Engineering-Pipeline, die wir bisher erstellt haben, mithilfe der Beispiele verteilt in das gesamte Dataset skalieren.
- Wählen Sie das Pluszeichen neben dem letzten Feld im Datenfluss und wählen Sie aus Ziel hinzufügen.
- Auswählen
Amazon S3.
- Geben Sie ein Datensatzname. For Amazon S3-Standort, wählen Sie einen S3-Bucket und wählen Sie dann Ziel hinzufügen.
- Auswählen
Job erstellen um einen verteilten PySpark-Verarbeitungsauftrag zu starten, um die Transformation durchzuführen und die Daten an den Ziel-S3-Bucket auszugeben.
Abhängig von der Größe der Datasets können wir mit dieser Option den Cluster einfach konfigurieren und ohne Code horizontal skalieren. Wir müssen uns keine Gedanken über die Partitionierung der Datasets oder die Verwaltung der Cluster- und Spark-Interna machen. All dies wird von Data Wrangler automatisch für uns erledigt. - Wählen Sie im linken Bereich aus Als nächstes 2. Job konfigurieren.
- Dann wähle Führen Sie.
Alternativ können wir die transformierte Ausgabe auch über ein Jupyter Notebook nach S3 exportieren. Bei diesem Ansatz generiert Data Wrangler automatisch ein Jupyter-Notebook mit dem gesamten Code, der zum Starten eines Verarbeitungsauftrags erforderlich ist, um die Datenflussschritte (die mithilfe eines Beispiels erstellt wurden) auf das größere vollständige Dataset anzuwenden und das transformierte Dataset als Features zum Kick-off zu verwenden. später von einem Ausbildungsjob ab. Der Notebook-Code kann problemlos mit oder ohne Änderungen ausgeführt werden. Lassen Sie uns nun die Schritte durchgehen, wie Sie dies über die Benutzeroberfläche von Data Wrangler erledigen können.
- Wählen Sie das Pluszeichen neben dem letzten Schritt im Datenfluss und wählen Sie aus Exportieren nach.
- Auswählen
Amazon S3 (über Jupyter Notebook).
- Es öffnet automatisch einen neuen Tab mit einem Jupyter-Notebook.
- Suchen Sie im Jupyter-Notebook die Zelle in der (Optional) Nächste Schritte Schnitt und Änderung
run_optional_steps
fürFalse
zuTrue
.
Die aktivierten optionalen Schritte im Notizbuch führen Folgendes aus: - Gehen Sie zurück zum Anfang des Notizbuchs und auf die Führen Sie Menü, wählen Sie Führen Sie alle Zellen aus.
Wenn Sie das generierte Notebook unverändert verwenden, wird ein SageMaker-Verarbeitungsjob gestartet, der die Verarbeitung auf zwei m5.4xlarge-Instanzen aufskaliert, um den vollständigen Datensatz im S3-Bucket zu verarbeiten. Sie können die Anzahl der Instanzen und Instanztypen basierend auf der Dataset-Größe und der Zeit, die Sie zum Abschließen des Auftrags benötigen, anpassen.
Warten Sie, bis der Trainingsauftrag der letzten Zelle abgeschlossen ist. Es generiert ein Modell im standardmäßigen S3-Bucket von SageMaker.
Das trainierte Modell kann entweder für Echtzeit-Inferenz oder Batch-Transformation bereitgestellt werden. Beachten Sie, dass wir synthetische Daten verwendet haben, um Funktionalitäten in Data Wrangler zu demonstrieren, und verarbeitete Daten für das Trainingsmodell verwendet haben. Da die von uns verwendeten Daten synthetisch sind, ist das Inferenzergebnis aus dem trainierten Modell nicht für die Diagnose von Erkrankungen in der realen Welt oder als Ersatz für das Urteil von Ärzten gedacht.
Sie können Ihren transformierten Datensatz auch direkt in Amazon S3 exportieren, indem Sie auswählen Exportieren oben auf der Transformationsvorschauseite. Die direkte Exportoption exportiert das transformierte Sample nur, wenn Sampling während des Imports aktiviert wurde. Diese Option ist am besten geeignet, wenn Sie mit kleineren Datensätzen arbeiten. Die transformierten Daten können auch direkt in einen Feature Store aufgenommen werden. Weitere Informationen finden Sie unter Amazon SageMaker Feature Store. Der Datenfluss kann auch als SageMaker-Pipeline exportiert werden, die gemäß Ihren Anforderungen orchestriert und geplant werden kann. Weitere Informationen finden Sie unter Amazon SageMaker-Pipelines.
Zusammenfassung
In diesem Beitrag haben wir gezeigt, wie Data Wrangler verwendet wird, um Gesundheitsdaten zu verarbeiten und skalierbares Feature-Engineering auf Tool-gesteuerte Low-Code-Weise durchzuführen. Wir haben gelernt, wie man die integrierten Transformationen und Analysen bei Bedarf passend anwendet und sie mit benutzerdefinierten Transformationen kombiniert, um unseren Datenvorbereitungs-Workflow noch flexibler zu gestalten. Wir haben auch die verschiedenen Optionen zum Aufskalieren des Datenflussrezepts über verteilte Verarbeitungsaufträge durchgegangen. Wir haben auch gelernt, wie die transformierten Daten einfach zum Trainieren eines Modells zur Vorhersage von Herzinsuffizienz verwendet werden können.
Es gibt viele andere Funktionen in Data Wrangler, die wir in diesem Beitrag nicht behandelt haben. Entdecken Sie, was in möglich ist Vorbereiten von ML-Daten mit Amazon SageMaker Data Wrangler und erfahren Sie, wie Sie Data Wrangler für Ihr nächstes Data-Science- oder Machine-Learning-Projekt nutzen können.
Über die Autoren
Waldsonne ist Senior Solution Architect beim AWS Public Sector Team in Toronto, Kanada. Er hat in den letzten zwei Jahrzehnten in der Gesundheits- und Finanzbranche gearbeitet. Außerhalb der Arbeit campt er gerne mit seiner Familie.
Arunprasath Shankar ist ein auf AWS spezialisierter Lösungsarchitekt für künstliche Intelligenz und maschinelles Lernen (AI / ML), der globalen Kunden hilft, ihre KI-Lösungen effektiv und effizient in der Cloud zu skalieren. In seiner Freizeit sieht Arun gerne Science-Fiction-Filme und hört klassische Musik.
- AI
- Kunst
- KI-Kunstgenerator
- KI-Roboter
- Amazon Sage Maker
- Amazon SageMaker Data Wrangler
- künstliche Intelligenz
- Zertifizierung für künstliche Intelligenz
- Künstliche Intelligenz im Bankwesen
- Roboter mit künstlicher Intelligenz
- Roboter mit künstlicher Intelligenz
- Software für künstliche Intelligenz
- AWS Maschinelles Lernen
- Blockchain
- Blockchain-Konferenz ai
- Einfallsreichtum
- dialogorientierte künstliche Intelligenz
- Krypto-Konferenz ai
- Dalls
- tiefe Lernen
- Google Ai
- Maschinelles Lernen
- Plato
- platon ai
- Datenintelligenz von Plato
- Plato-Spiel
- PlatoData
- Platogaming
- Skala ai
- Syntax
- Zephyrnet