Przegląd darmowego oprogramowania do analizy dużych zbiorów danych

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

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

Elementy modelowania matematycznego

Text mining w programie RapidMiner Michał Bereta

ALGORYTM RANDOM FOREST

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.

Analiza i projektowanie aplikacji Java

SYLABUS. Dotyczy cyklu kształcenia Realizacja w roku akademickim 2016/2017. Wydział Matematyczno - Przyrodniczy

Python : podstawy nauki o danych / Alberto Boschetti, Luca Massaron. Gliwice, cop Spis treści

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Zastosowanie średnich w statystyce i matematyce. Podstawowe pojęcia statystyczne. Streszczenie.

Wprowadzenie do technologii informacyjnej.

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

System wspomagania harmonogramowania przedsięwzięć budowlanych

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

Informatyka studia stacjonarne pierwszego stopnia

1.7. Eksploracja danych: pogłębianie, przeszukiwanie i wyławianie

Webowy generator wykresów wykorzystujący program gnuplot

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

HURTOWNIE DANYCH I BUSINESS INTELLIGENCE

Systemy pomiarowo-diagnostyczne. Metody uczenia maszynowego wykład I dr inż. 2015/2016

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

Sposoby prezentacji problemów w statystyce

INFORMATYKA W SELEKCJI

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

Mail: Pokój 214, II piętro

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

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

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak

Algorytm indukcji klasyfikatora za pomocą EA z automatycznym przełączaniem ukierunkowań

Metody eksploracji danych Laboratorium 2. Weka + Python + regresja

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

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

Algorytmy klasyfikacji

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

zna metody matematyczne w zakresie niezbędnym do formalnego i ilościowego opisu, zrozumienia i modelowania problemów z różnych

Agnieszka Nowak Brzezińska Wykład III

Transformacja wiedzy w budowie i eksploatacji maszyn

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

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Wykaz tematów prac magisterskich w roku akademickim 2018/2019 kierunek: informatyka

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

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Tworzenie oprogramowania

Ekstrakcja informacji oraz stylometria na usługach psychologii Część 2

Analiza korespondencji

Agnieszka Nowak Brzezińska Wykład III

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

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

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Wykład 4: Wnioskowanie statystyczne. Podstawowe informacje oraz implementacja przykładowego testu w programie STATISTICA

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

WEKA klasyfikacja z użyciem sztucznych sieci neuronowych

Systemy uczące się Lab 4

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

Część I Rozpoczęcie pracy z usługami Reporting Services

Jak utworzyć diagram

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego. Opis oferowanego przedmiotu zamówienia

WYDZIAŁ MATEMATYKI KARTA PRZEDMIOTU

Przetwarzanie i analiza danych w języku Python / Marek Gągolewski, Maciej Bartoszuk, Anna Cena. Warszawa, Spis treści

Zajęcia nr VII poznajemy Rattle i pakiet R.

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

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

data mining machine learning data science

Nadzorowanie stanu serwerów i ich wykorzystania przez użytkowników

1. Grupowanie Algorytmy grupowania:

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

Process Automation Toolkit (PAT)

Raport Hurtownie Danych

WebPack nadal bezpłatnie, ale z licencją

Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Aplikacja (oprogramowanie) będzie umożliwiać przygotowanie, przeprowadzenie badania oraz analizę wyników według określonej metody.

Analiza i wizualizacja danych Data analysis and visualization

Regresja linearyzowalna

Uniwersytet Mikołaja Kopernika. Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej

Inteligentna analiza danych

Programowanie obiektowe

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

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

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

Wymagania edukacyjne z informatyki w klasie VIII

SCENARIUSZ LEKCJI Przesuwanie paraboli - wykorzystanie arkusza kalkulacyjnego na lekcjach matematyki

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

Metody systemowe i decyzyjne w informatyce

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

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

4.3 Grupowanie według podobieństwa

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

Wydział Informatyki, Elektroniki i Telekomunikacji. Katedra Informatyki

Opracowanie dodatkowego rodzaju pytań dla systemu Moodle

Automatyczna klasyfikacja zespołów QRS

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

ICD Wprowadzenie. Wprowadzenie. Czym jest In-Circuit Debugger? 2. O poradniku 3. Gdzie szukać dodatkowych informacji? 4

Ewelina Dziura Krzysztof Maryański

KLASYFIKACJA. Słownik języka polskiego

SPINACZ.edu.pl platforma współpracy nauki z biznesem w zakresie innowacyjnych rozwiązań informatycznych

Dokument Detaliczny Projektu

Modelowanie Data Mining na wielką skalę z SAS Factory Miner. Paweł Plewka, SAS

Transkrypt:

Przegląd darmowego oprogramowania do analizy dużych zbiorów danych Tomasz Jach, Tomasz Xięski Uniwersytet Śląski, Instytut Informatyki, ul. Będzińska 39, 41-200 Sosnowiec {tomasz.jach tomasz.xieski}@us.edu.pl Streszczenie Eksploracja danych może być rozumiana jako proces badania za pomocą źautomatyzowanych lub częściowo zautomatyzowanych środków"dużych zbiorów danych, celem wykrycia nieznanych i potencjalnie użytecznych wzorców [8]. Coraz częściej algorytmy eksploracji danych wspomagane są graficznymi metodami wizualizacji. Celem pracy jest przegląd darmowych rozwiązań programowych do analizy dużych zbiorów danych, pod kątem możliwości grupowania i wizualizacji skupień. 1. Wprowadzanie Do skutecznego przeprowadzenia procesu analizy danych, prócz dobrej znajomości badanej dziedziny, zbioru danych, czy wybrania właściwej techniki eksploracji, niezbędnym jest wykorzystanie odpowiedniego oprogramowania. Celem niniejszej pracy jest analiza porównawcza dostępnych rozwiązań programowych w zakresie analizy dużych zbiorów danych, pod kątem oferowanych możliwości generowania grup i ich wizualizacji. Dokonany zostanie przegląd wybranych programów należących do tzw. otwartego oprogramowania (ang. open source software), czyli z możliwością dokonywania zmian w kodzie źródłowym. Wybór oprogramowania do analizy przeprowadzono na podstawie ankiety serwisu KDnuggets, agregującego artykuły, opinie i materiały dotyczące teorii oraz oprogramowania analizy danych. W maju 2012 roku zebrano odpowiedzi na pytanie jakie narzędzia eksploracji i analizy danych zostały przez respondenta użyte w ciągu minionych 12 miesięcy podczas prac nad rzeczywistym projektem. Najważniejsze wyniki ankiety 1 (wśród 798 głosujących) przedstawiono na rysunku 1. Pakiet R jest według badań serwisu KDnuggets najczęściej wybieranym systemem analizy danych (ponad 30% użytkowników potwierdziło korzystanie z niego podczas realizacji rzeczywistych projektów). Jest to zapewne zasługa bezpłatnej dystrybucji i sięgającej ponad 4000 liczbie dodatkowych bibliotek. Należy również nadmienić, że wśród pięciu najczęściej wybieranych programów, cztery to narzędzia otwarto-źródłowe (czyli udostępniające możliwość ingerencji w ich kod źródłowy), dlatego też zostały one wybrane do dalszej analizy. 1 Pełna wersja ankiety dostępna jest pod adresem http://www.kdnuggets.com/polls/ 2012/analytics-data-mining-big-data-software.html. Należy również nadmienić, że możliwy był wybór kilku rozwiązań przez pojedynczego respondenta, dlatego wyniki nie sumują się do stu procent. 1

Rysunek 1. Wykorzystywane oprogramowanie do analizy danych. 2. Przegląd programów do analizy danych Wszystkie omawiane przykłady programów niekomercyjnych są zgodne z ideą otwartego oprogramowania co oznacza, że dostępny jest ich kod źródłowy oraz oparte są na licencjach, które umożliwiają dokonywanie zmian w kodzie jak również integrację z własnymi rozwiązaniami. 2.1. KNIME KNIME (ang. KoNstanz Information MinEr) jest modularnym oprogramowaniem do analizy danych, opartym na interfejsie środowiska programistycznego Eclipse. Sposób posługiwania się programem polega na łączeniu w graf elementów (zwanych węzłami) symbolizujących ładowanie danych, ich transformację, wizualizację, generowanie statystyk, modelowanie, zapisywanie wyników (jak zaprezentowano na rysunku 2). Cały system został zrealizowany przy uwzględnieniu trzech głównych zasad: interaktywnego środowiska graficznego, modularności i rozszerzalności [5]. Cele te osiągnięto implementując mechanizm przeciągnij i upuść, dzięki czemu zarządzanie czy zmiana poszczególnych etapów analizy danych jest bardzo intuicyjna. Ponadto struktury danych wykorzystywane w zaimplementowanych algorytmach są od siebie niezależne, przez co można tworzyć dowolne kombinacje połączeń między węzłami. Zdolność do rozszerzenia istniejącej funkcjonalności uzyskano integrując zarządcę pakietów, który pobiera ze zdalnego repozyto- 2

rium nowe dodatki, a zadaniem użytkownika jest jedynie dokonanie wyboru jaki element chce dołączyć. Rysunek 2. Interfejs programu KNIME. Możliwości omawianego oprogramowania w kategorii analizy skupień domyślnie ograniczają się do algorytmów: k-średnich, hierarchicznego (zarówno aglomeracyjnego jak i deglomeracyjnego), fuzzy c-means oraz SOTA Lerner. W przypadku klasycznego algorytmu k-średnich wykorzystywana jest wyłącznie odległość euklidesowa (w odniesieniu do danych ilościowych). Należy jednak zaznaczyć, że dostępny jest osobny węzeł (komponent) o nazwie Distance Matrix Calculate, którego zadaniem jest wyznaczenie macierzy niepodobieństwa, z użyciem miar takich jak: odległość euklidesowa, miejska, Tanimoto, korelacji kosinusowej, czy współczynnika Dice a. Dodatkowo (ale tylko dla cech ilościowych) można za jego pomocą przeprowadzić grupowanie dla zbioru danych rzeczywistych cell_loss 2 przyjmując liczbę skupień równą 500 3. Dla algorytmu hierarchicznego zaimplementowano trzy standardowe miary łączenia skupień: pojedynczego, średniego oraz całkowitego wiązania, a dostępne miary niepodobieństwa (odległości) to odległość euklidesowa i miejska. Metoda fuzzy c-means działa analogicznie do algorytmu k-średnich, z tą różnicą, że dany obiekt nie musi należeć wyłącznie do jednego skupienia jest to tzw. grupowanie rozmyte. Węzeł SOTA Lerner to algorytm generujący hierarchię skupień na podstawie budowy tzw. drzewa samoorganizującego się (ang. Self-Organising Tree Algorithm). Jest to sieć neuronowa, zorganizowana zgodnie z topologią drzewa binarnego, często wykorzystywana przy analizie danych mikromacierzowych 4. Jedną z istotnych cech opisywanego oprogramowania jest jego rozszerzalność. Dzięki temu do ogólnie dostępnej palety technik analizy skupień można dołączyć algorytm k-medoidów oraz wszystkie dostępne w systemie Weka (opisywanym w dalszej części pracy). Po zainstalowaniu dodatkowych pakietów, użytkownik uzyskuje zatem dostęp m. in. do algorytmów gęstościowych DBSCAN [6] i OPTICS [3]. Niestety sposób integracji z innymi rozwiązaniami do eksploracji danych to również 2 Zbiór danych używany do testów oprogramowania został omówiony w [9]. 3 Liczbę 500 skupień dobrano arbitralnie, uznając ją jako wystarczająco dużą do przetestowania możliwości grupowania dużych zbiorów danych. 4 Szczegóły na temat budowy i zasady działania wspomnianego algorytmu można znaleźć w [7]. 3

największa wada opisywanego programu. Wyniki działania dodatkowych algorytmów analizy skupień wyświetlane są w innym oknie i interfejsie zgodnym z oprogramowaniem, z którego zostały zapożyczone. Implikuje to również niemożność uwzględnienia tych rezultatów, w dalszych etapach procesu wydobywania wiedzy projektowanego w KNIME wyjścia algorytmów zapożyczonych z pakietu Weka nie da się połączyć z innymi elementami (węzłami) dostępnymi w KNIME. KNIME pełni zatem pewnego rodzaju warstwę pośredniczącą, która dokonuje załadowania i transformacji danych, a następnie uruchamia procedury innego oprogramowania generując w nim wyniki. Metody opisu i wizualizacji danych wśród których można wyróżnić wykresy pudełkowe, rozrzutu, radarowe, histogramy, technikę współrzędnych równoległych można dodatkowo rozszerzyć o możliwości reprezentacji graficznej biblioteki JFreeChart i wszystkich komend dostępnych w pakiecie R. Jest to zatem bardzo rozbudowane i modyfikowalne oprogramowanie, które z powodzeniem może konkurować z rozwiązaniami komercyjnymi 5. 2.2. R z nakładką Rattle Rattle (ang. R Analytical Tool To Learn Easily) jest graficzną nakładką na powszechnie znany pakiet statystyczny R. Pozwala na ładowanie danych z wielu źródeł (w tym z baz danych, plików tekstowych, arkuszy kalkulacyjnych itp.), ich wstępną eksplorację (na podstawie statystyk opisowych oraz technik graficznych typu histogramy czy wykresy pudełkowe), transformację (poprzez normalizację czy usuwanie wartości pustych), tworzenie modeli (jak skupienia czy reguły asocjacyjne) oraz ewaluację (wykorzystując krzywe ROC) [2]. Interfejs programu został przedstawiony na rysunku 3 i składa się z jednego okna podzielonego na szereg zakładek. Zakładki powinny być przetwarzane kolejno lub autonomicznie, jeżeli użytkownika interesuje wyłącznie zastosowanie konkretnej techniki eksploracji. Rysunek 3. Graficzny interfejs Rattle w wersji 2.6.26. 5 Szczegóły na temat możliwości (wizualizacyjnych i statystycznych) KNIME znajdują się w książce jego autorów poświęconej eksploracji danych [4]. 4

Z poziomu zakładki Cluster dostępne są cztery algorytmy analizy skupień: hierarchiczny, Ewkm, k-średnich oraz BiCluster 6 (służący do grupowania zarówno obiektów jak i cech jednocześnie). Technika k-średnich ograniczona jest do przetwarzania danych ilościowych, jednakże potrafi wygenerować dla zbioru cell_loss, uznaną jako testową, liczbę 500 skupień. Ewkm jest wariantem metody k-średnich, przyporządkowującym wagi cechom uznanym za istotne, podczas wyznaczania podobieństwa dwóch obiektów 7. Niestety algorytm generujący hierarchię nie może zostać zastosowany do zbioru danych rzeczywistych cell_loss i większych, ponieważ oprogramowanie wyświetla komunikat, o niewystarczającej ilości dostępnej pamięci operacyjnej i zbyt dużej liczbie obiektów w zbiorze 8, zaprezentowany na rysunku 4. Proponowane rozwiązanie tego problemu to wykorzystanie metody próbkowania (i operowanie wyłącznie na dużo mniejszym podzbiorze obiektów). Rysunek 4. Komunikat informujący o ograniczeniu algorytmu hclust. Dostępne w Rattle algorytmy nie mogą być zatem bezpośrednio zastosowane przy grupowaniu dużych zbiorów danych. Małą liczbę algorytmów można rozszerzyć instalując, poprzez konsolę oprogramowania R, pakiet fpc 9, który dostarcza sześć dodatkowych metod analizy skupień, wśród których znajduje się również technika gęstościowa DBSCAN. Brak jest jednak metody OPTICS (której implementacja w R jest poszukiwana na wielu grupach dyskusyjnych). Dodatkowo posługiwanie się algorytmem DBSCAN możliwe jest wyłącznie przez linię komend R, co wymaga stosownej wiedzy na temat syntaktyki poleceń. Podobnie jest w przypadku generowania niedostępnych przez Rattle wykresów czy technik wizualizacyjnych 10. 2.3. RapidMiner RapidMiner jest środowiskiem do analizy danych, które posiada zarówno wersję darmową (na licencji AGPL) oraz szereg wariantów komercyjnych. Poszczególne wersje różnią się m.in. możliwościami ładowania danych, wykorzystaniem procesorów wielordzeniowych, dostępnością edytora danych oraz prowadzeniem procesu eksploracji na silniku bazy danych. 6 Szczegóły na temat działania algorytmu BiCluster dostępne są pod adresem http://cran. r-project.org/web/packages/biclust/biclust.pdf. 7 Szczegóły na temat działania i zastosowania algorytmu Ewkm dostępne są pod adresem http: //cran.r-project.org/web/packages/weightedkmeans/weightedkmeans.pdf. 8 Programy analizy danych testowane były wykorzystując system Windows 7 oraz komputer wyposażony w procesor Core i5 3,33 GHz i 8 GB pamięci RAM. 9 Szczegółowy opis możliwości pakietu fpc znajduje się pod adresem http://cran. r-project.org/web/packages/fpc/fpc.pdf. 10 Szczegóły odnośnie pełnych możliwości współpracy nakładki Rattle oraz pakietu R (jak również innych algorytmów grupowania) prezentuje książka [10]. 5

Rysunek 5. Interfejs programu RapidMiner 5.3.0.13. Interfejs omawianego programu (zaprezentowany na rysunku 5) jest bardzo podobny do rozwiązania stosowanego w KNIME, gdzie dostępnych jest szereg mniejszych okien (zintegrowanych z głównym) podzielonych na zakładki, które można dowolnie przemieszczać. Również projektowanie przebiegu procesu analizy danych wygląda podobnie z okna w lewym górnym rogu ekranu wybiera się tzw. operatory (będące analogią do węzłów KNIME) czyli elementy realizujące ładowanie danych, transformacje, modelowanie, wizualizację oraz inne, a następnie łączy się operatory w graf skierowany, korzystając z centralnie ustawionego okna obszaru roboczego. Rysunek 6. Komunikat o zbyt małej ilości dostępnej pamięci. RapidMiner posiada jedenaście zaimplementowanych algorytmów analizy skupień, wśród których można wyróżnić: cztery warianty metody k-średnich, technikę k-medoids, DBSCAN, EM, metodę wektorów nośnych SVC (ang. Support Vector Clustering), grupowanie hierarchiczne (aglomeracyjne i deglomeracyjne) oraz przyporządkowanie losowe 11. Należy nadmienić, że dla algorytmu DBSCAN dostępna jest miara nazywana Mixed Euclidean, która jest modyfikacją miary euklidesowej umożliwiającą porównywanie danych ilościowych i jakościowych dla cech nominalnych miara przyporządkowuje wartość zero lub jeden w zależności od tego czy wartości (dla dwóch porównywanych obiektów) są sobie równe. Algorytm 11 Szczegółowe omówienie działania algorytmów znajduje się w http://docs.rapid-i. com/files/rapidminer/rapidminer_operatorreference_en.pdf. 6

jednakże zgłasza błąd, gdy w analizowanym zbiorze występują wartości puste. Przy przetwarzaniu dużych zbiorów danych może również dojść do problemów pamięciowych program przechowuje wszystkie dane w pamięci operacyjnej, dlatego w zależności od złożoności procesu analizy danych może pojawić się komunikat (jak zaprezentowano na rys. 6) informujący o konieczności zmniejszenia objętości analizowanego zbioru lub powiększenia zasobów wolnej pamięci. Taka sytuacja miała miejsce podczas próby zastosowania algorytmu k-średnich do testowego zbioru danych cell_loss. Wśród dostępnych algorytmów brak jest także techniki OPTICS. Możliwości wizualizacyjne 12 oprogramowania obejmują m.in. generowanie histogramów, wykresów i macierzy rozrzutu, bąbelkowych, map samoorganizujących się itp. Ponadto, jako jedyne z opisywanych rozwiązań posiada możliwość graficznego przedstawienia struktury skupień w formie interaktywnego grafu. Jednakże rozwiązanie to sprawdza się tylko w przypadku niewielkiej liczby grup. 2.4. Weka Kolejny omawiany w niniejszej pracy program nosi nazwę Weka (ang. Waikato Environment for Knowledge Analysis) i agreguje szereg algorytmów uczenia maszynowego dedykowanych do realizacji zadań eksploracji danych. Algorytmy te mogą być stosowane bezpośrednio do zestawu danych lub za pomocą odpowiednich procedur wywoływanych z autorskiego kodu napisanego w języku Java. Weka zawiera narzędzia do wstępnego przetwarzania danych, klasyfikacji, zadań regresji, grupowania, generowania reguł asocjacyjnych i wizualizacji. Jednym z czynników wyróżniających to oprogramowanie od pozostałych jest fakt, iż posiada ono cztery różne interfejsy: Explorer (do analizy danych korzystając z szeregu zakładek), Experimenter (umożliwiający automatyczne wykonanie przygotowanych wcześniej eksperymentów), KnowledgeFlow (wykorzystujący zasadę przeciągnij i upuść) oraz Simple CLI (udostępniający konsolę do przetwarzania wsadowego). W dalszej części pracy zostanie omówiony tryb Explorer programu, zaprezentowany na rysunku 7. Interakcja użytkownika z programem odbywa się przez wybór odpowiedniej zakładki z siedmiu dostępnych w programie. Pierwsza służy wstępnemu przetwarzaniu i analizie eksploracyjnej przedstawionych w formie statystyk opisowych (jak średnia czy odchylenie standardowe) i histogramów. Dzięki czemu można oszacować rozkład danych, zidentyfikować wartości brakujące lub odstające i na tych przypadkach skupić dalszą analizę. W przypadku wybrania zakładki Cluster dedykowanej grupowaniu danych, można zastosować jeden z dziewięciu algorytmów analizy skupień jak k-średnich, hierarchiczny, EM, czy DBSCAN 13. Jest to również jedyne rozwiązanie niekomercyjne, które posiada bezpośrednio zaimplementowany algorytm OPTICS. Niestety twórcy Weka nie zdecydowali się na dołożenie do niego procedury generującej skupienia (gdyż OPTICS domyślnie generuje jedynie specyficzne uporządkowanie obiektów). Ponadto, dla algorytmów gęstościowych dostępne są jedynie dwie miary podobieństwa takie jak odległość euklidesowa i miejska, zmodyfikowane tak, by możliwe było ich bezpośrednie zastosowanie do danych opisanych za pomocą atrybutów ilościowych i jakościowych. Wyniki procesu grupowania wizualizowane są wyłącznie jako macierz wykresów rozrzutu (lub 12 Szczegółowe informacje o dostępnych metodach graficznej prezentacji danych zawiera dokumentacja dostępna pod adresem http://docs.rapid-i.com/files/rapidminer/ RapidMiner-5.2-Advanced-Charts-english-v1.0.pdf. 13 Szczegółowy opis algorytmów znajduje się w http://sourceforge.net/projects/ weka/files/documentation/3.7.x/wekamanual-3-7-10.pdf. 7

Rysunek 7. Interfejs w trybie Explorer programu Weka. pojedynczy trójwymiarowy wykres rozrzutu). Dlatego też niewielkie możliwości wizualizacji rezultatów analizy skupień są największą wadą omawianego oprogramowania. 2.5. Pakiet scikit-learn: Machine Learning in Python Prace nad tym pakietem [1] zostały rozpoczęte dzięki programowi Google Summer of Code. Głównym twórcą jest David Cournepeau. Nazwa wywodzi się ze skrótowca SciKit rozwijanego jako Science Toolkit wchodzący w skład języka Python. SciKit jest odrębnym rozszerzeniem ze swoją, niezależną od głównego nurtu języka Python, grupą twórców. Uznaje się powszechnie, że scikit-learn jest jednym z popularniejszych oraz bardziej efektywniej napisanych pakietów języka Python. Od roku 2013 pakiet scikit-learn jest regularnie wspierany przez francuską organizację INRIA i okazjonalnie przez amerykańską firmę Google. Projekt jest wykorzysytwany m.in. w oprogramowaniu Evernote (zaimplementowany naiwny klasyfikator Bayesa do odnajdywania przepisów kulinarnych wśród notatek użytkowników) oraz przez pakiet do przetwarzania języka naturalnego NTLK (wchodzący w skład Pythona). W sferze komercyjnej, scikit-learn jest wykorzystywany przez firmę wiso.io. Oferuje ona zamkniętoźródłową implementację losowych lasów nazywaną wiserf. Firma ta twierdzi, że zdołała przyspieszyć proces przetwarzania danych siedimioipółkrotnie. Od czasu wystosowania tego oświadczenia twórcy scikit-learn dokonali daleko idącej optymalizacji pakietu i obecnie efektywność tych dówch rozwiązań jest porównywalna (oprócz zapotrzebowania na pamięć operacyjną). Pakiet scikit-learn nie ma swojego dedykowanego interfejsu graficznego. Całe przetwarzanie odbywa się za pomocą programów opartych o język Python. Przykładowo, kod przedstawiony na rysunku 8 generuje diagram z rysunku 9. Ze względu na duże możliwości oraz obsługę dużych zbiorów danych, pakiet ten wydaje się być najbliższy założeniom autorów. Łatwe przetwarzanie danych w języku Python oraz obecność dużej liczby dodatkowych pakietów (do analizy 8

Rysunek 8. Przykładowy kod wykorzystujący scikit-learn danych, grupowania i innych) połączona z dobrze znanymi i szeroko wykorzystywanymi połączeniami z innymi językami programowania pozwoli w przyszłości na wykorzystanie pakietu scikit-learn. 3. Podsumowanie Celem pracy było dokonanie przeglądu możliwości oprogramowania do wydobywania wiedzy z danych, w szczególności pod kątem zaimplementowanych algorytmów analizy skupień, ich graficznej reprezentacji oraz metod opisu danych. Porównanie dotyczyło programów niekomercyjnych (udostępniających kod źródłowy), które w wielu przypadkach posiadają podobny zestaw funkcjonalności w odniesieniu do ich płatnych odpowiedników. Wyniki przeglądu oprogramowania wskazują jednoznacznie, że żaden z testowanych pakietów analizy danych nie udostępnia interaktywnej metody graficznej reprezentacji skupień, dostosowanej do wizualizacji dużej liczby grup. Ponadto tylko niewielka liczba programów implementuje bardziej zaawansowane algorytmy analizy skupień (np. gęstościowe) i umożliwia ich zastosowanie do danych opisanych atrybutami ilościowymi oraz jakościowymi. Dlatego też uzasadniona wydaje się konieczność stworzenia autorskiego systemu analizy dużych zbiorów danych, który realizuje proces graficznej analizy eksploracyjnej [8]. Najbardziej zgodny z założeniami poczynionymi przez autorów wydaje się ostatni omówiony pakiet scikit-learn. Jakkolwiek dostosowanie wypracowanych już narzędzi do nowego języka programowania może być czasochłonne, tak zysk z korzystania z języka Python powinien zrekompensować ten dodatkowy nakład pracy. 9

Rysunek 9. Rezultat wykonania kodu z rys. 8 4. Podziękowania Niniejsza praca jest częścią projektu Eksploracja regułowych baz wiedzy sfinansowanego ze środków Narodowego Centrum Nauki (NCN: 2011/03/D/ST6/03027). Literatura [1] F. Pedregosa, G. Varoquaux, A. Gramfort, V. Michel, B. Thirion, O. Grisel, M. Blondel, P. Prettenhofer, R. Weiss,V. Dubourg, J. Vanderplas, A. Passos, D. Cournapeau, M. Brucher, M. Perrot, E. Duchesnay. Scikit-learn: Machine Learning in Python Journal of Machine Learning Research, strony 2825 2830, 2011 r. [2] G. Williams. Strona internetowa pakietu Rattle. http://rattle.togaware.com/ rattle-features.html, 2014. [Online; dostęp 1-maja-2014]. [3] M. Ankerst, M. M. Breunig, H.-P. Kriegel, J. Sander. Optics: Ordering points to identify the clustering structure. SIGMOD 1999, Proceedings ACM SIGMOD International Conference on Management of Data, USA, 1999. [4] M. R. Berthold, C. Borgelt, F. Höppner, F. Klawonn. Guide to Intelligent Data Analysis: How to Intelligently Make Sense of Real Data. Springer-Verlag, Londyn, Anglia, 2010. [5] M. R. Berthold, N. Cebron, F. Dill, T. R. Gabriel, T. Kötter, T. Meinl, P. Ohl, K. Thiel, B. Wiswedel. KNIME - The Konstanz Information Miner: Version 2.0 and Beyond. SIGKDD Explorations Newsletter, 11(1), strony 26 31, 2009. [6] M. Ester, K. Ester, H.-P. Sander, J. Sander, X. Xiaowei. A density-based algorithm for discovering clusters in large spatial databases with noise. International Conference on Knowledge Discovery and Data Mining, USA, 1996. 10

[7] J. Herrero, A. Valencia, J. Dopazo. A hierarchical unsupervised growing neural network for clustering gene expression patterns. Bioinformatics, 17(1), strony 126 136, 2001. [8] D. T. Larose. Discovering Knowledge in Data: An Introduction to Data Mining. Wiley-Interscience, USA, 2004. [9] A. Wakulicz-Deja, A. Nowak-Brzezińska, T. Xięski. Efficiency of complex data clustering. Lecture Notes in Computer Science, 6954, strony 636 641, 2011. [10] G. Williams. Data Mining with Rattle and R The Art of Excavating Data for Knowledge Discovery. Springer Science+Business, LLC, USA, 2011. 11