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

Podobne dokumenty
Techniki grupowania danych w środowisku Matlab

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

System wspomagania harmonogramowania przedsięwzięć budowlanych

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

Tom 6 Opis oprogramowania Część 8 Narzędzie do kontroli danych elementarnych, danych wynikowych oraz kontroli obmiaru do celów fakturowania


Rozpoznawanie obrazów

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

Tom 6 Opis oprogramowania

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

Raport Hurtownie Danych

Metody systemowe i decyzyjne w informatyce

Hierarchiczna analiza skupień

Systemy uczące się Lab 4

Tom 6 Opis oprogramowania

Zad. 1: Sterowanie mimika

ALGORYTMICZNA I STATYSTYCZNA ANALIZA DANYCH

Wykrywanie twarzy na zdjęciach przy pomocy kaskad

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Metody bioinformatyki (MBI) projekt, dokumentacja końcowa

REFERAT PRACY DYPLOMOWEJ

Algorytm grupowania danych typu kwantyzacji wektorów

Przybliżone algorytmy analizy ekspresji genów.

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

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

Dokumentacja kompilacji źródeł aplikacji 1.0

Testowanie aplikacji JAVA Laboratorium 8 (Tabele w scenariuszach JBehave. Projekt z podstaw BDD oraz atrap.)

METODY CHEMOMETRYCZNE W IDENTYFIKACJI ŹRÓDEŁ POCHODZENIA

Automatyczna klasyfikacja zespołów QRS

Programowanie obiektowe

2.2 Opis części programowej

1. Eliminuje się ze zbioru potencjalnych zmiennych te zmienne dla których korelacja ze zmienną objaśnianą jest mniejsza od krytycznej:

Słowa kluczowe jak góry lodowe

Charakterystyki oraz wyszukiwanie obrazów cyfrowych

ALGORYTM RANDOM FOREST

Sieci Kohonena Grupowanie

Kurs walut. Specyfikacja projektu. Marek Zając

Metody eksploracji danych Laboratorium 2. Weka + Python + regresja

Testowanie I. Celem zajęć jest zapoznanie studentów z podstawami testowania ze szczególnym uwzględnieniem testowania jednostkowego.

Przestrzeń algorytmów klastrowania

Układ równań liniowych

Zad. 6: Sterowanie robotem mobilnym

Optymalizacja systemów

Wtyczka Crop3D. Wstęp. Implementacja. Sprawozdanie z realizacji projektu Bartłomiej Trzewiczek Kraków,

Zad. 5: Sterowanie robotem mobilnym

Symfonia Mała Księgowość 2013 Specyfikacja zmian

Wszystko na temat wzoru dokumentu elektronicznego

IO - Plan wdrożenia. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

Omówienie ciekawych funkcjonalności programu Autodesk Inventor 2014

Metoda Karnaugh. B A BC A

Overlord - Plan testów

2.8. Algorytmy, schematy, programy

Elementy modelowania matematycznego

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

Testowanie modeli predykcyjnych

Istota rozwiązania. EasyInput First Steps 2

URZĄD GMINY W SANTOKU. Program Testów. dot. postępowania przetargowego RRG AC

Obróbka po realnej powierzchni o Bez siatki trójkątów o Lepsza jakość po obróbce wykańczającej o Tylko jedna tolerancja jakości powierzchni

Wizualizacja pogody dla windsurferów

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

1. Opis. 2. Wymagania sprzętowe:

Specyfikacja testów akceptacyjnych Radosław Iglantowicz, Tomasz Bruździński,

INTENSE PLATFORM Zmiany w wersji Wersja 7.2

Praktyka Programowania

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Instrukcja integratora - obsługa dużych plików w epuap2

Konwerter Plan testów. Jakub Rauch Tomasz Gołębiowski Adam Busch Bartosz Franaszek 1 czerwca 2008

1. Grupowanie Algorytmy grupowania:

7 zaokr aglamy do liczby 3,6. Bład względny tego przybliżenia jest równy A) 0,8% B) 0,008% C) 8% D) 100

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Obliczenia inteligentne Zadanie 4

Wczytywanie cenników z poziomu programu Norma EXPERT Tworzenie własnych cenników w programie Norma EXPERT... 4

Zadania ze statystyki, cz.6

OPROGRAMOWANIE DEFSIM2

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

Referat pracy dyplomowej

Dokładny opis instalacji programów RFD można znaleźć w pliku PDF udostępnionym na stronie w zakładce Downland > AutoCAD > Instalacja

STATYSTYKA I DOŚWIADCZALNICTWO

Załącznik nr 8. do Studium Wykonalności projektu Sieć Szerokopasmowa Polski Wschodniej województwo podkarpackie

Zastosowanie Informatyki w Medycynie

LABORATORIUM 7: Problem komiwojażera (TSP) cz. 2

PROJEKTOWANIE. kodowanie implementacja. PROJEKT most pomiędzy specyfikowaniem a kodowaniem

Załącznik nr 1 do Zapytania ofertowego: Opis przedmiotu zamówienia

Laboratorium 10. Odkrywanie cech i algorytm Non-Negative Matrix Factorization.

Analiza wariancji - ANOVA

Tester oprogramowania 2014/15 Tematy prac dyplomowych

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Sztuczna inteligencja i inżynieria wiedzy. laboratorium

Programowanie Obiektowe GUI

Kurs programowania. Wykład 7. Wojciech Macyna. 25 kwietnia 2017

Outlier to dana (punkt, obiekt, wartośd w zbiorze) znacznie odstająca od reszty. prezentacji punktów odstających jest rysunek poniżej.

Projektowanie oprogramowania

Zadanie projektowe nr 1

SQL injection. Metody włamań do systemów komputerowych p. 1/13. Bogusław Kluge, Karina Łuksza, Ewa Makosa

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Platforma Eclipse: Pluginy, RCP oraz GEF

Integracja systemu CAD/CAM Catia z bazą danych uchwytów obróbkowych MS Access za pomocą interfejsu API

Dokumentacja Końcowa

Transkrypt:

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 powiazanie Jan Kniahnicki, Konrad Miziński, Metody eksploracji danych w odkrywaniu wiedzy (MED) projekt, dokumentacja wstępna 3 Zrealizowane funkcjonalności 3.1 Model danych Model danych wykorzystany w aplikacji przedstawiony został na rysunku 1. Wszystkie obiekty podlegajace grupowaniu sa tego samego typu bazowego - Cluster (realizowanego w Javie w postaci interfejsu). Implementacja tego interfejsu sa zarówno pojedyncze punty jak i ich grupy. Klasa Point reprezentuje punkt w dowolnej przestrzeni n-wymiarowej, zaś klasa PointsCluster grupę dowolnych obiektów typu Cluster (w szczególności klas Point oraz PointsCluster). Podejście takie pozwala na użycie tej samej implementacji algorytmu k-średnich do grupowania punktów (w pierwszej fazie grupowania hierarchicznego) oraz ich grup (w kolejnych jego fazach). 1

Rysunek 1: Model danych użyty w aplikacji 3.2 Miary odległości W aplikacji możliwe jest zdefiniowanie miary odległości, która zostanie wykorzystana przez algorytmy wykonujace grupowanie. Funkcjonalność ta zrealizowana została z wykorzystaniem wzorca strategii. W celu wygenerowania właściwej strategii wyliczania odległości należy skorzystać z klasy DistanceStrategyFactory generujac a odpowiednia strategię na podstawie stopnia odległości Minkowskiego oraz jednej z enumeratywnych wartości oznaczajacych: odległość między centroidami poszczególnych klastrów, średnia odległość pomiędzy punktami klastrów, minimalna odległość pomiędzy punktami poszczególnych klastrów. 3.3 Algorytm k-średnich Grupowanie metoda k-średnich realizuje klasa KMeansClusterer. Do poprawnego działania wymaga zdefiniowania odpowiedniej strategii pomiaru odległości. Dostarczona implementacja pozwala ograniczyć liczbę iteracji algorytmu za pomoca 2 parametrów: oczekiwana dokładność - względna różnica pomiędzy centroidami w danej i poprzedniej iteracji, maksymalna liczba iteracji. Dodatkowo wymagane jest zdefiniowania liczby grup, na które powinien zostać podzielony zbiór punktów. 3.4 Algorytm hierarchiczny Algorytm hierarchiczny (realizuje go klasa HierarhicalClusterer) zbudowany został na podstawie opisane wyżej algorytmu k-średnich. W zaproponowanym podejściu polega na stopniowej redukcji liczby klastrów do ilości zdefiniowanej jako cel grupowania. W 2

pojedynczej iteracji wykorzystuje algorytm k-średnich do pogrupowania klastrów otrzymanych w poprzedniej iteracji w mniejsza ich liczbę. Ilość klastrów powstałych kolejnych iteracjach wyliczana jest na podstawie parametru, zwanego reduce factor, stanowiacego stosunek ilości klastrów w i-tej iteracji do ilości klastrów w iteracji i+1-ej. 3.5 Klasy pomocnice Zostały zdefiniowane następujace klasy pomocnicze: klasa PointsLoader, pozwalajaca na wczytanie zbioru punktów z pliku oraz klasa DrawUtil, pozwalajaca na wizualizację wyników w przestrzeni 2-wymiarowej. 4 Uruchomienie Podstawowym zadaniem dostarczonego zestawu klas jest służenie jako biblioteka języka Java. Projekt zawiera jednak klasę Main pozwalajac a na uruchomienie aplikacji z linii poleceń. Wymaga ona przekazania podczas wywołania wszystkich ww. parametrów algorytmów oraz nazwy pliku, z którego maja być wczytywane dane. Jej działanie polega na: wczytaniu z pliku zbioru punktów, wykonania grupowania algorytmem hierarchicznym, wyświetlenia graficznej reprezentacji grupowania w przestrzeni 2-wymiarowej. Dodatkowo podczas budowania (budowanie należy wykonać programem maven w wersji 2 lub 3) aplikacji tworzony jest podkatalog build zawierajacy. archiwum JAR, uwzględniajace klasę Main w pliku MANIFEST.MF, przykładów testowych w postaci plików tsv, skryptu powłoki zawierajacego przykład uruchomienia aplikacji, wraz z niezbędnymi parametrami, oraz komentarzami opisujacymi znaczenie parametrów. 5 Testy Testy przeprowadzono na zbiorach danych example.tsv, example2.tsv i example3.tsv, dostarczonych wraz ze źródłami projektu oraz zawierajacymi odpowiednio 600, 20000 i 2700 punktów. Testowaniu podlegał podział zadanego zbioru danych na zadana liczbę klastrów za pomoca grupowania hierarchicznego wykorzystujacego algorytm k-średnich przy różnych wartościach następujacych parametrów: metoda pomiaru odległości (patrz 3.2), stopień odległości Minkowskiego, 3

oczekiwana dokładność oraz maksymalna liczba iteracji algorytmu k-sasiadów, parametr reduce factor algorytmu hierarchicznego. Przykłady osiagniętych wyników przedstawiono na rysunkach 2, 3, 4, 5 i 6 zaś wnioski opisano w sekcji 6. Rysunek 2: Grupowanie małej ilości danych. 4

Rysunek 3: Grupowanie większej ilości danych, Rysunek 4: Grupowanie danych z wykorzystaniem odległości Minkowskiego niskiego stopnia. 5

Rysunek 5: Grupowanie dużej ilości danych z rozluźnionymi parametrami algorytmu. Na granicach pomiędzy docelowymi klastrami widać efekty grupowania w mniejsze klastry we wczesnych iteracjach algorytmu. Rysunek 6: Grupowanie wykorzystujace minimalna odległość między punktami jako miarę odległości. 6

6 Wnioski 6.1 Grupowanie małej ilości danych W przypadku małych ilości danych algorytm pozwala na osiagnięcie grupowania wysokiej jakości. Wymaga to jednak ustawienia dość restrykcyjnych parametrów algorytmu. Oczekiwana dokładność algorytmu k-sasiadów powinna wynosić 0, a maksymalna liczba iteracji powinna przewyższać tę, która pozwala taka dokładność osiagn ać. Parametr reduce factor powinien być zbliżony do 1 (Zadowalajace wyniki otrzymywano dla wartości z przedziału 1.1-1.5). Oznacza to, że w pojedynczej iteracji algorytmu hierarchicznego, tylko niektóre klastry podlegaja łaczeniu i w kolejnej iteracji moga być dalej łaczone z innymi niegrupowanymi w tej iteracji klastrami (Co nie możliwe dla wartości >= 2 tego parametru). 6.2 Grupowanie dużych ilości danych Wraz ze wzrostem ilości danych należy stopniowo rozluźniać parametry algorytmu w celu zapewnienia sensownych czasów wykonania. Okazuje się, że zadowalajace efekty można osiagn ać stosujac jedynie 2 iteracje algorytmu k-sasiadów. Oczekiwana dokładność pozostaje wtedy bez znaczenia, gdyż i tak nie zostaje nigdy osiagnięta. Parametr reduce factor powinien być tak dobrany, aby redukować ilość klastrów w kolejnych iteracjach co najmniej dwukrotnie. Podczas testów okazało się, że doskonale w tej roli sprawdzaja się kolejne pierwiastki z liczby grupowanych punktów. Mimo, że grupowanie dużych ilości danych nie zawsze dawało zadowalajace rezultaty, prawie zawsze dało się wskazać takie grupy klastrów, które po połaczeniu dawały zadowalajacy podział na co najmniej 2 klastry. Klastry te mogły być dalej poddawane grupowaniu tym samym algorytmem, ale z bardziej restrykcyjnymi parametrami. Takie podejście pozwoliłoby na osiagnięcie grupowania naprawdę wysokiej jakości, szczególnie gdyby jako parametr grupowania podawać większa liczbę klastrów niż docelowa. Minusem tego podejścia jest konieczność iteracji użytkownika w wykonywanie algorytmu. Przykład pogrupowania dużej ilości punktów widoczny jest na rysunku 5. 6.3 Wpływ miary odległości na jakość grupowania Podczas testów zastosowano 3 sposoby pomiaru odległości: odległość pomiędzy centroidami, średnia odległość między punktami oraz minimalna odległość między punktami. O ile wybór jednego z 2 pierwszych sposobów nie wpływał znaczaco na jakość grupowania, to w 3 przypadku wyniki grupowania były znaczaco różne. Przykład grupowania z wykorzystaniem takiego podejścia przedstawia rysunek 6. Ponieważ wizualizacja wyników odbywała się w przestrzeni euklidesowej. Właśnie ta miara stosowana była do oceny jakości grupowania. Eksperymenty wykonane dla innych stopni odległości Minkowskiego miały charakter jedynie pogladowy. O ile grupowanie dla stopni >=1 nie różniło się zbytnio od grupowania z zastosowaniem miary euklidesowej to dla wartości <<1 otrzymywano dość nieoczekiwane rezultaty. Przykładowy wynik takiego grupowania przedstawia rysunek 4. Oceniajac grupowanie dla różnych odległości Minkowskiego należy wziać pod uwagę degenerację okręgów jednostkowych wraz ze zmiana jej stopnia. O ile nie jest ona aż tak duża w przypadku odległości euklidesowej i miary Czebyszewa (stopień odległości Minkowskiego daż acy do nieskończoności), to dla miary euklidesowej i miary stopnia daż acego do zera jest już ona znaczna. 7