Zastosowanie algorytmu DBSCAN do grupowania danych rozproszonych

Wielkość: px
Rozpocząć pokaz od strony:

Download "Zastosowanie algorytmu DBSCAN do grupowania danych rozproszonych"

Transkrypt

1 Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki Rok akademicki 2014/2015 PRACA DYPLOMOWA MAGISTERSKA Piotr Gumowski Zastosowanie algorytmu DBSCAN do grupowania danych rozproszonych Opiekun pracy Dr inż. Jakub Koperwas Ocena: Podpis Przewodniczącego Komisji Egzaminu Dyplomowego

2 Kierunek: Specjalność: Informatyka Inżynieria Systemów Informatycznych Data urodzenia: Data rozpoczęcia studiów: Życiorys Urodziłem się 29 czerwca 1989 roku w Grójcu. Naukę rozpocząłem w Publicznej Szkole Podstawowej im. Komisji Edukacji Narodowej w Białobrzegach, następnie uczęszczałem do Publicznego Gimnazjum a później do Liceum Ogólnokształcącego im. Armii Krajowej, również w Białobrzegach. W październiku 2008 roku rozpocząłem studia na wydziale Elektroniki i Technik Informacyjnych na kierunku Informatyka, wybierając później specjalność Inżynieria Systemów Informatycznych. We wrześniu 2012 roku uzyskałem tytuł inżyniera a w październiku rozpocząłem studia magisterskie a na tej samej uczelni. W czasie trwania studiów odbyłem praktyki a następnie pracowałem przez okres dwóch lat w firmie Capgemini zajmując się systemami CRM. Obecnie pracuję w firmie Roche jako programista Salesforce.com... Podpis studenta EGZAMIN DYPLOMOWY Złożył egzamin dyplomowy w dniu r z wynikiem... Ogólny wynik studiów:... Dodatkowe wnioski i uwagi Komisji:

3 STRESZCZENIE Celem niniejszej pracy było przedstawienie rozproszonego podejścia do grupowania danych wykorzystując w tym celu algorytm DBSCAN. Praca ta rozpoczyna się od krótkiego wprowadzenia w dziedzinę eksploracji danych a przede wszystkim w dziedzinę grupowania - zostały przedstawione najważniejsze pojęcia związane z grupowaniem danych oraz szerzej omówiony algorytm DBSCAN. W dalszej części zostało wyjaśnione dlaczego algorytmy działające na danych rozproszonych są tak ważne, jakie trudności się z nimi wiążą oraz został zaprezentowany algorytm DBDC, który wykorzystuje podejście tworzenia modeli lokalnych dla każdej rozproszonej bazy danych a następnie ich łączenie w dodatkowym etapie, jego słabe i mocne strony. Dla tego algorytmu zaproponowano także sposób radzenia sobie z klastrami, które na poziomie lokalnym traktowane są jako szum. Praca ta omawia również podejście, zakładające wstępne posortowanie danych trafiających do każdej z baz będących składową systemu, gdzie rozpatrzenia wymagają tylko punkty znajdujące się w pobliżu krańców przedziałów, korzyści z tego płynące oraz wpływ na wyniki grupowania. Dla obydwu powyższych algorytmów została zbadana jakość grupowania w odniesieniu do wyników dostarczanych przez algorytm DBSCAN uruchamiany na całości danych, bazując na wybranej mierze jakości. Ponadto został pokazany wpływ stopnia rozproszenia danych na jakość otrzymanych wyników a także zbadany procent punktów przesyłanych z lokalnych baz danych celem wykonania obliczeń globalnych. Słowa kluczowe: eksploracja danych, grupowanie, algorytm DBSCAN, rozproszony algorytm DBSCAN DBSCAN ALGORITHM IN DISTRIBUTED DATA CLUSTERING The purpose of this thesis was to present approach for distributed data clustering using the DBSCAN algorithm. This paper starts with brief introduction to the field of data mining and especially to the field of data clustering - key concepts related to data clustering were presented and DBSCAN algorithm was widely discussed. Further part of the thesis explains why algorithms working on distributed data are so important and the difficulties related to them. There was also presented DBDC algorithm, which creates local models for each data base being a part of the system and then combines them in the next step, its strengths and weaknesses. For this algorithm is also proposed a way to deal with clusters considered to be noise at local stage. This paper discuss also approach based on pre-sorted data written in each data base which is part of the system, where only points located near to border of interval need to be taken into account, the benefits and impact on clustering quality. For both above-mentioned algorithms a distributed clustering quality compared to the results from DBSCAN working on all data set was evaluated. Moreover, the number of sites impact on results quality was presented as well as percentage of local points sent to perform global analysis was examined. Keywords: data mining, clustering, DBSCAN algorithm, distributed DBSCAN

4

5 Spis treści 1. Wstęp Wprowadzenie Przegląd literatury Cel i zakres pracy Układ treści Grupowanie Zagadnienie grupowania danych Miary podobieństwa stosowane w grupowaniu Podział algorytmów grupowania Algorytm DBSCAN Algorytm DBDC Zarys problemu Opis algorytmu Budowanie modeli lokalnych Wyznaczanie modelu globalnego Aktualizacja grup danych lokalnych Wady algorytmu Propozycje usprawnień Algorytm IBDC Zarys problemu Opis algorytmu Etap lokalny Etap globalny Aktualizacja numerów grup... 56

6 5. Wykonane eksperymenty Miara podobieństwa grupowania Weryfikacja poprawności rozwiązań Zbiory danych Algorytm DBDC Aggregation Gen_without_noise Gen_with_noise c s Algorytm IBDC Aggregation Gen_without_noise Gen_with_noise c s Znajdowanie niewielkich klastrów Podsumowanie testów Badanie wydajności Podsumowanie pracy i wnioski Zawartość płyty CD Literatura... 95

7

8 Rozdział 1 Wstęp 1.1. Wprowadzenie Wraz z postępem technologicznym, upowszechnieniem się systemów informatycznych oraz rozwojem Internetu ilość generowanych danych zaczęła gwałtownie rosnąć. Dane te, mające swe źródło w nauce i medycynie, handlu, finansach, telekomunikacji oraz w wielu innych dziedzinach życia mogą kryć w sobie cenną wiedzę. Wiedza ta oczywiście mogłaby się przyczynić do rozwoju na przykład medycyny (lepsze diagnozowanie chorób) ale z całą pewnością byłaby także cenna dla wszelakich zastosowań biznesowych i ekonomicznych. Dziedzina nauki zajmująca się takim właśnie odkrywaniem wiedzy z dużych zbiorów danych nazywa się eksploracją danych (ang. data mining). Do jej rozwoju z pewnością przyczynił się spadek kosztów przechowywania danych (tańsze, bardziej pojemne i niezawodne dyski) ale także coraz to bardziej zaawansowane sposoby ich pozyskiwania np.: czytniki kodów kreskowych. Próbując zdefiniować termin eksploracja danych można powiedzieć, że jest to proces automatycznego odkrywania reguł, schematów, wzorców czy też zależności, które są jednocześnie nietrywialnie, potencjalnie przydatne oraz dotychczas nieznane. W eksploracji danych można wyróżnić kilka głównych metod. Są to: klasyfikacja, grupowanie, odnajdywanie reguł asocjacyjnych bądź wzorców sekwencji. Poniżej znajduje się ich krótki opis. Zadaniem klasyfikacji jest znalezienie modelu (lub funkcji) opisującego i rozróżniającego klasy występujące w istniejących danych tak, aby na jego podstawie można było przyporządkowywać nowe obiekty do określonej, znanej wcześniej klasy [1]. Przykładem klasyfikacji może być przyporządkowanie klienta firmy telekomunikacyjnej do danego segmentu klientów na podstawie rodzaju taryfy, średniej kwoty płaconych rachunków oraz dodatkowo wykupionych pakietów. Najpopularniejsze metody klasyfikacji to budowa drzew decyzyjnych, klasyfikacja Bayesowska oraz metoda najbliższych sąsiadów. Grupowanie zwane również klasteryzacją lub analizą skupień polega na jak najlepszym podziale zbioru dostępnych danych na pewne grupy tak aby obiekty przydzielone do jednej grupy były do siebie maksymalnie podobne oraz różniły się znacznie od obiektów 8

9 przydzielonych do innych grup [1]. Zagadnieniu grupowania będzie poświęcony kolejny rozdział. Do odkrywania związków pomiędzy występowaniem grup elementów w zbiorach danych służą reguły asocjacyjne. W bardzo wielu przykładach dotyczących reguł asocjacyjnych pojawia się przykład 'sklepowy' klienci, którzy w hipermarkecie kupują kiełbaski i pieczywo bardzo często sięgają również po musztardę bądź ketchup. Ma to pewnie związek z tym, że metoda jest często używana do odpowiedniego rozmieszczenia towarów w sklepie, bądź planowania odpowiednich akcji promocyjnych. Odkrywanie wzorców sekwencji ma za cel znalezienie zależności pomiędzy występowaniem określonych zdarzeń w czasie [2]. Przykładem takiego wzorca jest wypożyczenie z biblioteki książki 'Ogniem i mieczem'. Jeśli klient wypożyczy po pewnym czasie również 'Potop' to na tej podstawie można wnioskować, że wkrótce wypożyczy także 'Pana Wołodyjowskiego'. Odkrywanie wzorców sekwencji jest często stosowane w inwestycjach giełdowych (przewidywanie kursu akcji). Tradycyjne metody eksploracji danych wymagają pełnego dostępu do danych, które mają zostać poddane analizie. Współcześnie, coraz więcej z nich jest rozproszonych pomiędzy wiele centrów, laboratoriów i komputerów. Danych takich także bardzo często jest zbyt wiele aby przetwarzanie tylko na jednej maszynie przynosiło zadowalające rezultaty. Wiążę się to z coraz bardziej popularnym pojęciem Big Data. Big Data jest to termin odnoszący się do dużych, zmiennych oraz różnorodnych zbiorów danych, których przetwarzanie i analiza jest trudna ale też wartościowa, bowiem może prowadzić do zdobycia nowej wiedzy [3]. W epoce Big Data, chcąc dokonać klasyfikacji, grupowania bądź jakiejkolwiek innej operacji istnieje często potrzeba opracowania nowych rozwiązań i algorytmów, bądź też udoskonalania starych. W dotychczasowym podejściu do eksploracji danych w przypadku rozproszonych danych pojawia się oczywisty problem wszystkie dane te trzeba przetransmitować do jednostki bądź serwera, która ma wykonać zadaną operację. Nie stanowi to problemu, jeżeli danych nie jest zbyt wiele, bądź też użytkownicy dysponują szybkimi łączami. Jeżeli jednak danych do przesłania jest bardzo dużo skutkuje to znacznie wydłużonym czasem odpowiedzi oraz bardzo dużym obciążeniem sieci. Warto jako przykład przywołać NASA Earth Observing System (EOS). Dane z tego systemu przechowywane są w wielu, ponad tysiąc czterystu rozproszonych bazach danych, rozsianych po całym terytorium Stanów Zjednoczonych. Przy założeniu, że codziennie do jednej takiej bazy trafia kilkaset gigabajtów danych pochodzących z różnych satelitów i systemów pomiarowych widać, że wręcz niemożliwym staje się wykorzystanie tradycyjnego podejścia do zagadnienia [4]. Często bywa tak, że dane rozproszone nie mogą w ogóle zostać nigdzie przetransmitowane nawet jeżeli ich ilość na to pozwala. Jest to podyktowane ograniczeniami prawnymi dotyczącymi danych wrażliwych bądź chronionych albo po prostu względami bezpieczeństwa. Jako przykład można rozpatrzyć bank, który posiada lokalne (krajowe) dane o swoich klientach i ich transakcjach. W tradycyjnym podejściu eksploracji danych, dane te musiałyby zostać przesłane w jedno miejsce celem wykonania obliczeń, co w wielu przypadkach może być działaniem niepożądanym. Jak widać powyżej, upowszechnienie się rozproszenia danych, które miały być analizowane i monitorowane musiało pociągnąć za sobą rozwój i opracowanie algorytmów i metod, które byłyby w stanie działać na takich danych rozproszonych. Rysunki 1.1 oraz 1.2. przedstawiają schematy centralnego oraz rozproszonego podejścia do eksploracji danych, znajdujących się na wielu osobnych maszynach. 9

10 Rysunek 1.1. Podejście centralne Rysunek 1.2. Podejście rozproszone 1.2. Przegląd literatury Do tej pory zostało opracowanych wiele algorytmów z dziedziny eksploracji danych. Znaczna część przyjmuje założenie, że wszystkie dane, na których ma operować algorytm znajdują się w jednym miejscu. W celu poprawy wydajności przetwarzania dla istniejących algorytmów opracowano ich wersje równolegle a także algorytmy działające na danych rozproszonych. W dziedzinie algorytmów grupowania, również powstało wiele interesujących prac dotyczących danych rozproszonych. Jako przykład można wymienić algorytm opisany w artykule "A Data-clustering Algorithm on Distributed Memory Multiprocessors" [6], który to jest implementacją algorytmu k-środków działającą na rozproszonych danych. Również algorytmu k-środków dotyczyy algorytm przedstawiony w artykule "Fast and exact out-of-core 10

11 and distributed K-Means clustering" [7]. W tym pierwszym, każda ze stron wyznacza niezależnie, bazując na własnych danych środki klastrów a następnie przesyła je do pozostałych stron biorących udział w grupowaniu. Po otrzymaniu środków klastrów ze wszystkich baz danych a przed rozpoczęciem kolejnej iteracji, nowe środki są wyznaczane na podstawie uzyskanych danych. Dla algorytmów hierarchicznych także powstały wersje rozproszone. Przykładowo są to algorytmy pochodzące z takich prac jak: "RACHET: An Efficient Cover-Based Merging of Clustering Hierarchies from Distributed Datasets" [8] czy też " Collective, Hierarchical Clustering From Distributed, Heterogeneous Data" [9]. W algorytmach tych, globalny dendrogram jest wyznaczany na podstawie lokalnych modeli również dendrogramów, wyznaczonych przez każdą ze stron osobno. Warto wspomnieć także algorytm zaproponowany w artykule "Effective and Efficient distributed model-based clustering" [10], będący przykładem rozproszonego algorytmu opartego o konstrukcję modelu danych. Niestety, jeżeli chodzi o algorytmy gęstościowe, liczba prac jest mniejsza jedynym algorytmem dla którego zaproponowano podejście rozproszone jest DBSCAN. Nie udało mi się znaleźć rozwiązań ani dla algorytmu OPTICS ani też dla DENCLUE. W przypadku algorytmu DBSCAN najbardziej popularnym rozwiązaniem jest algorytm DBDC [5], który szerzej omówiony zostanie w rozdziale trzecim. Algorytm ten wykorzystuje podejście tworzenia modeli lokalnych i w odrębnej jednostce, na ich podstawie wyznaczanie modelu globalnego. Innymi rozproszonymi rozwiązaniami opartymi na algorytmie DBSCAN są algorytmy PENS [11]: a także algorytm opisany w artykule "A new approach for Distributed Density Based Clustering on Grid Platform" [12]. Pierwszy z nich działa w architekturze Peer-to- Peer, natomiast drugi oparty jest o technologię gridową. Mimo, że powyższe dwa algorytmy oparte są na różnych architekturach, wykorzystują podejście takie samo lub nieznacznie zmodyfikowane w stosunku do zastosowanego w algorytmie DBDC, a mianowicie budowanie modeli lokalnych oraz modelu globalnego. Ostatnimi czasy, bardzo dużą popularność zyskała platforma do równoległego przetwarzania dużych zbiorów danych MapReduce [13]. W oparciu o tę platformę powstały dwa kolejne rozwiązania bazujące na algorytmie DBSCAN algorytm MR-DBSCAN [27] oraz algorytm opisany w artykule "Efficient Map/Reduce-based DBSCAN Algorithm with Optimized Data Partition" [28]. Na MapReduce bazuje także projekt organizacji Apache Software Foundation Mahout[14], którego celem jest dostarczenie skalowalnych oraz rozproszonych implementacji algorytmów z zakresu uczenia maszynowego. Projekt ten posiada zaimplementowane algorytmy takie jak naiwny klasyfikator Bayesowski, ukryte modele markowa czy też algorytm k-środków oparty o logikę rozmytą. Niestety nie zostały zaimplementowane do tej pory algorytmy grupowania bazujące na pojęciu gęstości, co więcej Mahout powoli rezygnuje z używania MapReduce na rzecz innego projektu fundacji Apache Spark [15] Cel i zakres pracy W ramach tej pracy zostało przedstawione rozproszone podejście do grupowania danych. Zostały pokazane korzyści uzyskane dzięki zastosowaniu rozwiązań rozproszonych ale także ich wady oraz cechy na które należy zwrócić szczególną uwagę. Został wybrany algorytm DBSCAN bowiem jest on jednym z najbardziej popularnych algorytmów grupowania, potrafi znajdować klastry o różnych kształtach a nawet takie, które są otoczone w całości przez inne. Ponadto algorytm DBSCAN wykorzystuje pojęcie gęstości a nie odległości. 11

12 W tym celu został zaimplementowany algorytm DBDC zaproponowany przez trzech naukowców z Uniwersytetu w Monachium. Algorytm ten wykorzystuje przedstawione na rysunku 1.2. podejście do grupowania danych rozproszonych, mianowicie tworzenie modeli lokalnych a w dalszym kroku ich scalanie w procesie grupowania globalnego. Mimo zadowalających wyników, powyższy algorytm nie radzi sobie ze znajdowaniem małych klastrów a ponadto wymaga dokładnego i przemyślanego podania parametrów grupowania (w przeciwnym przypadku na etapie globalnym odrębne klastry mogę zostać połączone w jeden). Znalezienie sposobu na wyznaczanie grup, które są złożone z punktów będących lokalnym szumem również była celem tej pracy. Pewną alternatywą może być zaproponowane podejście zakładające, że poszczególne węzły systemu zawierają dane posortowane w ten sposób, że w każdej z baz danych znajdują się punkty z konkretnego przedziału. Rozwiązanie takie cechuje się lepszą jakością grupowania, bliską 100% jednak również wymaga odpowiedniego doboru parametrów. Celem pracy było również porównanie rozwiązań pod względem jakości dawanych wyników dla rozmaitych zbiorów danych oraz dla rozproszenia pomiędzy trzy, pięć oraz dziesięć węzłów. Została także porówna liczba transmitowanych punktów służących do wyznaczenia modelu globalnego w obydwu przypadkach Układ treści W rozdziale drugim została omówiona jedna z metod eksploracji danych jaką jest grupowanie. Zostały przedstawione wymagania mu stawiane, podział algorytmów grupowania, najbardziej popularne miary odległości, zastosowanie grupowania w realnym świecie oraz szerzej opisany algorytm DBSCAN. Rozdział trzeci zawiera wprowadzenie w dziedzinę grupowania rozproszonego przedstawia algorytm DBDC (Density Based Distributed Clustering). Zostały dokładnie omówione etapy z jakich składa się ten algorytm oraz jego wady i zalety oraz propozycje usprawnień. Kolejny, czwarty rozdział opisuje podejście do grupowania jeżeli każda baza danych zawiera dane z konkretnego określonego wcześniej przedziału. Również tutaj omówione są poszczególne lokalne i globalne etapy algorytmu. W piątym rozdziale został przedstawiony sposób w jaki wyznaczana jest jakość algorytmów działających na danych rozproszonych, użyte zbiory danych oraz same wyniki przeprowadzonych badań. Ostatni rozdział zawiera podsumowanie pracy oraz wnioski z niej płynące. 12

13 Rozdział 2 Grupowanie W tym rozdziale zostanie przedstawiona jedna z najważniejszych metod eksploracji danych jaką jest grupowanie. Ponadto, zostaną też przedstawione najczęściej stosowane miary odległości pomiędzy punktami, podział algorytmów grupowania a także zostanie szerzej omówiony algorytm DBSCAN Zagadnienie grupowania danych Grupowanie jest procesem polegającym na podziale zbioru danych wejściowych na takie grupy, wewnątrz których obiekty są do siebie maksymalnie podobne oraz różnią się znacznie od obiektów wchodzących w skład innych grup. Na rysunku 2.1 przedstawiona jest przykładowa zawartość bazy danych złożonej z obiektów będących dwuwymiarowymi punktami. Rysunek 2.2. z kolei przedstawia wynik grupowania tychże danych. Jak widać niektóre punkty leżą na tyle blisko siebie i na tyle daleko od innych punktów, że można zaobserwować pewne skupiska danych. Skupiska te (lub inaczej grupy) zostały oznaczone tym samym kolorem. Rysunek 2.1. Zawartość bazy danych Rysunek 2.2. Wynik grupowania 13

14 Bardziej formalny zapis procesu grupowania może wyglądać następująco: Dany jest zbiór X obiektów (danych wejściowych) x i, takich, że:, =1,, Grupowaniem G, nazywamy wówczas zbiór grup C: >0, = = ={,, }, takich, że: Formalnie grupowanie można potraktować jako minimalizację błędu kwantyzacji zdefiniowanego następująco [20]: =, gdzie to identyfikator odległości, m liczba elementów podlegających grupowaniu, k liczba grup do których zostaną przydzielone elementy, w ji współczynnik przynależności elementu j do wzorca i ( [0,1]) oraz v j wektor odniesienia. Ważne jest umiejętne rozróżnienie pojęć grupowania i klasyfikacji. Otóż klasyfikacja polega na przypisaniu etykiety nowemu obiektowi na podstawie znajomości etykiet istniejących danych, podczas gdy grupowanie polega na znalezieniu tychże etykiet opierając się tylko i wyłącznie na zależnościach pomiędzy danymi. Grupowanie oczywiście jest dziedziną naukową a więc jak każdej dziedzinie naukowej są mu stawiane pewne wymogi. Do najbardziej istotnych należą: Skalowalność algorytmy powinny działać nie tylko na niewielkiej ilości danych ale także radzić sobie w sytuacjach gdy tych danych będzie znacząca ilość, atrybuty będą złożone itd. Czas odpowiedzi takiego algorytmu powinien być zadowalający. Minimalna zależność od parametrów wejściowych dobry algorytm grupowania nie powinien dawać diametralnie różnych wyników dla różnych parametrów wejściowych, których liczba również powinna być minimalna. Algorytm nie powinien też być od nich zbytnio zależny. Możliwość wykrywania grup o dowolnym kształcie. Radzenie sobie z danymi zaszumionymi. Do najważniejszych zastosowań grupowania można wymienić: segmentacja bazy klientów banków, towarzystw ubezpieczeniowych, firm telekomunikacyjnych etc., grupowanie dokumentów tekstowych bądź stron internetowych na podstawie ich zawartości, rozpoznawanie obrazów, biologia - grupowanie gatunków na podstawie informacji genetycznej, medycyna - grupowanie pacjentów na podstawie objawów chorób (przykładowo identyfikacja typu depresji na podstawie towarzyszących jej objawów), 14

15 wykrywanie rozmaitych odchyleń od norm, które mogą być interpretowane jako przestępstwa w handlu elektronicznym, bądź oszustwa związane z kartami kredytowymi na przykład bardzo kosztowne zakupy w krótkim przedziale czasu Miary podobieństwa stosowane w grupowaniu Sposób, w jaki określa się podobieństwo między obiektami podlegającymi grupowaniu ma kluczowe znaczenie dla jego wyników Do jego określania używa się różnych miar podobieństwa (odległości), które to zostały omówione poniżej. Wcześniej jednak, należy podać warunki jakie musi spełniać każda z nich [1]:, ) 0, )=0, )=, ), ), )+, ), gdzie d(x,y) to odległość między obiektami x i y. Przy założeniu liczbowej wartości każdego atrybutu można zdefiniować miarę odległości a więc i podobieństwa między obiektami. Istnieje wiele miar podobieństwa. Poniżej zostały przedstawione najważniejsze z nich: Miara euklidesowa - jest prawdopodobnie najczęściej używaną i najbardziej popularną miarą odległości. Miara ta, to zwykła, geometryczna odległość w przestrzeni n-wymiarowej., )= ) Miara Manhattan (miejska) jest sumą różnicy odległości w każdym z wymiarów z osobna., )= Miara Czebyszewa maksymalna odległość spośród odległości wyznaczonych dla każdego z wymiaru z osobna., )=max Miara Minkowskiego uogólnienia miara odległości w przestrzeni euklidesowej. W przypadku gdy parametr q=1 miara ta staje się miarą Manhattan, dla q=1 miarą euklidesową, natomiast dla q= jest to miara Czebyszewa 15

16 , )= ) W pracy tej jako miara podobieństwa między obiektami będzie używana miara Euklidesowa. Ponadto, zostało przyjęte, że obiekt (punkt) podlegający grupowaniu jest reprezentowany jako wektor w przestrzeni n-wymiarowej o postaci [u 1,u 2,.u n ], gdzie u i oznacza wartość i-tej współrzędnej 2.3. Podział algorytmów grupowania Do tej pory zostało opracowanych tak wiele algorytmów grupowania, że omówienie każdego z nich nawet bardzo zwięźle jest zadaniem wręcz niemożliwym. Algorytmy te różnią się głównie sposobem przetwarzania danych, zastosowaniem, a także samą definicją pojęcia grupy. Niestety trudno dokonać pełnej klasyfikacji, bowiem wiele z algorytmów może posiadać cechy kwalifikujące do więcej niż jednej kategorii. Ogólnie, algorytmy grupowania można podzielić następująco. Algorytmy iteracyjno-optymalizacyjne są to najprostsze algorytmy grupowania takie jak k-środków (ang. k-means) lub k-median (ang. k-medoids). Ich celem jest podział zbioru n danych wejściowych na zadaną liczbę (k) grup, a więc najważniejszym parametrem algorytmów iteracyjno-optymalizacyjnych (jak i wielu innych) jest liczba grup jakie muszą zostać znalezione. Warunkiem jaki muszę spełniać wyniki algorytmów tego typu jest fakt, że każdy obiekt nawet oddalony od pozostałych musi przynależeć do jakiejś grupy. W pierwszej fazie odbywa się wstępne grupowanie obiektów dane są przypisane do pewnej grupy i jeżeli podział nie jest satysfakcjonujący następuje relokacja obiektów, czyli ich przeniesienie z jednej grupy do innej. Bardzo często uzyskanie poprawnych wyników wiąże się z wieloma iteracjami a przeszukanie całej przestrzeni możliwych sposobów podziału zbioru wejściowego na k podprzestrzeni jest praktycznie nierealizowalne. W praktyce algorytm taki jest uruchamiany kilkakrotnie dla różnych podziałów początkowych a jako wynik końcowy wybierany jest najlepszy z otrzymanych podziałów. Poniżej został ukazany przykładowy algorytm oparty na podziale algorytm k-środków. K-Means (SetOfPoints, k) Losowo wybierz k punktów będących początkowo środkami k klastrów; WHILE występują zmiany przydziału obiektów do grup DO Przypisz kaŝdy punkt do tego klastra, do którego odległość od jego środka jest najmniejsza; Uaktualnij środki klastrów w ten sposób, Ŝe środkiem jest średnia współrzędnych punktów danego klastra; END WHILE; END; //K-Means Algorytmy hierarchiczne jak sama nazwa wskazuje algorytmy hierarchiczne hierarchicznie dekomponują zadany zbiór danych. Wyróżniane są tutaj dwa podejścia: zstępujące (ang. top-down) oraz wstępujące (ang. bottom-up). W podejściu zstępującym wszystkie rozpatrywane obiekty początkowo należą do jednego klastra, który w dalszych iteracjach jest dzielony na mniejsze a te dalej na jeszcze mniejsze. Drugie podejście różni się 16

17 tym, że z początku każdy obiekt jest osobną grupą, która w dalszych iteracjach jest łączona z inną tworząc nową, większą grupę. Algorytmy hierarchiczne opierają się na pojęciu drzewa, w którym liście reprezentują poszczególne obiekty, natomiast węzły to grupy tych obiektów. Poniżej znajduje się przykładowy zapis algorytmu hierarchicznego używającego podejścia wstępującego. Bottom-Up (SetOfPoints) KaŜdemu punktowi przypisz osobny klaster; WHILE NOT Warunki końcowe DO Znajdź najbliŝszą parę klastrów i połącz ją w jeden klaster; END WHILE; END; //Bottom-Up Algorytmy te kończą swe działanie, gdy zajdą zadane warunki końcowe na przykład wymagana liczb grup albo iteracji, gdy wszystkie obiekty znajdą się w jednej grupie (wstępujące) albo gdy każdy obiekt to osobny klaster (zstępujące). Ich minusem jest fakt, że gdy jeden krok zostanie wykonany, nie może już zostać cofnięty a algorytm kontynuuje działanie. Przykładami algorytmów hierarchicznych są Chameleon oraz Birch. Algorytmy gęstościowe jest to grupa algorytmów, która obok pojęcia odległości wykorzystuje pojęcie gęstości. Główną ideą takich algorytmów jest obserwacja, że wewnątrz grup gęstość punktów jest znacznie większa niż poza nimi. Oznacza to, że dopóki liczba obiektów wokół klastra jest duża (z zadanym parametrem) klaster ten będzie się powiększał. Dużą zaletą algorytmów gęstościowych jest możliwość znajdowania grup o dowolnym kształcie, nie tylko sferycznym. Przykładowymi algorytmami z tej dziedziny są DBSCAN, OPTICS oraz DENCLUE. Algorytmy oparte o strukturę gridową (siatkową) przestrzeń obiektów jest dzielona na skończoną liczbę komórek na których wykonywany jest cały proces grupowania. Zaletą tych algorytmów jest skalowalność i możliwość działania dla dużych porcji danych. Szybkość algorytmów nie zależy od liczby danych ale od liczby komórek na jakie została podzielona przestrzeń danych. Przykładowe algorytmy to STING oraz WaveCluster. Algorytmy oparte o konstrukcję modelu danych algorytmy te zakładają pewien model danych dla każdego z klastrów a następnie przypisują do nich obiekty zgodnie z przyjętym modelem. Jednym z takich algorytmów jest algorytm COBWEB Algorytm DBSCAN Algorytm DBSCAN (ang. Density Based Spatial Clustering of Application with Noise) jak już zostało wspomniane wcześniej, jest algorytmem zaliczanym do klasy algorytmów gęstościowych. Został on zaproponowany w 1996 roku przez czterech naukowców: Martina Estera, Hansa-Petera Kriegela, Jörga Sandera oraz Xiaowei'a Xiu w pracy: "A Density-Based Algorithm for Discovering Clusters In Large Spatial Databases with Noise". DBSCAN jest jednym z najpopularniejszych oraz najczęściej cytowanych algorytmów grupowania. O jego znaczeniu świadczy fakt przyznania w 2014 roku na konferencji "20th ACM SIDKDD Conference of Knowledge Discovery and Data Mining" w Nowym Jorku nagrody "THE SIGKDD Test of Time", która jest przyznawana pracom wnoszącym znaczy wkład w rozwój metod eksploracji danych. 17

18 Do największych zalet tego algorytmu należy znajdowanie grup o różnych, nawet złożonych kształtach, nie tylko sferycznych, odnajdywanie grup otoczonych całkiem przez inne klastry (przykładowy wygląd danych wejściowych ilustruje rysunek poniżej) a także dobre radzenie sobie z danymi zaszumionymi oraz brak konieczności podawania liczby grup jakie mają zostać znalezione algorytm sam je znajdzie. Rysunek 2.3. Wyniki działania algorytmu DBSCAN 1 DBSCAN jako wejście przyjmuje dwa parametry. Pierwszy z nich to minimalna ilość punktów wymagana do utworzenia grupy oznaczany jako n lub minpts, natomiast drugi to maksymalny promień sąsiedztwa ε lub Eps. Samo sąsiedztwo (lub otoczenie) jest to zbiór punktów D leżących w odległości mniejszej bądź równiej Eps od danego punktu p i jest definiowane jako: )={ :, ) }, gdzie d(p,q) oznacza odległość między punktami p i q. Poniżej znajduje się lista podstawowych pojęć związanych z algorytmem DBSCAN. Rdzeń (ang. core point) punkt p spełniający warunek taki, że w jego epsilonowym sąsiedztwie znajduje się co najmniej minpts punktów. ) Punkt graniczny (ang. border point) punkt, który nie jest rdzeniem ale jest osiągalny z innego rdzenia. Stwierdzenie, że jeden punkt jest osiągalny z innego punktu zostało wyjaśnione w dalszej części. 1 Przedstawiony zbiór danych został zaprezentowany w artykule [21] 18

19 Rysunek 2.4. Rdzeń (p), punkt graniczny (q) oraz szum (r) Bezpośrednia osiągalność (ang. directly density-reachable) punkt p jest bezpośrednio osiągalny z punktu q jeśli: ) punkt p leży w epsilonowym sąsiedztwie punktu q ) punkt q jest rdzeniem Osiągalność punktu (ang. density-reachable)- punkt p jest osiągalny z punktu q wtedy, jeśli istnieje taki zbiór punktów p 1 p n, p 1 =q, p n =p oraz każdy punkt p i+1 jest bezpośrednio osiągalny z punktu p i. Rysunek 2.5. Osiągalność punktów q i r Gęstościowe połączenie (ang. density-connected)- punkt r jest gęstościowo połączony z punktem q, jeżeli istnieje taki punkt p, że obydwa punkty r i q są z niego osiągalne. Rysunek 2.6. Gęstościowe połączenie punktów q i r 19

20 Grupa, klaster (ang. cluster) grupą nazywa się taki podzbiór wszystkich rozpatrywanych punktów, spełniający następujące warunki: Jeżeli punkt p należy do grupy a punkt q jest z niego osiągalny, to punkt q również należy do tej grupy. Jeżeli dwa punkty należą do tej samej grupy, to są one gęstościowo połączone. Szum (ang. noise) jest to podzbiór wszystkich punktów z bazy danych nie należący do żadnej znalezionej grupy. Przykładowy punkt będący szumem został przedstawiony na rysunku 2.4. Poniżej został przedstawiony zapis algorytmu DBSCAN w pseudokodzie pochodzący z artykułu [17] a w dalszej części znajduje się jego bardziej dokładny opis: DBSCAN(SetOfPoints, Eps, MinPts) //SetOfPoints is UNCLASSIFIED ClusterId := nextid(noise); FOR i FROM 1 TO SetOfPoints.size DO Point := SetOfPoints.get(i); IF Point.CiId = UNCLASSIFIED THEN IF ExpandCluster(SetOfPoints,Point,ClusterId,Eps,MinPts) THEN ClusterId := nextid(clusterid); END IF; END IF; END FOR; END; // DBSCAN ExpandCluster(SetOfPoints,Point,ClId,Eps,MinPts) : Boolean seeds :=SetOfPoints.regionQuery(Point,Eps); IF seeds.size<minpts THEN //no core point SetOfPoints.changeClId(Point,NOISE); RETURN False; ELSE //all points in seeds are density-reachable from Point SetOfpoints.changeCiIds(seeds,ClId); seeds.delete(point) WHILE seeds <> Empty DO currentp := seeds.first(); result := setofpoints.regionquery(currentp,eps); IF result.size >= MinPts THEN FOR i FROM 1 TO result.size DO resultp := result.get(i); IF resultp.clid IN (UNCLASSIFIED, NOISE} THEN IF resultp.clid = UNCLASSIFIED THEN seeds.append(resultp) END IF; SetOfPoints.changeCiId(resultP, ClId) END IF; //UNCLASSIFIED or NOISE END FOR; END IF; //result.size >= MinPts Seeds.delete(currentP) END WHILE; //seeds <> Empty RETURN True ; END IF END; //ExpandCluster Algorytm DBSCAN po kolei przegląda wszystkie nieodwiedzone (unclassified) jeszcze punkty. Dla każdego z nich w metodzie expandcluster() sprawdzana jest liczba wszystkich punktów znajdujących się w jego otoczeniu. Jeżeli liczba takich punktów jest mniejsza niż 20

21 parametr minpts dany punkt jest tymczasowo oznaczany jako szum a algorytm bierze kolejny z nierozpatrywanych jeszcze punktów. W przeciwnym wypadku tworzona jest nowa grupa składająca się początkowo z punktów z otoczenia bieżącego rdzenia (zbiór seeds). Dla każdego punktu należącego do zbioru seeds sprawdzana jest ilość sąsiadów. Jeżeli liczba ta jest większa bądź równa minpts wszystkie nieodwiedzone wcześniej punkty z sąsiedztwa rozpatrywanego punktu są dołączane do zbioru seeds a więc klaster jest rozszerzany. Jeżeli w takim sąsiedztwie znajdą się punkty wcześniej oznaczone jako szum zostaną one dodane do klastra. Jego rozszerzanie kończy się w momencie gdy wszystkie punkty ze zbioru seeds zostaną zbadane. DBSCAN oprócz zalet posiada także wady. Algorytm ten nie jest do końca deterministyczny jego wyniki zależą od kolejności w jakiej przeglądane są dane. Punkt graniczny, który jest już przypisany do jednej grupy może później znaleźć się w innej jeżeli leży dostatecznie niej blisko - zostało to zobrazowane na rysunku 2.7. Rysunek 2.7. Przykład ilustrujący brak pełnej deterministyczności algorytmu DBSCAN Jeżeli przez algorytm jako pierwszy z pary punktów D i F zostanie rozpatrzony punkt D, wówczas punkt E (żółty) leżący w jego otoczeniu zostanie przypisany do grupy "czerwonej". Następnie przy rozpatrywaniu punktu F, wszystkie punkty z jego otoczenia znajdą się w tej samej grupie do której należy F, a więc punkt E zostanie zabrany do grupy "zielonej". Odwrotna sytuacja będzie miała miejsce jeżeli pierwszy zostanie wzięty punkt F wtedy w wyniku grupowania punkt E będzie "czerwony". Sytuacja ta na szczęście nie jest częsta a co najważniejsze nie ma dużego wpływu na wyniki grupowania. 21

22 Rozdział 3 Algorytm DBDC Niekiedy liczba danych jakie należy przetworzyć jest na tyle duża, że pojedyncza maszyna nawet jeżeli jest wysokiej klasy może sobie nie dać z nimi rady. Jednym z rozwiązań jest zrównoleglenie obliczeń. Dzięki wykorzystaniu mocy obliczeniowej kilku lub kilkunastu procesorów, czas potrzebny na wykonanie algorytmów może znacząco zmaleć. Podejście takie mimo, że początkowo może wydawać się proste, w rzeczywistości takim może nie być. Algorytmy, który były zaprojektowane do operowania na danych pochodzących z jednego źródła, często bardzo trudno jest zrównoleglić. Wymaga to odpowiedniej dekompozycji zadań, podziału danych wejściowych oraz zapewnienia synchronizacji, komunikacji oraz równomiernego obciążenia wszystkich jednostek obliczeniowych. Współcześnie coraz częściej dane nie znajdują się w jednym miejscu ale są rozproszone w wielu bazach danych znajdujących się w różnych miejscach na świecie. Podejście w którym dane z każdej bazy przetwarzane są z osobna a uzyskane wyniki lokalne są łączone w jeden wspólny model również może okazać się bardziej skomplikowane. W takiej sytuacji zachodzi konieczność opracowania algorytmów operujących na takich niepełnych danych tak aby uzyskane wyniki charakteryzowały się jak największą jakością, być może nawet porównywalną z jakością algorytmu który operowałby na całości danych. Jak można zauważyć powyższe dwa podejścia są do siebie bardzo podobne w obydwu z nich obliczenia prowadzone są równolegle a na koniec, wyniki muszą tworzyć jeden wspólny model. Pomimo widocznego podobieństwa warto w tym miejscu wskazać różnicę pomiędzy algorytmem równoległym a rozproszonym. Algorytm równoległy dane znajdują się w jednym miejscu. Na początku powinny zostać odpowiednio rozdzielone i przypisane do odpowiednich węzłów, które dane te przetworzą niezależnie. W ostatnim kroku wyniki zwrócone przez poszczególne jednostki powinny zostać odpowiednio złączone (scalone). Algorytm rozproszony dane rozproszone pomiędzy wiele niezależnych baz danych. Również tutaj występuje etap przetwarzania równoległego skoro system jest złożony z pewnej liczby osobnych węzłów przechowujących dane, poszczególne jednostki mogą przetwarzać swoje dane równolegle. Po tym etapie również konieczny jest proces scalenia cząstkowych danych. Konieczność poradzenia sobie z ogromem danych a także z ich rozproszeniem skutkowała opracowaniem wielu równoległych oraz rozproszonych algorytmów eksploracji danych. 22

23 Rozproszona eksploracja danych (ang. Distributed data mining, DDM) jest dziedziną, która powstała stosunkowo niedawno, a która szczególną wagę przykłada do eksploracji danych ze źródeł rozproszonych biorąc pod uwagę także problemy takie jak koszta transmisji danych etc. W literaturze dotyczącej DDM można znaleźć dwa podejścia co do sposobu rozproszenia danych: podejście homogeniczne oraz heterogeniczne[18]. podejście homogeniczne dane są podzielone horyzontalnie to znaczy, że każda baza danych zawiera te same atrybuty (kolumny) ale różne rekordy danych. podejście heterogeniczne dane są podzielone wertykalnie, co można sobie wyobrazić jako podzielenie jednej dużej tabeli 'pionowo' tak, że rozproszona tabela zawiera różne atrybuty (kolumny) dla tych samych (o tym samym identyfikatorze) wierszy danych. Ważne jest aby odpowiednie wiersze posiadały taki sam identyfikator pozwalający na właściwe powiązanie danych. Podejścia homogeniczne oraz heterogeniczne zostały przedstawione na poniższych rysunkach. W dalszej części pracy przyjęte zostało założenie, że dane w każdej z baz są homogeniczne. Nazwisko Typ Specjalność Miasto Nowacki Lekarz Reumatologia Poznań Kowalczyk Lekarz - Poznań Radomska Pielęgniarka - Warszawa Nazwisko Typ Specjalność Miasto Cieślik Lekarz Neurologia Gdańsk Grodecka Pielęgniarka - Poznań Zieliński Aptekarz - Gdańsk Tabele Przykład podejścia homogenicznego ID Nazwisko Typ Specjalność Miasto 1452 Nowacki Lekarz Reumatologia Poznań 1129 Kowalczyk Lekarz - Poznań 1517 Radomska Pielęgniarka - Warszawa ID Data ur. Tytuł Prof Tabele Przykład podejścia heterogenicznego Większość algorytmów rozproszonej eksploracji danych opiera się na następującym schemacie [19]: Wykonanie obliczeń na lokalnych danych i na tej podstawie wygenerowanie modelu przez każdy węzeł systemu. Przesłanie lokalnych modeli do węzła centralnego celem wyznaczenia modelu globalnego 23

24 Na podstawie zebranych danych z lokalnych baz wyznaczenie globalnego modelu Aktualizacja danych na podstawie modelu globalnego w każdej ze stron systemu W tym rozdziale zostanie zaprezentowany algorytm DBDC operujący na rozproszonych danych wykorzystujący zaprezentowane powyżej podejście z wyznaczaniem lokalnych modeli, zaproponowany, jak to zostało wspomniane we wstępie do pracy, przez trzech naukowców z Monachium Eshrefa Januzaja, Hansa Petera Kriegla oraz Martina Pfeifle w 2004 roku. W następnym rozdziale zaś zostanie także przedstawiony algorytm działający na danych rozproszonych, jednak przy założeniu, że są one wstępnie umieszczone w każdej z baz, to znaczy, każda rozproszona baza zawiera dane z pewnego zakresu wszystkich danych Zarys problemu Algorytm przedstawiony w tym rozdziale wykorzystuje podejście konstruowania modeli lokalnych dla każdej z rozproszonych stron a następnie budowania modelu globalnego dla wszystkich danych na podstawie otrzymanych lokalnych modeli. Ogólny schemat takiego algorytmu został zaprezentowany na rysunku poniżej: Rysunek 3.1. Schemat algorytmu Dalej, w tym podrozdziale został przedstawiony główny problem jaki pojawia się przy konieczności grupowania rozproszonych danych. Na rysunkach ( ) zostały pokazane punkty znajdujące się w każdej z trzech baz danych, wchodzących w skład rozproszonego systemu. 24

25 Rysunki Zawartość poszczególnych baz danych Jak widać na rysunkach każda baza zawiera pewną ilość różnych punktów. Najważniejsze pytanie które użytkownicy takiego systemu sobie zadają brzmi: do jakich grup należałyby zawarte w lokalnej bazie danych punkty, biorąc pod uwagę dane nie tylko 'własne' ale z całego systemu? Odpowiedź na to pytanie została przedstawiona na rysunku 3.8 Niestety, uzyskanie takiego rezultatu może być zadaniem trudnym a wyniki grupowania na danych lokalnych mogą w mniejszym lub większym stopniu odbiegać od rzeczywistości, co też zostało zobrazowane na rysunkach

26 Rysunki Lokalne wyniki grupowań Rysunek 3.8. Oczekiwany rezultat grupowania Uruchamiając dla każdego zbioru danych niezależnie algorytm DBSCAN udaje się oczywiście znaleźć kilka grup (są one zaznaczone na rysunkach ). Niestety wyniki te 26

27 są dalekie od rzeczywistych bowiem, na pierwszy rzut oka można dostrzec, że kilka grup znalezionych lokalnie w rzeczywistości tworzy jeden większy klaster. Podobnie punkty uznane lokalnie za szum, w rzeczywistości należą do jakiegoś klastra. Celem dobrego algorytmu rozproszonego byłyby wynik przypisujący dwóm podobnym punktom taki sam numer grupy mimo ich faktycznej przynależności do różnych baz danych Opis algorytmu Algorytm przedstawiony w tym rozdziale składa się z dwóch etapów: grupowanie lokalne każda lokalna baza danych wykorzystując algorytm DBSCAN dokonuje grupowania swoich danych niezależnie od pozostałych. Warto zauważyć, że przetwarzanie takie może być wykonywane równolegle, choć nie musi. grupowanie globalne grupowanie, również przy użyciu algorytmu DBSCAN wybranych punktów ze wszystkich baz lokalnych najlepiej charakteryzujących zawartość każdej z tych baz. Pierwszy etap algorytmu polega na wykonaniu grupowania osobno dla punktów z każdej bazy danych. Oczywisty jest fakt, że znalezione na etapie grupowania lokalnego grupy, uwzględniając punkty z innych baz danych mogą okazać się fragmentami większych, rozproszonych skupisk danych. Z tego powodu bardzo istotnym krokiem pomiędzy etapem lokalnym a globalnym jest taki dobór punktów, który będzie jak dokładniej odwzorowywał zawartość swojej bazy a przy tym zachowa rozsądne rozmiary. Zbiór takich punktów nazywany będzie dalej modelem lokalnym. Mając tak zdefiniowany model dla każdej z baz niezależnie, kolejnym krokiem jest etap grupowania globalnego. Celem tego etapu jest sprawdzenie czy mniejsze, lokalne klastry są w rzeczywistości częścią większego klastra, rozproszonego pomiędzy kilka baz. Oczywiście pozostaje jeszcze etap aktualizacji grup. Jeżeli lokalny klaster jest fragmentem większego, globalnego, należy taką informację przesłać z powrotem do odpowiedniego węzła oraz przypisać wskazanym punktom znaleziony nowy, globalny numer grupy. Co więcej, należy też ponownie rozpatrzyć punkty, które na etapie grupowania lokalnego były zakwalifikowane jako szum czy być może nie są faktycznie częścią jakiegoś klastra znajdującego się w innej bazie danych. Biorąc pod uwagę powyższe rozważania można wspomniane wcześniej dwa etapy zastąpić czterema: grupowanie lokalne stworzenie odpowiedniego modelu lokalnego grupowanie globalne na podstawie danych z modeli lokalnych aktualizacja grup (przypisanie wszystkim punktom globalnych numerów grup) Jako, że etap grupowania jest stosunkowo prosty (wykorzystywany jest tutaj standardowy algorytm DBSCAN) w dalszej części pracy zostanie omówiony sposób wyznaczania modeli lokalnych oraz modelu globalnego a także sposób uaktualniania grup danych lokalnych Budowanie modeli lokalnych Po dokonaniu grupowania algorytmem DBSCAN, a więc mając już znalezione wszystkie grupy danych oraz punkty będące szumem można przystąpić do etapu wyznaczania modelu lokalnego. Jak to zostało wcześniej wspomniane modelem lokalnym jest pewien zbiór 27

28 punktów z lokalnej bazy danych, który jak najdokładniej odzwierciedla rozkład oraz kształt znalezionych grup a także zachowuje rozsądny rozmiar w stosunku do rozmiaru wszystkich lokalnych danych. Wszystkie takie wyznaczone modele lokalne zostaną później rozpatrzone przez węzeł centralny i to na nich zostanie wykonane grupowanie globalne. W tym podrozdziale zostanie przedstawione jak taki lokalny model danych skonstruować, co powinien zawierać oraz jaka będzie jego użyteczność w dalszej części. Załóżmy, że wynik grupowania jednej z baz danych wygląda następująco: Rysunek 3.9. Przykładowy wynik grupowania lokalnych danych Jak widać na rysunku, zostało znalezionych pięć grup. Brak jest jednak pewności, że: uwzględniając punkty z innych baz danych dwie lub więcej lokalne grupy są w rzeczywistości częścią jednej większej (na przykład grupy niebieska, zielona i czerwona to w rzeczywistości jedna grupa a "brakujące" punkty pomiędzy nimi znajdują się w kolejnej bazie danych. znaleziona grupa jest tylko fragmentem większej grupy składającej się też z punktów z innych baz punkty oznaczone jako szum (na rysunku jako znaki "x") w rzeczywistości należą do jakiejś grupy. Aby uzyskać jak najdokładniejszy rezultat grupowania oczywiście najlepiej byłoby rozpatrzyć wszystkie punkty ze wszystkich baz danych równocześnie (a więc przesłać je do węzła centralnego) co oczywiście nie jest dopuszczalne. Celem jest więc taki wybór punktów aby możliwie jak najdokładniej reprezentował wyniki grupowania lokalnego. Nietrudno zauważyć, że zbiór taki im będzie większy, tym bardziej dokładne wyniki zostaną uzyskane podczas grupowania globalnego, jednakże zbyt duży zbiór będzie miał oczywiście negatywny wpływ na wydajność a co bez wątpienia również jest istotną kwestią. Oczywiście zamiast przesyłać wszystkie punkty z danej bazy danych można przesłać na przykład te, które wchodzą w skład jakichś grup i w węźle centralnym próbować na takich danych dokonać grupowania globalnego. Niestety, rozwiązanie to sprawdzi się tylko w przypadkach, gdzie większość danych stanowi szum. Znacznie częściej w wyniku grupowania większość obiektów wchodzi w skład jakichś grup a szum jest rzadkością (celem grupowania jest przecież znajdowanie grup a nie szumu) a więc koniecznością było przesłanie znacznej liczby punktów. Można to zauważyć również na 28

29 rysunku 3.9, gdzie tylko kilka punków stanowi szum a większość należy do znalezionych grup. Widać więc, że podejście takie jest bezcelowe. Innym pomysłem jest wybór tylko rdzeni, jako, że dosyć dobrze odzwierciedlają one znalezione grupy. Niestety również tutaj występuje podobny problem w szczególnie gęstych rejonach a także jeśli parametr minpts nie jest zbyt duży, obok siebie może znajdować się bardzo wiele punktów będących rdzeniami. Sytuacja taka oczywiście zapewni doskonałą dokładność i dobrze odzwierciedli kształt grup danych ale spowoduje też spory narzut obliczeniowy. W skrajnych przypadkach jeżeli Eps jest duży wszystkie punkty klastra, nawet te leżące na jego obrzeżach mogą być rdzeniami co prowadzi do wcześniej opisywanej sytuacji. Przykład ten dobrze ilustruje rysunek zakładając, że wszystkie punkty poniżej to rdzenie, w samym tylko otoczeniu punktu A jest ich dosyć dużo a więc rozpatrywanie ich wszystkich mija się z celem. Rysunek Gęstość rdzeni w swoim otoczeniu Rozważania na temat wyboru odpowiedniego zbioru punktów charakteryzującego dane grupy a wiec tworzącego model lokalnego rozpoczęły się od rozpatrzenia trywialnego zbioru zbioru zawierającego wszystkie punkty. Potem jedynie te punkty, wchodzące w skład znalezionych grup a dalej, zawężając ten zbiór jeszcze bardziej do punktów będących rdzeniami, co również nie jest w żadnej mierze satysfakcjonujące. W tym miejscu chciałbym się skupić na sposobie wyboru odpowiedniego zbioru punktów (zbioru reprezentantów) charakteryzującego lokalne grupy a więc determinującego lokalny model obliczeń. Jak to zostało wcześniej wspomniane rdzenie to punkty, które dosyć dobrze odzwierciedlają tworzone grupy, jednak jest ich zbyt dużo aby zastosowanie ich jako model lokalny mogło być użyteczne (rys ), dlatego pożądany jest zbiór o wiele mniej liczny ale o podobnej skuteczności. Można zauważyć że jeżeli jakiś rdzeń zawiera w swoim otoczeniu inne takie punkty, jak to widać na rysunku 3.10., do dalszych obliczeń wystarczy wybrać tylko jeden z nich. Idąc dalej tym rozumowaniem obszar grupy można dosyć dokładnie pokryć takimi punktami (nazwijmy je punktami reprezentującymi). Punkty takie charakteryzują się tym, że: każdy z nich jest rdzeniem: : w epsilonowym otoczeniu takiego punktu nie może się znaleźć inny punkt reprezentujący:, : ) 29

30 każdy rdzeń musi znajdować się w otoczeniu jakiegoś punktu reprezentującego: : ) gdzie Core c, Rep c, to odpowiednio zbiory wszystkich rdzeni oraz wszystkich punktów reprezentujących dla danego klastra C. To, że punkty reprezentacyjne dobrze odzwierciedlają rozkład danych pokazują dwa poniższe rysunki. Co bardzo ważne ich liczba jest też o wiele mniejsza niż liczba punktów, które są rdzeniami. Przykładowa baza danych z rysunku 3.9 jest złożona z 446 punktów. Liczba rdzeni wynosi 368 wszystkich punktów (82%), natomiast liczba punktów reprezentujących to 55. Stanowi to tylko 12% wszystkich danych z bazy a więc jest to wynik bardzo zadowalający. Rysunek Rdzenie Rysunek Zbiór punktów reprezentujących 30

31 Jak to było wcześniej wspomniane, że punkty reprezentujące to rdzenie, które nie mogą znaleźć się w swoim sąsiedztwie. Zostało to przedstawione na poniższym rysunku: Rysunek Punkty reprezentujące Jak widać, jako punkty reprezentujące mogą zostać wybrane punkty A oraz C, albowiem nie leżą one w swoim otoczeniu albo punkt B. Jeżeli jako reprezentant zostanie wybrany punkt A, nie może nim być B, bo obydwa punkty leżą w swoim sąsiedztwie (ani w ogóle żaden inny rdzeń leżący w otoczeniu A). Natomiast jeżeli jako pierwszy zostanie odwiedzony punkt B, wówczas punkt A nie może być punktem reprezentującym, natomiast punkt C wciąż może nim zostać (nie leży w otoczeniu B). Zbiór punktów reprezentujących jest niedeterministyczny. Oznacza, to że w zależności od tego od jakiego punktu rozpocznie się przeglądanie, mogą być wyznaczone różne zbiory punktów reprezentujących (mogą to być zbiory zawierające między innymi punkty A i C albo punkt B).. Mając wyznaczone punkty reprezentujące tworzące model lokalny potrzebna jest informacja jakie inne punkty taki punkt reprezentuje. Jest to niezbędne podczas etapu aktualizacji grup, kiedy każdy punkt reprezentujący ma przypisany już globalny numer grupy. Zachodzi wówczas potrzeba przypisania tego numeru do pozostałych punktów z lokalnej bazy danych, niewchodzących w skład modelu lokalnego. Opieranie się tutaj tylko na wartości parametru ε jest niewystarczające, co zostało pokazane poniżej. 31

32 Rysunek Wyznaczanie wartości ε Rep. Rysunek ten jest bardzo podobny do poprzedniego jeżeli punkt A zostanie wybrany reprezentantem, wówczas nie mogą nim zostać ani B ani D (leżą w otoczeniu A). Punkt A reprezentuje punkty w swoim otoczeniu (czerwone) co oznacza, że punktom tym zostanie przypisany globalny numer klastra taki sam jaki ma A. Niestety, zielone punkty leżące w otoczeniu B i D, nie leżą w otoczeniu A więc nie zostanie im przypisany globalny numer grupy, mimo iż na poziomie lokalnym należą do tego samego klastra. Aby sprostać temu wyzwaniu należy znaleźć metodę pozwalającą reprezentować nie tylko punkty we własnym otoczeniu ale również punkty z otoczenia wszystkich rdzeni reprezentowanych przez dany punkt reprezentujący. Osiągnąć to można wprowadzając nową wartość ε Rep, która określa promień w jakim wszystkie punkty są reprezentowane przez dany punkt reprezentacyjny. Wartość ta musi wynosić tyle aby wszystkie punkty z sąsiedztwa rdzeni leżących w otoczeniu punktu reprezentującego mogły być przez niego reprezentowane. Wynika z tego, że ε Rep równe jest wartości ε powiększonej o odległość do najbardziej oddalonego rdzenia z otoczenia punktu reprezentującego. W przypadku z rysunku (załóżmy, że rozpatrujemy tylko B i D) wartość ta będzie wynosić: = +, ) (bowiem,, ) >, )). Ogólnie więc wartość ε Rep wynosi: = +max, ), ) Jak to było wcześniej wspomniane, wartość ε Rep jest bardzo istotna w procesie aktualizacji grup po etapie grupowania globalnego. W tym momencie udało się znaleźć taki zbiór danych będący modelem lokalnym. Podsumowując, lokalny model danych jest to zbiór punktów reprezentujących, spełniających warunki jak powyżej, wraz z przypisanymi każdemu z nich wartościami ε Rep. 32

33 3.4. Wyznaczanie modelu globalnego W poprzednim podrozdziale został przedstawiony sposób wyznaczania lokalnego modelu dla każdej rozproszonej bazy danych. Model ten jak wspomniano składa się z punktów reprezentujących wraz przypisanymi im wartościami ε Rep. W kolejnym kroku wyznaczony model lokalny jest przesyłany do centralnego węzła, gdzie razem z innymi modelami lokalnymi jest wykorzystywany w procesie grupowania globalnego. Zadaniem grupowania globalnego jest możliwie jak najdokładniejsze znalezienie grup jakie tworzą wszystkie dane opierając się na dostarczonych lokalnych modelach z każdej bazy. Aby tego dokonać należy w etapie tym sprawdzić czy istnieje możliwość połączenia ze sobą dwóch lub większej ilości lokalnych klastrów, tak aby tworzyły jedną dużą grupę. Zostało to pokazane na rysunkach i Rysunek Modele lokalne pochodzące z dwóch baz danych Rysunek Dane po procesie grupowania globalnego 33

34 Powyżej widać, że w procesie grupowania globalnego biorą udział dane zebrane z dwóch baz danych, oznaczone odpowiednio kolorami niebieskim i brązowym. Można zauważyć, że dwa klastry z bazy 1 po uwzględnieniu danych z bazy 2. należą do jednego dużego klastra oznaczonego kolorem niebieskim na rysunku Widać także, że niektóre z grup lokalnych są tak naprawdę częściami większych klastrów. Grupowanie globalne jest również wykonywane za pomocą algorytmu DBSCAN. Punktami na których to grupowanie będzie wykonane są punkty wchodzące w skład modeli lokalnych z każdej bazy danych biorącej udział w rozproszonym procesie grupowania (rysunki 3.15., 3.16). Kwestią, która wymaga w tym miejscu dodatkowego komentarza jest odpowiedni dobór parametrów tego algorytmu minpts g oraz ε g oznaczające odpowiednio minimalną liczbę punktów dla grupowania globalnego oraz wartość epsilon dla tegoż grupowania. Nie jest niczym odkrywczym, że użycie parametrów takich jak w grupowaniu lokalnym nie przyniesie oczekiwanych rezultatów. Wiedząc, że jeden punkt reprezentujący jest przedstawicielem innych punktów ze swojej macierzystej bazy danych można próbować wnioskować o wartości parametru minpts g. Skoro dwa punkty reprezentacyjne z różnych baz danych leżą w swoim otoczeniu, oznacza to, że wchodzą w skład tego samego klastra globalnego. Wartość minpts g powinna więc wynosić dwa wystarczy złączyć dwa takie punkty, co oznacza połączenie dwóch lokalnych grup w jedną większą. Niestety znalezienie odpowiedniej wartości ε g jest trudniejsze. Jak wiadomo punkty reprezentacyjne reprezentują pewne zbiory punktów i leżą w większej odległości od siebie niż ε, dlatego też wartość ε g powinna być większa niż ε (przyjęcie wartości mniejszej może spowodować, że niektóre większe klastry, składające się z mniejszych, reprezentowanych przez punkty pochodzące z różnych baz nie zostaną poprawnie znalezione). Z drugiej strony wiadomo, że wartość ε Rep przypisana do danego punktu reprezentującego jest niewiększa niż dwukrotność ε, a zatem przyjęcie większej wartości dla ε g spowoduje, że w jeden mogą zostać scalone klastry lokalne, które w rzeczywistości tworzą różne grupy. Rozważania te prowadzą do wniosku, że wartość parametru ε g powinna być nie większa niż dwukrotność ε oraz niemniejsza niż ε a więc:,2 ), gdzie to wartość ε z grupowania lokalnego. Najlepszym rozwiązaniem wydaje się dobór tego parametru przez użytkownika na podstawie wartości pochodzących z modeli lokalnych. Jeśli wartości te są niewielkie to i parametr powinien nie być duży. Podobnie jeżeli wartości są duże to odpowiednio dobrany powinien zostać Aktualizacja grup danych lokalnych Po zakończeniu etapu grupowania globalnego wyznaczony model globalny a więc wszystkie punkty reprezentujące wraz z ich globalnymi numerami grup jest transmitowany do każdej lokalnej bazy danych. Ostatnim etapem jest teraz przypisanie nowego, globalnego numeru grupy wszystkim danym zawartym w poszczególnych bazach. Polega to na przypisaniu każdemu punktowi numeru klastra jaki ma najbliższy mu przesłany punkt reprezentacyjny. Nie jest niczym zaskakującym sytuacja w której punkty oznaczone jako wchodzące w skład różnych grup należą teraz do jednej. Ponadto bardzo ważny jest proces włączania do 34

35 grup punktów początkowo oznaczonych jako szum biorąc pod uwagę dane z innych baz może się okazać, że punkty te należą jednak do jakiejś grupy (Rysunek 3.19.). Rysunek Przykład przypisywania szumu do grupy globalnej Niebieskie punkty pochodzą z jednej lokalnej bazy danych. Jak widać zostały znalezione dwa klastry. Ponadto na rysunku można zauważyć dwa punkty A i B będące szumem. Po uwzględnieniu danych z innej baz danych (na rysunku zielone punkty), widać że lokalne klastry to w rzeczywistości fragmenty jednego dużego, globalnego klastra. Widać także, że punkty A i B leżą w otoczeniu innych punktów (mimo, że zlokalizowanych w innej bazie), co oznacza, że nie są szumem na poziomie globalnym. Teraz, po wykonaniu grupowania na rozproszonych danych użytkownik jest w stanie zadawać zapytania dotyczące nie tylko znanych mu lokalnych grup ale też wszystkich pozostałych np. znajdź wszystkie punkty ze wszystkich baz należące do tej samej grupy co lokalny punkt A Wady algorytmu Algorytm ten, co zostanie pokazane w rozdziale szóstym daje bardzo dobre rezultaty, niewiele różniące się od wyników dostarczanych przez algorytm, który operuje na całości danych. Niestety, jak można się tego było domyślić wcześniej (bowiem algorytm nie bierze pod uwagę w ogóle punków będących szumem lokalnym), występuje tutaj problem z małymi klastrami, co jest spowodowane tym, że w procesie grupowania globalnego biorą udział tylko punkty reprezentujące. Jeśli punkty tworzące klastry rozmieszczone są w taki sposób, że podczas grupowania lokalnego żaden klaster nie zostanie znaleziony, nie powstanie model lokalny a punkty takie będą oznaczone jako szum. Taka sytuacja może mieć miejsce, jeśli parametr minpts ma zbyt dużą wartość w stosunku do liczby punktów składających się na klaster. Przykładowo, jeżeli parametr minpts=10, dane rozproszone są pomiędzy pięć węzłów a klaster złożony z czterdziestu pięciu punktów został rozproszony równomiernie (a więc po dziewięć punktów na węzeł) wówczas na etapie grupowania lokalnego klaster ten, nie będzie znaleziony (minpts=10) a wszystkie punkty wchodzące w jego skład zostaną uznane za szum. Skrajnym przypadkiem może być takie rozproszenie danych, że mimo iż algorytm referencyjny jest w stanie wyznaczyć grupy danych, algorytm rozproszony znajduje tylko szum. Przypadek taki jest przedstawiony poniżej. 35

36 Wykres 3.1 przedstawia zbiór punktów (wraz ze znalezionymi grupami), który następnie został rozproszony pomiędzy trzy węzły ich zawartość pokazano na wykresach (parametr minpts wynosi 3) y Szum Klaster 1 Klaster x Wykres 3.1. Wyniki dla algorytmu referencyjnego y Szum x Wykres 3.2. Zawartość pierwszego węzła y Szum x Wykres 3.3. Zawartość drugiego węzła 36

37 y Szum x Wykres 3.4. Zawartość trzeciego węzła y Szum x Wykres 3.5. Wyniki algorytmu dla parametru minpts=3 Na wykresie 3.1. widać, że dane, które podlegają grupowaniu zawierają dwie grupy (złożone z czterech oraz pięciu punktów). Następnie dane te zostały rozproszone w taki sposób, że wspomniane grupy nie mogły zostały odnalezione. Sytuacja taka, w której algorytm nie znajduje niewielkich klastrów na szczęście jest niezbyt częsta, jednak w przy dużym rozproszeniu danych ich ilość może być znaczna. Inną wadą tego algorytmu jest konieczność wprowadzenia dodatkowego parametru ε g. We wstępnie do tej pracy zostało wspomniane, że dobry algorytm grupowania powinien się charakteryzować jak najmniejszą liczbą wymaganych parametrów. Jest to o tyle kłopotliwe bowiem dobranie odpowiedniej wartości ε g jest dosyć zajmujące (zła wartość skutkuje na przykład tym, że dwa odrębne klastry są połączone w jeden, co znacząco obniża jakość grupowania). Wad tych pozbawione jest rozwiązanie w którym dana baza danych zawiera punkty tylko z określonego przedziału. Na wykresie 3.6, widać, że w pierwszej bazie danych znajdują się tylko punkty, których pierwsza współrzędna mieści się w zakresie 0-5, w drugiej bazie danych punkty o współrzędnej 5-11 etc. Dzięki takiemu podejściu w dwóch bazach danych zostaną znalezione klastry (jest spełniony warunek minpts=3), wyznaczone modele lokalne a algorytm zwróci wyniki identyczne jak algorytm referencyjny. 37

38 Wykres 3.6. Dane rozmieszczone według wartości pierwszej współrzędnej Niestety, takie rozwiązanie również nie jest pozbawione błędów. Wystarczy tylko przywołać przykład w którym mały klaster trafia do dwóch sąsiednich baz aby nie został znaleziony. Sytuacja taka przedstawiona została na wykresie 3.7, gdzie grupa złożona z czterech punktów została rozproszona między dwie bazy danych, tak, że do każdej trafiły po dwa punkty. Wiedząc, że minpts=3, nie zostanie wyznaczony model lokalny a grupa ta zostanie uznana za szum. Ponadto nie ma najmniejszego sensu wyznaczanie modeli lokalnych dla klastrów, które w całości znajdują się w jednej bazie danych. Wykres 3.7. Grupa złożona z czterech punktów uznana za szum Rozważania te, mogą prowadzić do wniosku, że podejście takie, gdzie bazy przechowują pewne zakresy danych jest dobre, jednak rozpatrzenia wymagają nie wszystkie punkty ale tylko te z krańców przedziałów (aby połączyć rozproszone klastry oraz znaleźć te małe). Podejście takie zostało szerzej przedstawione w rozdziale czwartym, jednak wcześniej w następnym podrozdziale zostały przedstawione pewne propozycje usprawnień dla algorytmu DBDC pomagające znajdować małe klastry złożone z punktów będących lokalnym szumem. 38

39 3.7. Propozycje usprawnień Jak to zostało już wcześniej wspomniane, dużą wadą algorytmu DBDC jest fakt, że algorytm ten nie jest w stanie wykrywać klastrów które złożone są z punktów będących lokalnie szumem, jednak patrząc z globalnego punktu widzenia tworzą grupę. W tym podrozdziale przedstawione zostaną pewne propozycje usprawnień dla tego algorytmu, dzięki, którym możliwe będzie znajdowanie większości takich niewielkich klastrów. Oczywiście aby móc znaleźć grupy złożone z lokalnego szumu, szum ten powinien zostać przesłany z każdej bazy danych biorącej udział w grupowaniu do jednostki globalnej i tam odpowiednio zbadany. Nie będzie niczym odkrywczym stwierdzenie, że im mniej tych punktów będących szumem trzeba przesłać, tym lepiej. Pierwsze, zaprezentowane podejście opiera się na wyznaczeniu modelu lokalnego dla lokalnego szumu z każdej bazy danych. Dzięki temu potencjalne, niewielkie skupiska punktów, które są zbyt małe aby utworzyć osobną grupę zostaną wzięte pod uwagę jako potencjalne klastry w procesie globalnym. Obliczenia w tym przypadku będą bardzo podobne do obliczeń związanych z wyznaczaniem modelu lokalnego dla znalezionych grup, jednakże inne będą tych obliczeń parametry: wartość ε pozostanie taka sama, natomiast parametr minpts, zostanie odpowiednio zmniejszony aby taki potencjalny klaster w ogóle wykryć. Tak zmodyfikowany algorytm będzie wyglądał następująco: grupowanie danych lokalnych stworzenie głównego modelu lokalnego grupowanie globalne na podstawie danych z modeli lokalnych aktualizacja grup na podstawie modelu lokalnego stworzenie odpowiednika modelu lokalnego dla lokalnego szumu, z parametrami grupowania: ε noise = ε, minpts =, gdzie minpts to dotychczasowa wartość parametru minpts w grupowaniu lokalnym a k, to liczba rozproszonych baz danych biorących udział w procesie grupowania. grupowanie globalne na podstawie wyznaczonego wcześniej modelu aktualizacja ewentualnie znalezionych grup dla szumu lokalnego Jak można zauważyć, algorytm ten stanowi rozszerzenie algorytmu z rozdziału 3.2. o trzy dodatkowe kroki, mianowicie zbudowanie analogicznego modelu lokalnego ale dla punktów będących szumem, grupowanie globalne tychże punktów oraz aktualizacja grup do których ewentualnie należą. Kryterium wyznaczenia odpowiedniego modelu dla szumu jest wybór takich punktów dla których prawdopodobieństwo, że punkty te wraz z punktami znajdującymi się w innych bazach danych są faktycznie częścią jednego, niewielkiego klastra jest największe można to próbować określić na podstawie liczby punktów znajdujących się lokalnie w otoczeniu rozpatrywanego punktu, będącego szumem. Im więcej sąsiadów posiada taki punkt, tym większe prawdopodobieństwo, że uwzględniając punkty z innych baz danych, tworzoną one klaster. Z tego też względu, dla punktów, które po etapie grupowania lokalnego oznaczone są jako szum, sprawdzana jest liczba posiadanych sąsiadów. Im jest ich więcej, tym większa jest szansa na znalezienie klastra. 39

40 To czy jest sens rozpatrywać dany zbiór punktów globalnie zależy od jego wielkości a więc także od wartości minpts oraz liczby rozproszonych baz danych. Innymi słowy, jeżeli liczba sąsiadów danego punktu spełnia warunek minpts, wówczas punkt taki staje się reprezentantem i w dalszym etapie zostanie poddany grupowaniu globalnemu wraz z innymi tego typu punktami z pozostałych baz danych.. Wartość parametru minpts noise została dobrana w taki sposób aby klaster złożony z co najmniej minpts punktów i rozproszony równomiernie pomiędzy k baz danych został znaleziony. Przykładowo, jeżeli system jest złożony z dziesięciu baz danych (k=10) a wartość minpts=19, wówczas: minpts = = = 1.9 =2, oznacza to, że w każdej bazie danych muszą znajdować się co najmniej dwa punkty w swoim otoczeniu aby brać je pod uwagę w globalnym procesie znajdowaniu potencjalnego klastra. Warto zauważyć w tym miejscu, że dla podanych parametrów klaster złożony ze 180 może nie zostać wykryty używając tylko algorytmu DBDC. Proces znajdowania potencjalnych klastrów z szumu lokalnego został dokładniej omówiony na poniższym przykładzie. Przykład 1. Klaster złożony z piętnastu punktów został rozproszony pomiędzy trzy baz danych. Do pierwszej bazy trafiły cztery, do drugiej pięć a do trzeciej sześć punktów, co przy parametrach grupowania minpts=7 oraz ε=2.5 spowoduje uznanie tychże punktów przez algorytm DBDC za szum, a więc wspomniany klaster nie zostanie znaleziony sytuacja ta została przedstawiona na wykresach poniżej. Dzięki zastosowaniu omówionego do tej pory podejścia z wyznaczaniem modeli dla szumu lokalnego (wartość minpts noise wynosi: minpts = = = 2 =3) Na wykresach 3.9., oraz prostokątami zostały zaznaczone punkty, które pełnią rolę punktów reprezentujących dla modeli lokalnych uwzględniających szum. Punkty te wezmą następnie udział w grupowaniu globalnym co doprowadzi do wykrycia klastra, który na etapie lokalnym nie został znaleziony. y Wykres 3.8. Klaster złożony z piętnastu punktów, rozproszony między trzy bazy danych x 40

41 y y y x Wykres 3.9. Zawartość pierwszej bazy danych x Wykres Zawartość drugiej bazy danych x Wykres Zawartość trzeciej bazy danych Niestety, przedstawione rozwiązanie, mimo tej zalety, że jest w stanie znajdować pewne klastry uznane przez algorytm DBDC jako szum nie jest pozbawione wad. Przede wszystkim wciąż może się zdarzyć, że niektóre klastry nie będą znalezione i uznane zostaną za szum. Sytuacja taka została przedstawiona w przykładzie drugim. Widać tam, że dla zadanych 41

42 parametrów grupowania, grupa została rozproszona w ten sposób, że nawet po zastosowaniu zaprezentowanego usprawnienia nie będzie ona znaleziona. Przykład 2. Drugi przykład przedstawia sytuację, gdzie klaster złożony z pięciu punktów został rozproszony pomiędzy trzy bazy danych jak to pokazano na wykresie poniżej. Parametry tego grupowania to minpts=5 oraz ε= 1.5 oraz k= y Baza 1 Baza 2 Baza x Wykres Przykład drugi W powyższej sytuacji, podobnie jak poprzednio klaster został rozproszony pomiędzy trzy strony. Parametr minpts noise wynosi w tym przypadku: minpts = = = 1 =2. Model lokalny został oznaczony prostokątem. Jak widać na wykresie, w bazie trzeciej znajduje się zbyt mało punktów aby można było wyznaczyć punkt reprezentacyjny a więc w etapie globalnym klaster niestety nie zostanie znaleziony. Inną wadą tego algorytmu jest fakt, że jeżeli parametr minpts jest mniejszy od liczby stron biorących udział w grupowaniu (k) wówczas minpts = = 1 a więc każdy punkt jest traktowany jako fragment potencjalnego klastra co wymaga przesłania całego szumu. Drugim podejściem do wykrywania klastrów złożonych z lokalnego szumu, dające największą skuteczność, jest po prostu całe jego przesłanie i dalsza analiza podczas grupowania globalnego. Oczywiście rozwiązanie to powinno być stosowane z umiarem, bowiem jeżeli dane poddawane grupowaniu są zaszumione w znacznym stopniu, przesłanie szumu lokalnego będzie wąskim gardłem jeżeli chodzi o wydajność rozwiązania. Prostszym rozwiązaniem może być próba zmiany parametrów grupowania. Rozwiązanie takie, w którym lokalny szum poddawano by badaniu w etapie globalnym wymagałoby tylko dodania szumu do wyznaczonego modelu lokalnego i przesłania go razem z nim. W kolejnym etapie, globalnym po grupowaniu punktów reprezentacyjnych należy dokonać grupowania otrzymanego szumu z parametrami takimi samymi jak w grupowaniu lokalnym a więc: minpts global = minpts local, ε global = ε local. 42

43 Dzięki zastosowaniu takiego podejścia nie stanowi problemu znalezienie wszystkich, nawet niezbyt licznych grup. Odbywa się to niestety kosztem przesłania o wiele większej liczby punktów a co za tym idzie jak już wspomniano spadkiem wydajności. Rozwiązania omówione w tym rozdziale zostały zebrane razem i zaprezentowane na jednym, wspólnym przykładzie. Przykład 3.: Na rysunku został przedstawiony zbiór punktów podlegających procesowi grupowania z parametrami minpts=5 oraz ε=0.6. Punkty te następnie zostały rozproszone pomiędzy trzy bazy danych tak jak to pokazano na rysunkach Dalej, na kolejnych trzech rysunkach przedstawiono wyniki grupowania dla trzech wersji algorytmu DBDC: wersji omówionej w rozdziale trzecim, wersji z wyznaczaniem modelu dla szumu oraz wersji, w której cały szum został przesłany do jednostki globalnej. Rysunek Punkty podlegające grupowaniu 43

44 Rysunek Lokalne wyniki w pierwszej bazie Rysunek Lokalne wyniki w drugiej bazie 44

45 Rysunek Lokalne wyniki w trzeciej bazie Rysunek Wyniki grupowania algorytmem DBDC 45

46 Rysunek Wyniki grupowania algorytmem z modelem lokalnym dla szumu Rysunek Wyniki grupowania algorytmu z przesyłaniem całości szumu Patrząc na rysunek widać, że przez algorytm DBDC zostały znalezione cztery klastry. Mają one tę cechę wspólną, że przynajmniej w jednej bazie danych został znaleziony jeden punkt rdzenny dla danego klastra (przynajmniej dla jednego punktu spełniony był warunek minimalnej liczby punktów w otoczeniu). Innymi słowy przynajmniej w jednej bazie dla takiego klastra można było wyznaczyć punkt reprezentujący, który został przesłany do serwera i tam poddany procesowi grupowania globalnego a więc znaleziony został globalny klaster. Niestety, oprócz wspomnianych czterech klastrów dane zawarte w bazach danych tworzą cztery inne grupy, których ten algorytm nie znalazł. Jest to spowodowane takim rozproszeniem danych, że w ani jednej bazie nie został znaleziony dla nich punkt reprezentujący a więc punkty te zostały po prostu uznane za lokalny szum. Widać to na rysunkach Porównując wyniki z rysunków oraz można także 46

47 zauważyć, że algorytm DBDC znalazł klaster złożony z sześciu punktów ale nie znalazł klastra złożonego z dwunastu. Rysunek przedstawia wyniki dla algorytmu, który wyznacza model lokalny dla szumu. Algorytm ten znalazł dodatkowe dwie grupy, nieznalezione przez DBDC. Niestety, znalezienie dwóch ostatnich grup, a więc wszystkich klastrów wymagało podejścia z przesłaniem całego szumu (rysunek 3.24). 47

48 Rozdział 4 Algorytm IBDC Przedstawiony w tym rozdziale algorytm opiera się na założeniu, że każda lokalna baza danych zawiera pewien fragment uporządkowanego zbioru. Jego nazwaa powstała poprzez analogię do nazwy poprzedniego algorytmu, tutaj IBDC Interval Based Density Clustering. Ogólny schemat takiego algorytmu został zaprezentowany poniżej Zarys problemu Rysunek 4.1. Schemat algorytmu W sytuacji opisywanej w tym rozdziale dane mające podlegać grupowaniu są, jak to miało miejsce poprzednio zawarte w kilku różnych bazach danych. Bazy te są od siebie niezależne jednak pewnym uproszczeniem niech będzie fakt, że każda z nich zawiera dane tylko z pewnego, określonegoo przedziału. Sytuacja ta (dla przestrzeni dwuwymiarowej) jest przedstawiona na poniższym rysunku: 48

49 Rysunek 4.2. Przykład uporządkowanych danych zawartych w kilku bazach Rysunek 4.2. przedstawia następującą sytuację: system składa się z czterech baz danych (pokazanych na jednej, wspólnej ilustracji), gdzie w każdej z nich znajdują się dane z odpowiedniego przedziału (0-2, 2-4, 4-6, 6-8). W wyniku grupowania w pierwszym przedziale (0-2) zostały znalezione dwie grupy (C1 oraz C2). Jak widać punkty A, B oraz C, D, E z tej bazy zostały uznane za szum bowiem w ich otoczeniu nie ma wystarczającej liczby innych punktów aby utworzyć grupę. Bardzo podobna sytuacja występuje także w przypadku punktów F, G oraz H. Warto przyjrzeć się również trzem klastrom oznaczonym powyżej jako C4, C6 i C7. Nietrudno zauważyć, że mimo iż znajdują się w osobnych bazach danych, na poziomie globalnym jest to jeden, większy klaster. Oczekiwany rezultat jaki powinien zostać uzyskany w wyniku procesu grupowania rozproszonego został pokazany poniżej. Rysunek 4.3. Oczekiwane wyniki grupowania 49

50 Jak widać, punkty A i B wchodzą w skład klastra C3, mimo, że lokalnie zostały uznane za szum. Punkty C, D, E, F i G, mimo, że na poziomie lokalnym są szumem, leżą na tyle bliskie siebie, że po uwzględnieniu danych z sąsiedniej bazy widać, iż tworzą grupę. Podobnie wygląda wspomniana wcześniej sytuacja z klastrami C4, C6 i C7 z rysunku 4.2. Po rozpatrzeniu punktów z sąsiednich baz danych można odkryć, że klastry te są jedynie fragmentami jednej większej grupy. Pokazany powyżej przykład można rozciągnąć na więcej niż dwa wymiary. Ponadto przedziały 'obsługiwane' przez bazy danych nie muszą być takiej samej wielkości, choć warto brać pod uwagę kwestię aby w każdym z nich znajdowała się podobna liczba punktów. Inna sytuacja została pokazana na rysunku 4.4. Tutaj również przestrzeń danych została podzielona na cztery części ale podział miał miejsce w dwóch wymiarach zamiast w jednym. Podział danych za pomocą jak najmniejszej liczby wymiarów ma duży wpływ na skomplikowanie obliczeń w fazie scalania podczas etapu globalnego. Rysunek 4.4. Przykład podziału w dwóch wymiarach Podsumowując, w algorytmie wykorzystującym podział zbioru danych na posortowane partycje, można napotkać trzy sytuacje, wymagające rozpatrzenia: nie wiadomo, czy punkty uznane za szum w jednej bazie danych nie są w rzeczywistości fragmentami jakiegoś klastra znajdującego się w sąsiedniej bazie danych (punkty A i B z rysunku 4.2.) dwie lub więcej grup w rzeczywistości są fragmentami jednej większej grupy (klastry C4, C6 i C7 z rysunku 4.2.). punkty uznane za szum w sąsiednich bazach danych tworzą, niewielką grupę (punkty C, D, E, F, G). Oczywistym jest fakt, że każdy węzeł może posiadać swoje własne klastry nie leżące blisko granicy podziału a więc nie podlegające dalszej analizie. To właśnie odległość od linii wyznaczającej podział danych jest wyznacznikiem tego czy punkty bądź grupy powinny zostać analizowane w dodatkowym kroku celem połączenia wyników. 50

51 4.2. Opis algorytmu Algorytm opisany w tym rozdziale składa się z poniższych etapów: grupowanie lokalne i wyznaczenie punktów krańcowych etap globalny łączenia w grupy otrzymanych punktów krańcowych aktualizacja przypisanych grup w bazach lokalnych Algorytm, podobnie jak omawiany poprzednio, rozpoczyna działanie od dokonania grupowania na swoich danych lokalnych. Grupowanie to oczywiście jest wykonywane przy użyciu algorytmu DBSCAN. Po wyznaczeniu klastrów lokalnych kolejnym krokiem jest wyznaczenie wszystkich punktów znajdujących się w odległości niewiększej niż epsilon od krańców przedziałów. Wszystkie takie znalezione punkty wraz z przypisanymi im numerami grup są przesyłane do węzła centralnego. Kolejny etap, etap globalny polega na sprawdzeniu czy istnieje możliwość połączenia istniejących klastrów w jeden, bądź czy punkty będące szumem wchodzą w skład jakichś grup, ewentualnie czy szum znajdujący się blisko granic podziału jest w stanie utworzyć nową grupę. Ostatnim już etapem jest przypisanie punktom z wszystkich lokalnych baz danych odpowiedniego, zaktualizowanego numeru klastra, jeżeli obecny klaster do którego dane punkty są przypisane jest fragmentem większego. Ponadto należy dokonać aktualizacji numerów grup dla punktów będących lokalnie szumem a z globalnego punktu widzenia wchodzącego w skład jakiejś grupy. W dalszej części zostanie dokładniej omówiony etap lokalny, etap globalny a także etap aktualizacji numerów grup Etap lokalny Na samym początku, wszystkie dane zawarte w lokalnej bazie muszą zostać poddane grupowaniu przy użyciu algorytmu DBSCAN. Mając wyznaczone grupy do jakich należą dane kolejny krok to znalezienie wszystkich punktów krańcowych znajdujących się w lokalnej bazie danych. Wspomniane punkty krańcowe to wszystkie te punkty, których odległość od krańców przedziału jest mniejsza niż Eps. Zostało to przedstawione na rysunku poniżej. 51

52 Rysunek 4.5. Punkty krańcowe w przykładowej bazie danych Jak widać na rysunku 4.5. powyższa baza danych zawiera punkty, których pierwsza współrzędna (x) należy do przedziału 1-6. W wyniku grupowania zostały znalezione cztery klastry. Widać także, że punktów leżących blisko granic przedziałów x=1 lub x=6 (a więc punktów krańcowych) jest całkiem sporo. W takiej sytuacji prawdopodobne jest, że w innej bazie danych, która odpowiada za sąsiedni przedział znajdą się kolejne punkty tworzące razem jedną grupę (widać to na rysunkach 4.2. i 4.3. klastry C4, C6, C7 z rysunku 4.2.). Ponadto, jak widać punktami krańcowymi nie muszą być tylko punkty wchodzące w skład klastrów ale mogą nimi być także punkty będące szumem (punkty oznaczone x na powyższym rysunku). To właśnie wszystkie, wyznaczone punkty krańcowe w danej bazie zostaną przesyłane do jednostki centralnej. Są one więc pewnym odpowiednikiem modelu lokalnego z wcześniej omawianego algorytmu. Wyznaczenie i przesłanie punktów krańcowych kończy etap lokalny. Warto w tym miejscu przyjrzeć się jeszcze jednej kwestii jaką jest dobór odpowiedniej wartości Eps oraz odpowiednio dużego przedziału. Jeżeli parametry te nie będą odpowiednie to mimo uzyskania dobrej jakości grupowania wydajność będzie dosyć niska, co będzie spowodowane koniecznością przesłania wielu punktów krańcowych. Przedstawia to rysunek 4.6. Widać na nim, że jeśli wartość przedziału nie będzie znacząco większa od wartości Eps jako krańcowe zostanie wybrane zbyt wiele punktów co może być wąskim gardłem w przypadku transmisji danych do jednostki centralnej. Zbiór punktów krańcowych powinien być relatywnie mały. 52

53 Rysunek 4.6. Nieodpowiednio dobrana wartość parametru i wielkości przedziału Etap globalny Wyznaczone lokalnie punkty krańcowe są przesyłane do węzła centralnego, gdzie zostaną poddane etapowi łączenia danych. Etap ten polega na próbie scalenia otrzymanych danych to znaczy na próbie wyznaczenia globalnych grup, które są rozrzucone pomiędzy kilka baz danych. Ponadto na etapie tym następuje sprawdzenie czy punkty będące szumem w rzeczywistości należą do klastrów, których większość punktów znajduje się w innych bazach danych. Rozpatrywana jest także sytuacja w której szum z krańców przedziałów to fragmenty nieznalezionych do tej pory niewielkich grup. W tym etapie parametry Eps i minpts są takie same jak na etapach lokalnych, to znaczy: ε = ε,minpts =minpts Etap globalny składa się z trzech kroków: 1. Łączenie grup, 2. Włączanie szumu do klastrów, 3. Tworzenie nowych grup z szumu, Kroki te zostały omówione poniżej: Łączenie kilku lokalnych grup w jedną polega, jak to było kilkukrotnie wspomniane na sprawdzeniu czy dwie lub więcej grupy z różnych baz danych to w rzeczywistości fragmenty jednej dużej grupy, która jest złożona z punktów z sąsiednich baz danych. Sprawdzenie takie polega na zbadaniu czy punkty krańcowe z jednej bazy danych mają w swoim otoczeniu punkty krańcowe z innych baz danych, takie, że punkty te wchodzą w skład modeli lokalnych. Wystarczy, że jeden punkt będący rdzeniem zawiera w swoim otoczeniu rdzeń z sąsiedniej 53

54 bazy aby zdecydować, że dwa sąsiednie klastry są w rzeczywistości fragmentami jednego większego. Zostało to zilustrowane na rysunku 4.7. Rysunek 4.7. Łączenie klastrów z sąsiadujących baz danych Łączenie grup odbywa się według następującego algorytmu: MergeClusters(ClustersA, ClustersB) FOR EACH ClusterA FROM ClustersA DO PointsA := ClusterA.getPoints(); FOR EACH ClusterB FROM ClustersB DO PointsB := ClusterB.getPoints(); FOR EACH PointA FROM PointsA DO FOR EACH PointB FROM PointsB DO IF PointA.IsCore && PointB.Iscore &&Distance(PointA,PointB)<Eps IF PointA.GlobalClId==NULL && PointB.GlobalClId==NULL GlobalClusterId := NextId(); assignglobalcluster(pointsa, GlobalClusterId); assignglobalcluster(pointsb, GlobalClusterId); END IF; ELSE IF PointA.GlobalClId==NULL && PointB.GlobalClId<>NULL assignglobalcluster(pointsa, PointB.GlobalClId); END ELSE IF; ELSE assignglobalcluster(pointsb, PointA.GlobalClId); END ELSE; BREAK; END IF; END FOR; END FOR; END FOR; END FOR; END; //MergeClusters Drugi krok polega na sprawdzeniu, czy punkty krańcowe będące szumem w jednej bazie danych należą do grupy, która znajduje się w sąsiedniej bazie (są jej punktami granicznymi). Polega to na sprawdzeniu czy punkty te znajdują się w otoczeniu jakichś punktów z klastra z sąsiedniej bazy. Przedstawiono to na rysunku

55 Rysunek 4.8. Włączanie szumu do klastrów Poniżej znajduje się algorytm włączania szumu do klastrów. Wygląda on następująco: AddNoiseToCluster(NoiseList, Clusters) FOR EACH Noise FROM NoiseList DO FOR EACH Cluster FROM Clusters DO Points := Cluster.getPoints(); FOR EACH Point FROM Points DO IF Distance(Noise,Point)<Eps IF Point.GlobalClId<>NULL assignglobalcluster(noise, Point.GlobalClId); END IF; ELSE GlobalClusterId := NextId(); Noise.GlobalClId:=GlobalClusterId; assignglobalcluster(points, GlobalClusterId); END ELSE; BREAK; END IF; END FOR; END FOR; END FOR; END; //AddNoiseToCluster Ostatnim krokiem jest próba wygenerowania nowego klastra z pozostałego szumu. W tym celu po prostu obliczana jest liczba punktów w otoczeniu aktualnie rozpatrywanego punktu i jeśli jest ona większa niż minpts nowy klaster jest tworzony. 55

56 Rysunek 4.9. Łączenie szumu w klaster Sposób generowania nowych klastrów z szumu: CreateNewClusterFromNoise (NoiseA, NoiseB, minpts) AllNoise:= NoiseA.addAll(NoiseB) //Lista wszystkich punktów, które są szumem do sprawdzenia FOR i FROM 1 TO AllNoise.size() DO NoiseA:= AllNoise.get(i); IF NoiseA.GlobalClId <> NULL CONTINUE; END IF; potentialcluster.add(noisea); FOR j FROM 1 TO AllNoise.size() DO NoiseB:= AllNoise.get(j); IF Distance(NoiseA,NoiseB)<Eps potentialcluster.add(noiseb); END IF; END FOR; IF potentialcluster.size()>=minpts GlobalClusterId := NextId(); assignglobalcluster(potentialcluster, GlobalClusterId); END IF; END FOR; END; // CreateNewClusterFromNoise 4.5. Aktualizacja numerów grup Ostatni etap algorytmu polega na zaktualizowaniu grup przypisanych poszczególnym punktom danych lokalnych tak aby odzwierciedlały wyniki uzyskane na etapie globalnym. Odbywa się to w dwóch etapach. Pierwszym jest przypisanie punktom należącym do globalnych klastrów (rozproszonych między więcej niż jedną bazę danych) nowych numerów grup na podstawie odebranej z serwera mapy z wynikami. Mapa ta zawiera mapowanie: lokalny klaster globalny klaster. Odnosząc się rysunków 4.2. i 4.3. takie mapowanie może wyglądać następująco: 56

57 C4 C6 C5 C6 C7 C6 Drugi etap to aktualizacja lokalnego szumu, a więc przypisanie numeru grupy globalnej, której elementem jest dany punkt. 57

58 Rozdział 5 Wykonane eksperymenty Badania algorytmów działających na danych rozproszonych zostały przeprowadzone dla pięciu zbiorów danych. Ponadto, dodatkowe eksperymenty zostały wykonane dla szóstego zbioru, tak aby pokazać wyniki jakie daje zastosowanie przedstawionych w rozdziale 3.7. usprawnień w odniesieniu do algorytmu DBDC. Najpierw został uruchomiony algorytm DBSCAN dla całości danych służący jako rozwiązanie wzorcowe a następnie algorytmy rozproszone dla trzech, pięciu oraz dziesięciu węzłów z danymi (k=1, k=3, k=5, k=10). Dla algorytmu z wyznaczaniem modeli lokalnych dane były losowo umieszczane na poszczególnych węzłach i zawierały podobną ilość punktów. Jako, że drugi algorytm z partycjonowaniem, przyjmuje założenie, że dane są wstępnie posortowane toteż każdy węzeł przechowuje dane z konkretnego przedziału. Zostanie to szerzej omówione przy opisie testów dla tego algorytmu. Po zakończeniu obliczeń przez dany algorytm rozproszony jego wyniki były porównywane z wynikami algorytmu DBSCAN działającego na całości danych przy użyciu pokazanej w podrozdziale 5.1. miary podobieństwa (jakości). Dalej znajduje się opis zbiorów danych użytych do grupowania wraz z wynikami uzyskanymi dla algorytmu DBSCAN na tychże danych (rozwiązania referencyjne) Miara podobieństwa grupowania Mając zaimplementowane algorytmy działające na danych rozproszonych kolejnym krokiem było opracowanie skutecznej metody, która pozwoliłaby określić podobieństwo takiego rozproszonego grupowania w odniesieniu do wyników zwracanych przez algorytm DBSCAN wykonanego na całości danych (rozwiązanie referencyjne). Nie będzie niczym zaskakującym stwierdzenie, że dla dobrych (podobnych) wyników miara ta powinna przyjmować wyższe wartości niż dla wyników gorszych. Załóżmy, że zbiór danych podlegających grupowaniu składa się z punktów P1,..,.P8 znajdujących się w dwóch bazach danych. Punkty te zostały poddane grupowaniu rozproszonemu a wyniki, a także wyniki algorytmu referencyjnego zostały zamieszczone w tabeli 5.1.: 58

59 Punkt Klaster ref. Klaster rozpr. P1 C1 D1 P2 C1 D1 P3 C1 D2 P4 C1 D2 P5 C2 D3 P6 C2 D3 P7 C2 D4 P8 C2 D4 Tabela 5.1. Jak widać grupowanie referencyjne, operujące na całości danych znalazło dwa klastry C1 oraz C2, każdy składający się z czterech punktów. Rozwiązanie rozproszone natomiast znalazło cztery dwupunktowe klastry D1, D2, D3, D4. Istotne jest więc posiadanie metody, która pomoże określić, czy algorytm rozproszony dobrze grupuje dane, to znaczy, czy wyniki których dostarcza są wystarczająco podobne do wyników uzyskanych przy pomocy algorytmu referencyjnego a jeśli tak, to w jakim stopniu. Zastosowana do tego celu metoda oparta jest na indeksie Jaccarda. Poniżej znajduje się jej opis: Załóżmy, że mamy dwa zbiory wyników (znalezione klastry): wyniki algorytmu referencyjnego C={C1,C2,..Cm} oraz wyniki algorytmu rozproszonego D={D1,D2,..Dn} dla tego samego zbioru danych. Pierwszym krokiem jest zbudowanie macierzy podobieństwa, o postaci:, = Element, takiej macierzy jest nazywany Indeksem Jaccarda i jest równy: =, gdzie p to rozmiar części wspólnej a q rozmiar sumy zbiorów C i i D j (a więc punkty wspólne w klastrach C i i D j oraz suma punktów z tychże klastrów). Dla tak określonej macierzy jakość grupowania (lub podobieństwo między grupowaniami C i D) wynosi:, =,, max, ) Poniżej znajduje się przykład obliczania jakości grupowania dla danych z tabeli 1. Macierz podobieństwa: Klaster D1 D2 D3 D4 C1 2/4 2/4 0/6 0/6 C2 0/6 0/6 2/4 2/4 Tabela

60 , = =0.5=50% 4 Będąc przy omawianiu sposób wyznaczania jakości grupowania warto zauważyć, że jakość na poziomie Q=90%, nie oznacza, że tyle punktów posiada poprawnie przypisaną grupę ale klastry zostały wyznaczone z poprawnością 90%. Ilustrują to poniższe przykłady: Przykład 1. Punkt Klaster ref. Klaster rozpr. P1 C1 D1 P2 C1 D1 P3 C1 D1 P4 C1 D1 P5 C1 D1 P6 C1 D1 P7 C1 D1 P8 C1 D1 P9 C2 SZUM P10 C2 D2 Tabela 5.3. Jak mogłoby się wydawać, jakość takiego grupowania powinna wynieść 90% (dziewięć na dziesięć punktów ma poprawnie przypisany klaster). Tak jednak nie jest klaster D1 odpowiada w całości klastrowi C1 z grupowania referencyjnego, natomiast drugi D2 tylko w połowie (jeden z dwóch punktów przyporządkowany jest poprawnie, drugi natomiast został uznany za szum). Jakość grupowania wynosi zatem Q=75%. Przykład 2. Punkt Klaster ref. Klaster rozpr. P1 C1 D1 P2 C1 D1 P3 C1 D1 P4 C1 D1 P5 C1 D1 P6 C2 D2 P7 C2 D2 P8 C2 D2 P9 C2 SZUM P10 C2 D2 Tabela 5.4. W tym przykładzie algorytm rozproszony również znalazł dwa klastry pierwszy poprawnie, w 100% odpowiadający klastrowi C1, natomiast drugi w 80% odpowiadający klastrowi C2 (cztery na pięć punktów co do rozwiązania referencyjnego). Wyliczona za pomocą powyższej metody jakość algorytmu rozproszonego wynosi zatem 90%. Z powyższych rozważań wynika, że dla określonej miary jakości algorytmów nie ma znaczenia liczba punktów, którym zostały przyporządkowane poprawne klastry ale to w jakim 60

61 stopniu klastry znalezione przez algorytm rozproszony odpowiadają klastrom znalezionym przez algorytm referencyjny Weryfikacja poprawności rozwiązań Aby zbadać jakość algorytmów działających na danych rozproszonych zostało przeprowadzonych kilka eksperymentów na różnych zbiorach liczących od kilkuset do kilku tysięcy punktów. Wcześniej jednak, została wykonana prosta weryfikacja na danych zawierających po kilkanaście obiektów i podzielonych pomiędzy trzy węzły, której celem było sprawdzenie czy dany algorytm w ogóle działa a jeśli tak, to jak dobrze radzi sobie z rozproszonymi danymi. Co więcej, zostały wykonane proste eksperymenty ukazujące słabe strony algorytmów oraz skrajne przypadki wraz z tak rozmieszczonymi danymi i tak dobranymi parametrami algorytmów dla których jakość obliczana przy użyciu opisanej wcześniej miary wynosiła Q=0%. Te proste testy pozwalające na pierwszy rzut zweryfikować działanie algorytmów zostały pokazane poniżej. Rozwiązanie referencyjne (wyniki działania algorytmu na całości danych) zostało pokazane na wykresie 5.1. Widać na nim, że grupowaniu podlegało trzynaście punktów, które tworzą trzy klastry a pozostałe dwa punkty to szum. Dane te zostały następnie rozdzielone pomiędzy trzy węzły i pogrupowane algorytmem DBSCAN z następującymi parametrami: dla dwóch pierwszych testów parametry algorytmu to minpts = 2, Eps = 1.1. Dla ostatniego wartość minpts wynosiła Klaster 1 Klaster 2 Klaster 3 Szum. Test Wykres 5.1. Dane dla algorytmu referencyjnego Test ten miał na celu zbadanie jakości grupowania dla rozproszonych pomiędzy trzy węzły danych. Kolejne wykresy prezentują zawartość każdego węzła. 61

62 Klaster 1 Szum Wykres 5.2. Zawartość pierwszego węzła Klaster Wykres Zawartość drugiego węzła Klaster 1 Szum Wykres 5.4. Zawartość trzeciego węzła 62

63 Dla takiego rozproszenia danych jak na wykresach powyżej algorytm rozproszony dostarcza takich samych wyników jak algorytm referencyjny znajdowane są takie same klastry oraz takie same punkty są oznaczane jako szum, jakość więc wynosi Q=100%. Ciekawie wygląda sytuacja jeśli Klaster 1 z wykresu 5.1. zostanie rozdzielony pomiędzy dwa różne węzły. Jako, że parametr n = 2, obydwa punkty zostaną uznane lokalnie za szum, nie wejdą w skład modelu lokalnego, nie zostaną przesłane celem wyznaczenia modelu globalnego, co w rezultacie spowoduje, że Klaster 1 nie zostanie znaleziony a jakość grupowania spadnie do wartości Q = 66.67%. Jest to przedstawione jako kolejny przykład: Test 2: Klaster 1 Klaster2 Szum Wykres 5.5. Zawartość pierwszego węzła Klaster Wykres 5.6. Zawartość drugiego węzła 63

64 Klaster 1 Szum Wykres 5.7. Zawartość trzeciego węzła Klaster 1 Klaster 2 Szum Wykres 5.8. Dane wraz z przypisanymi im klastrami Patrząc na powyższe wykresy, można zauważyć jedną zmianę jaka nastąpiła w stosunku do poprzedniego przykładu punkty wchodzące w skład danych klastrów zostały rozproszone po różnych węzłach (w poprzednim przykładzie całe klastry były zawarte razem). W tabeli poniżej zostały zebrane wyniki grupowań dla powyższych przykładów. Punkt [1,2] [2,2] [1,11] Rozw. ref. Klaster 1 Klaster 1 Szum Test 1 Klaster 1 Klaster 1 Szum Test 2 Szum Szum Szum [11,1] [12,1] [11,2] [12,2] Klaster 3 Klaster 3 Klaster 3 Klaster 3 Klaster 3 Klaster 3 Klaster 3 Klaster 3 Klaster 3 Klaster 3 Klaster 3 Klaster 3 [11,11] Szum Szum Szum [5,4] [5,5] [5,6] [6,5] Klaster 2 Klaster 2 Klaster 2 Klaster 2 Klaster 2 Klaster 2 Klaster 2 Klaster 2 Klaster 2 Klaster 2 Klaster 2 Klaster 2 64

65 [6,4] Klaster 2 Klaster 2 Klaster 2 Jakość - 100% 66.67% Tabela 5.5. W dalszej część pracy zostaną opisane bardziej zaawansowane eksperymenty dotyczące jakości grupowania Zbiory danych Do testów jakości algorytmów rozproszonych użytych zostało pięć zbiorów danych różniących się między sobą liczbą punktów, grup oraz liczbą danych stanowiących szum. Zbiory gen_without_noise oraz gen_with_noise zostały wygenerowane przeze mnie, natomiast pozostałe aggregation, 40c i s1 pochodzą z internetowych repozytoriów danych. Ponadto sztucznie został wygenerowany dodatkowy zbiór gen_small_clusters. Aggregation - niewielki zbiór danych, który jest złożony z siedmiu klastrów i nie zawiera szumu. Zbiór ten jest bardzo użyteczny przy eksperymentach dotyczących jakości grupowania z powodu niewielkiej liczby klastrów o niezbyt skomplikowanych kształtach i niewielkiej liczby punktów. Liczba punktów: 775 Liczba klastrów: 7 minpts=3 eps=1.5 Gen_without_noise jest to wygenerowany klaster, niezawierający szumu, złożony z pięciu grup o dużej gęstości 65

66 Liczba punktów: 6633 Liczba klastrów: 5 minpts=15 eps=70 Gen_with_noise również wygenerowany zbiór danych, bardzo podobny do poprzedniego z dodaną znaczną ilością szumu. Liczba punktów: 7630 Liczba klastrów: 5 minpts=15 eps=34 66

67 40c zbiór danych złożony z czterdziestu klastrów o bardzo różnej liczbie punktów oraz niewielkiej odległości od siebie. Zbiór ten jest przykładem, gdzie w grupowaniu rozproszonym wyniki nie są do końca identyczne z wynikami algorytmu referencyjnego co jest spowodowana bliską odległością klastrów od siebie, różną ich gęstością, kształtem a także bardzo niewielkimi grupami. Liczba punktów: 2563 Liczba klastrów: 40 minpts=5 eps=0.55 s1- zbiór danych złożony z piętnastu klastrów położonych w niewielkiej odległości od siebie 67

68 Liczba punktów: 5000 Liczba klastrów: 15 minpts=20 eps=35000 gen_small_clusters zbiór zawierający grupy o rozmiarze od 120 do 330 punktów. Służy do pokazania wyników algorytmów dla klastrów będących lokalnym szumem. Liczba punktów: 4580 Liczba klastrów: 20 minpts=120 eps= Algorytm DBDC Jak wspomniano wcześniej, dla każdego ze zbiorów danych były wykonywane osobne eksperymenty. Interesującą kwestią było sprawdzenie jaki wpływ na jakość grupowania ma rozproszenie danych pomiędzy coraz większą liczbę urządzeń. Testy były wykonane na danych rozproszonych pomiędzy trzy, pięć oraz dziesięć węzłów Aggregation Na wykresach poniżej zostały ukazane dane zawarte w trzech różnych bazach danych. Na pierwszy rzut oka widać, że lokalne grupowanie znajduje o wiele więcej klastrów niż jest ich w rzeczywistości (na kolejnym wykresie został uzyskany wynik grupowania rozproszonego) mimo użytych takich samych parametrów jak w grupowaniu referencyjnym (n=3, ε=1.5). To co zwraca uwagę, to fakt, że w stosunku do grupowania referencyjnego dwa klastry zostały złączone w jeden (skutkuje to jakością grupowania wynoszącą Q=85.71%.). Jest to spowodowane bliskością obydwu grup a także wartością parametru ε global który dwa punkty reprezentacyjne znajdujące się blisko siebie połączył w jeden klaster. Początkowa wartość tego parametru wynosi ε global =3. Już w typ przypadku widać, że algorytm ten wymaga 68

69 dostrajania to znaczy znalezienie (najczęściej metodą prób i błędów odpowiedniej, mniejszej wartości ε global ). Początkowe obniżenie do ε global =2.75 również powoduje uzyskanie takich samych wyników, dopiero wartość równa ε global =2.5 daje wynik identyczny jak algorytm referencyjny, zatem ostateczna jakość grupowania jest równa Q=100%. Wykres 5.9 Zawartość pierwszej bazy danych Wykres 5.10 Zawartość drugiej bazy danych Wykres 5.11 Zawartość trzeciej bazy danych 69

70 Wykres 5.12 Wyniki grupowania Dla rozproszenia danych pomiędzy pięć węzłów jakość wyniosła Q=99.58% nawet dla ε global =3 nie trzeba regulować tego parametru jak poprzednio. Może to oznaczać, że optymalna wartość tego parametru zależy w dużej mierze od wybranych punktów reprezentacyjnych. Jeżeli dla dwóch osobnych klastrów jako model lokalny zostaną wybrane punkty leżące blisko siebie wówczas dla zbyt wysokiej wartości ε global zostaną uznane za wchodzące w skład jednej grupy. Na rysunku poniżej znajduje się przykładowa zawartość jednej bazy. Jak widać w grupowaniu lokalnym występuje dosyć dużo szumu. Algorytm jednak dobrze radzi sobie z tym na etapie grupowania globalnego, bowiem szum ten zostaje poprawnie przypisany do odpowiednich grup. Wykres 5.13 Przykładowe dane dla k=5 Przy liczbie węzłów równej dziesięć jakość grupowania spada znacząco do poziomu Q=67.78%. Jest to spowodowane tym, że punktów w każdej bazie jest stosunkowo mało, bowiem zostały rozrzucone losowo między dziesięć węzłów. Na etapie grupowania lokalnego wiele z nich jest oznaczane jako szum a model lokalny nie jest kompletny co powoduje tak 70

71 niską jakość. Zostało to przedstawione na wykresie widać, że liczba punktów w bazie jest niewielka, punkty są oddalone od siebie oraz występuje sporo szumu (żółte krzyżyki). Zachowanie takie jest dowodem na niezbyt dobrą skalowalność algorytmu wymaga jest tutaj interwencja użytkownika. Jedynym rozwiązaniem problemu jest regulacja parametrów algorytmu na przykład zwiększenie parametru ε np. do wartości ε=1.8. Dzięki temu więcej punktów zostanie włączonych do klastrów w grupowaniu lokalnym oraz więcej szumu zostanie przyłączone podczas etapu aktualizacji danych. Dla wartości ε=1.8 jakość jest większa i wynosi Q=71.43%. Dalsze zwiększanie wartości tego parametru może skutkować drastycznym obniżeniem jakości albowiem kilka różnych grup może zostać połączone w jedną. Jest to przedstawione na rysunku 5.15., gdzie dla ε=2.6 odległe klastry zostały złączone w jeden a jakość wynosi Q=28.57%. Początkowa wartość parametru n=3. Obniżenie tej wartości do dwóch niestety nie ma wpływu na poprawę jakości grupowania. Warto w tym miejscu napisać jak ważne dla jakości grupowania danych rozproszonych jest odpowiednie dobranie parametrów tegoż grupowania. Jeśli danych jest niewiele ważne jest dobranie takich parametrów aby przy wyznaczaniu modelu lokalnego jak najmniej punktów było oznaczane jako szum co będzie skutkowało bardzo niską skutecznością takiego grupowania. Warto też przyjrzeć się parametrowi n algorytmu DBSCAN. W przeciwieństwie do grupowania operującego na całości danych wartość ta powinna być mniejsza punkty wchodzące w skład danego klastra dla n=10 przy rozproszeniu ich między kilka węzłów będą w większości przypadków kwalifikowane jako szum. Problem ten został już zasygnalizowany wcześniej. Wykres 5.14 Przykładowe dane dla k=10 71

72 Wykres 5.15 Wynik grupowania dla ε=2.6 Liczba węzłów k=3 k=5 k=10 Jakość 100% 99.58% 71.43% Gen_without_noise Jakość grupowania dla trzech rozproszonych baz wynosi 99.68%. Świadczy to o poprawnym doborze parametrów zarówno dla etapu grupowania lokalnego jak i globalnego. Z pewnością istotny jest fakt, że klastry są oddalone od siebie a więc nie ma konieczności regulowania parametrów, przede wszystkim ε global. Poniżej znajduje się przykładowa zawartość takiej bazy jak widać już na tym etapie znajdowane są poprawne grupy. Wykres 5.16 Przykładowe dane dla k=3 72

73 Nie inaczej jest też dla pięciu rozproszonych stron tutaj jakość algorytmu jest tylko nieznacznie gorsza wynosi 99.46% Podobnie jak dla trzech stron tutaj też, już na etapie grupowania lokalnego wyznaczane są prawidłowe klastry. Poniżej przykład. Wykres Przykładowe dane dla k=5 Jeśli chodzi o rozproszenie na dziesięć węzłów jakość wynosi Q=98.51%. Różnicą w stosunku do poprzednich wyników jest fakt, że jeden z klastrów, lokalnie został uznany za kilka mniejszych oraz więcej danych uznane zostało za szum. Można to zobaczyć na rysunku poniżej. Wszystko to jednak jest 'naprawiane' podczas grupowania globalnego oraz podczas etapu aktualizacji danych a jakość na poziomie prawie 99% jest z całą pewnością zadowalająca. Przykład ten ukazuje, że istotna jest liczba punktów w bazach danych (nie może być za mała) oraz odpowiednie dobranie parametrów grupowania. Wykres Przykładowe dane dla k=10 Liczba węzłów k=3 k=5 k=10 Jakość 99.68% 99.46% 98.51% 73

74 Gen_with_noise Test ten jest bardzo podobny do poprzedniego z jedną różnicą dodanych zostało sporo danych będących szumem. Ma to za cel sprawdzenie jak algorytm radzi sobie w przypadku gdy oprócz klastrów, ok. 15% zebranych danych stanowi szum. Dla trzech baz danych zawierających dane do grupowania zostało wykonanych kilka testów. Pierwszy z nich grupowanie z parametrami identycznymi jak dla algorytmu referencyjnego dało stosunkowo niską jakość grupowania 82.56%. Było to spowodowane m.in. tym, że jeden z klastrów został podzielony na kilka mniejszych. Obrazuje to rysunek Rozważając uzyskany wynik mniejsze klastry nie zostały złączone, została zwiększona wartość parametru ε global lecz spowodowało to tylko nieznaczny wzrost jakości grupowania. Ponowne uruchomienie algorytmu tym razem z wartością parametru ε lokal z 34 do 40 dało o wiele bardziej satysfakcjonujący wynik jakość wyniosła 99.09% (rysunek 5.20). Ten test stanowi dobry przykład tego, że często koniecznym jest 'dostrojenie' lokalnych wartości parametrów algorytm uruchamiany z parametrami takimi jak algorytm operujący na całości danych może dawać gorsze wyniki. Wykres 5.19 Przykładowe dane dla k=3, ε=34 Wykres Wyniki grupowania dla k=3, ε=34 74

75 Wykres 5.21 Wyniki grupowania dla k=3, ε=40 Dla pięciu rozproszonych stron również zostały wykonane dwa testy dla dwóch wartości parametru ε. Dla wartości równiej jak poprzednie ε=40 jakość grupowania była zaskakująco mała Q=54.61%. Było to wynikiem, że punkty wchodzące w skład jednego z klastrów zostały uznane za szum ich gęstość była mniejsza niż gęstość pozostałych grup. Poniżej znajduje się ilustracja przykładowych danych. Po zwiększeniu wartości tego parametru do pięćdziesięciu jakość grupowania była zadowalająca i wynosiła Q=98.79%. Wykres 5.22 Przykładowa baza danych dla k=5, ε=40 Przy liczbie dziesięciu rozproszonych baz danych początkowe parametry (n=15, ε=50) również nie zapewniły wystarczającej jakości grupowania znowu sporo danych zostało uznanych za szum. Tym razem zmiana dotyczyła nie parametru ε ale parametru n jego wartość została zmniejszona z 15 na 10. Zabieg ten zapewnił znaczny wzrost jakości grupowania z 61.98% na 99.16%. Na wykresach i znajduje się przykładowa zawartość bazy danych dla obydwu wartości n. Można zauważyć, że dla n=15 'prostokątny' klaster jest w większości uznany za szum. 75

76 Wykresy Przykładowe bazy danych dla n=15 i n= c Liczba węzłów k=3, ε=34 k=3, ε=40 k=5, ε=40 k=5, ε =50 k=10, n=15 k=10, n=10 Jakość 82.56% 99.09% 54.61% 98.79% 61.98% 98.16% Jakość grupowania dla tego zbioru danych przy trzech węzłach jest niska wynosi tylko 69.60%. Jest to spowodowane tym, że wartość parametru n wynosząca pięć jest zbyt duża, bowiem kilka grup znalezionych przez algorytm referencyjny składa się z niewielu punktów - od trzech do dziesięciu. Skutkuje to potraktowaniem wspomnianych grup jako szum a konsekwencji niską jakością grupowania rozproszonego. Na przedstawionych poniżej rysunkach widać, że wiele klastrów zostało uznanych za szum w każdej, lokalnej bazie danych. 76

77 Wykresy Zawartość trzech baz danych Po zmniejszeniu wartości parametru z n=5 do n=3 udało się uzyskać jakość grupowania równą Q=79.23%. Kolejne zmniejszenie tegoż parametru skutkuje jeszcze mniejszą jakością grupowania niż na początku. Podobna sytuacja ma miejsce dla liczby węzłów równej pięć. Tutaj jakość grupowania także jest dosyć niska i wynosi 77.87% a dla dziesięciu baz danych już tylko 75.33%. Test ma bardzo niską jakość z dwóch powodów. Po pierwsze klastry znajdują się w niewielkiej odległości od siebie a wiec dla zbyt dużych wartości ε global niektóre z nich mogą zostać złączone i potraktowane jako jeden, większy klaster. Drugą istotną kwestią jest fakt, że ten zbiór testowy zawiera wiele małych klastrów złożonych z kilku lub kilkunastu punktów które przy rozproszenie na kilka baz danych nie będą znalezione. Poniżej znajdują się przykładowe dane z baz dla k=5 i k=10. Widać na nich, że sporo danych jest oznaczanych jako szum, szczególnie przy rozproszeniu na dziesięć węzłów. Wykres 5.28 Przykładowa baza danych dla k=5 Wykres 5.29 Przykładowa baza danych dla k=10 Liczba węzłów k=3 k=5 k=10 Jakość % 75.33% 77

78 5.4.5 s1 Przy rozproszeniu danych na trzy węzły jakość grupowania wyniosła 98.89% Wykres 5.30 Przykładowa baza danych dla k=3 Dla pięciu baz danych wynik również jest zadowalający Q=98.59 Wykres 5.31 Przykładowa baza danych dla k=5 Dla takich samych parametrów algorytmu oraz podziale na dziesięć węzłów jakość grupowania wyniosła 93.02%. Zamieszczone poniżej rysunki ukazują, że przy poprawnie dobranych parametrach punkty będące lokalnie uznane za szum w jednej bazie (punkty w lewym dolnym rogu na rysunku po lewo), mogą mieć pobliżu wystarczająco dużo punktów znajdujących się w innych bazach i tworzących klastry (punkty w lewym dolnym rogu na rysunku po prawo), tak, że na etapie wyliczania modelu globalnego oraz aktualizacji danych zostaną włączone do klastra. Test ten także jest dobrym przykład, na dosyć wysoką jakość grupowania bez konieczności dopasowywania żadnego z parametrów algorytmu. 78

79 Wykresy Dwie z dziesięciu przykładowe bazy danych dla k= Algorytm IBDC Liczba węzłów k=3 k=5 k=10 Jakość 98.89% 98.59% 93.02% Głównym założeniem tego algorytmu było wstępne sortowanie danych, takie, że każdy węzeł przechowuje dane z konkretnego przedziału (bądź dane przed zapisem trafiają do odpowiedniej bazy, która 'obsługuje' dany zakres wartości). Dane leżące blisko granic podziału to jest, nie dalej niż odległość równa ε były wysyłane do serwera koordynującego i tam scalane. Poniżej znajdują się wyniki dla tego algorytmu dla zbiorów danych jak wcześniej Aggregation Poniższe wykresy obrazują sposób rozmieszczenia danych na poszczególnych partycjach. Dla k=3 widać, że punkty dla których 12 trafiły do pierwszej bazy danych, te, dla których >12 oraz 32 do drugiej a pozostałe do trzeciej bazy danych. Można zauważyć, że dla pierwszego przedziału zostały znalezione cztery grupy. Dwie z nich to grupy lokalne, to znaczy takie, które nie mają punktów leżących blisko granicy podziału a dwie pozostałe to grupy globalne, czyli takie, których punkty znajdują się w więcej niż jednej bazie danych. Przedział drugi zawiera pięć grup, z których cztery leżą na tyle blisko granic podziału, że muszą być rozpatrzone w procesie łączenia. Ostatni przedział zawiera tylko dwie grupy globalne. Przypatrując się poniższym wykresom można zauważyć nierównomierny rozkład danych na poszczególnych węzłach jedna baza może zawierać wiele punktów a inna tylko kilka taka sytuacja występuje np. dla k=10, gdzie pierwszy przedział zawiera zaledwie kilka punktów (Wykres 5.36). Warto zauważyć, że jeśli partycji z danymi jest wiele pewne klastry mogą zostać rozproszone na kilka partycji. W tym konkretnym przypadku nie ma to wpływu na jakość grupowania która za każdym razem wynosi Q=100% nawet bez konieczności poprawiania parametrów algorytmu jak to miało miejsce poprzednio. Tutaj algorytm przyjmuje identyczne parametry jak DBSCAN uruchamiany dla całości danych. 79

80 Wykres 5.34 Zawartość poszczególnych baz danych dla k=3 Wykres 5.35 Zawartość poszczególnych baz danych dla k=5 Wykres Zawartość poszczególnych baz danych dla k=10 Kwestią, której również warto się jest przyjrzeć jest ilość punktów granicznych w zależności od stopnia rozproszenia. Jeżeli k=3, liczba znalezionych punktów leżących w odległości mniejszej niż ε od granicy podziału wynosi w sumie 197 stanowi około 25% wszystkich punktów. Jest to wartość duża ale wciąż akceptowalna. Jeżeli w grupowaniu bierze udział 5 stron, liczba punktów granicznych wynosi 310 czyli 40% punktów. Jeszcze większa wartość jest dla k=10, gdzie liczba punktów wymagająca scalania wynosi 572 a więc aż 74%. Sytuacja taka jest spowodowana tym, że dla dziesięciu baz danych, każdy przedział ma szerokość równą 4, jest więc bardzo wąski, co dla wartości ε=1.5 powoduje, że większość punktów z danego przedziału znajduje się w odległości bliskiej granic podziału (sytuacja ta była wspomniana w rozdziale czwartym). Liczba węzłów k=3 k=5 k=10 Jakość 100% 100% 100% 80

81 Gen_without_noise Poniżej zostało ukazane rozmieszczenie danych w poszczególnych bazach dla k=3, k=5 oraz k=10. Jakość grupowania tychże danych jest bardzo wysoka (~100%). Wykres 5.38 Zawartość poszczególnych baz danych dla k=3 Wykres 5.39 Zawartość poszczególnych baz danych dla k=5 Wykres 5.40 Zawartość poszczególnych baz danych dla k= Gen_with_noise Liczba węzłów k=3 k=5 k=10 Jakość 99.99% 99.99% 99.93% Poniżej znajdują się wykresy przedstawiające sposób rozmieszczenia danych. Również w tym przypadku, mimo obecności szumu jakość grupowania jest bardzo wysoka. 81

82 Wykres 5.41 Zawartość poszczególnych baz danych dla k=3 Wykres 5.42 Zawartość poszczególnych baz danych dla k=5 Wykres 5.43 Zawartość poszczególnych baz danych dla k=10 Liczba węzłów k=3 k=5 k=10 Jakość 99.58% 99.56% 99.48% c Jakość grupowania rozproszonego algorytmem DBDC dla tego zbioru danych była bardzo niska (70%-80%). Używając algorytmu z przedziałami uzyskane wyniki są również gorsze niż wyniki na innych zbiorach danych dla tego algorytmu, jednak w tym przypadku znacząco lepsze niż te algorytmu DBDC. Tutaj uzyskana jakość dla trzech rozproszonych baz danych jest bardzo wysoka i wynosi prawie 100%. Niestety dla pięciu czy dziesięciu baz danych jakość grupowania jest już niższa ~94%, co jest spowodowane nieregularną gęstością danych klastrów a także ich nie zawsze prostymi kształtami. Na wykresach poniżej został ukazany sposób rozmieszczenia danych w bazach. 82

83 Wykres 5.44 Zawartość poszczególnych baz danych dla k=3 Wykres 5.45 Zawartość poszczególnych baz danych dla k=5 Wykres 5.46 Zawartość poszczególnych baz danych dla k=10 Liczba węzłów k=3 k=5 k=10 Jakość 99.86% 94.04% 94.16% s1 Grupowanie ostatniego zbioru danych pod względem jakościowym również było bardzo zadowalające. Uzyskana tutaj jakość przy rozproszeniu nawet na dziesięć baz danych była większa niż 99%. 83

84 Wykres 5.47 Zawartość poszczególnych baz danych dla k=3 Wykres 5.48 Zawartość poszczególnych baz danych dla k=5 Wykres Zawartość poszczególnych baz danych dla k=10 Liczba węzłów k=3 k=5 k=10 Jakość 99.86% 99.63% 99.11% 5.6. Znajdowanie niewielkich klastrów Ten podrozdział zawiera opis eksperymentów wykonanych na zbiorze gen_small_clusters. Celem tych badań było porównanie wyników algorytmów DBDC, IBDC oraz dwóch zaproponowanych wcześniej udoskonaleń związanych z wykrywaniem rozproszonych klastrów złożonych z lokalnego szumu. Zbiór danych, sposób ich rozproszenia oraz parametry grupowania zostały celowo tak dobrane aby pokazać, że pomimo dwudziestu istniejących grup, znalezionych oczywiście przez algorytm DBSCAN uruchomiony na całości danych, algorytm DBDC nie poradził sobie z ich znalezieniem. Poniżej zostały przedstawione wyniki (k=3): 84

Grupowanie Witold Andrzejewski, Politechnika Poznańska, Wydział Informatyki 201/633

Grupowanie Witold Andrzejewski, Politechnika Poznańska, Wydział Informatyki 201/633 Grupowanie Grupowanie 7 6 5 4 y 3 2 1 0-3 -2-1 0 1 2 3 4 5-1 -2-3 -4 x Witold Andrzejewski, Politechnika Poznańska, Wydział Informatyki 201/633 Wprowadzenie Celem procesu grupowania jest podział zbioru

Bardziej szczegółowo

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu Data Mining Wykład 9 Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster Plan wykładu Wprowadzanie Definicja problemu Klasyfikacja metod grupowania Grupowanie hierarchiczne Sformułowanie problemu

Bardziej szczegółowo

Algorytm grupowania danych typu kwantyzacji wektorów

Algorytm grupowania danych typu kwantyzacji wektorów Algorytm grupowania danych typu kwantyzacji wektorów Wstęp Definicja problemu: Typowe, problemem często spotykanym w zagadnieniach eksploracji danych (ang. data mining) jest zagadnienie grupowania danych

Bardziej szczegółowo

4.3 Grupowanie według podobieństwa

4.3 Grupowanie według podobieństwa 4.3 Grupowanie według podobieństwa Przykłady obiektów to coś więcej niż wektory wartości atrybutów. Reprezentują one poszczególne rasy psów. Ważnym pytaniem, jakie można sobie zadać, jest to jak dobrymi

Bardziej szczegółowo

Hierarchiczna analiza skupień

Hierarchiczna analiza skupień Hierarchiczna analiza skupień Cel analizy Analiza skupień ma na celu wykrycie w zbiorze obserwacji klastrów, czyli rozłącznych podzbiorów obserwacji, wewnątrz których obserwacje są sobie w jakimś określonym

Bardziej szczegółowo

INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH

INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH 1. Czym jest eksploracja danych Eksploracja danych definiowana jest jako zbiór technik odkrywania nietrywialnych zależności i schematów w dużych

Bardziej szczegółowo

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

Informacje i materiały dotyczące wykładu będą publikowane na stronie internetowej wykładowcy, m.in. prezentacje z wykładów Eksploracja danych Piotr Lipiński Informacje ogólne Informacje i materiały dotyczące wykładu będą publikowane na stronie internetowej wykładowcy, m.in. prezentacje z wykładów UWAGA: prezentacja to nie

Bardziej szczegółowo

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność obliczeń równoległych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność Przy rozważaniu wydajności przetwarzania (obliczeń, komunikacji itp.) często pojawia się pojęcie skalowalności

Bardziej szczegółowo

Wyszukiwanie binarne

Wyszukiwanie binarne Wyszukiwanie binarne Wyszukiwanie binarne to technika pozwalająca na przeszukanie jakiegoś posortowanego zbioru danych w czasie logarytmicznie zależnym od jego wielkości (co to dokładnie znaczy dowiecie

Bardziej szczegółowo

Agnieszka Nowak Brzezińska Wykład III

Agnieszka Nowak Brzezińska Wykład III Agnieszka Nowak Brzezińska Wykład III Naiwny klasyfikator bayesowski jest prostym probabilistycznym klasyfikatorem. Zakłada się wzajemną niezależność zmiennych niezależnych (tu naiwność) Bardziej opisowe

Bardziej szczegółowo

Eksploracja danych. Grupowanie. Wprowadzanie Definicja problemu Klasyfikacja metod grupowania Grupowanie hierarchiczne. Grupowanie wykład 1

Eksploracja danych. Grupowanie. Wprowadzanie Definicja problemu Klasyfikacja metod grupowania Grupowanie hierarchiczne. Grupowanie wykład 1 Grupowanie Wprowadzanie Definicja problemu Klasyfikacja metod grupowania Grupowanie hierarchiczne Grupowanie wykład 1 Sformułowanie problemu Dany jest zbiór obiektów (rekordów). Znajdź naturalne pogrupowanie

Bardziej szczegółowo

Klasyfikatory: k-nn oraz naiwny Bayesa. Agnieszka Nowak Brzezińska Wykład IV

Klasyfikatory: k-nn oraz naiwny Bayesa. Agnieszka Nowak Brzezińska Wykład IV Klasyfikatory: k-nn oraz naiwny Bayesa Agnieszka Nowak Brzezińska Wykład IV Naiwny klasyfikator Bayesa Naiwny klasyfikator bayesowski jest prostym probabilistycznym klasyfikatorem. Zakłada się wzajemną

Bardziej szczegółowo

Michał Kozielski Łukasz Warchał. Instytut Informatyki, Politechnika Śląska

Michał Kozielski Łukasz Warchał. Instytut Informatyki, Politechnika Śląska Michał Kozielski Łukasz Warchał Instytut Informatyki, Politechnika Śląska Algorytm DBSCAN Algorytm OPTICS Analiza gęstego sąsiedztwa w grafie Wstępne eksperymenty Podsumowanie Algorytm DBSCAN Analiza gęstości

Bardziej szczegółowo

METODY CHEMOMETRYCZNE W IDENTYFIKACJI ŹRÓDEŁ POCHODZENIA

METODY CHEMOMETRYCZNE W IDENTYFIKACJI ŹRÓDEŁ POCHODZENIA METODY CHEMOMETRYCZNE W IDENTYFIKACJI ŹRÓDEŁ POCHODZENIA AMFETAMINY Waldemar S. Krawczyk Centralne Laboratorium Kryminalistyczne Komendy Głównej Policji, Warszawa (praca obroniona na Wydziale Chemii Uniwersytetu

Bardziej szczegółowo

ALGORYTMICZNA I STATYSTYCZNA ANALIZA DANYCH

ALGORYTMICZNA I STATYSTYCZNA ANALIZA DANYCH 1 ALGORYTMICZNA I STATYSTYCZNA ANALIZA DANYCH WFAiS UJ, Informatyka Stosowana II stopień studiów 2 Eksploracja danych Algorytmy klastujące Problem 3 Mając daną chmurę punktów chcielibyśmy zrozumieć ich

Bardziej szczegółowo

Aproksymacja funkcji a regresja symboliczna

Aproksymacja funkcji a regresja symboliczna Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą

Bardziej szczegółowo

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

Algorytmy klasteryzacji jako metoda dyskretyzacji w algorytmach eksploracji danych. Łukasz Przybyłek, Jakub Niwa Studenckie Koło Naukowe BRAINS Algorytmy klasteryzacji jako metoda dyskretyzacji w algorytmach eksploracji danych Łukasz Przybyłek, Jakub Niwa Studenckie Koło Naukowe BRAINS Dyskretyzacja - definicja Dyskretyzacja - zamiana atrybutów

Bardziej szczegółowo

Agnieszka Nowak Brzezińska Wykład III

Agnieszka Nowak Brzezińska Wykład III Agnieszka Nowak Brzezińska Wykład III Naiwny klasyfikator bayesowski jest prostym probabilistycznym klasyfikatorem. Zakłada się wzajemną niezależność zmiennych niezależnych (tu naiwność) Bardziej opisowe

Bardziej szczegółowo

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

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych Algorytmy decyzyjne będące alternatywą dla sieci neuronowych Piotr Dalka Przykładowe algorytmy decyzyjne Sztuczne sieci neuronowe Algorytm k najbliższych sąsiadów Kaskada klasyfikatorów AdaBoost Naiwny

Bardziej szczegółowo

SAS wybrane elementy. DATA MINING Część III. Seweryn Kowalski 2006

SAS wybrane elementy. DATA MINING Część III. Seweryn Kowalski 2006 SAS wybrane elementy DATA MINING Część III Seweryn Kowalski 2006 Algorytmy eksploracji danych Algorytm eksploracji danych jest dobrze zdefiniowaną procedurą, która na wejściu otrzymuje dane, a na wyjściu

Bardziej szczegółowo

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

Analiza skupień. Analiza Skupień W sztucznej inteligencji istotną rolę ogrywają algorytmy grupowania Analiza skupień W sztucznej inteligencji istotną rolę ogrywają algorytmy grupowania Analiza Skupień Elementy składowe procesu grupowania obiekt Ekstrakcja cech Sprzężenie zwrotne Grupowanie klastry Reprezentacja

Bardziej szczegółowo

Elementy modelowania matematycznego

Elementy modelowania matematycznego Elementy modelowania matematycznego Modelowanie algorytmów klasyfikujących. Podejście probabilistyczne. Naiwny klasyfikator bayesowski. Modelowanie danych metodą najbliższych sąsiadów. Jakub Wróblewski

Bardziej szczegółowo

PODSTAWY BAZ DANYCH. 19. Perspektywy baz danych. 2009/2010 Notatki do wykładu "Podstawy baz danych"

PODSTAWY BAZ DANYCH. 19. Perspektywy baz danych. 2009/2010 Notatki do wykładu Podstawy baz danych PODSTAWY BAZ DANYCH 19. Perspektywy baz danych 1 Perspektywy baz danych Temporalna baza danych Temporalna baza danych - baza danych posiadająca informację o czasie wprowadzenia lub czasie ważności zawartych

Bardziej szczegółowo

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Celem ćwiczenia jest zapoznanie studentów z najprostszą dynamiczną strukturą

Bardziej szczegółowo

Optymalizacja. Przeszukiwanie lokalne

Optymalizacja. Przeszukiwanie lokalne dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Maciej Hapke Idea sąsiedztwa Definicja sąsiedztwa x S zbiór N(x) S rozwiązań, które leżą blisko rozwiązania x

Bardziej szczegółowo

ALGORYTMICZNA I STATYSTYCZNA ANALIZA DANYCH

ALGORYTMICZNA I STATYSTYCZNA ANALIZA DANYCH 1 ALGORYTMICZNA I STATYSTYCZNA ANALIZA DANYCH WFAiS UJ, Informatyka Stosowana II stopień studiów 2 Eksploracja danych Co to znaczy eksploracja danych Klastrowanie (grupowanie) hierarchiczne Klastrowanie

Bardziej szczegółowo

Interaktywne wyszukiwanie informacji w repozytoriach danych tekstowych

Interaktywne wyszukiwanie informacji w repozytoriach danych tekstowych Interaktywne wyszukiwanie informacji w repozytoriach danych tekstowych Marcin Deptuła Julian Szymański, Henryk Krawczyk Politechnika Gdańska Wydział Elektroniki, Telekomunikacji i Informatyki Katedra Architektury

Bardziej szczegółowo

Prawdopodobieństwo czerwonych = = 0.33

Prawdopodobieństwo czerwonych = = 0.33 Temat zajęć: Naiwny klasyfikator Bayesa a algorytm KNN Część I: Naiwny klasyfikator Bayesa Naiwny klasyfikator bayerowski jest prostym probabilistycznym klasyfikatorem. Naiwne klasyfikatory bayesowskie

Bardziej szczegółowo

Optymalizacja ciągła

Optymalizacja ciągła Optymalizacja ciągła 5. Metoda stochastycznego spadku wzdłuż gradientu Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 04.04.2019 1 / 20 Wprowadzenie Minimalizacja różniczkowalnej

Bardziej szczegółowo

Optymalizacja parametrów w strategiach inwestycyjnych dla event-driven tradingu dla odczytu Australia Employment Change

Optymalizacja parametrów w strategiach inwestycyjnych dla event-driven tradingu dla odczytu Australia Employment Change Raport 4/2015 Optymalizacja parametrów w strategiach inwestycyjnych dla event-driven tradingu dla odczytu Australia Employment Change autor: Michał Osmoła INIME Instytut nauk informatycznych i matematycznych

Bardziej szczegółowo

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

Metody eksploracji danych w odkrywaniu wiedzy (MED) projekt, dokumentacja końcowa Metody eksploracji danych w odkrywaniu wiedzy (MED) projekt, dokumentacja końcowa Konrad Miziński 14 stycznia 2015 1 Temat projektu Grupowanie hierarchiczne na podstawie algorytmu k-średnich. 2 Dokumenty

Bardziej szczegółowo

dr inż. Olga Siedlecka-Lamch 14 listopada 2011 roku Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Eksploracja danych

dr inż. Olga Siedlecka-Lamch 14 listopada 2011 roku Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Eksploracja danych - Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska 14 listopada 2011 roku 1 - - 2 3 4 5 - The purpose of computing is insight, not numbers Richard Hamming Motywacja - Mamy informację,

Bardziej szczegółowo

Analiza danych. http://zajecia.jakubw.pl/ TEMATYKA PRZEDMIOTU

Analiza danych. http://zajecia.jakubw.pl/ TEMATYKA PRZEDMIOTU Analiza danych Wstęp Jakub Wróblewski jakubw@pjwstk.edu.pl http://zajecia.jakubw.pl/ TEMATYKA PRZEDMIOTU Różne aspekty analizy danych Reprezentacja graficzna danych Metody statystyczne: estymacja parametrów

Bardziej szczegółowo

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

8. Neuron z ciągłą funkcją aktywacji. 8. Neuron z ciągłą funkcją aktywacji. W tym ćwiczeniu zapoznamy się z modelem sztucznego neuronu oraz przykładem jego wykorzystania do rozwiązywanie prostego zadania klasyfikacji. Neuron biologiczny i

Bardziej szczegółowo

Analiza ilościowa w przetwarzaniu równoległym

Analiza ilościowa w przetwarzaniu równoległym Komputery i Systemy Równoległe Jędrzej Ułasiewicz 1 Analiza ilościowa w przetwarzaniu równoległym 10. Analiza ilościowa w przetwarzaniu równoległym...2 10.1 Kryteria efektywności przetwarzania równoległego...2

Bardziej szczegółowo

SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska

SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ Częstochowa 2014 Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska DRZEWO REGRESYJNE Sposób konstrukcji i przycinania

Bardziej szczegółowo

Inteligentna analiza danych

Inteligentna analiza danych Numer indeksu 150946 Michał Moroz Imię i nazwisko Numer indeksu 150875 Grzegorz Graczyk Imię i nazwisko kierunek: Informatyka rok akademicki: 2010/2011 Inteligentna analiza danych Ćwiczenie I Wskaźniki

Bardziej szczegółowo

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych

Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych Automatyczne tworzenie trójwymiarowego planu pomieszczenia z zastosowaniem metod stereowizyjnych autor: Robert Drab opiekun naukowy: dr inż. Paweł Rotter 1. Wstęp Zagadnienie generowania trójwymiarowego

Bardziej szczegółowo

Widzenie komputerowe (computer vision)

Widzenie komputerowe (computer vision) Widzenie komputerowe (computer vision) dr inż. Marcin Wilczewski 2018/2019 Organizacja zajęć Tematyka wykładu Cele Python jako narzędzie uczenia maszynowego i widzenia komputerowego. Binaryzacja i segmentacja

Bardziej szczegółowo

Algorytmy klasyfikacji

Algorytmy klasyfikacji Algorytmy klasyfikacji Konrad Miziński Instytut Informatyki Politechnika Warszawska 6 maja 2015 1 Wnioskowanie 2 Klasyfikacja Zastosowania 3 Drzewa decyzyjne Budowa Ocena jakości Przycinanie 4 Lasy losowe

Bardziej szczegółowo

Alicja Marszałek Różne rodzaje baz danych

Alicja Marszałek Różne rodzaje baz danych Alicja Marszałek Różne rodzaje baz danych Rodzaje baz danych Bazy danych można podzielić wg struktur organizacji danych, których używają. Można podzielić je na: Bazy proste Bazy złożone Bazy proste Bazy

Bardziej szczegółowo

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych. Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(), zwaną funkcją aproksymującą

Bardziej szczegółowo

Eksploracja Danych. wykład 4. Sebastian Zając. 10 maja 2017 WMP.SNŚ UKSW. Sebastian Zając (WMP.SNŚ UKSW) Eksploracja Danych 10 maja / 18

Eksploracja Danych. wykład 4. Sebastian Zając. 10 maja 2017 WMP.SNŚ UKSW. Sebastian Zając (WMP.SNŚ UKSW) Eksploracja Danych 10 maja / 18 Eksploracja Danych wykład 4 Sebastian Zając WMP.SNŚ UKSW 10 maja 2017 Sebastian Zając (WMP.SNŚ UKSW) Eksploracja Danych 10 maja 2017 1 / 18 Klasyfikacja danych Klasyfikacja Najczęściej stosowana (najstarsza)

Bardziej szczegółowo

Maciej Piotr Jankowski

Maciej Piotr Jankowski Reduced Adder Graph Implementacja algorytmu RAG Maciej Piotr Jankowski 2005.12.22 Maciej Piotr Jankowski 1 Plan prezentacji 1. Wstęp 2. Implementacja 3. Usprawnienia optymalizacyjne 3.1. Tablica ekspansji

Bardziej szczegółowo

Gęstościowe grupowanie danych i wyznaczanie najbliższego sąsiedztwa z użyciem nierówności trójkąta

Gęstościowe grupowanie danych i wyznaczanie najbliższego sąsiedztwa z użyciem nierówności trójkąta Politechnika Warszawska Wydział Elektroniki i Technik Informacyjnych Instytut Informatyki Rok akademicki 2012/2013 PRACA DYPLOMOWA MAGISTERSKA inż. Bartłomiej Jańczak Gęstościowe grupowanie danych i wyznaczanie

Bardziej szczegółowo

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na Techniki indeksowania w eksploracji danych Maciej Zakrzewicz Instytut Informatyki Politechnika Poznańska Plan prezentacji Zastosowania indeksów w systemach baz danych Wprowadzenie do metod eksploracji

Bardziej szczegółowo

Systemy uczące się Lab 4

Systemy uczące się Lab 4 Systemy uczące się Lab 4 dr Przemysław Juszczuk Katedra Inżynierii Wiedzy, Uniwersytet Ekonomiczny 26 X 2018 Projekt zaliczeniowy Podstawą zaliczenia ćwiczeń jest indywidualne wykonanie projektu uwzględniającego

Bardziej szczegółowo

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane: Wykład 4 grafy Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, E zbiór krawędzi, Grafy dzielimy na grafy skierowane i nieskierowane: Formalnie, w grafach skierowanych E jest podzbiorem

Bardziej szczegółowo

DBSCAN segmentacja danych punktowych oraz rastrowych w środowisku wolnodostępnego oprogramowania R

DBSCAN segmentacja danych punktowych oraz rastrowych w środowisku wolnodostępnego oprogramowania R DBSCAN segmentacja danych punktowych oraz rastrowych w środowisku wolnodostępnego oprogramowania R Mgr inż. Agnieszka Ochałek Narzędzia informatyczne w badaniach naukowych Wydział Geodezji Górniczej i

Bardziej szczegółowo

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

Algorytmy rozpoznawania obrazów. 11. Analiza skupień. dr inż. Urszula Libal. Politechnika Wrocławska Algorytmy rozpoznawania obrazów 11. Analiza skupień dr inż. Urszula Libal Politechnika Wrocławska 2015 1 1. Analiza skupień Określenia: analiza skupień (cluster analysis), klasteryzacja (clustering), klasyfikacja

Bardziej szczegółowo

W kolejnym kroku należy ustalić liczbę przedziałów k. W tym celu należy wykorzystać jeden ze wzorów:

W kolejnym kroku należy ustalić liczbę przedziałów k. W tym celu należy wykorzystać jeden ze wzorów: Na dzisiejszym wykładzie omówimy najważniejsze charakterystyki liczbowe występujące w statystyce opisowej. Poszczególne wzory będziemy podawać w miarę potrzeby w trzech postaciach: dla szeregu szczegółowego,

Bardziej szczegółowo

Modelowanie procesów współbieżnych

Modelowanie procesów współbieżnych Modelowanie procesów współbieżnych dr inż. Maciej Piotrowicz Katedra Mikroelektroniki i Technik Informatycznych PŁ piotrowi@dmcs.p.lodz.pl http://fiona.dmcs.pl/~piotrowi -> Modelowanie... Literatura M.

Bardziej szczegółowo

AiSD zadanie trzecie

AiSD zadanie trzecie AiSD zadanie trzecie Gliwiński Jarosław Marek Kruczyński Konrad Marek Grupa dziekańska I5 5 czerwca 2008 1 Wstęp Celem postawionym przez zadanie trzecie było tzw. sortowanie topologiczne. Jest to typ sortowania

Bardziej szczegółowo

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Paweł Szołtysek 12 czerwca 2008 Streszczenie Planowanie produkcji jest jednym z problemów optymalizacji dyskretnej,

Bardziej szczegółowo

Co to jest grupowanie

Co to jest grupowanie Grupowanie danych Co to jest grupowanie 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Szukanie grup, obszarów stanowiących lokalne gromady punktów Co to jest grupowanie

Bardziej szczegółowo

SZTUCZNA INTELIGENCJA

SZTUCZNA INTELIGENCJA SZTUCZNA INTELIGENCJA SYSTEMY ROZMYTE Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i Inżynierii Biomedycznej Laboratorium

Bardziej szczegółowo

Analiza algorytmów zadania podstawowe

Analiza algorytmów zadania podstawowe Analiza algorytmów zadania podstawowe Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r 0 Jaka wartość zostanie zwrócona przez powyższą

Bardziej szczegółowo

Spacery losowe generowanie realizacji procesu losowego

Spacery losowe generowanie realizacji procesu losowego Spacery losowe generowanie realizacji procesu losowego Michał Krzemiński Streszczenie Omówimy metodę generowania trajektorii spacerów losowych (błądzenia losowego), tj. szczególnych procesów Markowa z

Bardziej szczegółowo

Funkcje wyszukiwania i adresu PODAJ.POZYCJĘ

Funkcje wyszukiwania i adresu PODAJ.POZYCJĘ Funkcje wyszukiwania i adresu PODAJ.POZYCJĘ Mariusz Jankowski autor strony internetowej poświęconej Excelowi i programowaniu w VBA; Bogdan Gilarski właściciel firmy szkoleniowej Perfect And Practical;

Bardziej szczegółowo

CLUSTERING. Metody grupowania danych

CLUSTERING. Metody grupowania danych CLUSTERING Metody grupowania danych Plan wykładu Wprowadzenie Dziedziny zastosowania Co to jest problem klastrowania? Problem wyszukiwania optymalnych klastrów Metody generowania: k centroidów (k - means

Bardziej szczegółowo

Analiza Skupień Cluster analysis

Analiza Skupień Cluster analysis Metody Eksploracji Danych w wykładzie wykorzystano: 1. materiały dydaktyczne przygotowane w ramach projektu Opracowanie programów nauczania na odległość na kierunku studiów wyższych Informatyka http://wazniak.mimuw.edu.pl

Bardziej szczegółowo

CLUSTERING II. Efektywne metody grupowania danych

CLUSTERING II. Efektywne metody grupowania danych CLUSTERING II Efektywne metody grupowania danych Plan wykładu Wstęp: Motywacja i zastosowania Metody grupowania danych Algorytmy oparte na podziałach (partitioning algorithms) PAM Ulepszanie: CLARA, CLARANS

Bardziej szczegółowo

Klasyfikacja publikacji biomedycznych w konkursie JRS 2012 Data Mining Competition - Szkic koncepcji

Klasyfikacja publikacji biomedycznych w konkursie JRS 2012 Data Mining Competition - Szkic koncepcji Kierunek: Informatyka Zastosowania Informatyki w Medycynie Klasyfikacja publikacji biomedycznych w konkursie JRS 2012 Data Mining Competition - Szkic koncepcji 1. WSTĘP AUTORZY Joanna Binczewska gr. I3.1

Bardziej szczegółowo

TADEUSZ KWATER 1, ROBERT PĘKALA 2, ALEKSANDRA SALAMON 3

TADEUSZ KWATER 1, ROBERT PĘKALA 2, ALEKSANDRA SALAMON 3 Wydawnictwo UR 2016 ISSN 2080-9069 ISSN 2450-9221 online Edukacja Technika Informatyka nr 4/18/2016 www.eti.rzeszow.pl DOI: 10.15584/eti.2016.4.46 TADEUSZ KWATER 1, ROBERT PĘKALA 2, ALEKSANDRA SALAMON

Bardziej szczegółowo

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279 Wykład 8 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279 sformułowanie problemu przegląd drzewa poszukiwań przykłady problemów wybrane narzędzia programistyczne J. Cichoń, P. Kobylański

Bardziej szczegółowo

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI

OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Autoreferat do rozprawy doktorskiej OPTYMALIZACJA HARMONOGRAMOWANIA MONTAŻU SAMOCHODÓW Z ZASTOSOWANIEM PROGRAMOWANIA W LOGICE Z OGRANICZENIAMI Michał Mazur Gliwice 2016 1 2 Montaż samochodów na linii w

Bardziej szczegółowo

Algorytm grupowania danych typu kwantyzacji wektorów

Algorytm grupowania danych typu kwantyzacji wektorów Algorytm grupowania danych typu kwantyzacji wektorów Wstęp Definicja problemu: Typowe, rozważane dotychczas problemy koncentrowały się na nauczeniu na podstawie zbioru treningowego i zbioru etykiet klasyfikacji

Bardziej szczegółowo

Naszym zadaniem jest rozpatrzenie związków między wierszami macierzy reprezentującej poziomy ekspresji poszczególnych genów.

Naszym zadaniem jest rozpatrzenie związków między wierszami macierzy reprezentującej poziomy ekspresji poszczególnych genów. ANALIZA SKUPIEŃ Metoda k-means I. Cel zadania Zadaniem jest analiza zbioru danych, gdzie zmiennymi są poziomy ekspresji genów. Podczas badań pobrano próbki DNA od 36 różnych pacjentów z chorobą nowotworową.

Bardziej szczegółowo

METODY INŻYNIERII WIEDZY KNOWLEDGE ENGINEERING AND DATA MINING

METODY INŻYNIERII WIEDZY KNOWLEDGE ENGINEERING AND DATA MINING METODY INŻYNIERII WIEDZY KNOWLEDGE ENGINEERING AND DATA MINING NEURONOWE MAPY SAMOORGANIZUJĄCE SIĘ Self-Organizing Maps SOM Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki,

Bardziej szczegółowo

Techniki grupowania danych w środowisku Matlab

Techniki grupowania danych w środowisku Matlab Techniki grupowania danych w środowisku Matlab 1. Normalizacja danych. Jedne z metod normalizacji: = = ma ( y =, rσ ( = ( ma ( = min = (1 + e, min ( = σ wartość średnia, r współczynnik, σ odchylenie standardowe

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany

Bardziej szczegółowo

Wnioskowanie bayesowskie

Wnioskowanie bayesowskie Wnioskowanie bayesowskie W podejściu klasycznym wnioskowanie statystyczne oparte jest wyłącznie na podstawie pobranej próby losowej. Możemy np. estymować punktowo lub przedziałowo nieznane parametry rozkładów,

Bardziej szczegółowo

Numeryczna algebra liniowa

Numeryczna algebra liniowa Numeryczna algebra liniowa Numeryczna algebra liniowa obejmuje szereg algorytmów dotyczących wektorów i macierzy, takich jak podstawowe operacje na wektorach i macierzach, a także rozwiązywanie układów

Bardziej szczegółowo

Galileo - encyklopedia internetowa Plan testów

Galileo - encyklopedia internetowa Plan testów Galileo - encyklopedia internetowa Plan testów Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Matek Sobierajski 5 czerwca 2006 1 Spis treści 1 Wprowadzenie 3 1.1 Cel..........................................

Bardziej szczegółowo

Testowanie modeli predykcyjnych

Testowanie modeli predykcyjnych Testowanie modeli predykcyjnych Wstęp Podczas budowy modelu, którego celem jest przewidywanie pewnych wartości na podstawie zbioru danych uczących poważnym problemem jest ocena jakości uczenia i zdolności

Bardziej szczegółowo

Text mining w programie RapidMiner Michał Bereta www.michalbereta.pl

Text mining w programie RapidMiner Michał Bereta www.michalbereta.pl Text mining w programie RapidMiner Michał Bereta www.michalbereta.pl 1. Wstęp Aby skorzystać z możliwości RapidMinera w zakresie analizy tekstu, należy zainstalować Text Mining Extension. Wybierz: 1 Po

Bardziej szczegółowo

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

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor S O M SELF-ORGANIZING MAPS Przemysław Szczepańczyk Łukasz Myszor Podstawy teoretyczne Map Samoorganizujących się stworzył prof. Teuvo Kohonen (1982 r.). SOM wywodzi się ze sztucznych sieci neuronowych.

Bardziej szczegółowo

Metody wykrywania odchyleo w danych. Metody wykrywania braków w danych. Korelacja. PED lab 4

Metody wykrywania odchyleo w danych. Metody wykrywania braków w danych. Korelacja. PED lab 4 Metody wykrywania odchyleo w danych. Metody wykrywania braków w danych. Korelacja. PED lab 4 Co z danymi oddalonymi? Błędne dane typu dochód z minusem na początku: to błąd we wprowadzaniu danych, czy faktyczny

Bardziej szczegółowo

Analiza składowych głównych. Wprowadzenie

Analiza składowych głównych. Wprowadzenie Wprowadzenie jest techniką redukcji wymiaru. Składowe główne zostały po raz pierwszy zaproponowane przez Pearsona(1901), a następnie rozwinięte przez Hotellinga (1933). jest zaliczana do systemów uczących

Bardziej szczegółowo

Adrian Horzyk

Adrian Horzyk Metody Inteligencji Obliczeniowej Metoda K Najbliższych Sąsiadów (KNN) Adrian Horzyk horzyk@agh.edu.pl AGH Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana II stopień studiów Wykład 13b 2 Eksploracja danych Co rozumiemy pod pojęciem eksploracja danych Algorytmy grupujące (klajstrujące) Graficzna

Bardziej szczegółowo

Klasyfikacja obiektów Drzewa decyzyjne (drzewa klasyfikacyjne)

Klasyfikacja obiektów Drzewa decyzyjne (drzewa klasyfikacyjne) Klasyfikacja obiektów Drzewa decyzyjne (drzewa klasyfikacyjne) Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski Klasyfikacja i predykcja. Odkrywaniem reguł klasyfikacji nazywamy proces znajdowania

Bardziej szczegółowo

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Kompresja danych Streszczenie Studia Dzienne Wykład 10, 1 Kwantyzacja wektorowa Kompresja danych Streszczenie Studia Dzienne Wykład 10, 28.04.2006 Kwantyzacja wektorowa: dane dzielone na bloki (wektory), każdy blok kwantyzowany jako jeden element danych. Ogólny

Bardziej szczegółowo

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

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) 16.01.2003 Algorytmy i Struktury Danych PIŁA ALGORYTMY ZACHŁANNE czas [ms] Porównanie Algorytmów Rozwiązyjących problem TSP 100 000 000 000,000 10 000 000

Bardziej szczegółowo

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

Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych inż. Marek Duczkowski Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych słowa kluczowe: algorytm gradientowy, optymalizacja, określanie wodnicy W artykule

Bardziej szczegółowo

A Zadanie

A Zadanie where a, b, and c are binary (boolean) attributes. A Zadanie 1 2 3 4 5 6 7 8 9 10 Punkty a (maks) (2) (2) (2) (2) (4) F(6) (8) T (8) (12) (12) (40) Nazwisko i Imiȩ: c Uwaga: ta część zostanie wypełniona

Bardziej szczegółowo

6. Zagadnienie parkowania ciężarówki.

6. Zagadnienie parkowania ciężarówki. 6. Zagadnienie parkowania ciężarówki. Sterowniki rozmyte Aby móc sterować przebiegiem pewnych procesów lub też pracą urządzeń niezbędne jest stworzenie odpowiedniego modelu, na podstawie którego można

Bardziej szczegółowo

Wprowadzenie do technologii informacyjnej.

Wprowadzenie do technologii informacyjnej. Wprowadzenie do technologii informacyjnej. Data mining i jego biznesowe zastosowania dr Tomasz Jach Definicje Eksploracja danych polega na torturowaniu danych tak długo, aż zaczną zeznawać. Eksploracja

Bardziej szczegółowo

LEMRG algorytm generowania pokoleń reguł decyzji dla baz danych z dużą liczbą atrybutów

LEMRG algorytm generowania pokoleń reguł decyzji dla baz danych z dużą liczbą atrybutów LEMRG algorytm generowania pokoleń reguł decyzji dla baz danych z dużą liczbą atrybutów Łukasz Piątek, Jerzy W. Grzymała-Busse Katedra Systemów Ekspertowych i Sztucznej Inteligencji, Wydział Informatyki

Bardziej szczegółowo

Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji

Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji Diagramy związków encji (ERD) 1 Projektowanie bazy danych za pomocą narzędzi CASE Materiał pochodzi ze strony : http://jjakiela.prz.edu.pl/labs.htm Diagramu Związków Encji - CELE Zrozumienie struktury

Bardziej szczegółowo

Data Mining Wykład 5. Indukcja drzew decyzyjnych - Indeks Gini & Zysk informacyjny. Indeks Gini. Indeks Gini - Przykład

Data Mining Wykład 5. Indukcja drzew decyzyjnych - Indeks Gini & Zysk informacyjny. Indeks Gini. Indeks Gini - Przykład Data Mining Wykład 5 Indukcja drzew decyzyjnych - Indeks Gini & Zysk informacyjny Indeks Gini Popularnym kryterium podziału, stosowanym w wielu produktach komercyjnych, jest indeks Gini Algorytm SPRINT

Bardziej szczegółowo

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je. Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie

Bardziej szczegółowo

1 Wprowadzenie do algorytmiki

1 Wprowadzenie do algorytmiki Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności

Bardziej szczegółowo

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni Akademia Morska w Gdyni Gdynia 2004 1. Podstawowe definicje Baza danych to uporządkowany zbiór danych umożliwiający łatwe przeszukiwanie i aktualizację. System zarządzania bazą danych (DBMS) to oprogramowanie

Bardziej szczegółowo

Metoda Karnaugh. B A BC A

Metoda Karnaugh. B A BC A Metoda Karnaugh. Powszechnie uważa się, iż układ o mniejszej liczbie elementów jest tańszy i bardziej niezawodny, a spośród dwóch układów o takiej samej liczbie elementów logicznych lepszy jest ten, który

Bardziej szczegółowo

Analiza korespondencji

Analiza korespondencji Analiza korespondencji Kiedy stosujemy? 2 W wielu badaniach mamy do czynienia ze zmiennymi jakościowymi (nominalne i porządkowe) typu np.: płeć, wykształcenie, status palenia. Punktem wyjścia do analizy

Bardziej szczegółowo

Bazy danych TERMINOLOGIA

Bazy danych TERMINOLOGIA Bazy danych TERMINOLOGIA Dane Dane są wartościami przechowywanymi w bazie danych. Dane są statyczne w tym sensie, że zachowują swój stan aż do zmodyfikowania ich ręcznie lub przez jakiś automatyczny proces.

Bardziej szczegółowo

0 + 0 = 0, = 1, = 1, = 0.

0 + 0 = 0, = 1, = 1, = 0. 5 Kody liniowe Jak już wiemy, w celu przesłania zakodowanego tekstu dzielimy go na bloki i do każdego z bloków dodajemy tak zwane bity sprawdzające. Bity te są w ścisłej zależności z bitami informacyjnymi,

Bardziej szczegółowo

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11, 1 Kwantyzacja skalarna Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11, 10.05.005 Kwantyzacja polega na reprezentowaniu dużego zbioru wartości (być może nieskończonego) za pomocą wartości

Bardziej szczegółowo

ALGORYTMICZNA I STATYSTYCZNA ANALIZA DANYCH

ALGORYTMICZNA I STATYSTYCZNA ANALIZA DANYCH 1 ALGORYTMICZNA I STATYSTYCZNA ANALIZA DANYCH WFAiS UJ, Informatyka Stosowana II stopień studiów 2 Wnioskowanie statystyczne dla zmiennych numerycznych Porównywanie dwóch średnich Boot-strapping Analiza

Bardziej szczegółowo