$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Dit protocol beschreef een reproduceerbare computationele workflow voor het benchmarken van ensemble machine learning-modellen met behulp van een publiek beschikbare dataset voor cardiovasculaire ziekten.
Selectie van de dataset
De studie maakte gebruik van een publiek beschikbare dataset voor hart- en vaatziekten afkomstig uit de Kaggle-repository. De dataset bestond uit 1190 instanties en bevatte 11 functies. Voor modeltraining werd 80% van de data gebruikt, terwijl de resterende 20% werd toegewezen aan prestatie-evaluatie. Tabel 1 gaf een gedetailleerde beschrijving van de kenmerken van de dataset. De dataset werd geladen in Python (versie 3.9) met behulp van de pandas-bibliotheek (versie 1.5.3). De integriteit van de datasets werd geverifieerd door ontbrekende waarden, dubbele records en inconsistente datatypes te onderzoeken.
Tabel 1 vat de demografische, klinische en experimentele attributen samen die in de dataset voor hart- en vaatziekten zijn opgenomen, samen met hun datatypes en gecodeerde formaten. Deze kenmerken vormden de invoervariabelen voor alle daaropvolgende modeltrainings- en evaluatieprocedures.
| Sl. Nee | Naam van het kenmerk | Gegevenstype | Beschrijving |
| 1 | Leeftijd | Numeriek | Leeftijd van de patiënt in jaren. |
| 2 | Seks | Nominaal | Mannelijk vertegenwoordigd als 1, en vrouw vertegenwoordigd als 0. |
| 3 | Borstpijn type | Categorisch | 1: Typisch 2: Typische angina 3: Niet-anginale pijn 4: Asymptomatisch |
| 4 | Rustende bloeddruk s | Numeriek | Bloeddruk in rust gemeten in millimeters kwik (mmHg). |
| 5 | Cholesterolgehalte | Numeriek | Serumcholesterol in milligram per deciliter (mg/dL). |
| 6 | Nuchtere bloedsuiker | Nominaal | Bloedsuikerwaarden boven 120 mg/dl tijdens het vasten worden weergegeven als 1 voor waar en 0 voor onwaar. |
| 7 | Rustend ECG | Categorisch | Drie verschillende waarden worden als volgt toegekend: 0 voor normaal, 1 voor afwijking in ST-T-golf en 2 voor linkerventrikelhypertrofie. |
| 8 | Maximale hartslag | Numeriek | Maximale hartslag bereikt |
| 9 | Oefening angina | Nominaal | Angina veroorzaakt door oefening, waarbij 0 NEE vertegenwoordigt en 1 Ja. |
| 10 | Oldpeak | Numeriek | ST-depressie tijdens inspanning vergeleken met de rusttoestand. |
| 11 | ST-helling | Categorisch | ST-segment helling tijdens piektraining als volgt gecategoriseerd: 0: Normaal 1: Opwaarts 2: Vlak 3: Afwaarts |
Tabel 1: Beschrijving van datasetkenmerken gebruikt voor het voorspellen van hartziekten.
Preprocessing van de data
Datapreprocessing werd uitgevoerd met behulp van Python-bibliotheken. Rijen met ontbrekende waarden werden verwijderd met panda's. DataFrame.dropna()-functie. Outliers in numerieke kenmerken werden geïdentificeerd en verwijderd met behulp van de interquartile range (IQR)-methode en op een boxplot gebaseerde visualisatie, die de verdeling en detecteerde uitschieters over kenmerken illustreert (Figuur 2). Alle numerieke variabelen werden geschaald met behulp van de StandardScaler-functie uit de scikit-learn-bibliotheek (versie 1.2.2). Klasse-ongelijkheid werd aangepakt door willekeurige ondersteekproeven om een gebalanceerde klassenverdeling te verkrijgen voorafgaand aan modeltraining.

Figuur 2: Boxplot van alle attributen in de dataset voor cardiovasculaire ziekten. Klik hier om een grotere versie van deze figuur te bekijken.
De correlatiecoëfficiënt van Pearson (PCC) werd gebruikt om relaties tussen kenmerken te beoordelen. De resulterende correlatiematrix, gevisualiseerd als een heatmap, illustreert de sterkte en richting van paargewijze featurecorrelaties en benadrukt redundante attributen voor eliminatie (Figuur 3).

Figuur 3: Correlatiematrix voor de Heart Disease Dataset. Klik hier om een grotere versie van deze figuur te bekijken.
Het model resulteert in een heatmap van de correlatiematrix die esthetisch aantrekkelijk is en een sneller begrip van correlaties tussen verschillende kenmerken in de data mogelijk maakt. Deze heatmap gebruikt kleuren om aan te geven hoeveel en in welke richting waarden gecorreleerd zijn, waardoor het een belangrijk hulpmiddel is in Exploratory Data Analysis. Lichtere kleuren tonen hogere positieve correlaties, donkerdere kleuren hogere negatieve correlaties en meer groen tonen correlaties dicht bij nul.
Feature-extractie
Featureselectie werd uitgevoerd met behulp van Random Forest feature importance, geïmplementeerd via de RandomForestClassifier in open-source machine learning-bibliotheken. De belangrijkheidsscores van kenmerken werden berekend op basis van de gemiddelde afname van onzuiverheid, en kenmerken werden dienovereenkomstig gerangschikt. De top-N gerangschikte kenmerken werden behouden voor latere analyse. Featureselectie werd toegepast na voltooiing van alle preprocessing-stappen en vóór train-testsplitsing, waarbij werd gegarandeerd dat een vaste en consistente featureset werd gebruikt over alle classificatiemodellen en ensembleconfiguraties (Figuur 4).

Figuur 4: Feature-belangrijkheidsscores berekend met behulp van Random Forest feature-belangrijkheid. Kenmerken worden gerangschikt op genormaliseerde belangrijkheidswaarde. Klik hier om een grotere versie van deze figuur te bekijken.
Kenmerken werden gerangschikt op basis van de gemiddelde afname in onzuiverheid met behulp van Random Forest feature-belang met random_state = 42; alle beschikbare functies (N = 11) werden echter behouden voor latere modeltraining. Featureselectie werd toegepast na preprocessing en vóór train-testsplitsing, zodat er een vaste featureset over alle modellen werd gegarandeerd.
Modeltraining en ensembleconstructie
De dataset werd opgedeeld in trainings- en testsubsets met een 80:20 splitsingsverhouding met de train_test_split()-functie. De trainingsgegevens werden uitsluitend gebruikt voor modelontwikkeling en ensemble-constructie, terwijl de testgegevens werden gereserveerd voor prestatie-evaluatie. Basisclassifiers, waaronder Decision Tree, Random Forest, AdaBoost en XGBoost, werden getraind op de trainingsdataset met standaard hyperparameterinstellingen, tenzij anders gespecificeerd.
Hard voting en soft voting ensemblemodellen werden geconstrueerd met behulp van de VotingClassifier, waarbij gelijke gewichten aan alle basisclassifiers werden toegekend om objectieve vergelijking te garanderen. Een stapelensemblemodel werd geïmplementeerd met behulp van logistische regressie als meta-classifier. De meta-classifier werd getraind op out-of-fold voorspellingen die werden gegenereerd via 5-voudige kruisvalidatie van de basisclassifiers, wat overfitting verminderde en onbevooroordeelde schatting van ensembleprestaties mogelijk maakte.
Voorgesteld model
Het voorgestelde ensemble-framework werd geïmplementeerd om een samengestelde classifier te construeren met behulp van meerdere ensemble-leerstrategieën. Alle trainingsgegevens werden gestandaardiseerd en identieke preprocessing-stappen werden toegepast op de testgegevens om consistentie tussen trainings- en evaluatiefasen te waarborgen. Basisclassifiers werden geïntegreerd met hard voting, soft voting en stackingmechanismen en de stacking meta-classifier werd getraind met behulp van logistische regressie op kruisvalidatievoorspellingen. De algemene architectuur en datastroom van het ensemble-framework (Figuur 5).

Figuur 5: Architectuur van het voorgestelde model. Klik hier om een grotere versie van deze figuur te bekijken.
Niveau I:
Op niveau I van het ensembleframework werden vier basisclassifiers—Random Forest, Decision Tree, XGBoost en AdaBoost—getraind met behulp van de geschaalde trainingsdataset. Deze basisclassifiers werden gecombineerd om zowel hard voting als soft voting ensemblemodellen te construeren. Gelijke gewichten werden aan alle basisclassifiers toegekend om objectiviteit te behouden en om bias te voorkomen die ontstond door differentieel stemmen tijdens de samenstelling van het ensemble.
Niveau II:
Op niveau II werd een stacking ensemble classifier geïmplementeerd door voorspellingen gegenereerd door de basisclassifiers te combineren. De basisclassificatoren werden getraind met 5-voudige kruisvalidatie en er werden voor elke vouw voorspellingen buiten de vouw gegenereerd. Deze out-of-fold voorspellingen werden vervolgens gebruikt als inputfeatures om een Logistic Regression meta-classifier te trainen, waardoor overfitting werd verminderd en onbevooroordeelde schatting van ensembleprestaties mogelijk werd.