$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Dieses Protokoll beschrieb einen reproduzierbaren rechnergestützten Workflow zur Benchmarking von Ensemble-Machine-Learning-Modellen unter Verwendung eines öffentlich zugänglichen Datensatzes für Herz-Kreislauf-Erkrankungen.
Auswahl des Datensatzes
Die Studie nutzte einen öffentlich zugänglichen Datensatz für Herz-Kreislauf-Erkrankungen, der aus dem Kaggle-Repository stammt. Der Datensatz umfasste 1190 Instanzen und enthielt 11 Features. Für das Modelltraining wurden 80 % der Daten verwendet, während die restlichen 20 % für Leistungsbewertungen vorgesehen waren. Tabelle 1 präsentierte eine detaillierte Beschreibung der Datensatzmerkmale. Der Datensatz wurde in Python (Version 3.9) mit der pandas-Bibliothek (Version 1.5.3) geladen. Die Integrität des Datensatzes wurde durch Untersuchung fehlender Werte, doppelter Datensätze und inkonsistenter Datentypen überprüft.
Tabelle 1 fasst die demografischen, klinischen und experimentellen Merkmale zusammen, die im Datensatz für Herz-Kreislauf-Erkrankungen enthalten sind, zusammen mit ihren Datentypen und codierten Formaten. Diese Merkmale bildeten die Eingabevariablen für alle nachfolgenden Modelltrainings- und Bewertungsverfahren.
| Sl. Nein | Funktionsname | Datentyp | Beschreibung |
| 1 | Alter | Numerisch | Alter des Patienten in Jahren. |
| 2 | Geschlecht | Nominal | Männlich als 1 dargestellt, Weibchen als 0. |
| 3 | Typ von Brustschmerzen | Kategorisch | 1: Typisch 2: Typische Angina 3: Nicht-anginale Schmerzen 4: Asymptomatisch |
| 4 | Ruhe-BP s | Numerisch | Blutdruck in Ruhe gemessen in Millimetern Quecksilber (mmHg). |
| 5 | Cholesterinspiegel | Numerisch | Serumcholesterin in Milligramm pro Deziliter (mg/dL). |
| 6 | Nüchternblutzucker | Nominal | Blutzuckerwerte über 120 mg/dl während des Fastens werden als 1 für wahr und 0 für falsch dargestellt. |
| 7 | Ruhe-EKG | Kategorisch | Drei verschiedene Werte werden wie folgt vergeben: 0 für normal, 1 für Auffälligkeiten in der ST-T-Welle und 2 für linke ventrikuläre Hypertrophie. |
| 8 | Maximale Herzfrequenz | Numerisch | Erreichte maximale Herzfrequenz |
| 9 | Harte Angina trainieren | Nominal | Angina ausgelöst durch Bewegung, wobei 0 NEIN und 1 Ja darstellt. |
| 10 | Oldpeak | Numerisch | ST-Depression während des Trainings im Vergleich zum Ruhezustand. |
| 11 | ST-Hang | Kategorisch | Steigung des ST-Segments während der Spitzenbelastung wird wie folgt kategorisiert: 0: Normal 1: Ansteigend 2: Flach 3: Absteigend |
Tabelle 1: Beschreibung der Datensatzmerkmale, die zur Vorhersage von Herzkrankheiten verwendet werden.
Vorverarbeitung der Daten
Die Datenvorverarbeitung erfolgte mit Python-Bibliotheken. Zeilen mit fehlenden Werten wurden mit Pandas entfernt. DataFrame.dropna()-Funktion. Ausreißer in numerischen Merkmalen wurden mit der Interquartil-Range (IQR)-Methode und einer Boxplot-basierten Visualisierung identifiziert und entfernt, die die Verteilung und erkannten Ausreißer über die Merkmale hinweg veranschaulicht (Abbildung 2). Alle numerischen Variablen wurden mit der StandardScaler-Funktion aus der scikit-learn-Bibliothek (Version 1.2.2) skaliert. Das Klassenungleichgewicht wurde durch zufällige Unterstichprobe angegangen, um eine ausgewogene Klassenverteilung vor dem Modelltraining zu erhalten.

Abbildung 2: Boxplot aller Attribute im Cardiovascular Disease Dataset. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzusehen.
Pearsons Korrelationskoeffizient (PCC) wurde verwendet, um Zusammenhänge zwischen Merkmalen zu bewerten. Die resultierende Korrelationsmatrix, dargestellt als Heatmap, veranschaulicht die Stärke und Richtung paarweiser Merkmalskorrelationen und hebt redundante Attribute für die Eliminierung hervor (Abbildung 3).

Abbildung 3: Korrelationsmatrix für den Herzkrankheitsdatensatz. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzusehen.
Das Modell liefert eine Heatmap der Korrelationsmatrix, die ästhetisch ansprechend ist und ein schnelleres Verständnis der Korrelationen zwischen verschiedenen Merkmalen in den Daten ermöglicht. Diese Heatmap verwendet Farben, um anzuzeigen, wie stark und in welche Richtung die Werte korreliert sind, was sie zu einem wichtigen Werkzeug in der explorativen Datenanalyse macht. Hellere Farben zeigen höhere positive Korrelationen, dunklere Farben höhere negative Korrelationen und mehr Grüntöne Korrelationen nahezu null.
Merkmalsextraktion
Die Feature-Auswahl erfolgte mit Random Forest Feature Importance, das über den RandomForestClassifier in Open-Source-Machine-Learning-Bibliotheken implementiert wurde. Die Feature-Importance Scores wurden anhand des mittleren Abnehmens der Verunreinigung berechnet, und Features wurden entsprechend bewertet. Die Top-N-bewerteten Merkmale wurden für die spätere Analyse beibehalten. Die Merkmalsauswahl erfolgte nach Abschluss aller Vorverarbeitungsschritte und vor der Zug-Test-Aufteilung, um sicherzustellen, dass ein fester und konsistenter Funktionssatz über alle Klassifikationsmodelle und Ensemble-Konfigurationen hinweg verwendet wurde (Abbildung 4).

Abbildung 4: Feature-Importance Scores, berechnet mit Random Forest Feature Importance. Merkmale werden nach normalisiertem Wichtigkeitswert bewertet. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzusehen.
Die Merkmale wurden basierend auf der mittleren Abnahme der Verunreinigung unter Verwendung der Bedeutung von Merkmalen im Zufallswald mit random_state = 42 bewertet; alle verfügbaren Funktionen (N = 11) wurden jedoch für das spätere Modelltraining beibehalten. Die Merkmalsauswahl erfolgte nach der Vorverarbeitung und vor der Zug-Test-Aufteilung, um einen festen Funktionssatz über alle Modelle hinweg sicherzustellen.
Modellausbildung und Ensemblebau
Der Datensatz wurde in Trainings- und Testteilmengen unterteilt, wobei ein 80:20-Split-Verhältnis mit der Funktion train_test_split() verwendet wurde. Die Trainingsdaten wurden ausschließlich für die Modellentwicklung und den Ensemble-Aufbau verwendet, während die Testdaten für die Leistungsbewertung reserviert waren. Basisklassifikatoren, darunter Decision Tree, Random Forest, AdaBoost und XGBoost, wurden auf dem Trainingsdatensatz unter Verwendung der Standard-Hyperparametereinstellungen trainiert, sofern nicht anders angegeben.
Hard-Voting- und Soft-Voting-Ensemble-Modelle wurden mit dem VotingClassifier erstellt, wobei allen Basisklassifikatoren gleiche Gewichte zugewiesen wurden, um einen objektiven Vergleich zu gewährleisten. Ein Stacking-Ensemble-Modell wurde unter Verwendung der logistischen Regression als Metaklassifikator implementiert. Der Meta-Klassifikator wurde auf Out-of-Fold-Vorhersagen trainiert, die durch 5-fache Kreuzvalidierung der Basisklassifikatoren erzeugt wurden, was Überanpassungen reduzierte und eine unverzerrte Schätzung der Ensemble-Leistung ermöglichte.
Vorgeschlagenes Modell
Das vorgeschlagene Ensemble-Framework wurde implementiert, um einen zusammengesetzten Klassifikator mit mehreren Ensemble-Lernstrategien zu konstruieren. Alle Trainingsdaten wurden standardisiert, und identische Vorverarbeitungsschritte wurden auf die Testdaten angewendet, um die Konsistenz zwischen Trainings- und Evaluationsphasen sicherzustellen. Basisklassifikatoren wurden mithilfe von Hard Voting, Soft Voting und Stacking-Mechanismen integriert, und der Stacking-Metaklassifikator wurde mit logistischer Regression auf kreuzvalidierten Vorhersagen trainiert. Die Gesamtarchitektur und der Datenfluss des Ensemble-Frameworks (Abbildung 5).

Abbildung 5: Architektur des vorgeschlagenen Modells. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzusehen.
Stufe I:
Auf Level I des Ensemble-Frameworks wurden vier Basisklassifikatoren – Random Forest, Decision Tree, XGBoost und AdaBoost – mit dem skalierten Trainingsdatensatz trainiert. Diese Basisklassifikatoren wurden kombiniert, um sowohl Hard-Voting- als auch Soft-Voting-Ensemble-Modelle zu konstruieren. Allen Basisklassifikatoren wurden gleiche Gewichte zugewiesen, um die Objektivität zu wahren und Verzerrungen durch differenzielle Gewichtsabstimmung während des Ensembleaufbaus zu vermeiden.
Stufe II:
Auf Level II wurde ein Stacking-Ensemble-Klassifikator implementiert, indem Vorhersagen der von den Basisklassifikatoren erzeugten Vorhersagen kombiniert wurden. Die Basisklassifikatoren wurden mittels 5-facher Kreuzvalidierung trainiert und für jede Faltung wurden Out-of-Fold-Vorhersagen generiert. Diese Out-of-Fold-Vorhersagen wurden dann als Eingabemerkmale verwendet, um einen Logistic Regression Meta-Klassifikator zu trainieren, wodurch Überanpassung reduziert und eine unverzerrte Schätzung der Ensemble-Leistung ermöglicht wird.