$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Ethikerklärung, Datensatz, Software und Datenvorbereitung
Die Ergebnisse dieser Studie basierten auf dem Heart Disease Dataset des UCI Machine Learning Repository. Da es sich um eine öffentlich zugängliche und de-identifizierte Ressource handelt, erforderte ihre Nutzung keine ethische Genehmigung des Komitees. Die Autoren überprüfen außerdem die Originalität dieses Manuskripts und stellen fest, dass es zuvor nicht veröffentlicht oder bei anderen Fachzeitschriften eingereicht wurde.
Der Cleveland Heart Disease-Datensatz wurde in Trainings- und Testsets mit 80/20 aufgeteilt. Der Datensatz enthält typischerweise 303 Instanzen; daher wurden etwa 242 Proben für das Training verwendet, und 61 Proben wurden als sauberes Testset behalten. Synthetische Proben, die mit der GAN- oder Gaußschen Fallback-Methode erzeugt wurden, wurden nur zu den Trainingsdaten hinzugefügt, um das Risiko von Datenverlusten zu verringern. Das endgültige erweiterte Trainingsset bestand aus etwa 242 realen und 1.000 synthetischen Proben, was 1.242 Trainingsproben ergab. Es wurde kein festes statisches Validierungsset verwendet. Stattdessen wurde während des Modelltrainings stratifizierte Kreuzvalidierung angewendet, wobei jede Faltung die erweiterten Trainingsdaten in Trainings- und Validierungsteilmengen aufteilte.
Der Datensatz wurde in ein Pandas DataFrame geladen und auf fehlende Werte überprüft. Numerische Merkmale mit fehlenden Werten wurden mittels Medianimputation mit der SimpleImputer-Klasse aus scikit-learn unter Verwendung von Strategie = 'Median' behandelt. Kategoriale Merkmale mit fehlenden Werten wurden mittels Modusimputation mit SimpleImputer unter Verwendung von Strategie = 'most_frequent' behandelt. Fehlende Mechanismen wurden dokumentiert, indem der fehlende Prozentsatz für jedes Merkmal mit df.isnull().sum() / len(df) berechnet wurde. Nicht-zufällige Fehlwirkungsmuster wurden bewertet, indem die Mittelwerte anderer Merkmale zwischen Stichproben mit und ohne fehlende Daten mit t-Tests für numerische Merkmale und Chi-Quadrat-Tests für kategoriale Merkmale verglichen wurden. Fehlverhalten wurde dann dokumentiert als Komplett zufällig fehlend (MCAR), Zufällig fehlend (MAR) oder Fehl nicht zufällig (MNAR), wo anwendbar.
Für Datensätze mit erheblichem Fehlen wurde eine Sensitivitätsanalyse empfohlen, indem Median-/Modeimputation mit Multiple Imputation durch Chained Equations (MICE) unter Verwendung von Fancyimputation verglichen wurde. IterativImputer mit max_iter = 10 und KNN-Imputation unter Verwendung von Fancyimput. KNN mit k = 5. Ein Genauigkeitsunterschied von weniger als 0,03 wurde als Hinweis auf Robustheit gegenüber der Imputationsmethode12 behandelt. Diese Sensitivitätsanalyse galt für den Cleveland-Datensatz als optional aufgrund ihrer begrenzten Fehlwirkung, wurde aber für andere klinische Datensätze mit mehr als 5 % fehlenden Werten empfohlen. Missingness-Muster wurden ebenfalls mit der missingno-Bibliothek visualisiert, indem eine Missingness-Matrix-Heatmap mit msno.matrix(df) generiert wurde. Das Clustern von Fehl-Mustern wurde verwendet, um festzustellen, ob fehlende Werte systematisch gemeinsam auftraten, was auf MNAR-Mechanismen hinweisen kann, die klinische Experteninput erfordern.
Numerische Merkmale wurden mittels Z-Score-Normalisierung standardisiert. StandardScaler aus scikit-learn wurde auf die Trainingsdaten angepasst und anschließend sowohl auf Trainings- als auch auf Testsets angewendet. Kategoriale Variablen wurden mittels One-Hot-Codierung codiert. Der Brustschmerztyp (cp), der vier Kategorien umfasst, wurde mithilfe pandas.get_dummies in vier binäre Indikatorspalten umgewandelt. Thalassämie (thal), die drei Kategorien umfasst, wurde in drei binäre Indikatorspalten umgewandelt. Da der GAN-Generator und -Discriminator eine feste Ein-/Ausgabedimension von 13 Features verwendeten, die dem ursprünglichen Datensatz vor der One-Hot-Kodierung entsprachen, wurden synthetische Samples im ursprünglichen 13-Feature-Raum erzeugt und anschließend durch dieselbe One-Hot-Coding-Pipeline wie die realen Daten geleitet. Dies bewahrte die Kompatibilität mit der GAN-Architektur und ermöglichte gleichzeitig die Verwendung kodierter Funktionen für das Modelltraining.
Mathematische Definitionen und Qualitätskennzahlen
Die Fréchet-Entfernung wurde verwendet, um reale und synthetische Merkmalsverteilungen zu vergleichen. Der Fréchet-Abstand Fr(F, G) zwischen zwei Verteilungen F und G wurde wie folgt definiert:
Fr2(F,G)=minX,YE|X-Y|2 (1)
wobei E die Erwartung darstellt und die Minimierung über alle Zufallsvariablen X und Y mit Verteilungen F bzw.G 19 erfolgt.
Die Harris-Hawk-Optimierung (HHO) wurde als metaheuristische Optimierungsmethode verwendet. HHO ist inspiriert vom kooperativen Jagdverhalten von HarrisHawks 20. Der Übergang zwischen Erkundungs- und Ausbeutungsphase wurde von der Fluchtenergie E gesteuert. In der Erkundungsphase, wo |E| ≥ 1 wurde das Update wie folgt definiert:
X(t+1) = Xrand (t) - r1 | Xrand (t) - 2r2X (t)|
In der Ausbeutungsphase, in der |E| < 1 wurden Updates durch die Fluchtenergie E = 2E(1 − t/T) und die Sprungkraft J = 2(1 − r5) bestimmt. Im weichen Belagerungszustand sind ≥ 0,5 und |E| ≥ 0.5 wurde das Update wie folgt definiert:
X(t+1) = ΔX(t) - E|JX-Kaninchen (t) - X(t)|
Im harten Belagerungszustand sind ≥ 0,5 und |E| < 0.5 wurde das Update wie folgt definiert:
X(t+1) = XKaninchen (t) - E|ΔX(t)|
Die Fairness wurde anhand statistischer Paritäts- und Fehlerquotenbalance bewertet, entsprechend Hardt et al.20 und Lima et al.21. Demografische Paritätsunterschiede, ausgeglichene Chancendifferenz und altersbasierter Kalibrierungsfehler wurden als Fairness-Kennzahlen verwendet.

ΔEO = max(|TPRA - TPRB |,| FPRA - FPRB |)
ΔBS=|BSage<50 - BSage>50 |
wobei BS der Brier-Wert ist:

Die Dashboard-Interpretierbarkeit basierte auf SHAP-Werten, die mit Koalitionsspieltheorie berechnet werden18.

wobei Φi die SHAP-Attribution für Merkmal i darstellt, F. f(S) stellt die Menge aller Merkmale dar und stellt die Modellvorhersage für eine Teilmenge der Merkmale S dar.
GAN-basierte Datenaugmentation
Um Datenknappheit und Klassenungleichgewicht zu beheben, wurde ein Generative-Adversarial-Netzwerk (GAN) verwendet, um synthetische Stichproben zu erzeugen. Die Generatorarchitektur wurde in TensorFlow/Keras konfiguriert. Es akzeptierte einen 100-dimensionalen Rauschvektor, der aus einer Standardnormalverteilung N(0,1) abgetastet wurde, gefolgt von dichten Schichten mit 128, 256 und 512 Einheiten unter Verwendung der ReLU-Aktivierung. Die Ausgangsschicht enthielt 13 Einheiten, entsprechend der ursprünglichen Merkmalsdimension, und nutzte die Sigmoid-Aktivierung.
Die Discriminator-Architektur akzeptierte einen 13-dimensionalen Merkmalsvektor als Eingabe. Sie bestand aus dichten Schichten mit 512, 256 und 128 Einheiten, die LeakyReLU-Aktivierung mit α = 0,2 verwendeten. Die Ausgabeschicht enthielt eine Einheit mit sigmoidischer Aktivierung zur binären Klassifikation von realen versus synthetischen Proben.
Der GAN wurde über 100 Epochen mit einer Batchgröße von 64 ausgebildet. Der Adam-Optimierer wurde mit einer Lernrate von 0,0002, β1 = 0,5 und β2 = 0,999 verwendet. Während jeder Epoche wurde der Diskriminator abwechselnd auf realen und synthetischen Chargen trainiert, und der Generator darauf trainiert, den Diskriminator zu täuschen. Nach dem Training wurden 1.000 zufällige Rauschvektoren in den Generator eingegeben, um 1.000 synthetische Proben zu erzeugen, die nur dem Trainingsset hinzugefügt wurden.
Der Modekollaps wurde während des GAN-Trainings überwacht, indem die Varianz jedes synthetischen Merkmals über 100 erzeugte Proben nach 10 Epochen gemessen wurde. Wenn die Varianz eines Merkmals für drei aufeinanderfolgende Prüfungen unter 10 % der entsprechenden Realdatenvarianz fiel, wurde ein Modekollaps vermutet. Zu den Minderungsstrategien gehörten die Reduzierung der Lernrate auf 1 × 10⁻4, die Erhöhung der Batch-Größe auf 128, das Wiederstarten des Trainings mit einer anderen Gewichtsinitialisierung oder der Ersatz des Standard-GAN durch Wasserstein GAN durch Gradient Penalty (WGAN-GP), wie von Arjovsky et al.17 beschrieben. Die Implementierung verwendete ein Standard-GAN mit einem Gaußschen Störungsfallback, um eine synthetische Datengenerierung zu gewährleisten, wenn TensorFlow nicht verfügbar war.
Die Qualität synthetischer Daten wurde durch Berechnung der Fréchet-Distanz zwischen realen und synthetischen Merkmalsverteilungen mit einer benutzerdefinierten Implementierung bewertet. Ein Klassifikator, wie die logistische Regression, wurde ebenfalls darauf trainiert, reale von synthetischen Proben zu unterscheiden; Die Genauigkeit der Near-Chance-Klassifikation wurde als Hinweis auf hohe Genauigkeit behandelt. Präzisions-Rückruf-AUC wurde berechnet, wobei Werte über 0,9 als Hinweis auf eine gute Verteilungserfassung galten. Pearson-Korrelationen zwischen Merkmalspaaren in realen und synthetischen Datensätzen wurden ebenfalls verglichen, wobei Unterschiede unter 0,05 als akzeptable Erhaltung der Korrelationsstruktur betrachtet wurden.
Wenn TensorFlow/Keras nicht verfügbar war oder das GAN-Training fehlschlug, wurde eine Gaußsche Störungs-Fallback-Methode verwendet. Für jede Klasse wurden der Mittelwert (μ) und die Standardabweichung (σ) jedes Merkmals aus dem Trainingssatz berechnet. Synthetische Proben wurden dann wie folgt erzeugt:
Xsynthetisch = μ + ε × σ × 0,05, wobei ε ~ N(0,1)
Klassenetiketten wurden proportional zur ursprünglichen Klassenverteilung erstellt. Dieses Rückfallplan wurde integriert, um Reproduzierbarkeit über Umgebungen hinweg ohne Deep-Learning-Abhängigkeiten zu unterstützen.
Auswahl hybrider Funktionen
Es wurde eine zweistufige hybride Merkmalauswahlstrategie angewandt. In der ersten Phase wurde eine statistische Vorfilterung durchgeführt. Für jedes Merkmal xi im Merkmalssatz X wurden die Werte entsprechend der binären Ergebnisvariablen in zwei Gruppen unterteilt: G0 für y = 0, was auf keine Krankheit hinweist, und G1 auf y = 1, was auf das Vorhandensein der Krankheit hinweist. Welchs Zweistichproben-t .-Test wurde mit scipy.stats.ttest_ind mit equal_var = False durchgeführt. Cohens d-Effektgröße wurde dann wie folgt berechnet:
d = (Mittel1 − Mittel2) / pooled_std
wobei:
pooled_std = sqrt((std12 + std22)/2)
Der Merkmalsname, der p-Wert und Cohens d-Wert wurden in einer Ergebnistabelle gespeichert. Merkmale wurden ausgewählt, wenn sie beide Kriterien erfüllten: p-Wert < 0,05 und |Cohens d| ≥ 0,5. Der resultierende Funktionssatz wurde als Xfiltered definiert.
Welchs t-Test wurde verwendet, weil er für kontinuierliche numerische Merkmale wie Alter, Thalach und Oldpeak geeignet ist. Für binäre kategoriale Merkmale wie Geschlecht und Exang liefert der t.-Test Ergebnisse, die mit einem Proportionstest vergleichbar sind, wenn zwei Gruppen verglichen werden. Multikategoriale Merkmale wie cp und thal wurden ein-hot-codiert, und jeder binäre Indikator wurde einzeln mit der Ergebnisvariablen getestet. Dieser Ansatz wurde als angemessen angesehen, da der Cleveland-Datensatz mehr als 30 Stichproben enthält, die Merkmale vor der Analyse standardisiert wurden und equal_var = False ungleiche Varianzen zwischen den Gruppen berücksichtigt. Für Merkmale mit schweren Normalitätsverletzungen wurde der Mann-Whitney-U-Test als alternativer nichtparametrischer Test betrachtet.
Der Schwellenwert p < 0,05 folgte der konventionellen statistischen Signifikanz, während |Cohens d| ≥ 0,5 entsprach einer moderaten bis großen Effektgröße. Für Datensätze mit kleinen Stichprobengrößen oder seltenen Ergebnissen wurden bootstrap-basierte Anpassungen, Hedges-g-Korrektur oder lockerte explorative Schwellenwerte mit fachkundigem klinischem Beitrag empfohlen. Zum Beispiel könnten 1.000 Bootstrap-Resamples verwendet werden, um Cohens d-Konfidenzintervalle zu berechnen, und Hedges' g könnte zur Korrektur von Small-Sample-Bias angewendet werden. Merkmale mit Grenzwerten, wie p-Werte zwischen 0,03 und 0,08 oder |d| Werte zwischen 0,4 und 0,6 wurden für eine mögliche klinische Expertenüberprüfung dokumentiert, bevor der Ausschluss erfolgte.
In der zweiten Phase wurde die Harris-Hawk-Optimierung (HHO) auf den statistisch gefilterten Funktionssatz angewendet. Die HHO-Populationsgröße wurde auf 20 gesetzt, und die maximale Anzahl der Iterationen auf 50. Jede Lösung wurde als Binärvektor mit einer Länge dargestellt, die der Anzahl der Features in Xfiltered entspricht, wobei 1 anzeigte, dass ein Merkmal ausgewählt wurde, und 0 bedeutete, dass es nicht ausgewählt wurde. Kontinuierliche HHO-Positionen wurden mit der V-förmigen Übertragungsfunktion auf binäre Vektoren abgebildet:
T(x) = |tanh(x)|
Der Binärwert wurde auf 1 gesetzt, wenn T(x) 0,5 >, und ansonsten 0. Die V-förmige Funktion wurde gewählt, weil sie eine ausgewogene Erkundung und Auswertung während der binären Umwandlung unterstützt.
Die Fitnessfunktion für jede Lösung wurde mittels logistischer Regression definiert. Ein logistisches Regressionsmodell wurde ausschließlich mit den vom Binärvektor ausgewählten Merkmalen trainiert, und eine fünffache Kreuzvalidierung wurde mit cross_val_score aus scikit-learn durchgeführt. Die Fitness wurde wie folgt berechnet:
Fitness = 1 − mittlere Genauigkeit
Die Population der Hawk-Positionen wurde gleichmäßig im Bereich [−1, 1] mit numpy.random.uniform(−1, 1, (population_size, n_features)) initialisiert, mit einem festen zufälligen Seed von 42 für die Reproduzierbarkeit. Bei jeder Iteration wurde die Fitness aller Falken bewertet, die beste Falkenposition als Kaninchen identifiziert, und die Falkenpositionen wurden mithilfe der HHO-Erkundungs- und Ausbeutungsgleichungen basierend auf Fluchtenergie aktualisiert. Nach der Konvergenz wurde der leistungsstärkste binäre Vektor als letzte Merkmals-Teilmenge, Xfinal, ausgewählt.
Die ausgewählten Features wurden aus einem einzigen HHO-Optimierungslauf mit einem festen zufälligen Seed aufgezeichnet. Für Anwendungen, die eine höhere statistische Sicherheit erfordern, wurden 30 unabhängige Läufe mit verschiedenen zufälligen Seeds empfohlen, und Konsensmerkmale, die in mindestens 80 % der Durchläufe vorkommen, konnten ausgewählt werden. Die gemeldete Umsetzung basierte auf einem einzigen repräsentativen Durchlauf, da vorläufige Tests eine konsistente Konvergenz zeigten.
Modelltraining und Optimierung
Drei Modelle wurden betrachtet: Logistische Regression, Random Forest und ein PSO-optimiertes künstliches neuronales Netzwerk (ANN). Die logistische Regression wurde mit geschichteter fünffacher Kreuzvalidierung trainiert, um die Klassenverteilung aufrechtzuerhalten. Die Regularisierungsstärke C wurde mit dem Suchraum C
optimiert [0,001, 0,01, 0,1, 1, 10]. Für jede Faltung und jeden Wert von C wurde das Modell auf der Trainingsfalte trainiert und auf der Validierungsfalte ausgewertet. Der Wert von C, der die mittlere Validierungsgenauigkeit über Faltungen hinweg maximierte, wurde ausgewählt.
Das Random Forest-Modell wurde mit Hyperparameter-Tuning trainiert. Der Suchraum umfasste max_depth = [5, 10, 15, Nichts] und min_samples_split = [2, 5, 10]. Die Rastersuche mit 5-facher Kreuzvalidierung wurde mit ROC-AUC als Optimierungsmetrik über GridSearchCV mit Scoring = 'roc_auc' durchgeführt. Das ausgewählte Random Forest-Modell max_depth = 10 und min_samples_split = 5. Die Out-of-Bag (OOB)-Score-Schätzung wurde mit oob_score = True aktiviert.
Overfitting wurde bewertet, indem die Lücke zwischen Trainingsgenauigkeit und OOB-Wert berechnet wurde:
overfitting_gap = training_accuracy − oob_score
Eine Überanpassungslücke unter 0,05 galt als Hinweis auf eine gute Verallgemeinerung, während eine Lücke von über 0,10 auf die Notwendigkeit hindeutete, max_depth zu reduzieren oder min_samples_split zu erhöhen. Mit einem OOB-Wert von 0,9296 und einer typischen Trainingsgenauigkeit zwischen 0,94 und 0,96 betrug die Lücke etwa 0,01–0,03.
Ein ANN-Klassifikator wurde ebenfalls mittels Particle Swarm Optimization (PSO) optimiert. Die ANN-Architektur bestand aus einer Eingabeschicht, einer versteckten Schicht mit 64 Neuronen unter Verwendung von ReLU-Aktivierung und einer Ausgabeschicht mit einem Neuron mit sigmoid-Aktivierung. PSO wurde mit 50 Partikeln und 50 Iterationen initialisiert und zur Optimierung der anfänglichen Netzwerkgewichte verwendet. Das ANN wurde anschließend mit Standardrückpropagation trainiert. Da die PSO-Optimierung auf denselben Trainingsdaten ohne verschachtelte Kreuzvalidierung durchgeführt wurde, wurde diese Komponente vorsichtig behandelt. Für zukünftige Anwendungen wurde eine verschachtelte Kreuzvalidierung empfohlen, mit einer äußeren 10-fachen Schleife zur Bewertung und einer inneren 10-fachen Schleife zur PSO-Hyperparameterauswahl. Eine Verallgemeinerungslücke unter 0,08 galt als akzeptabel, während eine Lücke über 0,15 auf eine mögliche Überanpassung hinweist, die eine Modellvereinfachung erfordert.
Modellbewertung
Die Modellbewertung wurde mittels stratifizierter 10-facher Kreuzvalidierung auf dem finalen Merkmalssatz Xfinal durchgeführt. In jedem Fold wurden Logistic Regression und Random Forest Modelle auf den Trainingsdaten trainiert und auf den Validierungsdaten ausgewertet. Genauigkeit, Präzision, Abruf, F1-Wert und ROC-AUC wurden mit classification_report und roc_auc_score aus scikit-learn berechnet. Der Mittelwert und die Standardabweichung aller Metriken wurden über die 10-fachen berechnet.
Die Verallgemeinerungslücke wurde ebenfalls für jede Falte wie folgt berechnet:
generalization_gap = training_accuracy − validation_accuracy
Die mittlere Verallgemeinerungslücke über alle 10 Falten wurde berichtet. Eine mittlere Lücke unter 0,08 wurde als minimales Overfitting betrachtet, während eine Lücke über 0,15 auf Overfitting und die Notwendigkeit einer Regularisierung oder reduzierter Modellkomplexität hindeutete. Wilcoxon-Signed-Rank-Tests wurden durchgeführt, um das vorgeschlagene Framework mit Baseline-Methoden über 10-fache hinweg zu vergleichen, wobei α = 0,01 verwendet wurden.
Erklärbarkeitsanalyse
Die Erklärbarkeitsanalyse wurde mit modellspezifischen und modellunabhängigen Methoden durchgeführt. Für die logistische Regression wurde das endgültige Modell angepasst und Koeffizientenwerte für jedes ausgewählte Merkmal extrahiert. Die Odds Ratios wurden als exp (Koeffizient) berechnet, und 95%-Konfidenzintervalle wurden unter Verwendung der Standardfehler der Koeffizienten berechnet.
Für Random Forest wurden Gini-Wichtigkeitswerte aus dem trainierten Modell mit dem Attribut feature_importances_ extrahiert und auf 1 normalisiert. SHAP-Erklärungen wurden mit der SHAP-Bibliothek generiert. Ein KernelExplainer-Objekt wurde mit dem trainierten Modell und einem Hintergrunddatensatz erstellt, wie etwa 100 zufällig ausgewählte Trainingsproben. SHAP-Werte wurden für alle Instanzen im Testsatz mit shap_values berechnet. Bienenschwarm-Zusammenfassungsdiagramme wurden mit shap.summary_plot erstellt, und Balkendiagramme mit mittleren absoluten SHAP-Werten wurden mit shap.bar_plot erstellt.
Partielle Abhängigkeitsdiagramme (PDPs) wurden für die durch die SHAP-Analyse identifizierten Topmerkmale erstellt. Für jedes ausgewählte Merkmal wurde eine Wertfolge erstellt, die den Merkmalsbereich abdeckt. Jeder Wert wurde in die Feature-Spalte eingefügt, während die anderen Features konstant gehalten wurden, und die durchschnittliche vorhergesagte Wahrscheinlichkeit wurde über alle Fälle berechnet. Feature-Werte wurden mit Matplotlib gegen Durchschnittsvorhersagen ausgewertet. Konfidenzintervalle von 95 % wurden mit 100 Bootstrap-Resampling-Iterationen hinzugefügt.
Individuelle Conditional Expectation (ICE)-Diagramme wurden für ausgewählte Features generiert, indem Vorhersagetrajektorien für einzelne Instanzen bei veränderten Merkmalswerten dargestellt wurden. Die PDP-Linie wurde auf dem ICE-Grundstück überlagert. Erklärungsmethoden wurden verglichen, indem Spearmans Rangkorrelation zwischen den Odds-Verhältnissen der logistischen Regression und den Random Forest SHAP-Werten mit scipy.stats.spearmanr berechnet wurde. Abweichungen zwischen den Erklärungsmethoden wurden für die klinische Interpretation dokumentiert. Wenn SHAP- und logistische Regressionskoeffizienten kollidierten, wurde das PDP für dieses Merkmal untersucht. Wenn das PDP einen nichtlinearen Trend zeigte, wurde die SHAP-Erklärung dem logistischen Regressionskoeffizienten vorgezogen, da Random Forest nichtlineare Beziehungen erfassen kann, die lineare Modelle nicht können.
Framework-Generalisierungsprotokoll für externe Validierung mit MIMIC-III
Ein externes Validierungsprotokoll wurde für die Anwendung des Frameworks auf die MIMIC-III-Datenbank festgelegt. Der Zugang zu MIMIC-III würde die Genehmigung von PhysioNet und den Abschluss der erforderlichen menschlichen Ausbildung erfordern. Die vorgeschlagene Kohorte würde erwachsene Patienten im Alter von 18 Jahren oder älter mit der ersten Intensivstation sowie ICD-9-Codes 410–414 für akuten Myokardinfarkt oder ICD-10-Codes I20–I25 für ischämische Herzerkrankungen umfassen. Ausschlusskriterien umfassen mehr als 30 % fehlende Werte in Zielmerkmalen, eine Aufenthaltsdauer unter 24 Stunden, ein Alter über 90 Jahre, eine vorherige Herzoperation oder angeborene Herzerkrankungen.
Das vorgeschlagene Ergebnis waren schwerwiegende kardiale Ereignisse (MACE) innerhalb von 72 Stunden nach der Aufnahme, definiert als eine Kombination aus stationärer Mortalität, kardiogenem Schock oder ventrikulärer Arrhythmie, die eine Intervention erfordern. Zeitreihenmerkmale wie Herzfrequenz und Blutdruck würden über die ersten 24 Stunden des Intensivaufenthalts unter Verwendung von Mittelwert, Median, Minimum, Maximum und Trend aggregiert, wobei der Trend als Steigung aus linearer Regression über die Zeit geschätzt wird. Die maximale Herzfrequenz würde als abgebildetes Äquivalent zur Thalach verwendet werden.
Die Cleveland-Datensatzmerkmale würden auf MIMIC-III-Variablen abgebildet. Zum Beispiel würde Thalach auf die maximale Herzfrequenz während der ersten 24 Stunden des Intensivaufenthalts abgebildet, CP auf strukturierte Schmerzbeurteilungen und NLP-extrahierte Brustschmerzen, und Oldpeak auf die ST-Segmentabweichung von EKG-Berichten. Eine Mapping-Tabelle würde erstellt werden, um alle Feature-Ausrichtungen zu dokumentieren.
Vor der Anwendung der vollständigen Pipeline wird die NLP-Extraktion für Oldpeak anhand von 100 zufällig ausgewählten EKG-Berichten validiert. Präzision, Abruf und F1-Wert würden von zwei Klinikern anhand manueller Annotation berechnet. Wenn der F1-Wert unter 0,85 lag, würden Regex-Muster überarbeitet oder strukturierte EKG-Daten aus Chartevents als Alternative verwendet. Die Preprocessing-Pipeline würde dann auf extrahierten MIMIC-III-Daten wiederholt, das GAN für die Erweiterung neu trainiert, hybride Feature-Auswahl erneut angewendet, Modelle neu trainiert, Erklärungen erstellt und Leistungsmetriken mit den Ergebnissen des Cleveland-Datensatzes verglichen werden.
Implementierung klinischer Dashboards
Ein webbasierter klinischer Dashboard-Prototyp wurde mit einem Framework wie Flask oder Django entwickelt. HL7/FHIR-API-Endpunkte waren für EHR-Integration geplant, wobei Authentifizierung und Autorisierung gemäß institutionellen Sicherheitsrichtlinien konfiguriert wurden. Datenmapping-Funktionen wurden entwickelt, um EHR-Daten in Modelleingabeformat umzuwandeln.
Die Benutzeroberfläche umfasste drei Hauptansichten. Die Pre-Screening-Ansicht zeigte Patientendemografie und berechnete Risikoscores mit farbcodierten Risikoniveaus. Die Entscheidungsunterstützungsansicht zeigte eine SHAP-Wasserfall-Grafik, die die wichtigsten beitragenden Faktoren für einen bestimmten Patienten darstellte. Die Interventionsplanungsansicht ermöglichte eine Was-wäre-wenn-Analyse durch Anpassung modifizierbarer Risikofaktoren und aktualisierte Risikoprognosen. Exportfunktionen wurden integriert, um Berichte als PDF-Dateien zu speichern oder sie in EHR-Dokumentationssysteme zu integrieren.
Für den zukünftigen klinischen Einsatz wurde eine Dashboard-Usability-Bewertung mit mindestens fünf Klinikern geplant. Die Bewertung würde die System Usability Scale verwenden, mit einem Zielwert über 68, der Aufgabenabschlusszeit und einer Zielreduktion von mindestens 20 % im Vergleich zur EHR-Nutzung allein, sowie 5-Punkte-Zufriedenheitsskalen für Erklärungsklarheit und Vertrauen. Diese Usability-Bewertung war als zukünftiger Schritt geplant und wurde in der aktuellen Studie nicht umgesetzt.