Protokół ten opisuje ramy uczenia maszynowego do przewidywania chorób serca, które łączą augmentację danych z wykorzystaniem generatywnych sieci adwersarialnych, dobór cech statystycznych i metaheurystycznych oraz wyjaśnialną sztuczną inteligencję.
Method Article
Protokół ten opisuje ramy uczenia maszynowego do przewidywania chorób serca, które łączą augmentację danych z wykorzystaniem generatywnych sieci adwersarialnych, dobór cech statystycznych i metaheurystycznych oraz wyjaśnialną sztuczną inteligencję.
Choroby serca są główną przyczyną zgonów na całym świecie, co czyni ich wczesne przewidywanie istotnym zagadnieniem klinicznym i obliczeniowym. Kilka badań indywidualnie zajmowało się wyzwaniami takimi jak niedobór danych, wybór cech oraz interpretowalność modeli, ale mniej badań zaproponowało zintegrowane ramy, które w synergiczny sposób rozwiązują te wyzwania. Niniejszy artykuł przedstawia kompleksowe ramy predykcyjne, które wykorzystują: (1) generatywną sieć adwersarialną (GAN) do zwalczania nierównowagi klasowej i niedoboru danych; (2) hybrydowe podejście do wyboru cech, które łączy statystyczne wstępne filtrowanie za pomocą testu t.-testu Welcha i rozmiaru efektu d Cohena, wraz z optymalizacją metaheurystyczną za pomocą optymalizacji Harrisa Hawka; oraz (3) różne wyjaśnialne metody sztucznej inteligencji, w tym SHAP, wykresy częściowych zależności oraz ilorazy szans. Ramy te zostały ocenione na zbiorach danych Cleveland i Statlog, co dało wysoką dokładność, wyniki F1 oraz wartości ROC-AUC w porównaniu z wybranymi bazami i istniejącymi metodami. Model ten zapewnia solidne, interpretowalne ramy obliczeniowe do przewidywania chorób serca, łącząc wydajność uczenia maszynowego z kliniczną interpretowalnością.
Choroby sercowo-naczyniowe są jedną z głównych przyczyn zachorowalności i śmiertelności na świecie, odpowiadając za szacunkowo 17,9 miliona zgonów rocznie1. Wczesne i dokładne przewidywanie chorób serca jest ważne dla terminowej interwencji i poprawy wyników leczenia pacjentów. W tym kontekście przewidywanie chorób serca za pomocą algorytmów uczenia maszynowego (ML) stoi przed trzema głównymi wyzwaniami: ograniczoną dostępnością wysokiej jakości danych medycznych, wysokowymiarowymi przestrzeniami cech zawierającymi zmienne redundantnymi lub nieistotnymi oraz czarną skrzynką złożonych modeli, które mogą utrudniać zaufanie kliniczne i wdrożenie2. Najnowsze badania łączą ML z metodami wyjaśniającej sztucznej inteligencji (XAI) do przewidywania chorób serca3. Wielu badaczy również wykorzystało ML do przewidywania i wykrywania chorób serca4. Najnowsze osiągnięcia w generatywnej sztucznej inteligencji, zwłaszcza generatywnych sieci przeciwników (GAN), dają nadzieję na rozszerzenie danych w opiece zdrowotnej5. Jednocześnie algorytmy metaheurystyczne, takie jak Optymalizacja Harrisa Hawka (HHO) i Optymalizacja Roju Cząstek (PSO), okazały się skuteczne w wyborze cech i optymalizacji modelu6. Techniki XAI, takie jak SHAP oraz wykresy częściowych zależności (PDP), również stały się ważnymi narzędziami do interpretacji złożonych prognoz modeli7. Przeprowadzono wiele badań nad modelami ML do przewidywania ryzyka sercowo-naczyniowego8.
Jednak dostępna literatura często omawia te kwestie w izolacji. Niektóre badania koncentrują się na augmentacji danych za pomocą GANs9, podczas gdy inne skupiają się na wyborze cech za pomocą algorytmów metaheurystycznych10 lub na interpretowalności modelu opartej na metodach XAI11. Augmentacja oparta na SMOTE została zbadana w celu przewidywania przeżycia niewydolności serca12. Diagnoza chorób serca oparta na KNN również została zgłoszona13. Te oddzielne podejścia nie w pełni wykorzystują połączonych korzyści, jakie można osiągnąć dzięki zintegrowanemu ramowi, które wspólnie zajmuje się niedoborem danych, wyborem cech, trenowaniem modeli i interpretowalnością.
Najnowsze badania badają powiązane podejścia. Badanie z 2026 roku opublikowane w Frontiers in Medicine zaproponowało zoptymalizowane heterogeniczne klasyfikatory PSO, z interpolacją wypełniającą i imputacją medianą do diagnozy chorób serca, osiągając dokładność 91,3% na połączonym zbiorze danych14. Inne ostatnie prace stosowały optymalizację metaheurystyczną dla segmentacji obrazów medycznych15, XAI dla predykcji udaru16, optymalizacji hybrydowej dla klasyfikacji arytmii serca17 oraz systemów wsparcia decyzyjnego wspierającego CAJ wspierających decyzję wspieraną przez SHAP18. Jednak niewiele z tych badań łączy generatywne uzupełnianie, dwukryterialny dobór cech statystycznych z optymalizacją HHO oraz wielometodowe XAI w jednej zintegrowanej ramie.
Niniejszy artykuł ma na celu wypełnienie tej luki poprzez propozycję ram przewidywania chorób serca, które systematycznie integrują uzupełnianie danych, hybrydowy wybór cech, optymalizację i trening modeli oraz analizę wyjaśnialności. W fazie augmentacji danych GAN-y są wykorzystywane do syntezy tabelarowych danych klinicznych na podstawie cech pacjenta, takich jak wiek, ciśnienie krwi, poziom cholesterolu oraz pomiary elektrokardiogramu. Chociaż GAN są szeroko stosowane do generowania obrazów medycznych, to badanie stosuje je do zbioru danych Cleveland Heart Disease, który zawiera 13 cech numerycznych i kategorycznych, aby rozwiązać problem ograniczonej wielkości próby (n = 303) oraz nierównowagi klasowej. W fazie hybrydowego wyboru cech test t.-Welcha oraz rozmiar efektu d Cohena są łączone z HHO, aby zidentyfikować statystycznie odporne i klinicznie istotne podzbiory cech. Podczas optymalizacji i treningu modelu PSO służy do optymalizacji wag sztucznej sieci neuronowej, natomiast modele regresji logistycznej i lasu losowego są trenowane ze względu na równowagę między wydajnością a łatwością wyjaśnienia. Na etapie wyjaśnialności stosuje się komplementarne techniki XAI, w tym SHAP, PDP oraz ilorazy szans, aby zapewnić globalne i lokalne interpretacje modeli.
Ogólny przepływ pracy proponowanego frameworka przedstawiony jest na Rysunku 1. Tabela 1 podsumowuje kluczowe różnice między proponowanym podejściem a istniejącymi metodami wyboru cech [Tabela 1 tutaj].

Rysunek 1: Przegląd proponowanego ramowego systemu przewidywania chorób serca. Workflow składa się z czterech głównych etapów: (1) wstępne przetwarzanie i uzupełnianie danych z wykorzystaniem GAN-ów do przeciwdziałania niedoborowi danych; (2) hybrydowy wybór cech łączący filtrowanie statystyczne (test t.-Welcha z d-testem Cohena) oraz optymalizację Harrisa Hawka; (3) trenowanie modeli z interpretowalnymi klasyfikatorami, w tym regresją logistyczną i lasu losowego, oraz zoptymalizowaną ANN PSO; oraz (4) analizę wyjaśnialności z wykorzystaniem SHAP, wykresów częściowych zależności i ilorazów szans. Skróty: GANs = generatywne sieci przeciwnika; PSO = optymalizacja roju cząstek; ANN = Sztuczna sieć neuronowa. Proszę kliknąć tutaj, aby zobaczyć większą wersję tej figurki.
| Kategoria podejścia | Testowanie statystyczne (np. test t) | Rozmiar efektu (np. d Cohena) | Optymalizacja metaheurystyki (np. HHO/PSO) | Skupienie na interpretowalności |
| Tradycyjne statystyki | Tak | Rzadko | Nie | Umiarkowany |
| Czysta optymalizacja | Nie | Nie | Tak | Low |
| Istniejące metody hybrydowe | Czasami | Rzadko | Tak | Zmienna |
| Proponowane ramy | Tak (test t Welcha) | Tak (Cohen ocenił ≥ 0,5) | Tak (HHO) | Wysoki (zintegrowany z XAI) |
Tabela 1: Porównanie metod wyboru cech w przewidywaniu chorób serca. Porównane podejścia obejmują: tradycyjną statystykę, czystą optymalizację, istniejące metody hybrydowe oraz proponowane ramy według następujących kryteriów: testowanie statystyczne, wielkość efektu, optymalizacja metaheurystyki oraz skupienie na interpretowalności.
Główne osiągnięcia tej pracy są następujące. Po pierwsze, aby rozwiązać problem niedoboru danych i nierównowagi klas, implementuje się standardowy GAN z binarną utratą entropii krzyżowej oraz optymalizacją Adama, wraz z wpadłem do perturbacji Gaussa, gdy TensorFlow jest niedostępny. Po drugie, aby rozwiązać redundancję cech, proponuje się hybrydową strategię wyboru cech, która łączy statystyczne wstępne filtrowanie z HHO za pomocą funkcji transferowej w kształcie litery V. To podejście oparte na dwóch kryteriach ma na celu wybranie cech zarówno statystycznie istotnych, jak i klinicznie istotnych. Po trzecie, aby rozwiązać problem nieprzezroczystości modelu, integrowany jest zestaw wielometodowej wyjaśnialności, obejmujący wykresy rojów i wodospadów SHAP, PDP oraz ilorazy szans z 95% przedziałami ufności. Dla użytkowników klinicznych dostępny jest prosty protokół uzgadniania: jeśli PDP wykazuje nieliniowy trend, wyjaśnienie SHAP powinno być priorytetem ponad współczynnikami regresji logistycznej. Po czwarte, aby wspierać powtarzalność i walidację strukturalną, ramy obejmują stratyfikowane krzyżowe walidację, audyt sprawiedliwości, badania ablacji, zewnętrzny protokół walidacyjny dla MIMIC-III oraz dokumentację kluczowych hiperparametrów.
Access restricted. Please log in or start a trial to view this content.
Oświadczenie etyczne, zestaw danych, oprogramowanie i przygotowanie danych
Wyniki tego badania opierały się na zbiorze danych o chorobach serca repozytorium maszynowego UCI. Ponieważ jest to publicznie dostępny i odprofilowany zasób, jego użycie nie wymagało zatwierdzenia komisji etycznej. Autorzy potwierdzają również oryginalność tego rękopisu, potwierdzając, że nie był on wcześniej publikowany ani przesyłany do innych czasopism.
Zbiór danych Cleveland Heart Disease został podzielony na zestawy treningowe i testowe z wynikiem 80/20. Zbiór danych zazwyczaj zawiera 303 instancje; dlatego do treningu użyto około 242 próbek, a 61 zachowano jako czysty zestaw testowy. Próbki syntetyczne generowane metodą awaryjną GAN lub Gaussa były dodawane wyłącznie do danych treningowych, aby zmniejszyć ryzyko wycieku danych. Ostateczny rozszerzony zestaw treningowy składał się z około 242 rzeczywistych próbek i 1 000 próbek syntetycznych, co dało 1 242 próbki treningowe. Nie użyto stałego statycznego zestawu walidacyjnego. Zamiast tego podczas trenowania modelu zastosowano warstwową walidację krzyżową, przy czym każdy fałd dzielił rozszerzone dane treningowe na podzbiory treningowe i walidacyjne.
Zbiór danych był ładowany do Pandas DataFrame i sprawdzany pod kątem brakujących wartości. Cechy numeryczne z brakującymi wartościami były obsługiwane za pomocą imputacji mediany za pomocą klasy SimpleImputer ze scikit-learn, stosując strategię = 'mediana'. Cechy kategoryczne z brakującymi wartościami były obsługiwane za pomocą imputacji trybowej z SimpleImputer, używając strategii = 'most_frequent'. Mechanizmy braku zostały udokumentowane poprzez obliczenie procentu braku dla każdej cechy za pomocą df.isnull().sum() / len(df). Nielosowe wzorce braków oceniano poprzez porównanie średnich wartości innych cech między próbami z brakującymi i bez danych za pomocą testów t.-dla cech liczbowych oraz testów chi-kwadrat dla cech kategorycznych. Brakowanie było następnie dokumentowane jako Zaginione całkowicie losowo (MCAR), Zaginione losowo (MAR) lub Zaginione nie losowo (MNAR), jeśli dotyczyło tego przypadku.
Dla zbiorów danych z istotnym brakiem zalecano analizę czułości poprzez porównanie imputacji mediany/trybu z wielokrotną imputacją przez równania łańcuchowe (MICE), przy użyciu fancyimpute. IterativeImputer z max_iter = 10 oraz imputacja KNN, używając fancyimpute. KNN z k = 5. Różnica dokładności mniejsza niż 0,03 została uznana za oznakę odporności metody imputacji12. Analiza wrażliwości była uznawana za opcjonalną dla zbioru danych Cleveland ze względu na ograniczoną liczbę braków, ale zalecano ją dla innych zbiorów klinicznych z brakującymi wartościami powyżej 5%. Wzorce braku również zobrazowano za pomocą biblioteki missingno poprzez generowanie mapy cieplnej macierzy braku za pomocą msno.matrix(df). Klasteryzacja wzorców braków została wykorzystana do identyfikacji, czy brakujące wartości systematycznie współwystępują, co może wskazywać na mechanizmy MNAR wymagające udziału ekspertów klinicznych.
Cechy numeryczne zostały ustandaryzowane za pomocą normalizacji punktów z. StandardScaler ze scikit-learn został zamontowany na danych treningowych, a następnie zastosowany zarówno do zestawów treningowych, jak i testowych. Zmienne kategoryczne kodowano za pomocą kodowania one-hot. Typ bólu w klatce piersiowej (cp), który obejmuje cztery kategorie, został przekształcony w cztery binarne kolumny wskaźnikowe za pomocą pandas.get_dummies. Talasemia (thal), która obejmuje trzy kategorie, została przekształcona w trzy kolumny binarne wskaźnikowe. Ponieważ generator i dyskryminator GAN używały stałego wymiaru wejścia/wyjścia 13 cech odpowiadających oryginalnemu zbiorowi danych przed kodowaniem one-hot, syntetyczne próbki były generowane w oryginalnej przestrzeni 13-cechowej, a następnie przepuszczane przez ten sam potok kodowania one-hot co rzeczywiste dane. Zachowało to kompatybilność z architekturą GAN, jednocześnie pozwalając na wykorzystanie zakodowanych funkcji do trenowania modeli.
Definicje matematyczne i metryki jakości
Odległość Frécheta została użyta do porównania rzeczywistych i syntetycznych rozkładów cech. Odległość Frécheta Fr(F, G) między dwoma rozkładami F i G została zdefiniowana następująco:
Fr2(F,G)=minX,YE|X-Y|2 (1)
gdzie E oznacza wartość oczekiwaną, a minimalizacja jest rozpatrywana dla wszystkich zmiennych losowych X i Y mających rozkłady F i G, odpowiednio19.
Optymalizacja Harrisa Hawka (HHO) była stosowana jako metaheurystyczna metoda optymalizacji. HHO inspiruje się kooperacyjnym zachowaniem polowań jastrzębi Harris20. Przejście między fazami eksploracji a eksploatacji było kontrolowane przez energię ucieczki E. W fazie eksploracji, gdzie |E| ≥ 1 aktualizacja została zdefiniowana następująco:
X(t+1) = Xrand (t) - r1 | Xrand (t) - 2r2X (t)|
W fazie eksploatacji, gdzie |E| < 1 aktualizacje były określane przez energię ucieczki E = 2E(1 − t/T) oraz siłę skoku J = 2(1 − r5). W warunkach miękkiego oblężenia, gdzie są ≥ 0,5 i |E| ≥ wersji 0.5 aktualizacja została zdefiniowana następująco:
X(t+1) = ΔX(t) - E|JXkrólik (t) - X(t)|
W warunkach twardego oblężenia, gdzie są ≥ 0,5 i |E| < 0.5 aktualizacja została zdefiniowana następująco:
X(t+1) = Xkrólik (t) - E|ΔX(t)|
Sprawiedliwość oceniano na podstawie statystycznej parzystości i równowagi błędów, zgodnie z Hardt i in.20 oraz Lima i in.21. Różnica parzytetu demograficznego, wyrównana różnica szans oraz błąd kalibracji oparty na wieku były wykorzystywane jako wskaźniki sprawiedliwości.

ΔEO = max(|TPRA - TPRB |,| FPRA - FPRB |)
ΔBS=|BSwiek<50 - BSwiek>50 |
gdzie BS to wynik Briera:

Interpretowalność dashboardu opierała się na wartościach SHAP, które obliczano przy użyciu teorii gier koalicyjnych18.

gdzie Φi oznacza atrybucję SHAP dla cechy i, F. f(S) reprezentuje zbiór wszystkich cech, a przewidywanie modelu dla podzbioru cech S.
Augmentacja danych oparta na GAN
Aby rozwiązać problem niedoboru danych i nierównowagi klasowej, użyto Generatywnej Sieci Adwersarialnej (GAN) do generowania syntetycznych próbek. Architektura generatora była skonfigurowana w TensorFlow/Keras. Przyjmował 100-wymiarowy wektor szumu próbkowany ze standardowego rozkładu normalnego N(0,1), a następnie gęste warstwy o 128, 256 i 512 jednostkach przy użyciu aktywacji ReLU. Warstwa wyjściowa zawierała 13 jednostek, odpowiadających oryginalnemu wymiarowi cech, i stosowała aktywację sigmoidalną.
Architektura dyskryminatora przyjmowała 13-wymiarowy wektor cech jako wejście. Składał się z gęstych warstw o 512, 256 i 128 jednostkach z aktywacją LeakyReLU przy α = 0,2. Warstwa wyjściowa zawierała jedną jednostkę z aktywacją sigmoidalną do klasyfikacji binarnej próbek rzeczywistych i syntetycznych.
GAN był szkolony przez 100 epok, korzystając z grupy 64. Optymalizator Adama był używany z częstotliwością uczenia 0,0002, β1 = 0,5 oraz β2 = 0,999. W każdej epoce dyskryminator był na przemian szkolony na prawdziwych i syntetycznych partiach, a generator był szkolony, by go oszukać. Po trenowaniu do generatora wprowadzono 1 000 losowych wektorów szumów, aby wygenerować 1 000 syntetycznych próbek, które dodano jedynie do zbioru treningowego.
Zapadanie się trybów było monitorowane podczas treningu GAN, mierząc wariancję każdej cechy syntetycznej na 100 wygenerowanych próbkach po co 10 epoch. Jeśli wariancja jakiejkolwiek cechy spadła poniżej 10% odpowiadającej wariancji danych rzeczywistych przez trzy kolejne kontrole, podejrzewano upadek trybu. Strategie łagodzące obejmowały zmniejszenie tempa uczenia się do 1 × 10⁻, zwiększenie wielkości partii do 128, ponowne rozpoczęcie treningu z inicjalizacją innej wagi lub zastąpienie standardowego GAN Wasserstein GAN karą gradientową (WGAN-GP), jak opisali Arjovsky i in.17. Implementacja wykorzystywała standardowy GAN z wsparciem perturbacyjnym Gaussa, aby zapewnić generowanie syntetycznych danych, gdy TensorFlow był niedostępny.
Jakość danych syntetycznych oceniano poprzez obliczenie odległości Frécheta między rzeczywistymi a syntetycznymi rozkładami cech przy użyciu niestandardowej implementacji. Klasyfikator, taki jak regresja logistyczna, był również trenowany do rozróżniania próbek rzeczywistych od syntetycznych; Dokładność klasyfikacji bliskiego przypadku traktowano jako wskazującą na wysoką wierność. Obliczono AUC Precision-Recall, przy czym wartości powyżej 0,9 były uznawane za oznakę dobrego wychwycenia rozkładu. Porównano również korelacje Pearsona między parami cech w zbiorach danych rzeczywistych i syntetycznych, przy czym różnice poniżej 0,05 uznano za akceptowalne zachowanie struktury korelacji.
Gdy TensorFlow/Keras były niedostępne lub trening GAN zawiódł, stosowano metodę awaryjną perturbacji Gaussa. Dla każdej klasy średnia (μ) i odchylenie standardowe (σ) każdej cechy były obliczane z zestawu treningowego. Następnie generowano próbki syntetyczne w następujący sposób:
Xsynthetic = μ + ε × σ × 0,05, gdzie ε ~ N(0,1)
Etykiety klas generowano proporcjonalnie do pierwotnego rozkładu klas. Ten plan awaryjny został uwzględniony, aby wspierać powtarzalność w różnych środowiskach bez zależności od uczenia głębokiego.
Hybrydowy wybór funkcji
Zastosowano dwuetapową strategię hybrydowego wyboru cech. W pierwszym etapie przeprowadzono wstępne filtrowanie statystyczne. Dla każdej cechy xi w zbiorze cech X wartości podzielono na dwie grupy według binarnej zmiennej wynikowej: G0 dla y = 0, co oznacza brak choroby, oraz G1 dla y = 1, co wskazuje na obecność choroby. T.Test Welcha z dwoma próbkami wykonano przy użyciu scipy.stats.ttest_ind z equal_var = Fałsz. Rozmiar efektu d Cohena został następnie obliczony w następujący sposób:
d = (średni1 − średni2) / pooled_std
gdzie:
pooled_std = sqrt((std12 + std22)/2)
Nazwa cechy, wartość p oraz wartość d Cohena były przechowywane w tabeli wyników. Cechy wybierano, jeśli spełniały oba kryteria: wartość p < 0,05 oraz |D| Cohena ≥ 0.5. Powstały zestaw cech został zdefiniowany jako Xfiltered.
Test t Welcha został użyty, ponieważ jest odpowiedni dla ciągłych cech liczbowych, takich jak wiek, thalach i oldpeak. Dla binarnych cech kategorycznych, takich jak płeć i exang, test t.-daje wyniki porównywalne z testem proporcji przy porównaniu dwóch grup. Cechy wielokategoriowe, takie jak cp i thal, były kodowane w systemie one-hot, a każdy wskaźnik binarny był testowany indywidualnie względem zmiennej wynikowej. Podejście to uznano za stosowne, ponieważ zbiór danych Cleveland zawiera ponad 30 próbek, cechy zostały ustandaryzowane przed analizą, a equal_var = Fałszywe wyjaśnienia nierównych wariancji między grupami. Dla cech z poważnymi naruszeniami normalności rozważano test Mann-Whitney U jako alternatywny test nieparametryczny.
Próg p < 0,05 odpowiadał konwencjonalnej istotności statystycznej, podczas gdy |D| Cohena ≥ 0,5 odpowiadało umiarkowanemu do dużego rozmiaru efektu. Dla zbiorów danych o małych rozmiarach próby lub rzadkich wynikach zalecano korektę opartą na bootstrapie, korektę g Hedgesa lub zrelaksowane progi eksploracyjne przy układzie ekspertów klinicznych. Na przykład 1 000 próbek bootstrap mogłoby być użytych do obliczenia przedziałów ufności Cohena, a g Hedgesa do korekty błędu na małych próbkach. Cechy ze statystykami granicznymi, takie jak wartości p między 0,03 a 0,08 lub |d| wartości między 0,4 a 0,6 zostały udokumentowane do możliwej oceny ekspertów klinicznych przed wykluczeniem.
W drugim etapie zastosowano optymalizację Harris Hawk (HHO) do statystycznie filtrowanego zestawu cech. Wielkość populacji HHO została ustalona na 20, a maksymalna liczba iteracji na 50. Każde rozwiązanie było reprezentowane jako wektor binarny o długości równej liczbie cech w Xfiltered, gdzie 1 oznaczało, że cecha została wybrana, a 0 oznaczała, że nie została wybrana. Ciągłe pozycje HHO były mapowane na wektory binarne za pomocą funkcji transferowej w kształcie litery V:
T(x) = |tanh(x)|
Wartość binarna była ustalana na 1, jeśli T(x) > 0,5, a 0 w przeciwnym razie. Funkcja w kształcie litery V została wybrana, ponieważ umożliwia zrównoważoną eksplorację i eksploatację podczas konwersji binarnej.
Funkcja dopasowania dla każdego rozwiązania została zdefiniowana za pomocą regresji logistycznej. Model regresji logistycznej był trenowany wyłącznie na cechach wybranych przez wektor binarny, a 5-krotna walidacja krzyżowa była wykonywana przy użyciu cross_val_score ze scikit-learn. Przydatność obliczono w następujący sposób:
Dopasowanie = 1 − średnia dokładność
Populacja pozycji jastrzębia została zainicjalizowana jednolicie w zakresie [−1, 1] za pomocą numpy.random.uniform(−1, 1, (population_size, n_features)) z ustalonym losowym nasionem 42 dla powtarzalności. W każdej iteracji oceniano sprawność wszystkich jastrzębi, najlepszą pozycję jastrzębia wyznaczano jako królika, a pozycje jastrzębia aktualizowano za pomocą równań HHO do eksploracji i eksploatacji opartych na energii ucieczki. Po zbieżności najlepiej działający wektor binarny został wybrany jako końcowy podzbiór cech, Xfinal.
Wybrane cechy były nagrywane z pojedynczego uruchomienia optymalizacji HHO z ustalonym losowym ziarnem. Dla zastosowań wymagających wyższej pewności statystycznej zalecano 30 niezależnych serii z różnymi losowymi zasiewami, a cechy konsensusu pojawiające się co najmniej w 80% serii mogły zostać wybrane. Zgłoszona implementacja opierała się na jednym reprezentatywnym uruchomieniu, ponieważ wstępne testy wskazywały na spójną zbieżność.
Trening i optymalizacja modelu
Rozważano trzy modele: regresję logistyczną, las losowy oraz zoptymalizowaną pod PSO sztuczną sieć neuronową (ANN). Regresja logistyczna była trenowana za pomocą stratyfikowanej 5-krotnej walidacji krzyżowej, aby utrzymać rozkład klas. Siła regularizacji C została zoptymalizowana za pomocą przestrzeni przeszukiwania C
[0,001, 0,01, 0,1, 1, 10]. Dla każdego fałdu i każdej wartości C model był trenowany na fałdze treningowej i oceniany na fałdze walidacyjnej. Wybrano wartość C, która maksymalizuje średnią dokładność walidacji między fałdami.
Model lasu losowego był trenowany przy użyciu strojenia hiperparametrów. Przestrzeń poszukiwań obejmowała max_depth = [5, 10, 15, Brak] oraz min_samples_split = [2, 5, 10]. Wyszukiwanie siatkowe z 5-krotną walidacją krzyżową przeprowadzono przy użyciu ROC-AUC jako metryki optymalizacyjnej za pomocą GridSearchCV z oceną = 'roc_auc'. Wybrany model lasu losowego używał max_depth = 10 oraz min_samples_split = 5. Estymacja wyniku poza workiem (OOB) została włączona przy użyciu oob_score = True.
Naddopasowanie oceniono poprzez obliczenie różnicy między dokładnością treningu a wynikiem OOB:
overfitting_gap = training_accuracy − oob_score
Luka naddopasowania poniżej 0,05 była uznawana za oznakę dobrej generalizacji, natomiast luka większa niż 0,10 wskazywała na potrzebę zmniejszenia max_depth lub zwiększenia min_samples_split. Przy wyniku OOB 0,9296 i typowej dokładności treningu między 0,94 a 0,96, różnica wynosiła około 0,01–0,03.
Klasyfikacja ANN została również zoptymalizowana za pomocą optymalizacji roju cząstek (PSO). Architektura ANN składała się z warstwy wejściowej, jednej ukrytej warstwy z 64 neuronami korzystającymi z aktywacji ReLU oraz warstwy wyjściowej z jednym neuronem wykorzystującym aktywację sigmoidalną. PSO było inicjalizowane z 50 cząstek i 50 iteracji i służyło do optymalizacji początkowych wag sieci. Następnie ANN był trenowany przy użyciu standardowej propagacji wstecznej. Ponieważ optymalizacja PSO była wykonywana na tych samych danych treningowych bez zagnieżdżonej walidacji krzyżowej, ten komponent był traktowany ostrożnie. Do przyszłych zastosowań zalecano zagnieżdżoną walidację krzyżową, z zewnętrzną 10-krotną pętlą do oceny i wewnętrzną 10-krotną pętlą do wyboru hiperparametrów PSO. Luka uogólniająca poniżej 0,08 była uznana za akceptowalną, natomiast luka powyżej 0,15 wskazywała na potencjalne przekwalifikowanie wymagające uproszczenia modelu.
Ocena modelu
Ocena modelu została przeprowadzona za pomocą stratyfikowanej 10-krotnej walidacji krzyżowej na ostatecznym zestawie cech, Xfinal. W każdym etapie trenowano modele regresji logistycznej i lasu losowego na danych treningowych i oceniano na podstawie danych walidacyjnych. Dokładność, precyzja, przypomnienie, wynik F1 oraz ROC-AUC zostały obliczone na podstawie classification_report i roc_auc_score ze scikit-learn. Średnia i odchylenie standardowe wszystkich wskaźników były obliczane przez 10 razy.
Luka uogólnienia została również obliczona dla każdego fałdowania w następujący sposób:
generalization_gap = training_accuracy − validation_accuracy
Zgłoszono średnią lukę uogólnienia we wszystkich 10 razach. Średnia luka poniżej 0,08 była uznawana za wskazaną na minimalne naddopasowanie, natomiast luka powyżej 0,15 sugerowała naddopasowanie i potrzebę regularizacji lub zmniejszenia złożoności modelu. Testy rangi znakowej Wilcoxona zostały przeprowadzone, aby porównać proponowane ramy z metodami bazowymi w 10 razach, używając α = 0,01.
Analiza wyjaśnialności
Analiza wyjaśnialności była przeprowadzana przy użyciu metod specyficznych dla modelu i niezależnych od modelu. Dla regresji logistycznej dopasowywano ostateczny model i wyodrębniano wartości współczynników dla każdej wybranej cechy. Iloraz szans obliczono jako exp(współczynnik), a 95% przedziały ufności obliczono na podstawie standardowych błędów współczynników.
W przypadku Losowego Lasu wyniki ważności Gini zostały wyodrębnione z wytrenowanego modelu za pomocą atrybutu feature_importances_ i znormalizowane do sumy do 1. Wyjaśnienia SHAP były generowane przy użyciu biblioteki SHAP. Obiekt KernelExplainer został utworzony na podstawie wytrenowanego modelu i zestawu danych w tle, takich jak 100 losowo wybranych próbek treningowych. Wartości SHAP zostały obliczone dla wszystkich instancji w zbiorze testowym przy użyciu shap_values. Wykresy podsumowujące Beeswarm były generowane przy użyciu shap.summary_plot, a wykresy słupkowe średnich wartości bezwzględnych SHAP za pomocą shap.bar_plot.
Dla najważniejszych cech zidentyfikowanych w analizie SHAP wygenerowano wykresy częściowych zależności (PDP). Dla każdej wybranej cechy tworzono sekwencję wartości obejmującą zakres cech. Każda wartość była podstawiana do kolumny cech, przy jednoczesnym zachowaniu pozostałych cech, a średnie przewidywane prawdopodobieństwo było obliczane dla wszystkich przypadków. Wartości cech zostały narysowane względem średnich prognoz za pomocą matplotlib. Dodano przedziały ufności na poziomie 95% przy użyciu 100 iteracji bootstrap resamplowania.
Indywidualne wykresy warunkowej oczekiwania oczekiwania (ICE) były generowane dla wybranych cech poprzez wykreślanie trajektorii predykcyjnych dla poszczególnych instancji w miarę zmiany wartości cech. Linia PDP została nałożona na wykres ICE. Metody wyjaśnień porównano poprzez obliczenie korelacji rang Spearmana między wskaźnikami szans regresji logistycznej a wartościami SHAP Random Forest za pomocą scipy.stats.spearmanr. Udokumentowano rozbieżności między metodami wyjaśnień do interpretacji klinicznej. Gdy współczynniki regresji logistycznej SHAP i logistycznej kolidowały, badano PDP dla tej cechy. Jeśli PDP wykazało nieliniowy trend, wyjaśnienie SHAP było priorytetem ponad współczynnikiem regresji logistycznej, ponieważ Random Forest może uchwycić nieliniowe relacje, których modele liniowe nie potrafią.
Protokół uogólnienia ram dla walidacji zewnętrznej z wykorzystaniem MIMIC-III
Opracowano zewnętrzny protokół walidacyjny do zastosowania ram do bazy danych MIMIC-III. Dostęp do MIMIC-III wymagałby zatwierdzenia przez PhysioNet oraz ukończenia wymaganego szkolenia z badań u ludzi. Proponowana kohorta obejmowałaby dorosłych pacjentów w wieku 18 lat lub starszych z pierwszym przyjęciem na OIOM oraz kody ICD-9 410–414 dla ostrego zawału mięśnia sercowego lub kody ICD-10 I20–I25 dla choroby niedokrwiennej serca. Kryteria wykluczenia obejmują ponad 30% brakujących wartości cech docelowych, długość pobytu poniżej 24 godzin, wiek powyżej 90 lat, wcześniejsze operacje serca lub wrodzone wady serca.
Proponowanym wynikiem były poważne niepożądane zdarzenia sercowe (MACE) w ciągu 72 godzin od przyjęcia, definiowane jako złożone zgorzenie szpitalne, wstrząs kardiogenny lub arytmia komorowa wymagająca interwencji. Cechy szeregów czasowych, takie jak tętno i ciśnienie krwi, byłyby agregowane przez pierwsze 24 godziny pobytu na OIOM-ie, używając średniej, mediany, minimum, maksimum i trendu, gdzie trend oszacowany jako nachylenie regresji liniowej w czasie. Maksymalne tętno byłoby używane jako zmapowany odpowiednik thalachu.
Cechy zbioru danych Cleveland byłyby mapowane na zmienne MIMIC-III. Na przykład wzgórze zostanie przypisane do maksymalnego tętna zarejestrowanego w ciągu pierwszych 24 godzin pobytu na OIOM-ie, CP do ustrukturyzowanych ocen bólu i wzmianek o bólu w klatce piersiowej wyodrębnionych NLP, a oldpeak do odchylenia segmentu ST od raportów EKG. Tworzona byłaby tabela mapowa, która dokumentuje wszystkie wyrównania cech.
Przed zastosowaniem pełnego pipeline'u, ekstrakcja NLP oldpeak byłaby walidowana na 100 losowo wybranych raportach EKG. Precyzja, przypomnienie i wynik F1 byłyby obliczane na podstawie ręcznej adnotacji przez dwóch klinicystów. Jeśli wynik F1 był poniżej 0,85, wzorce regex były poprawiane lub alternatywnie wykorzystywano dane EKG z chartevents. Następnie powtarzano proces wstępnego przetwarzania na wyodrębnionych danych MIMIC-III, GAN byłby trenowany do ulepszeń, wybór cech hybrydowych ponownie by się zastosował, modele by się trenowały, generowały by się wyjaśnienia, a metryki wydajności porównywano z wynikami zbioru danych Cleveland.
Implementacja pulpitu klinicznego
Prototyp klinicznego dashboardu internetowego został zaprojektowany w ramach takich jak Flask lub Django. Endpointy API HL7/FHIR planowano do integracji z EHR, z uwierzytelnianiem i autoryzacją skonfigurowaną zgodnie z politykami bezpieczeństwa instytucjonalnej. Funkcje mapowania danych zostały zaprojektowane do konwersji danych EHR na format wejściowy modelu.
Interfejs użytkownika zawierał trzy główne widoki. Widok wstępnego badania pokazywał dane demograficzne pacjentów oraz obliczał oceny ryzyka z kolorowym kodowaniem poziomów ryzyka. Widok wsparcia decyzji wyświetlał wykres wodospadów SHAP pokazujący najważniejsze czynniki wpływające na konkretnego pacjenta. Widok planowania interwencji umożliwiał analizę typu "co by było gdyby" poprzez dostosowywanie modyfikowalnych czynników ryzyka i wyświetlanie aktualnych prognoz ryzyka. Wprowadzono funkcję eksportu, umożliwiającą zapisywanie raportów jako pliki PDF lub ich integrację z systemami dokumentacji EHR.
Na przyszłość kliniczne zaplanowano ocenę użyteczności dashboardu z udziałem co najmniej pięciu klinicystów. Ocena opierałaby się na Skali Użyteczności Systemu, z wynikiem docelowym powyżej 68, czasem ukończenia zadania, z redukcją celu o co najmniej 20% w porównaniu z samym użyciem EHR oraz skalami satysfakcji 5-punktowej dla jasności wyjaśnień i zaufania. Ta ocena użyteczności była planowana jako przyszły krok i nie została wdrożona w obecnym badaniu.
Access restricted. Please log in or start a trial to view this content.
Ustawienia eksperymentalne i metryki wydajności
Wszystkie eksperymenty przeprowadzono w Pythonie 3.9 przy użyciu bibliotek scikit-learn, TensorFlow i SHAP. Zastosowano warstwową walidację krzyżową 10-krotnie. Metryki oceny obejmowały Dokładność, Precyzję, Przywołanie, F1-wynik oraz ROC-AUC.
Porównanie wydajności z wybranymi metodami bazowymi
<...Access restricted. Please log in or start a trial to view this content.
Przedstawione tutaj ramy stanowią powtarzalne podejście do opracowywania interpretowalnych modeli przewidywania chorób serca. Prototyp klinicznego panelu integrującego te wyjaśnienia przedstawiono na Rysunku 4, który implementuje trzyetapowy workflow: wstępne badania, wsparcie decyzyjne za pomocą SHAP oraz planowanie interwencji [Rysunek 4 tutaj]. Kilka kluczowych kroków wymaga szczególnej uwagi, aby zapewnić pomyślne wdrożenie tego ramy.
Jak pokazano w Ta...
Access restricted. Please log in or start a trial to view this content.
Autorzy nie mają żadnych konfliktów interesów do zgłoszenia.
Autorzy wyrażają wsparcie Capital (Helwan) University oraz Arab Open University w zapewnieniu zaplecza badawczego. Badania te nie otrzymały żadnego konkretnego grantu od instytucji finansujących sektor publiczny, komercyjny ani non-profit.
Access restricted. Please log in or start a trial to view this content.
| Name | Company | Catalog Number | Comments |
|---|---|---|---|
| Zbiór danych o chorobach serca w Cleveland | Repozytorium uczenia maszynowego UCI | https://archive.ics.uci.edu/ml/datasets/heart+disease | Benchmarkowy zbiór danych o chorobach serca używany do rozwoju/oceny modeli |
| Django | Fundacja Django Software | Nie ma | Alternatywny framework webowy do implementacji dashboardu |
| fancyimpute | fancyimpute developerzy | Nie ma | Opcjonalna analiza wrażliwości imputacji MICE i KNN |
| Kolba | Projekty palet | Nie ma | Web framework do implementacji dashboardów |
| Standard API HL7/FHIR | HL7 International | Nie ma | Planowany standard integracji EHR/dashboardu |
| Keras | Deweloperzy Keras | Nie ma | API sieci neuronowych używane z TensorFlow/Keras do architektury GAN |
| matplotlib | Twórcy matplotlib | Nie ma | Biblioteka wykresów |
| Baza danych MIMIC-III | PhysioNet | https://physionet.org/content/mimiciii/1.4/ | Baza danych intensywnej opieki medycznej do planowanej zewnętrznej walidacji |
| missingno | missingno developers | Nie ma | Wizualizacja macierzy braku |
| NumPy | Deweloperzy NumPy | Nie ma | Obliczenia numeryczne |
| Pandy | Deweloperzy Pandas | Nie ma | Manipulacja danymi |
| PhysioNet | PhysioNet | https://physionet.org/ | Platforma dostępowa/źródło dla MIMIC-III |
| Python | Python Software Foundation | Nie ma | Wersja 3.9/3.9.7 |
| scikit-learn | Programiści scikit-learn | Nie ma | biblioteka uczenia maszynowego, w tym preprocessing, trenowanie modeli, walidacja krzyżowa oraz metryki |
| SciPy | Deweloperzy SciPy | Nie ma | Testy statystyczne, w tym Welch' s test t i korelacja Spearmana |
| SHAP | Deweloperzy SHAP | Nie ma | Biblioteka wyjaśnionej AI |
| Zestaw danych o chorobach serca Statlog | Repozytorium uczenia maszynowego UCI | https://archive.ics.uci.edu/ml/datasets/statlog+(serce) | Benchmarkowy zbiór danych o chorobach serca |
| TensorFlow | Nie ma | Ramy głębokiego uczenia do implementacji GAN | |
| Repozytorium uczenia maszynowego UCI | Uniwersytet Kalifornijski, Irvine | https://archive.ics.uci.edu/ | Źródło repozytorium dla zbiorów danych Cleveland i Statlog |
Request permission to reuse the text or figures of this JoVE article
Request Permission