Przetwarzanie sygnałów w systemach diagnostyki medycznej. Klasyfikacja uderzeń serca. Raport częściowy

Podobne dokumenty
1.ABSTRAKT REZULTATY I WNIOSKI PODSUMOWANIE LITERATURA...5 DODATEK C. OPIS INFORMATYCZNY PROCEDUR... 7

METODY CHEMOMETRYCZNE W IDENTYFIKACJI ŹRÓDEŁ POCHODZENIA

10. Redukcja wymiaru - metoda PCA

Automatyczna klasyfikacja zespołów QRS

CLUSTERING. Metody grupowania danych

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Elementy statystyki wielowymiarowej

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

Zastosowanie Informatyki w Medycynie

AKADEMIA GÓRNICZO-HUTNICZA im. St. Staszica w Krakowie

Pattern Classification

4.1. Wprowadzenie Podstawowe definicje Algorytm określania wartości parametrów w regresji logistycznej...74

Metody systemowe i decyzyjne w informatyce

Analiza głównych składowych- redukcja wymiaru, wykł. 12

Analiza skupień. Analiza Skupień W sztucznej inteligencji istotną rolę ogrywają algorytmy grupowania

Metody systemowe i decyzyjne w informatyce

P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H

Algorytmy klasteryzacji jako metoda dyskretyzacji w algorytmach eksploracji danych. Łukasz Przybyłek, Jakub Niwa Studenckie Koło Naukowe BRAINS

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak

SYSTEM BIOMETRYCZNY IDENTYFIKUJĄCY OSOBY NA PODSTAWIE CECH OSOBNICZYCH TWARZY. Autorzy: M. Lewicka, K. Stańczyk

Optymalizacja systemów

Porównanie generatorów liczb losowych wykorzystywanych w arkuszach kalkulacyjnych

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Usługa: Audyt kodu źródłowego

Ruch jednostajnie przyspieszony wyznaczenie przyspieszenia

Tom 6 Opis oprogramowania

Modelowanie glikemii w procesie insulinoterapii

Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych

Analiza ilościowa w przetwarzaniu równoległym

Analiza korespondencji

System wspomagania harmonogramowania przedsięwzięć budowlanych

2.2 Opis części programowej

Informacje i materiały dotyczące wykładu będą publikowane na stronie internetowej wykładowcy, m.in. prezentacje z wykładów

Analiza danych. TEMATYKA PRZEDMIOTU

Wykrywanie twarzy na zdjęciach przy pomocy kaskad

8. Neuron z ciągłą funkcją aktywacji.

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Analiza składowych głównych. Wprowadzenie

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

Lingwistyczny system definicyjny wykorzystujący korpusy tekstów oraz zasoby internetowe.

Badanie widma fali akustycznej

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H

Co to jest grupowanie

Implementacja filtru Canny ego

ANALIZA SEMANTYCZNA OBRAZU I DŹWIĘKU

Tom 6 Opis oprogramowania

ViLab- program służący do prowadzenia obliczeń charakterystyki energetycznej i sporządzania świadectw charakterystyki energetycznej

IMPLEMENTACJA SIECI NEURONOWYCH MLP Z WALIDACJĄ KRZYŻOWĄ

Metody eksploracji danych w odkrywaniu wiedzy (MED) projekt, dokumentacja końcowa

TRANSFORMACJE I JAKOŚĆ DANYCH

METODY INŻYNIERII WIEDZY

5. Analiza dyskryminacyjna: FLD, LDA, QDA

Numeryczna algebra liniowa

Algorytmy rozpoznawania obrazów. 11. Analiza skupień. dr inż. Urszula Libal. Politechnika Wrocławska

Inteligentna analiza danych

System detekcji i analizowania osobliwości w sygnale cyfrowym

Systemy uczące się Lab 4

Procesy ETL. 10maja2009. Paweł Szołtysek

Wstęp do sieci neuronowych, wykład 6 Wsteczna propagacja błędu - cz. 3

Sterowanie jakością badań i analiza statystyczna w laboratorium

REFERAT PRACY DYPLOMOWEJ

KLASYFIKACJA. Słownik języka polskiego

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Metody numeryczne. materiały do wykładu dla studentów. 7. Całkowanie numeryczne


Cykl organizacyjny le Chateliera

Przykładowe sprawozdanie. Jan Pustelnik

Spis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

PODYPLOMOWE STUDIA ZAAWANSOWANE METODY ANALIZY DANYCH I DATA MINING W BIZNESIE

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

Algorytm grupowania danych typu kwantyzacji wektorów

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Automatyczne rozpoznawanie mowy - wybrane zagadnienia / Ryszard Makowski. Wrocław, Spis treści

Zapisywanie algorytmów w języku programowania

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

Rozpoznawanie twarzy za pomocą sieci neuronowych

Algorytm grupowania danych typu kwantyzacji wektorów

Algorytm genetyczny (genetic algorithm)-

AKADEMIA GÓRNICZO-HUTNICZA im. St. Staszica w Krakowie

Analiza regresji - weryfikacja założeń

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT.

Zadania badawcze prowadzone przez Zakład Technik Programowania:

Analiza składowych głównych

W poszukiwaniu sensu w świecie widzialnym

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

Michał Strzelecki Metody przetwarzania i analizy obrazów biomedycznych (3)

Statystyka w pracy badawczej nauczyciela Wykład 4: Analiza współzależności. dr inż. Walery Susłow walery.suslow@ie.tu.koszalin.pl

Wprowadzenie do analizy korelacji i regresji

ALGORYTM RANDOM FOREST

Wykład 4: Statystyki opisowe (część 1)

Dostawa oprogramowania. Nr sprawy: ZP /15

Model referencyjny doboru narzędzi Open Source dla zarządzania wymaganiami

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

Metody systemowe i decyzyjne w informatyce

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I

Transkrypt:

Przetwarzanie sygnałów w systemach diagnostyki medycznej Klasyfikacja uderzeń serca Raport częściowy Informatyka Stosowana, rok V Autorzy: Tomasz Gabiga Rafał Rudol

1. Abstrakt Autorzy: Tomasz Gabiga, Rafał Rudol Akademia Górniczo-Hutnicza, Informatyka Stosowana Słowa kluczowe: EKG, QRS, klasyfikacja, klasy QRS, parametry morfologiczne QRS Klasyfikacja uderzeń serca w oparciu o zapis sygnału EKG jest tematem ważnym z punktu widzenia współczesnej medycyny i jednocześnie nietrywialnym pod względem automatycznej klasyfikacji komputerowej z racji pozyskiwania sygnału z organizmu biologicznego. Opisany w niniejszym raporcie projekt jest częścią systemu analizy i przetwarzania elektrokardiogramu. Klasyfikację zespołów QRS opisujących elektrokardiogram wykonano w oparciu o analizę morfologiczną. Podstawą działania systemu jest definiowanie klas dla zespołów QRS. Za pomocą algorytmu klasyfikacji zespoły QRS trafiają do klas zespołów prawidłowych oraz tych odbiegających od normy. Algorytm klasyfikacji składa się z trzech podalgorytmów wiązanych ze sobą za pomocą średniej ważonej. Podalgorytmy to kolejno: pole powierzchni załamków, wysokość względna załamków i wysokość bezwzględna załamka. Otrzymane wyniki przekazywane są do podsystemu wyznaczającego morfologię uderzeń serca.

2. Wstęp Celem projektu opisywanego w niniejszym raporcie była klasyfikacja zespołów QRS na podstawie ich cech morfologicznych. Badanie EKG rejestruje zapis akcji pracy serca pacjenta. Każde cykl pracy serca zapisywany jest jako zespół QRS. Na podstawie kształtu tych zespołów możliwe jest określenie prawidłowości rytmu pracy serca pacjenta, a co za tym idzie zdiagnozowanie ewentualnych chorób. Jak pokazuje doświadczenie, nieregularności pracy serca mogą mieć charakter sporadyczny, a tylko po ich zarejestrowaniu możliwe jest stwierdzenie rodzaju nieprawidłowości. Wychodząc naprzeciw temu zagadnieniu powstało badanie metodą Holtera, mierzące parametry pracy serca przez ok 24 godziny. Nietrudno stwierdzić, że ilość danych zebranych podczas takiego badania jest ogromna. Jak zatem wybrać spośród nich tylko te zdradzające objawy ewentualnych schorzeń? Tu z pomocą przychodzi system zrealizowany w ramach niniejszego projektu. Za pomocą klasyfikacji parametrów kształtu zespołów QRS system określa, czy prezentowany zapis pracy serca jest prawidłowy, czy też zawiera błędy.

3. Proponowane rozwiązanie 3.1. Przetwarzanie wstępne Zakłada się, że otrzymano dane zawierające punkty detekcji zespołu QRS wydzielone z sygnału wejściowego za pomocą algorytmu QRS Det. W zaproponowanym tutaj algorytmie wycina się okna czasowe wokół wcześniej wykrytych punktów czasowych o szerokości 300ms - podobne rozwiązanie wykorzystano w [2]. Tak wyznaczone zespoły QRS są ze sobą synchronizowane. W tym celu rozważone zostały dwa algorytmy: dla wszystkich zespołów QRS wyznaczane są maksima w oknie - przy prawidłowo zidentyfikowanym zespole QRS będzie to załamek R. Punkt ten będzie środkiem danego okna, na jego podstawie wszystkie inne okna "nakłada" się na siebie, optymalizacja funkcji celu będąca różnicą pól powierzchni zespołów QRS. W aplikacji planowane jest wykorzystanie pierwszego algorytmu. Drugi z nich - optymalizacja funkcji celu - jest dużo bardziej problematyczny w implementacji. Konieczna była by implementacja heurystycznego algorytmu optymalizacji oraz dokładnego całkowania numerycznego. Warto zauważyć, że przy zwiększaniu liczby zespołów QRS zwiększa się liczba wymiarów funkcji celu, co powoduje drastyczny wzrost złożoności obliczeniowej. Dlatego też opisany mechanizm został odrzucony w toku prac nad określeniem rozwiązania problemu. Należy pamiętać, że dla zapisu wielokanałowego synchronizację przeprowadza się dla wszystkich kanałów jednocześnie. Tak przygotowane fragmenty sygnałów poddawane są dalszemu przetwarzaniu. W tym kontekście problem klasyfikacji sygnałów można podzielić na dwa mniejsze zagadnienia: ekstrakcja cech - to przetwarzanie sygnału mające na celu stworzenie wektora cech dla danego okna. Stanie się ono wejściem dla następnego stopnia przetwarzania, klasteryzacja - na tym etapie dokonuje się przyporządkowania każdego z sygnałów do dokładnie jednej z k klas. Taka separacja zagadnień pozwoli na łatwą implementację rozwiązania oraz - przy późniejszej rozbudowie aplikacji - szybkie wdrożenie nowych, bardziej efektywnych algorytmów. Poniżej przedstawiono szerszy opis konkretnych rozwiązań mechanizmu ekstrakcji cech oraz klasteryzacji.

3.2. Ekstrakcja cech Pozycja literaturowa [6] przedstawia bardzo ciekawy przegląd metod ekstrakcji cech wraz oraz klasyfikacji. Przeważają tam metody bazujące na transformacji falkowej. W projekcie planuje się wykorzystanie rozwiązania zaproponowanego w pozycji [7], opierającego się na metodzie statystycznej. Schemat przetwarzania przedstawiono na rysunku 3.1. Należy przypomnieć, że przetwarzanie dotyczy tylko jednego okna otrzymanego w poprzednim kroku, a wszystkie poniższe kroki wykonuje się dla każdego z nich osobno. Obliczanie pierwszej pochodnej sygnału nie wymaga dodatkowego komentarza. Normalizację przeprowadza się dzieląc każdą dyskretną wartość sygnału w danym oknie przez wartość maksymalną z tego samego przedziału. Kwantyzację znormalizowanego sygnału przeprowadza się dla arbitralnie przyjętej wartości przedziałów. Utworzenie histogramu ze skwantyfikowanych wartości pozwoli łatwo uwypuklić statystyczne cechy sygnału. Operacja określona jako PCA oznacza nic innego jak analizę składowych głównych (ang. principal component analysis, PCA). Jest ona szeroko opisana w literaturze [8][9][10]. Celem tej metody jest ograniczenie zbioru danych wejściowych (obserwacji) przez taki obrót układu współrzędnych by zmaksymalizować wariancję w pierwszej kolejności pierwszej współrzędnej, następnie drugiej, etc. Metodę te wykorzystuje się również często w kompresji sygnałów. Z punktu widzenia implementacji algorytmu wykonanie PCA na wykonaniu przekształceń macierzowych. Po wykonaniu PCA otrzymujemy wektor cech poddawanych klasteryzacji. W języku C dość problematyczne okazało się zaimplementowanie biblioteki operacji na macierzach. Schemat przetwarzania danych w PCA przedstawiono na rysunku 2. W metodzie PCA najbardziej problematyczne jest obliczenie wartości własnych i metod własnych macierzy kowariancji. Wykorzystano tutaj algorytm zaproponowany w pozycji [13]. Jest to szeroko znana i opisywana metoda Jacobiego. Zaadoptowanie kodu podanego w książce do wykorzystania w projekcie wymagało stworzenia wrappera - osobnej funkcji tłumaczącej typy wykorzystane w projekcie na typy wykorzystane w pozycji [13]

E k s t r a k c j a c e c h Sygnał wejściowy Obliczenie pierwszej pochodnej Normalizacja i kwantyzacja Utworzenie histogramu PCA Klasteryzacja Rysunek 1: Schemat algorytmu ekstrakcji cech

Analiza głównych składowych Dane wejściowe normalizacja danych obliczenie macierzy kowariancji obliczenie wartości własnych i wektorów własnych redukcja wymiarowości danych dalsze przetwarzanie rysunek 2. schemat algorytmu PCA

3.3. Klasteryzacja Otrzymane podczas ekstrakcji cech należy zaklasyfikować do odpowiednich kategorii. Do wykonania tego zadania wybrano algorytm k-means clustering, czyli algorytm centroidów. To rozwiązanie szeroko stosowane w analizie skupień. W przypadku analizy zespołów QRS algorytm będzie umieszczał dostarczone zespoły w jednej z kilku odgórnie ustalonych klas na podstawie analizy cech wyznaczonych w poprzednim kroku. Przebieg działania algorytmu wygląda następująco: 1. Wybierane jest losowo kilka punktów startowych dla lepszej minimalizacji funkcji celu na tej podstawie wybierane będzie optymalne rozwiązanie. 2. Algorytm rozpoczyna cykliczne działanie przypasowując punkty reprezentujące wyekstrahowane cechy do jednego z ustalonych klastrów na podstawie wzajemnej odległości punktów. 3. Jeżeli średnia odległość punktów osiągnęła zakładane minimum (przypasowanie do klas nie zmienia się w kolejnych krokach) algorytm przerywa działanie. W przeciwnym razie powraca do punktu 2. Dla bezpieczeństwa warunku stopu zakłada się także maksymalny limit iteracji. 4. W oparciu o średnią odległość punktów w klasach wybierany jest najlepszy wynik (zależnie od punktu startowego). 5. Zwracane są zestawy zespołów QRS przypasowanych do konkretnych klas.

Wyekstrahowane zestawy cech Start algorytmu z kilku losowych punktów startowych K m e a n s c l u s t e r i n g Przypasowanie cech do jednego z dostępnych klastrów Weryfikacja rozwiązania kolejny krok lub zwrócenie wyników Analiza jakości rozwiązania w oparciu o wybrane punkty startowe Zwrócenie wyników Rysunek 2: Schemat algorytmu k-means clustering

3.4. Kwestie techniczne Całość algorytmów ekstrakcji cech oraz klasteryzacji zostanie napisana w języku C bez wykorzystania funkcji Windows API. Ułatwi to wykorzystanie funkcji w innych programach stworzonych dla innych systemów operacyjnych. Program bezproblemowo kompiluje i wykonuje się pod platformą UNIX z wykorzystaniem GNU Compiler. Przewiduje się wykorzystanie w implementacji wzorca projektowego odwrócenia kontroli (ang. inversion of controll, IoC). Pociągnie to za sobą konieczność stworzenia prostego kontenera wstrzykiwania zależności, lecz umożliwi łatwą zmianę konfiguracji programu bez konieczności rekompilacji - przykładowo za pomocą pliku xml. Znacznie ułatwi to późniejsze testowanie aplikacji. 4. Alternatywne rozwiązania Nie da się ukryć, że klasyfikacja zespołów QRS ze względu na ich morfologię jest problemem dobrze znanym. Powstało wiele algorytmicznych rozwiązań tego problemu. Część z nich, ze względu na wymagania pamięciowe, lub typy struktur danych była nie możliwa to implementacji w przedstawianym projekcie. Niektóre, jednak, zapewniały działanie analogiczne do wybranego sposobu opisanego powyżej. Wybór metody klasyfikacji został dokonany arbitralnie przez twórców projektu. Aby uczynić to opracowanie kompletnym, nie sposób jednak nie wspomnieć o odrzuconych metodach poznanych w trakcie analizy literaturowej. Alternatywne rozwiązania problemu klasyfikacji zespołów QRS ze względu na cechy morfologiczne: - budowa samouczącej, dwuwarstwowej sieci neuronowej. Neurony wejściowe odpowiadają cechom charakterystycznym zespołu QRS, takim jak: wartości maksymalne, pole powierzchni pod wykresem, etc. - algorytm genetyczny klasyfikujący załamki zespołu QRS działający bez nauczyciela. analiza zespołów QRS w oparciu o współczynniki kształtu. Wymaga przetworzenie sygnału na wektor cech. Możliwe jest stosowanie praktycznie dowolnych współczynników kształtu. Przykładem popularnego rozwiązania jest stosowanie współczynnika Malinowskiej.

Ilustracja 1: Wykres obrazujący wybranych reprezentantów wydzielonych klas Ilustracja 2: Działanie algorytmu kmeans++ dla przykładowych danych

Ilustracja 3: Klasa 0 - mało liczna Ilustracja 4: Klasa 1 - wyraźna charakterystyka klasyfikowanych zespołów

Ilustracja 5: Klasa 2 - wyraźnie widoczna charakterystyka poszczególnych załamków Ilustracja 6: Rozkład ilościowy elementów w poszczególnych klasach

5. Rezultaty i wnioski W toku prac nad obranym sposobem rozwiązania problemu zaimplementowano wszystkie przewidziane w założeniach składowe algorytmu. Są to kolejno: obliczenie pierwszej pochodnej przetwarzanego sygnału normalizacja kwantyzacja utworzenie histogramu dla analizowanego fragmentu sygnału wykonanie algorytmu PCA (Principal Component Analysis) wykonanie algorytmu k-means clustering dla kilku punktów startowych Dla zachowania skalowalności oraz elegancji stosowanego rozwiązania wydzielono osobne kontenery zawierające algorytmy operacji macierzowych, przekształceń liniowych oraz tworzenia map danych. Tak przygotowany mechanizm klasyfikacji zespołów QRS poddano testom. Do przeprowadzenia zautomatyzowanych testów jednostkowych użytych elementów i struktur danych zastosowano pakiet CUnit. Warto zauważyć, że dzięki zastosowaniu szeregu optymalizacji oraz wykorzystywaniu języka C czas wykonywania algorytmu jest bardzo niewielki i dla sygnału o długości 30 sekund wynosi ok. 1 sekundy. Algorytm testowano na komputerze klasy: Intel Core2Duo 1,86GHZ 4GB RAM Ponadto, do wizualizacji otrzymywanych wyników użyto prostego programu napisanego w języku Python wraz z wykorzystaniem bibliotek matplotlib. Dzięki temu uzyskano graficzną reprezentację otrzymanych przypasowań, wielkości klas oraz zakresu klas. Powyżej zamieszczono niewielką galerię obrazującą wyniki działania algorytmu. Przedstawione wykresy obrazują efektywność wybranego rozwiązania. Śmiało można stwierdzić, że algorytm dokonuje poprawnej klasyfikacji zespołów QRS pozostawiając niewielki zakres błędu. Poniżej zebrano w tabeli wyniki działania programu dla przykładowych danych.

nazwa pliku z sygnałem test/sample_data/ah_23_2/ah_23_2.dcm nazwa pliku danych referencyjnych test/sample_data/ah_23_2/qrs_attr.out liczba zespołów QRS 1121 liczba klas 14 klasa liczba zespołów reprezentant (nr próbki) 0 395 65819 1 44 105178 2 18 93140 3 71 60181 4 93 88556 5 18 9473 6 16 26333 7 27 30015 8 53 19982 9 76 23608 10 159 51746 11 22 101145 12 81 10103 13 48 66853 nazwa pliku z sygnałem test/sample_data/ah_21_1/ah_21_1.dcm nazwa pliku danych referencyjnych test/sample_data/ah_23_2/qrs_attr.out liczba zespołów QRS 1067 liczba klas 10 klasa liczba zespołów reprezentant (nr próbki) 0 395 106265 1 44 54036 2 18 6167 3 71 39370 4 93 31878 5 18 74820 6 16 92891 7 27 12785 8 53 102821 9 76 48812 10 159 74343

nazwa pliku z sygnałem test/sample_data/ah_23_1/ah_23_1.dcm nazwa pliku danych referencyjnych test/sample_data/ah_23_2/qrs_attr.out liczba zespołów QRS 4633 liczba klas 10 klasa liczba zespołów reprezentant (nr próbki) 0 1896 199626 1 161 51195 2 56 118307 3 112 138288 4 497 449237 5 652 319618 6 519 173372 7 0 29396 8 227 118697 9 91 122026 10 313 29238 nazwa pliku z sygnałem test/sample_data/ah_29_1/ah_29_1.dcm nazwa pliku danych referencyjnych test/sample_data/ah_29_1/qrs_attr.out liczba zespołów QRS 2591 liczba klas 21 klasa liczba zespołów reprezentant (nr próbki) 0 165 159586 1 9 168659 2 4 27328 3 162 171654 4 564 74967 5 165 210042 6 157 183539 7 122 209719 8 4 67766 9 75 4612 10 136 143809 11 164 172982 12 5 38821 13 254 203963 14 122 177429 15 141 194861 16 3 82680 17 18 161520 18 4 89245 19 167 3811 20 0 199283

5.1 Źródła błędów, możliwości rozwoju. Błędy w przedstawionym rozwiązaniu są niewielkie, choć ich występowanie jest w dużej mierze losowe. Są one spowodowane zastosowaniem algorytmu k-means do klasyfikacji sygnałów. Algorytm ten musi mieć określone punkty startowe jego efektywność zależy od wybrania punktu startu. Zgodnie z dostępną literaturą wybrano metodę losowego inicjowania algorytmu k-means z kilku wybranych losowo punktów startowych. To właśnie owa losowość jest przyczyną niewielkich wahań skali błędu, jakimi obarczone są zwracane wyniki. Alternatywnym rozwiązaniem do losowania punktów startowych jest mechanizm minimalizacji funkcji celu złożonej z punktów startowych podczas działania algorytmu k-means. Rozwiązanie to jest jednak obarczone dużymi nakładami algorytmicznymi a otrzymany zysk w postaci zmniejszenia błędu klasyfikacji został uznany za zbyt niewielki w stosunku do kosztów. Dlatego też postanowiono pozostać przy losowaniu punktów startowych algorytmu. Dodatkową możliwością potencjalnego ulepszenia algorytmu jest wprowadzenie sortowania tabeli tworzonej przez algorytm PCA. Jest to jednak propozycja hipotetyczna, niepoparta opisami literaturowymi dlatego też nie była weryfikowana. Możliwe jest także zupełnie inne rozwiązanie klasyfikacji zespołów QRS, zakładające wykorzystanie algorytmu Expectation-maximization algorithm. Jest to rozwiązanie równoważne dla zastosowania k-means. Podobnie istnieje także możliwość zastąpienia algorytmu PCA innym, choć podobnie działającym algorytmem LDA (Linear discriminant analysis). Oba rozwiązania są ze sobą powiązane i zawierają części wspólne. Pod względem jakościowym są porównywalne.

5.2 Dodatkowe badania Założeniem projektu był podział posiadanego sygnału na niewielką ilość klas celem ułatwienia dalszego przetwarzania. Nierozwiązaną kwestią pozostaje jednak skuteczność zastosowanego rozwiązania w przypadku podziału na dużo większą liczbę klas. Wartym zbadania wydaje się próg skuteczności działania algorytmu klasyfikacji przy sztucznym zwiększaniu ilości wyznaczanych klas, oraz granica ilościowa, przy której rozwiązanie to pozostaje skuteczne. 5.3 Wykorzystanie praktyczne Ze względu na swoją szybkość oraz niewielkie zapotrzebowanie na zasoby systemowe uznano, że zaproponowane rozwiązanie z powodzeniem można wykorzystać przy analizowaniu dużych partii zapisów EKG w przypadku, gdy konieczny jest podział analizowanego materiału na klasy ze względu na charakter morfologiczny. Ponadto warto zauważyć, że po niewielkich modyfikacjach opracowany algorytm może być z powodzeniem wykorzystywany do analizy dowolnego sygnału (nie tylko biometrycznego), w którym występuje charakterystyczny przebieg, oraz gdzie możliwe jest wydzielenie unikalnego przebiegu morfologicznego. 6. Podsumowanie Reasumując, w toku prac nad projektem klasyfikacji zespołów QRS udało się uzyskać dobry uniwersalny mechanizm klasyfikacji sygnałów ze względu na parametry morfologiczne. Otrzymane rezultaty są zadowalające i sugerują kontynuowanie prac nad zaproponowanym rozwiązaniem. W kontekście analizy literaturowej stwierdzić można, że stworzone rozwiązanie nie jest unikalne, jednak należy do jednej z najwydajniejszych implementacji istniejących algorytmów.

Bibliografia: 1. QRS Detection and Classification using Morphological and Rhythm information - A.I. Rasiah, R. Togneri and Y. Attikiouzel 2. Open Source ECG Analysis Software Documentation - Patrick S. Hamilton (E.P. Limited) 3. A Wavelet-Based Algorithm for Delineation and Classification ofwave Patterns in Continuous Holter ECG Recordings - L. Johannesen, USL. Grove, JS. Sørensen, ML. Schmidt, J-P. Couderc, C. Graff. 4. Optymalizacja wyboru reprezentacji zespołów skurczowych dla celów klasyfikacji zapisów holterowskich - Piotr Augustyniak. 5. Klasyfikacja zespołów QRS - opracowanie zbiorowe pracowników katedry Informatyki Collegium Medicum UJ. 6. ECG Feature Extraction Techniques - A Survey Approach - S.Karpagachelvi, Dr.M.Arthanari, Prof. & Head, M.Sivakumar. 7. ECG Pattern Classification Based on Generic Feature Extraction - Hee-Soo Park, Soo-Min Woo, Yang-Soo Kim, Bub-Joo Kang, Sang-Woo Ban. 8. Pattern Recognition and Machine Learning - Christopher M. Bishop. 9. An Introduction to Multivariate Statistical Analysis - T.W. Anderson. 10. Data Mining. Practical Machine Learning Tools and Techniques - Ian H. Witten, Eibe Frank. 11. http://pl.wikipedia.org/wiki/algorytm_centroid%c3%b3w 12. http://en.wikipedia.org/wiki/k-means_clustering 13. Numerical Recipes in C - William H. Press, Brian P. Flannery, Saul A. Teukolsky, and William T. Vetterling