Eksploracja danych w wolnym wydaniu
2009-05-31, Niedziela 02:06:45 +0200, autor Karol „Zal” Zalewski, licencja LPRCTKC
Eksploracja danych (ang. data mining) nazywana również pozyskiwaniem wiedzy to proces polegający na znajdowaniu zależności między pewnymi rodzajami danych. Jak to przedstawić bardziej obrazowo? Wyobraźmy sobie kurczaczki. Dużo kurczaczków. Każdy z nich jest badany pod kątem wagi oraz tego, jaką posiada płeć. Brane są również pod uwagę inne cechy, ale nie będziemy obecnie o nich mówić. Wyobraźmy sobie teraz, że program, który pracuje nad tymi danymi "wywnioskował", iż młode kurczaki, których waga znajduje się w pewnym zakresie zawsze są płci męskiej, a lżejsze są płci żeńskiej. Dzięki tak uzyskanej zależności, czyli pewnej wiedzy, wiemy teraz, iż wystarczy jedynie badać wagę zwierząt w celu określenia ich płci. Przykład prosty, ale oddaje ideę eksploracji danych, czyli wydobywania pewnej wiedzy z dużej ilości danych licząc na to, iż dzięki temu będzie oba poprawna i użyteczna.
Po wstępnym zapoznaniu się z istniejącym oprogramowaniem postanowiłem przyjrzeć się bliżej trzem wolnym programom działającym m.in. pod systemem GNU/Linux. Mowa o Rattle, RapidMiner Community Edition oraz Weka. Dlaczego właśnie o nich?
- Rattle - ze względu na wykorzystanie języka o ogromnych możliwościach - R - znajdującego szerokie zastosowanie w statystyce, dodatkowo jest on wieloplatformowy i oparty o licencję GPL,
- RapidMiner Community Edition - ze względu na to, iż jest rozwijany przez komercyjną organizację, ale udostępniany za darmo, napisany w Javie (wieloplatformowy) i oparty o licencję AGPL,
- Weka - jako program uczelniany, napisany w Javie i udostępniony na licencji GPL, kolejnym plusem jest to, iż znajduje się w repozytorium Ubuntu.
Króciutki opis jest już za nami. Jak zabrać się za opis wspomnianego oprogramowania? Po pierwsze - należy określić cele, jakie chcemy osiągnąć, a po drugie - dane, na jakich testowane będzie wspomniane oprogramowanie. Zacznijmy od tego drugiego zadania.
Poniżej znajduje się lista wybranych typów danych wraz z wyszczególnieniem programów, które je obsługują:
- ARFF (Attribute-Relation File Format) - Weka, RapidMiner, Rattle,
- CSV (Comma Separated Values) - Weka, RapidMiner, Rattle,
- C4.5 - Weka, RapidMiner,
- SPSS - RapidMiner,
- RData, R Dataset - Rattle,
- format binarny - Weka, RapidMiner,
- format Excela - RapidMiner,
- ODBC - Weka, RapidMiner, Rattle,
- formaty popularnych baz danych - RapidMiner.
Jak sami zauważyliście, najlepiej obsługiwanymi formatami są formaty ARFF oraz CSV. Są one rozpoznawane przez wszystkie trzy aplikacje. Co więcej - na stronie projektu Weka znajdują się przykładowe dane zapisane w formacie ARFF, co oznacza, iż bez problemu można z nich skorzystać podczas testów. Jak zauważycie poniżej, nie wykorzystam ich, ponieważ zależy mi jedynie na opisie ich możliwości, ale jest to wskazówka dla osób chcących dokonać porównania w oparciu o wyniki pracy wspomnianych programów.
Celem tego wpisu jest porównanie ww. aplikacji biorąc pod uwagę takie czynniki, jak np.:
- liczba oferowanych opcji i algorytmów,
- stabilność aplikacji,
- dostępność API,
- łatwość i intuicyjność obsługi,
- społeczność użytkowników,
- wygląd interfejsu użytkownika.
Należy zauważyć, iż porównanie nie ma na celu określenia, który z programów jest najwydajniejszy, ani który z nich najlepiej wykonuje swoje zadanie. Będzie to w głównej mierze subiektywna ocena osoby, które dopiero nabywa wiedzę z zakresu eksploracji danych i ma ona zachęcić do bliższego kontaktu z wymienionymi aplikacjami. Szczególnie, iż rozwiązania komercyjne są niezwykle kosztowne, a przedstawione poniżej - całkowicie darmowe. Przejdźmy zatem do właściwego opisu.
Weka (ang. Waikato Environment for Knowledge Analysis) to oprogramowanie stworzone przez uniwersytet Waikato udostępniające nie tylko graficzny interfejs użytkownika, ale również umożliwiające wykonywanie komend z linii poleceń oraz użycie we własnej aplikacji w formie biblioteki. Jest to rozwiązanie popularne i nagradzane za swoją użyteczność. Wersja znajdująca się obecnie w repozytorium Ubuntu to 3.5.8 i tak też została poddana ocenie.
Weka nie jest przeznaczona dla niedoświadczonych użytkowników. Zapoznanie się z nią zdecydowanie ułatwia bogate wiki projektu, czy też dokumentacja. Istnieje również książka o eksploracji danych wykorzystująca w przykładach Wekę, ale nie jest ona dostępna w Internecie. Nie zmienia to jednak faktu, iż obsługa Weki wymaga sporo wiedzy z zakresu data mining oraz z samej konstrukcji tego oprogramowania.
Weka umożliwia pobranie danych z plików, czy też baz danych, wstępną ich obróbkę (np. normalizacja, dyskretyzacja, resampling itp.), a następnie wykorzystanie ich do uczenia (np. algorytmy klasyfikacji, analizę skupień itd.). Za tą część odpowiedzialny jest moduł Weki o nazwie Explorer. Experimenter ułatwia porównywanie efektywność działania różnego rodzaju sposobów nauki. Natomiast KnowledgeFlow umożliwia zautomatyzowane przetwarzania danych z wielu źródeł i na różne sposoby poprzez skonstruowanie grafu opisującego przepływ danych.
RapidMiner Community Edition (znany kiedyś jako YALE) wykorzystuje m.in. wspomniane wcześniej oprogramowanie o nazwie Weka (nie jest jednak ono konieczne do poprawnego działania). Udostępnia ponad 500 operatorów (z czego 100 z aplikacji Weka) dla wszystkich głównych procedur maszynowego uczenia, włączają w to obsługę wejścia, wyjścia, przetwarzania danych oraz wizualizację. Podobnie, jak Weka, posiada on GUI oraz umożliwia wykonywanie komend z poziomu linii poleceń, udostępniając jednocześnie javowe API. Dodatkowo posiada własny system wtyczek. Przetestowana wersja to 4.4.
RapidMiner zdecydowanie wygrywa z Weką i Rattle pod względem interfejsu użytkownika. Przyjazne ikony, dużo opisów, wszechobecne kreatory i wbudowany tutorial nie pozwalają użytkownikowi zagubić się w bogactwie opcji. W razie problemów pomocne okazać się może forum projektu na którym odpowiedzi udzielają sami jego twórcy oraz wiki, które jest niestety mocno niekompletne. Sam program dodatkowo udostępnia dwa tryby działania - eksperta i początkującego. Jednakże bez względu na jakość wykonania interfejsu wymaga on przede wszystkim wiedzy na temat samego zagadnienia eksploracji danych. Oczywiście, RapidMiner pozwala na wszystko to, co Weka oraz na jeszcze więcej. Dzięki zastosowaniu XML-a i wygodnego edytora bez problemu można tworzyć łańcuchy i drzewa operatorów, źródeł danych i innych "bloków" składających się na program wykonywany przez RapidMinera.
Główne różnice między RapidMinerem, a Weką:
- RapidMiner posiada około 400 operatorów więcej, niż Weka (około 100 operatorów), w tym głównie obsługę dodatkowych formatów danych, typów wizualizacji, przetwarzania wstępnego i walidacji,
- RapidMiner udostępnia system wtyczek,
- przepływ danych w Weka jest grafem ogólnego rodzaju, a w przypadku RapidMinera jest to drzewo, lub łańcuch z obsługą breakpointów,
- wiele osób twierdzi, że RapidMiner wymaga mniej pamięci oraz działa szybciej, niż Weka.
Wygląda na to, iż twórcy RapidMiner wybrali to, co najlepsze z Weki i dodali do tego sporo od siebie. Może on wykorzystywać do pracy Wekę, ale nie musi, co należy mieć na uwadze, chcąc powiedzieć, iż RapidMiner to tylko i wyłącznie inny interfejs dla Weki. Kto korzysta z RapidMinera? Cisco Systems, Ford, Honda, HP, IBM, Philips i wiele innych firm.
Rattle (ang. R Analytic Tool To Learn Easily) to wieloplatformowy program napisany z wykorzystaniem języka i środowiska R oparty o bibliotekę graficzną GTK 2. W chwili korzystania z Rattle miałem dostęp do wersji 2.4.53. Nie wygląda on może najładniej, ale jest stosunkowo prosty w użyciu i nadaje się dla początkujących użytkowników. Udostępnia następujące techniki z zakresu modelowania:
- asocjację z użyciem apriori (arules),
- klasyfikację z użyciem drzew decyzyjnych (rpart)
- uogólnione modele liniowe (glm),
- boosting (gbm),
- losowe lasy (randomForest).
Rattle jest wykorzystywany podczas codziennej pracy przez jeden z największych australijskich zespołów zajmujących się eksploracją danych, w Australijskim Urzędzie Skarbowym. W porównaniu do Weki, czy też RapidMinera, wydaje się być naprawdę prosty i stosunkowo ubogi. Należy mieć jednak na uwadze, iż zastosowanie R poszerza zakres jego wykorzystania.
Podsumowując, najbardziej interesującym rozwiązaniem wydaje się być RapidMiner, a w drugiej kolejności Weka. Bogate możliwości, obsługa wielu formatów danych, stosunkowo łatwa obsługa, przyjazny interfejs użytkownika oraz wsparcie ze strony producenta, jak i innych źródeł (np. forum) są plusem RapidMinera.
Istnieje jeszcze wiele innych wolnych, lub otwartych programów takich, jak np. ARMiner, ARTool, Multifactor Dimensionality Reduction (MDR), TANAGRA, czy też Orange. Jednak żaden z nich nie jest tak popularny, jak Weka, czy też RapidMiner.


