dział ??? Technologie OLAP i Data Mining w systemie Linux
Technologie OLAP i Data Mining w systemie Linux Grzegorz Gałęzowski
linux@software.com.pl
Systemy baz danych rozbudowały się znacząco w ciągu ostatnich dwóch dziesięcioleci. Odniosły one sukcesy w niezliczonej liczbie dziedzin współczesnego życia. Gromadzimy więcej i więcej danych, które są zapisywane w bazach danych.
B
azy o rozmiarach terabajtów są już na porządku dziennym. Często przedsiębiorstwo zdobywa i przechowuje różnego rodzaju dane, których nie potrafi wykorzystać. Sukces zależy w dużej mierze od umiejętności wykorzystania posiadanych informacji. Jednak duże zbiory nie podlegają łatwej analizie, szczególnie jeżeli jest ona dokonywana przez administratora. Dlatego też przychodzą nam tutaj z pomocą takie technologie jak OLAP i Data Mining.
OLAP
OLAP w swoim głównym zamierzeniu jest narzędziem nieingerującym w zawartość bazy, ani nie aktualizującym bazy danych. Narzędzia z tej rodziny przetwarzają dane online, znajdujące się w bazach i odpowiadają na zapytania użytkowników. Szeroka gama aplikacji umożliwia analizy ilościowe, jak i dostarcza niezbędnych informacji do analiz jakościowych. Jednak żeby lepiej zrozumieć termin OLAP pomocna będzie nam historia. W 1985 roku powstał termin przetwarzanie transakcji w trybie online (ang. Online Ttransaction Processing). Au-
2
luty 2009
torem tego terminu jest E. F. Codd, który zaproponował 12 kryteriów definiujących bazę danych typu OLTP. Zaproponowana przez niego terminologia została powszechnie zaakceptowana jako standard dla baz danych używanych do zarządzania transakcjami firmy. W 1993 Codd wprowadził kolejny termin przetwarzanie analityczne w trybie online (ang. Online Analytical Processint). Tak jak w poprzednim przypadku, tak i teraz zaproponował 12 kryteriów definiujących bazę typu OLAP. Niestety w tym przypadku jego kryteria nie zostały powszechnie przyjęte. Współcześnie Online Analytical Processing (OLAP) to technologia analizująca duże ilości danych w czasie rzeczywistym. W przeciwieństwie do przetwarzania transakcji na bieżąco (OLTP), które są zaprojektowane tak, aby umożliwić przechowywanie danych operacyjnych w celu skutecznej obsługi transakcji, OLAP zajmuje się przechowywaniem danych w streszczonych tabelach, w celu ułatwienia użytkownikom nawigacji i pobierania danych. System OLAP wykorzystuje technikę Multidimensional Analysis. Podczas gdy relacyjna baza danych gromadzi wszystkie dane w formie kolumn, wielowymiarowy zestaw danych składa się z kostki zawierającej agregacje wstęp-
dział ??? Technologie OLAP i Data Mining w systemie Linux nie obliczone dla poszczególnych wymiarów. Tabela 1. Przykładowy zestaw danych w kostce OLAP Przykładowy zestaw danych (Tabela 1): Rok 2007 2008 Systemy OLAP wykonują kalkulacje i moProdukt Sprzedaż w Sprzedaż Sprzedaż w Sprzedaż delowanie ważnych wielkości, które są nazyzłotówkach jednostkozłotówkach jednostkowane wymiarami i wykazują w swojej zasadzie wa wa podobieństwo do fizycznych wymiarów przeCałość 17,165 2,825 18,867 3,163 strzeni i czasu. 12,845 956 14,562 1,121 Wymiary są atrybutami do pomiaru wskaź- Książki —— Ro1,341 424 1,202 380 nika efektywności danych, które posiadają miamanse rę zwaną Key Performance Indicators (KPI), —— Sen1,412 400 1,224 386 czyli kluczowe wskaźniki wydajności. sacja Przy wykonywaniu analizy należy wziąć pod uwagę pojedynczą miarę dla kilku wymia- — Czasopi- 2,753 824 2,426 766 rów. Miarą może być ilość sprzedanych towa- sma rów, a wymiarami czas i geografia. Przy wybra- — Pocz1,567 1,045 1,879 1,276 niu jako wymiarów Lublin i miesiąca listopad, tówki system OLAP wyliczy ilość sprzedanych towarów w Lublinie, w listopadzie. Systemy OLAP Listing 1. ????????????????????? zawsze analizują miary na bazie wielu wymiarów i dlatego właśnie są one nazywane wielosqlplus system/manager wymiarowymi SQL> create user foodmart identified by foodmart; Gdy zostanie zdefiniowana miara i wymiaUser created. ry można przystąpić do zdefiniowania i budowy kostki OLAP (Cube). Kostkę taką buduje SQL> grant connect, resource to foodmart; się z atrybutów wymiarów. Atrybuty te są osiaGrant succeeded. mi koordynat kostki. Kostka może mieć np. oś SQL> exit miast z wymiaru klienta, oś lat z wymiaru cza. importing FOODMART's objects into FOODMART su i oś nazw produktów z wymiaru produktów . . importing table "customer" (Rysunek 1). imported Wielowymiarowość OLAP nie odnosi . . importing table "days" się tak jak to w przypadku sześcianu tylko do imported trzech wymiarów. W tej technologii liczba wy. . importing table "inventory_fact_1997" miarów przypisanych do kostki danych może imported wahać się od jednego do nieskończoności. Czy. . importing table "inventory_fact_1998" li takiej ilości jaka będzie potrzebna. imported OLAP może kojarzyć się wielu ludziom ja. . importing table "product" ko jedno lub też wielowymiarowa hurtownia imported danych. Najczęściej termin ten jednak jest zare. . importing table "product_class" zerwowany dla wyspecjalizowanych narzędzi imported służących do łatwego udostępniania zgroma. . importing table "promotion" dzonych informacji w hurtowniach danych. imported Narzędzia OLAP wykonują skomplikowa. . importing table "region" ne analizy danych historycznych przy pomocy imported wspomnianej już struktury wielowymiarowej. . . importing table "sales_fact_1997" Struktura ta jest przechowywana w hurtowni imported danych, czyli wyspecjalizowanej bazie danych, . . importing table "sales_fact_1998"
Wzrost Sprzedaż w złotówkach
Sprzedaż jednostkowa
10%
12%
13%
17%
16%
37%
11%
2%
-12%
-7%
20%
22%
10281 rows 7 rows 4070 rows 7282 rows 1560 rows 110 rows 1864 rows 110 rows 86837 rows 164558 rows
imported
. . importing table
"sales_fact_dec_1998"
18325 rows
. . importing table
"store"
24 rows
. . importing table
"time_by_day"
730 rows
. . importing table
"warehouse"
24 rows
. . importing table
"warehouse_class"
6 rows
imported imported imported imported imported
Rysunek 1. Trójwymiarowa kostka OLAP (Cube)
Import terminated successfully without warnings.
www.lpmagazine.org
3
dział ??? Technologie OLAP i Data Mining w systemie Linux która jest zbiorem różnorodnych baz danych. Usługi OLAP pozwalają na zbudowanie jednej aplikacji dla wykonywania różnych zapytań analitycznych zamiast budowania specyficznej aplikacji dla każdego zapytania. Narzędzia OLAP wnoszą do relacyjnych baz danych następujące zalety: • • •
krótki czas odpowiedzi; zapytania oparte na metadanych; styl formuł arkusza kalkulacyjnego.
Opcje przechowywania dostępne w OLAP to: MOLAP (OLAP wielowymiarowy), ROLAP (OLAP relacyjny), HOLAP (OLAP hybrydowy). MOLAP służy do tworzenia kostek wielowymiarowych na podstawie danych przechowywanych w hurtowni danych.
Rysunek 2. Ekran powitalny Listing 2. ??????????????????????? mysql\bin> mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO foodmart@localhost
| days
|
| inventory_fact_1997 | | inventory_fact_1998 | | product
-> IDENTIFIED BY 'foodmart';
|
| product_class
|
| promotion Query OK, 0 rows affected (0.06 sec) mysql> create database foodmart;
|
| sales_fact_1997
|
Query OK, 1 row affected (0.00 sec)
| sales_fact_1998
mysql> use foodmart
| sales_fact_dec_1998
Database changed
| store
mysql> connect foodmart
| | |
| time_by_day
|
Connection id: 5
| warehouse
Current database: foodmart
| warehouse_class
Zmieniamy składnię dla MySQL:
+-------------------------+
-Zmień wszystkie kolumny „varchar” w skrypcie FoodMartTables.sql na „varchar(30)”. -Zmień wartości “false/true” w FoodMartData.sql na “0/1”.
| |
15 rows in set (0.03sec)
mysql> select * from days; +------+-----------+
Utwórz tabele, następnie załaduj dane (przy okazji
| day
można sprawdzić czy wszystko jest OK.) i utwórz
+------+-----------+
indeksy:
| 1
| Sunday
mysql> source /mondrian/demo/FoodMartTables.sql
| 2
| Monday
|
Query OK, 1 row affected (0.00 sec)
| week_day
|
|
| 5
| Thursday
(15 times)
| 4
| Wednesday |
mysql> source /mondrian/demo/FoodMartData.sql
| 3
| Tuesday
Query OK, 1 row affected (0.00 sec)
| 6
| Friday
(315,789 times)
| 7
| Saturday
|
| | |
+------+-----------+
mysql> commit;
Query OK, 0 rows affected (0.00 sec) mysql> show tables;
7 rows in set (0.06 sec)
mysql> source /mondrian/demo/FoodMartIndexes.sql Query OK, 10281 rows affected (0.63 sec)
+------------------------+
Records: 10281 Duplicates: 0 Warnings: 0
| Tables_in_foodmart
... itd.
|
+------------------------+ | customer
4
|
| region
mysql> exit |
luty 2009
dział ??? Technologie OLAP i Data Mining w systemie Linux ROLAP umożliwia wysyłanie zapytań dotyczących zagregowanych danych. HOLAP łączy zalety MOLAP i ROLAP i został zaprojektowany z myślą o takich sytuacjach, w których 80% zapytań dotyczy danych agregacyjnych, a 20% dotyczy danych źródłowych. Aplikacje OLAP umożliwiają: • • • • •
przeglądanie danych w bazach; tworzenie tabel przestawnych; selekcjonowanie danych; drążenie w górę i drążenie w dół; tworzenie raportów i wykresów.
Data Mining
Listing 3. ??????????????????????? select NON EMPTY {[Measures].[Actual]} ON COLUMNS;
NON EMPTY Hierarchize(Union({[Positions].[All Positions]}, [Positions].[All Positions].Children)) ON ROWS; from [Quadrant Analysis].
Listing 4. ??????????????????????? +,S10,tactagcaatacgcttgcgttcggtggttaagtatgtataatgcgcgggcttgtcgt; +,AMPC,tgctatcctgacagttgtcacgctgattggtgtcgttacaatctaacgcatcgccaa; +,AROH,gtactagagaactagtgcattagcttatttttttgttatcatgctaaccacccggcg; +,DEOP2,aattgtgatgtgtatcgaagtgtgttgcggagtagatgttagaatactaacaaactc; +,LEU1_TRNA,tcgataattaactattgacgaaaagctgaaaaccactagaatgcgcctccgtggtag; +,MALEFG,aggggcaaggaggatggaaagaggttgccgtataaagaaactagagtccgtttaggt; +,MALK,cagggggtggaggatttaagccatctcctgatgacgcatagtcagcccatcatgaat; +,RECA,tttctacaaaacacttgatactgtatgagcatacagtataattgcttcaacagaaca;
+,RPOB,cgacttaatatactgcgacaggacgtccgttctgtgtaaatcgcaatgaaatggttt; Data Mining jest procesem mającym na celu .....; pozyskanie użytecznej wiedzy z baz danych. +,RRNAB_P1,ttttaaatttcctcttgtcaggccggaataactccctataatgcgccaccactgaca; W języku polskim tłumaczy się ten termin ja+,RRNAB_P2,gcaaaaataaatgcttgactctgtagcgggaaggcgtattatgcacaccccgcgccg; ko drążenie danych lub zgłębianie danych. Da+,RRNDEX_P2,cctgaaattcagggttgactctgaaagaggaaagcgtaatatacgccacctcgcgac; ta Mining to praca na dużych zbiorach danych, +,RRND_P1,gatcaaaaaaatacttgtgcaaaaaattgggatccctataatgcgcctccgttgaga. w sytuacjach, gdy techniki statystyczne nie są wystarczające. Listing 5. ???????????????????? Ręczne przeglądanie tabel rzadko pozwaSELECT; la na wykrycie przydatnych relacji, to w więk{([Measures].[Unit Sales]])} ON COLUMNS; szości przypadków dane są analizowane za po{; mocą automatycznego procesu nazywanego ([Customers].[All Customers].[USA],[Product].[All Products].[Food]); Knowledge Discovery, czyli odkrywanie wie([Customers].[All Customers].[USA],[Product].[All Products].[Drink]); dzy. Knowledge Discovery jest komponentem ([Customers].[All Customers].[USA]; Data Mining i umożliwia dostrzeganie prawi[Product].[All Products].[Non-Consumable]); dłowości i reguł w odpowiednio prezentowa([Customers][All Customers].[Canada]; nych zbiorach danych. Proces wykrywania [Product].[All Products].[Food]); prawidłowości jest zautomatyzowany, a ope([Customers].[All Customers].[Canada]; rator decyduje, które prawidłowości uznać za [Product].[All Products].[Drink]); ważne. ([Customers].[All Products].[Non-Consumable]); Techniki tego typu są stosowane wszędzie } ON ROWS; tam, gdzie szukany jest związek pomiędzy zjaFROM SALES. wiskami. Warunkiem niezbędnym jest posiadanie zbioru danych, które odzwierciedlają badane zjawisko. Jako już książkowy można podać przykład zależności sprzedaży piwa i pieluch. Dzięki kodom kreskowym supermarkety mogą zidentyfikować każdy produkt objęty transakcją oraz zbadać otrzymane dane w celu ustalenia relacji pomiędzy zakupami. Na przykład, jeśli firma chce zwiększyć sprzedaż piwa, to może przeanalizować wszystkie zakupy piwa w celu ustalenia, jakie produkty wybierają klienci kupujący piwo. Jeśli okaże się, że ci klienci często kupują także pieluszki, to firmie może udać się zwiększyć sprzedaż piwa poprzez przeprowadzenie promocji pieluszek. Inny jeszcze przykład zastosowania Data Mining jak najbardziej na czasie to budowa modeli oceniających zdolność kredytową klientów banku. Jeśli dysponujemy bazą klientów, którzy zaciągnęli w przeszłości kredyty oraz informacją o tym, jak każdy z nich Rysunek 3. Ekran z licencją systemu
www.lpmagazine.org
5
dział ??? Technologie OLAP i Data Mining w systemie Linux poradził sobie z jego spłatą, możemy próbować określić cechy klientów, którzy kredyty spłacają i cechy takich, którzy mają z tym problemy. W ten sposób przy dobrej analizie, można zabezpieczyć się przed przydzielaniem złych kredytów. Metodę zgłębiania danych można także wykorzystać w wielu innych dziedzinach życia i nie ogranicza się tylko do zastosowań biznesowych. Co ciekawe, zgłębianie danych stosuje się także w takich dziedzinach jak diagnostyka medyczna czy meteorologia. Każda dziedzina biznesu czy nauki, w której zbiera się i bada duże ilości danych, może skorzystać z technologii zgłębiania danych. Analizy danych wspierane metodami Data Mining mogą przynieść wiele korzyści: •
Rysunek 4. Wybór instalowanych aplikacji
• • •
pozyskiwanie informacji o bieżącym lub potencjalnym rynku; stworzenie profilów klientów i modelowanie ich zachowań; przewidywanie trendów; wykrywanie błędów i nieprawidłowości w danych.
Prognozowanie polega na wykorzystaniu znanych w danej chwili zmiennych w celu przewidywania wartości tych zmiennych w przyszłości. Na przykład model prognozowania trwałości i zużywania się materiałów używanych w produkcji pomaga wskazać te materiały lub części, które mogą ulec najszybszemu uszkodzeniu lub zużyciu. Najczęściej używane i najbardziej użyteczne metody analityczne z jakimi możemy się spotkać w odkrywaniu wiedzy to: • Rysunek 5. Wybór poziomu instalacji
Analiza statystyczna, która opiera się na odpowiednim wykorzystaniu reguł na relacjach między danymi;
Listing 6. ???????????????????? SELECT;
([Time].[1998],[Customers].[All Customers].[USA];
{;
([Time].[1998],[Customers].[All Customers].[USA];
([Time].[1997],[Customers].[All Customers].[USA];
[Product].[All Products].[Drink]);
[Product].[All Products].[Food]);
([Time].[1998],[Customers].[All Customers].[USA];
([Time].[1997],[Customers].[All Customers].[USA];
[Product].[All Products].[Non-Consumable]);
[Product].[All Products].[Drink]);
([Time].[1998],[Customers].[All Customers].[Canada];
([Time].[1997],[Customers].[All Customers].[USA];
[Product].[All Products].[Food]);
[Product].[All Products].[Non-Consumable]);
([Time].[1998],[Customers].[All Customers].[Canada];
([Time].[1997],[Customers].[All Customers].[Canada];
[Product].All Products].[Drink]);
[Product].[All Products].[Food]);
([Time].[1998],[Customers].[All Customers].[Canada];
([Time].[1997],[Customers].[All Customers].[Canada];
[Product].[All Products].[Non-Consumable]);
{([Measures].[Unit Sales])} ON COLUMNS;
[Product].[All Products].[Drink]); ([Time].[1997],[Customers].[All Customers].[Canada]; [Product].[All Products].[Non-Consumable]);
6
[Product].[All Products].[food]);
} ON ROWS;
FROM Sales.
luty 2009
dział ??? Technologie OLAP i Data Mining w systemie Linux •
Analiza klasyfikacji, która grupuje dane według pewnych podobieństw lub ustalonych cech wspólnych; Analiza odchyleń, która wykorzystuje wartości procentowe i wyjątki od reguły, aby zdefiniować obszary wymagające usprawnień; Analiza trendu, polegająca na poszukiwaniu trendów i wyprowadzaniu założeń lub prognoz opartych na nich.
•
•
Mondrian
Mondrian jest silnikiem OLAP napisanym w języku Java, udostępnionym na licencji GNU Jest uważany za czołowy projekt opensource w zakresie aplikacji OLAP. Umożliwia interaktywną analizę dużych ilości danych, przechowywanych w bazach danych SQL. Jego zadaniem jest wykonywanie pytań Rysunek 6. Wybór katalogu dla naszej instalacji napisanych w specjalnym rozszerzeniu języka SQL – MDX, który pobiera dane do analizy z relacyjnej bazy danych (RDBMS). Po przetworzeniu dane są prezentowane użytkownikowi Mondrian może być wykorzystywany do: •
wydajnej interaktywnej analizy zarówno małych, jak i bardzo dużych pakietów danych; eksploracji wielowymiarowej danych; analizy z wykorzystaniem MDX w języku SQL; zaawansowane obliczenia z wykorzystaniem wyrażeń języka MDX.
• • •
System Mondrian składa się z czterech warstw: •
Warstwa prezentacji danych to coś co do- Rysunek 7. Instalacja bazy danych Listing 7. ???????????????????? SELECT;
([Time].[1998],[Customers].[All Customers].[USA],[Prod
{;
([Time].[1998],[Customers].[All Customers].[USA],[Prod
([Time].[1997],[Customers].[All Customers].[USA],[Prod
uct].[All Products].[Drink].[Beverages]);
uct].[All Products].[Food]);
([Time.[1998],[Customers].[All Customers].[USA],[Produ
([Time].[1997],[Customers].[All Customers].[USA],[Prod
ct].[All Products].[Drink].[Dairy]);
uct].[All Products].[Drink]);
([Time].[1998],[Customers].[All Customers].[USA],[Prod
([Time].[1997],[Customers].[All Customers].[USA],[Prod
uct].[All Products].[Non-Consumable]);
uct].[All Products].[Non-Consumable]);
([Time].[1998],[Customers].[All Customers].[Canada],[P
([Time].[1997],[Customers].[All Customers].[Canada],[P
roduct].[All Products].[Food]);
roduct].[All Products].[Food]);
([Time].[1998],[Customers].[All Customers].[Canada],[P
([Time].[1997],[Customers].[All Customers].[Canada],[P
roduct].[All Products].[Drink]);
roduct].[All Products].[Drink]);
([Time].[1998],[Customers].[All Customers].[Canada],[P
([Time].[1997],[Customers].[All Customers].[Canada],[P
roduct].[All Products].[Non-Consumable]);
{([Measures].[Unit Sales])} ON COLUMNS;
uct].[All Products].[Drink].[Alcoholic Beverages]);
roduct].[All Products].[Non-Consumable]); ([Time].[1998],[Customers].[All Customers].[USA],[Prod uct].[All Products].[Food]);
} ON ROWS;
FROM Sales.
www.lpmagazine.org
7
dział ??? Technologie OLAP i Data Mining w systemie Linux tyczy końcowego użytkownika. Warstwa • ta jest odpowiedzialna za prezentację przetworzonych danych, które są wyświetlane na ekranie użytkownika. Umożliwia tak- • że użytkownikowi interaktywną komuni- • kację z programem, dzięki czemu można tworzyć nowe zapytania dla systemu.
Warstwa przetwarzania danych. Dokonują się tutaj obliczenia, parsowanie i zapytania MDX. Trzecią warstwą jest warstwa agregacji. Ostatnia warstwa to warstwa przechowywania informacji w systemie RDBMS.
Wszystkie wymienione elementy mogą być uruchomione na jednym komputerze, choć można także rozłożyć to na wiele komputerów. Warstwa 2 i 3, które obejmują serwer Mondrian, muszą być uruchomione na tym samym komputerze. Warstwa 3 może być już zaimplementowana na innym komputerze, do którego dostęp można uzyskać poprzez interfejs JDBC. Natomiast warstwa prezentacji danych może funkcjonować na każdym kliencie.
Czas na coś praktycznego
Pierwszy krok to zbudowanie środowiska do dalszej pracy. Cały proces można zamknąć w kilku krótkich krokach. Instalację i konfigurację podzielę na dwie części. W pierwszej zostanie przedstawiona instalacja bazująca na starym wydaniu systemu. W drugiej części przedstawię konfigurację bazującą na wersji oferowanej przez firmę Pentado, która także jest opensource. Zaczynamy od wersji historycznej. •
• Rysunek 8. Konfiguracja loginu i hasła dla MySQL
• Listing 8. ???????????????????? SELECT;
•
[Product].[Product Category]. MEMBERS ON ROWS;
•
{([MEASURES}.[Unit Sales])} ON COLUMNS; FROM Sales;
WHERE ([Customers].[All Customers].[USA].[WA],[Time].[1997]).
•
Listing 9. ???????????????????? WITH MEMBER MEASURES.[Store Profit] As ‘MEASURES.[Store Sales] – MEASURES.[Store Cost]’; SELECT;
{([Time].[Year].MEMBERS)} ON COLUMNS;
{([Product].[Product Category].MEMBERS)} ON ROWS;
SELECT;
Teraz, gdy mamy przygotowany warsztat pracy, możemy przejść do następnego etapu budowy naszego systemu analitycznego. W tym celu musimy zaopatrzyć się w dystrybucję Mondriana (mondrian-0.x.bin.zip) i oczywiście następnie rozpakować do wybranego miejsca na dysku twardym. Powiedzmy, że może to być katalog /mondrian. A teraz krok po kroku musimy postępować według następujących zaleceń:
(MEASURES.[Store Profit])} ON COLUMNS;
•
FROM Sales;
WHERE (MEASURES.[Store Profit]).
Listing 10. ???????????????????? WITH;
MEMBER MEASURES.[Store Profit] AS ‘MEASURES.[Store Sales] – MEASURES.[Store Cost]’;
MEMBER [Time].[1998 1997 Difference] AS ‘([Time].[1998]) – ([Time].[1997])’;
{(MEASURES.[Store Sales]),(MEASURES.[Store Cost]); {([Time].[1997]),([Time].[1998]),([Time].[1998 1997 Difference])}; ON ROWS;
FROM Sales.
8
Zainstalowanie Java Development Kit. Polecam instalację najnowszą wersję JDK ze strony http://java.sun.com/javase/ downloads/index.jsp; Instalacja Ant http://jakarta.apache.org/ ant/; Instalacja serwera aplikacji Apache Tomcat http://jakarta.apache.org/tomcat/; Instalacja Xalan’a http://xml.apache.org/ xalan-j/index.html; Następnie przechodzimy do (katalog_ domowy)/bin instalacji Xalan’a i kopiujemy pliki xalan.jar i xml-apis.jar do (katalog_domowy)/common/lib; Teraz pozostaje nam modyfikacja pliku wsadowego build.sh, ustawiamy tutaj nasze lokalizacje środowiskowe: JAVA_HOME, ANT_HOME, TOMCAT_HOME, XALAN_HOME, JUNIT_HOME.
•
luty 2009
Ładujemy bazę danych (szczegółowy opis w dalszej części tekstu, ze szczególnym uwzględnieniem konkretnych systemów bazodanowych); Dokonujemy zmian w /bin/mondrian.sh i
dział ??? Technologie OLAP i Data Mining w systemie Linux
• •
•
•
/bin/mondrian.properties by dostosować nasze środowisko systemowe; Przechodzimy do katalogu bin; Skrypt mondrian.sh przeprowadza cały zestaw testów JUnit. Wszystko powinno odbyć się bez przeszkód; Następny krok to utworzenie aplikacji (deploy-to-tomcat). Utworzy się dzięki temu w katalogu domowym serwera TOMCAT /webapps/mondrian.war zarchiwizowana wersja Mondriana; Uruchom serwer Tomcat, następnie uruchom przeglądarkę internetową i wprowadź poniższy adres: http://localhost: 8080/mondrian.
Następnie musimy zaopatrzyć się w plik mondrian-data.zip i rozpakować wszystko do uprzednio wybranego katalogu. Teraz będziemy musieli utworzyć bazę danych. Tworzenie i ładowanie danych do bazy danych będzie zaRysunek 9. Konfiguracja portu serwera aplikacji Jboss leżało od systemu bazodanowego, którego używamy. W naszym tutorialu oprzemy się na kilku najbardziej popularnych. Na pierwszy ogień pójdzie serwer Oracle. Oracle w wersji od 8.1.7 do najnowszych wersji Oracle 11g Utworzymy bazę przez importowanie do systemu pliku FoodMart.dmp z poniższej lokalizacji ../demo/oracle/FoodMart.dmp Najpierw uruchamiamy program sqlplus i logujemy się jako użytkownik system z hasłem manager. Tworzymy użytkownika za pomocą komendy create i nadajemy mu odpowiednie uprawnienia. Kolejny krok to zaimportowanie danych do serwera. Poniżej cały proces został przedstawiony krok po kroku: (Listing 1.) Na koniec pozostaje skonfigurowanie zmiennych środowiskowych według poniższych wskazań: •
•
•
Ustaw ścieżkę dostępu do ORACLE_HOME w build.sh, lub w zmiennych środowi- Rysunek10. Podsumowanie instalatora skowych w twoim systemie operacyjnym; Dodaj driver JDBC (Oracle8i/jdbc/lib/ classes12.zip) do ścieżki CLASSPATH w build.sh, lub w zmiennych środowiskowych w systemie operacyjnym; W build.xml, ustawiamy wartość dla mondrian.foodmart.jdbcURL i mondrian.foodmart.jdbcURL.oracle. Powinno się tutaj znaleźć nasze hasło i nazwa użytkownika jaką ustawiliśmy dla mondriana, np. jdbc:oracle:oci8:foodmart/ foodmart@myoracle.
MySQL Najpierw zakładamy użytkownika i tworzymy Rysunek11. ????????????????????? bazę danych: (Listing 2.)
www.lpmagazine.org
9
dział ??? Technologie OLAP i Data Mining w systemie Linux W build.xml należy ustawić odpowiednią bcURL" wartość. Dla celów testowych może to być: value="jdbc:mysql://localhost/foodma rt?user=root&#38;password="/> <property name="mondrian.foodmart.jd
PostgreSQL W pliku FoodMartTables.sql wystarczy zmienić DOUBLE na DOUBLE PRECISION i BIT na SMALLINT. Uruchomienie aplikacji. • •
• • •
Rysunek12. Przykładowe raporty
Wcześniej jednak oczywiście musimy mieć zainstalowany serwer Tomcat; Musimy się upewnić, czy wartości założone w pliku mondrian.properties są właściwe dla naszego środowiska. Szczególnie w: • Musimy się upewnić, czy sterownik JDBC naszej bazy danych znajduje się w mondrian.jdbcDrivers ; • Sprawdź URL katalogu w mondrian.test.connectString i mondrian.foodmart.catalogURL ; • Sprawdź połączenie JDBC w mondrian.test.connectString i mondrian.foodmart.jdbcURL. Uruchom build deploy-webapp; Uruchom serwer Tomcat; Teraz można uruchomić przeglądarkę internetową i wpisać poniższy adres: http: //localhost:8080/mondrian. Można także spróbować http://localhost:8080/ mondrian/taglib.jsp i http://localhost: 8080/mondrian/morph.jsp.
W nowych wersjach, które są do pobrania bezpośrednio ze strony Pentaho, będzie to wyglądać tak: •
• Rysunek 13. Raporty i panel administracyjny
• •
•
•
Rysunek 14. Prezentacja możliwości z zakresu analizy wielowymiarowych danych
10
luty 2009
•
Ściągamy plik instalacyjny ze strony Pentaho: http://www.pentaho.org/download/ latest.html; Uruchamiamy shell. Przechodzimy do miejsca składowania pliku instalacyjnego. Przełączamy się na użytkownika uprzywilejowanego root (su) i uruchamiamy instalator ./ pentaho-1.7GA-linux-opensource-installer.bin. Naszym oczom powinna ukazać się strona startowa instalatora (Rysunek. 2) W kolejnym kroku musimy przeczytać licencję programu i aby kontynuować instalację musimy się z nią zgodzić. (Rysunek 3) Następnie wybieramy aplikacje które nas interesują. W tym przypadku pozostawiamy domyślnie wszystkie aplikacje i przechodzimy do kolejnego kroku (Rysunek 4). Wybieramy instalację dla początkujących (Easy), która umożliwi nam szybkie skonfigurowanie niezbędnych do funkcjonowania systemu elementów (Rysunek 5). Wybieramy katalog dla naszej instalacji
dział ??? Technologie OLAP i Data Mining w systemie Linux
•
• Rysunek15. Edytor MDX
(Rysunek 6). W tym kroku wybieramy sposób konfigu- • racji i instalacji serwera MySQL (Rysunek 7). • Mamy tutaj trzy możliwości: • instalacja MySQL w wersji 5.0 wraz z użyciem tej instalacji jako repozyto- • rium dla naszego systemu analitycznego; • stworzenie repozytorium dla MySQL 5.0; • wykorzystanie repozytorium na już istniejącym zewnętrznym serwerze MySQL 5.0. • Ustalamy nazwę użytkownika i hasło dla serwera MySQL (Rysunek 8). • Opcjonalnie może pojawić się nam zapytanie o konfigurację portu dla serwera Jboss. Serwer ten domyślnie wykorzystuje port 8080, jeżeli jakaś inna aplikacja go właśnie wykorzystuje, będziemy przydzie•
Rysunek16. Raport z zapytania MDX
myślnie, będziemy mogli uruchomić cały system. Aby sprawdzić czy poprawnie uruchomił się nasz system, uruchamiamy przeglądarkę internetową i wprowadzamy do niej adres: http://localhost:8080 (Rysunek11). Port 8080 jest portem domyślnym i jeżeli podczas instalacji wprowadziliśmy inny port, należy wtedy zastąpić 8080 wybranym przez nas portem. Następnie musimy zalogować się do systemu. Mamy paru użytkowników zdefiniowanych podczas instalacji, wystarczy wybrać z listy dowolnego użytkownika i bez podawania hasła zalogować się. Mondrian Pentaho posiada parę demonstracji, które prezentują jego możliwości zarówno z zakresu analizy danych, jak i ich raportowania (Rysunek 12 i 13). Możemy się także zapoznać z wcześniej wspomnianym dodatkiem do języka SQL MDX. Dostęp do tego będziemy mieli po wybraniu nowej analizy. Uzyskamy w ten sposób dostęp do tworzenia własnych kostek danych i analizy z wykorzystaniem MDX. (Rysunek 14).
lać mu jakiś inny wolny port. (Rysunek 9). W kolejnych trzech krokach utworzymy • repozytoria naszego systemu. Instalator zapyta się nas jedynie o ich nazwy. Możemy zostawić domyślne i przejść dalej do • etapu końcowego. Pod koniec instalator wyświetli nam podsumowanie naszych wyborów i jeżeli wszystko się zgadza możemy przystąpić do właściwej instalacji plików (Rysunek 10). Gdy cały proces zakończy się po- Aby sprawdzić możliwości MDX kliknij w
Rysunek17. Baza iProClass w OLAP Mondrian
www.lpmagazine.org
11
dział ??? Technologie OLAP i Data Mining w systemie Linux górnym menu na MDX i uruchom edytor MDX.(Rysunek 15). Wprowadź do okna edytora poniższą komendę i wciśnij APPLY: (Listing 3.) Powinniśmy zobaczyć taki oto raport (Rysunek 16) To, co tutaj obserwujemy, to zbiorczy widok wszystkich wydatków i wynagrodzeń. Mondrian posiada bazę danych z informacjami, które mogą przydać się w analizie biznesowej. Oczywiście możemy podłączyć własną bazę i przeprowadzać analizy w innym zakresie. Wszyscy, którzy chcieliby trochę poeksperymentować ze zgłębianiem danych, mogą zaopatrzyć się w jedną z wielu baz danych do tego przeznaczonych i oferowanych bezpłatnie w Internecie przez Machine Learning Repository, Uniwersystet Kalifornii, Irvine: http: //archive.ics.uci.edu/ml/ Dostępnych jest tam bardzo wiele przykładów pochodzących z najprzeróżniejszych dziedzin. Znajdą się tutaj przykłady, które mogą zainteresować astronomów, ekonomistów, chemików czy też genetyków, jak np. system badania kolejności genów promotora E. coli (DNA) z
włączoną wadliwą teorią domeny: (Listing 4.) Warto zauważyć, że w tradycyjnych OLAP nakierowanych najczęściej na biznes, staramy się podsumować zestawy liczb. W biologii dane, które uzyskujemy, często są danymi nienumerycznymi. Załóżmy, że jesteśmy zainteresowani podsumowaniem zestawu sekwencji białkowych. Zwykle te sekwencje są reprezentowane jako ciągi liter i dlatego istnieje kilka sposobów na racjonalne podsumowanie takich grup sekwencji. W celu obsługi danych przestrzennych w biologii mamy dwa podstawowe wymagania: •
•
funkcje agregacji, które można podsumować w grupy nienumeryczne; Potrzebujemy własnych funkcji sumowania.
Dla każdego z tych białek mamy adnotacje opisujące ich funkcję i taksonomię. Możemy skorzystać z tych adnotacji jako wymiary sześcianu i określić funkcje agregacji. Więcej przykładów można odnaleźć także w bazach iProClass. ftp:// ftp.pir.georgetown.edu/databases/. Dostępna jest tam baza danych, która zawiera ponad 2 mln. sekwencji białkowych z adMusimy być w stanie zdefiniować nowe notacjami, np. domen białkowych itp. Wszyst-
Rysunek 20. Weka Explorer
Rysunek18. Weka CLI
Rysunek19. Weka GUI Chooser
12
Rysunek 21. Explorer z załadowanymi przykładowymi danymi
luty 2009
dział ??? Technologie OLAP i Data Mining w systemie Linux kie te adnotacje są potencjalnie przydatne jako wymiary sześcianu. Przykład użycia jednej z baz iProClass w OLAP Mondrian (Rysunek 17) •
MDX
element. Reprezentuje on unikalna pozycję na osi kostki, zawierającą wiele elementów; Zestaw MDX jest zbiorem elementów ciągów. Zbiór ten może być zestawem elementów z tego samego wymiaru lub z różnych wymiarów. Zestaw obejmuje zawartość osi kostki; Deklaracja MDX może zawierać wyrażenia przypisania, wyrażenia członkowskie i funkcje matematyczne.
MDX (Multidimensional Expressions) jest wyspecjalizowanym podzbiorem języka SQL, przeznaczonym dla zapytań dotyczących ko- • stek OLAP. Składnia jest podobna do standardowej składni SQL, obejmując słowa kluczowe takie jak SELECT, WHERE i FROM. Przykład składni MDX: W celu zwrócenia danych przez deklarację
MDX musi ona zawierać dwa elementy: • •
Nazwę kostki lub kostek dla pobrania danych; Liczbę osi MDX, zawierających elementy z jednego lub więcej ustanowionych ciągów.
W zapytaniu MDX musi być określona co najmniej jedna oś. W większości przypadków są to dwie osie, które określamy jako osie kolumn i wierszy. Pytanie :
SELECT; {([Measures].[Unit Sales])} ON COLUMNS; {([TIME].[1997])} ON ROWS; FROM SALES.
Rozszerzenia MDX pozwalają na dostosowanie procesów OLAP do specyficznych wymagań. Rozwiązanie problemów przetwarzania danych w hurtowni danych nie jest możliwe wyłącznie za pomocą narzędzi OLAP. Dla uzyskania oczekiwanych rozwiązań konieczne jest uzupełnienie przez rozszerzenia MDX. Podstawowymi blokami MDX są zestawy elementów formujące składnię łączenia i osadzania obiektów bazy danych dla OLAP. Elementy te umożliwiają utworzenie zestawu danych stosownie do potrzeb. Zestaw danych stanowią informację zwracane przez serwer OLAP z zapytania MDX. Podstawowymi składowymi deklaracji MDX są liczby, łańcuchy, elementy, ciągi i ze- Rysunek 22. Zbiór wszystkich wizualizacji danych stawy. •
•
•
•
Liczba w MDX może być liczbą każdego typu. Proces tworzenia nowych liczb na podstawie istniejących jest nazywany kompozycją. Wyrażenie kompozycji są normalnymi operacjami matematycznymi na liczbach; Łańcuch MDX jest sekwencją znaków, mogącą posiadać format przypisany im w środowisku klienta; Elementem MDX jest wartość atrybutu należącego do wymiaru. MDX posiada zestaw deklaracji zwanych wyrażeniami członkowskimi, które mogą być używane w operacjach na każdym z elementów do wymiaru. Wyrażenia członkowskie zawsze zwracają inny element wymiaru lub zero i pozwalają na przesuwanie się po całej hierarchii wymiaru strukturalnego; Ciąg jest to zbiór elementów z różnych wymiarów, przy czym każdy wymiar może mieć w tym zbiorze tylko jeden Rysunek 23. Inny przykład wizualizacji danych
www.lpmagazine.org
13
dział ??? Technologie OLAP i Data Mining w systemie Linux
SELECT; {([MEASURES].[Unit Sales])} ON COLUMNS; {([Time].[1997]),([Time].[1998])} ON ROWS; FROM Sales.
Nawiasy {} używane są tutaj do ograniczania przypisań. Nawiasy [ ] stosuje się dla każdego poziomu elementu. Brak nawiasów powoduje, że usługi OLAP próbują ustalić ich domniemane położenie, co często daje komunikaty błędów.
Miary są umieszczone we własnym wymiarze o nazwie MEASURES. Przy pomocy tego wymiaru można uzyskać dostęp do każdej miary kostki. Kropka jako operator pozwala na wskazanie, z którego wymiaru pochodzi element. W ten sposób można stosować takie same nazwy w różnych wymiarach. Usunięcie kropki i nazwy wymiaru jest możliwe w przypadku gdy wszystkie nazwy będą unikalne. W pytaniu tym znajdują się dwa ciągi wierszy: [Time].[1997] i [Time].[1998], każdy z jednym elementem – samym sobą. Słowo From zostało użyte do określenia na-
zwy kostki, z której pochodzą dane. Następne pytanie umożliwi nam uzyskanie odpowiedzi jak kształtowała się sprzedaż za rok 1997. SELECT; {([Measures].[Unit Sales])} ON COLUMNS; {([Time].[1997])} ON ROWS; FROM Sales.
Modyfikując powyższe pytanie można np. zgłębiać miesiące: SELECT; {([Measures]. [Unit Sales])} ON COLUMNS; {([Time].[1997].[Q1].[1])} ON ROWS; FROM Sales.
Poniższe pytanie umożliwia uzyskania wyniku sprzedaży dla wszystkich klientów w USA i Kanady, którzy kupili produkty z kategorii Food. (Listing 5) Puste rekordy dla Kanady związane są z próba przeglądania nieistniejących rekordów. Serwer w takim przypadku nie zwraca błędu, zwraca jedynie zero. Zapytanie należy zmodyfikować następująco: (Listing 6.) Zmiana spowoduje, że wymiar Customers jest zagnieżdżony w wymiarze Time, a wymiar Products jest zagnieżdżony w wymiarze Customers, co daje już prawidłowy wynik. Identyfikacja określonej informacji jest pracochłonna. Użytkownik przegląda dane i może wybrać wartość do rozwinięcia, tak jak w poniższym przykładzie sprzedaż napojów dla klientów w USA. (Listing 7.) Wymiary przekrojów umożliwiają widok przekroju danych kostki. Generalnie przy wykonywaniu przekrojów wszystkie wymiary oprócz jednego są stałe. Z punktów kostki pobierane są wartości jednej lub więcej miar. Jeśli kostka posiada trzy osie i wykonujemy przekrój po jednej z nich, to wszystkie punkty przekroju będą stałe dla dwóch wymiarów. Operacja przekroju stosuje klauzulę WHERE, która różni się od WHERE w SQL. W MDX definiuje ona, które wymiary są utrzymywane jako stałe oraz wartości dla tych wymiarów. (Listing 8.) Klauzula WHERE w powyższym pytaniu powoduje utrzymanie stałej wartości wymiaru Customer jako WA i wymiaru Time jako 1997. W rezultacie otrzymujemy Unit Sales mierzone na wszystkich wartościach Product Category dla klientów w WA, w roku 1997. MDX umożliwia także definiowanie no-
Rysunek 24. Zbiór macierzy punktów przedstawiających różne wizualizacje
Rysunek 25. Inny przykład tzw. Scatterplots
14
luty 2009
dział ??? Technologie OLAP i Data Mining w systemie Linux wych elementów w oparciu o istniejące miary lub wymiary kostki. W ten sposób można na przykład utworzyć nową miarę kalkulowaną zysku z istniejących miar sprzedaży i kosztów, przy użyciu klauzuli MDX WITH. Format klauzuli jest następujący:
pytanie tworzące nowy element kalkulowany dla zysku ma następującą postać: (Listing 9.) W celu ustalenia sprzedaży, kosztów i zysku sklepu za 1997 i 1998 oraz różnicy zysku w tych dwóch latach należy użyć poniższego pytania: (Listing 10.)
WITH MEMBER nazwa1.nadrzędny1 AS
Weka –Data Mining
Nikt nie rodzi się eksploratorem danych. Aby zdobyć i powiększyć doświadczenie analityka, ‘wyrażenie2’, ...]. należy przyswoić sobie podstawowe umiejętności. Następnie potrzebne są nadające się do Zysk jest równy sprzedaży, minus koszty. Za- eksploracji dane, a także sposób na zmierze‘wyrażenie1’;
[MEMBER nazwa 2.nadrzędny2 AS
Rysunek 26. Pierwszy przykład podglądu w zbliżeniu wykresów punktowych
nie ważnych cech zjawiska. W tym celu należy skorzystać z odpowiednich narzędzi, takich jak Weka Data Mining. Weka jest to aplikacją, która posiada duży zbiór algorytmów Data Mining. Weka zawiera narzędzia do wstępnego przetwarzania danych, klasyfikacji, regresji, grupowania, zasad zrzeszania, oraz wizualizacji danych. Może być także wykorzystana do tworzenia systemów uczących się. System rozprowadzany jest na licencji GNU, a jest napisany w języku Java. W obsłudze programu mamy możliwość wyboru pomiędzy interfejsem wiersza poleceń (CLI) (Rysunek18) lub graficznymi narzędziami Experimenter, Explorer i Weka Knowledge. Na początek zalecam zapoznać się z Explorer’em. Uruchamiamy program Weka GUI Chooser (Rysunek 19) i po kliknięciu na Explorer zobaczymy główną stronę Explorera (Rysunek20). Na początku wszystkie pola są jeszcze puste. Mamy tutaj kilka możliwości wyboru, ale zanim będzie można pracować z konkretnymi danymi, należy je załadować do programu Weka. Do programu zostały dołączone pliki z przykładowymi danymi, które pozwolą zapoznać się z funkcjonalnością całego systemu. Zacznijmy od otworzenia pliku z danymi (Open file...) Przechodzimy do katalogu data i tutaj mamy zbiór gotowych danych. Wybierzmy jakiś gotowy przykład, np. soybean.arff. (Rysunek21) Jak widać, program dostarcza nam trochę informacji na temat danych, takich jak na przykład liczne przypadki, liczby atrybutów, a także kilka informacji statystycznych na temat atrybutów. Istnieje szereg metod, za pomocą których
Rysunek 28.Wybór filtra
Rysunek 27. Inna forma zbliżonego scatterplots
www.lpmagazine.org
15
dział ??? Technologie OLAP i Data Mining w systemie Linux można użyć Weka do wizualizacji danych. Na ekranie głównym zostanie przedstawiony histogram dla jednego atrybutu dystrybucji, domyślnie jest to atrybut klasy. Należy pamiętać, że poszczególne kolory wskazują poszczególne klasy. Przycisk Visualize All pozwoli nam pokazać na ekranie wszystkie dystrybucje, które są dostępne (Rysunek22 i 23). Mamy jeszcze jedną możliwość wizualizacji poprzez zakładkę Visualize.. Kliknięcie na tę zakładkę otworzy tzw. scatterplots (macierze punktowe) dla wszystkich par atrybutów.(Rysunek 24 i 25). Możemy z prezentowanych tutaj zestawień wywnioskować kilka ciekawych rzeczy. Na przykład na powyższym obrazku widać, że w niektórych zestawieniach punktów różne kolory odpowiadają sobie wzajemnie, na przykład w odniesieniu do określonych klas. Domyślnie kolory wskazują różne klasy, w tym przypadku użyliśmy brązowego i dwa odcienie niebieskiego. Klikając lewym przyciskiem myszy na każdej z wyróżnionych klas, mamy możliwość ustawienia własnego koloru dla klas. Również domyślnie kolor jest stosowany w połączeniu z atrybutem klasy, ale może być użyteczny dla innych kolorów oraz atrybutów. Mamy także możliwość podglądu wybranych komórek w dużym zbliżeniu. (Rysunek 26 i 27). Program posiada szereg dostępnych filtrów, które stosują różne kryteria pozwalające wybierać albo obiekty (wiersze w macierzy danych),albo atrybuty (kolumny w macierzy danych). Dzięki temu można odrzucić część matryc danych bez konieczności manipulowania na oryginalnym pliku danych. Na przykład można odrzucić wybrane wiersze: normalize lub discretize atttributes i tak dalej. Aby zastosować filtr, musimy najpierw wybrać rodzaj filtra, klikając na przycisk Choose Filters z prawej strony na głównym pulpicie. Wybieramy folder z filtrami i rozwijamy listę dostępnych pozycji. Następnie możemy wybrać z dostępnej listy filtr, który będzie nas interesował (Rysunek 28)
Rysunek 29. Zakładka Select Attributes
Rysunek 30. Zakładka Classification
Zakładka Select Attributes Weka przewiduje również techniki odrzucania nieistotnych atrybutów lub zmniejszenia wymiarowości danych. Po załadowaniu danych, kliknij przycisk wyboru atrybutu znacznika, aby otworzyć GUI, które pozwoli wybrać zarówno metody oceny (podstawowe komponenty, takie jak na przykład analiza) oraz metody wyszukiwania (Rysunek29). Należy mieć świadomość, że nie wszystkie oceny i metody mogą być prawidłowe, należy przeglądać komunikaty o błędach, które dostępne są w logach
Rysunek 31. Zakładka Clustering
16
luty 2009
dział ??? Technologie OLAP i Data Mining w systemie Linux (przycisk Log).
Zakładka Classification Otwarcie menu z możliwością wyboru klasyfikatora, który ma być zastosowany do naszych danych. Mamy tutaj 4 opcje, pozwalające w różny sposób przetestować model danych (Rysunek30).
Zakładka Clustering Mamy tutaj grupowanie (klastrowanie). Opcja jest bardzo podobna do klasyfikacji, z kilkoma różnicami w zakresie wybierania opcji. Na przykład, istnieje możliwość prostego odrzucania niepożądanych atrybutów (Rysunek 31).
Zakładka Associate Weka oferuje trzy algorytmy pozwalające wyodrębniać z danych nieliczbowych, jak to pokazano na rysunku poniżej. (Rysunek 32)
Program Experimenter
Rysunek 32. Zakładka Associate
Experimenter można uruchomić zarówno z linii poleceń oraz jako łatwiejszy w użyciu program graficzny. Jest to narzędzie, które pozwala wykonywać więcej niż jeden eksperyment w tym samym czasie. Może stosować różne techniki do analizy danych lub tej samej techniki tylko że z różnymi parametrami. (Rysunek 33). Po wybraniu opcji New, która inicjuje nowy eksperyment z domyślnymi parametrami, możemy wybrać, gdzie mają być przechowywane wyniki eksperymentu. Następnie można zmienić domyślne parametry w razie potrzeby (należy zwrócić uwagę na możliwość wyboru klasyfikacji lub regresji). Na przykład, można dodać więcej danych, usunąć te już wybrane, a także dodawać i usuwać algorytmy stosowane w odniesieniu do wybranych danych. Można również wybrać rodzaj eksperymentu (cross Rysunek 33. Program Experimenter zatwierdzanie lub procentowo podzielony na szkolenie i test zestawu). (Rysunek34) Po uruchomieniu eksperymentu wyniki będą przechowywane w określonych przez nas plikach. Oczywiście, gdy eksperyment został uruchomiony i jego wynik był udany. Następnie można taki plik załadować do analizatora Weka, aby zobaczyć swoje wyniki. Poniżej została przedstawiona gotowa analiza przykładowego eksperymentu (Rysunek 35).
Program Knowledge Flow
Knowledge Flow jest alternatywnym pakietem funkcji dostarczanym wraz z programem Weka Data Mining. Dostępne są tutaj dodatkowe funkcje, które nie są obsługiwane przez eksperymentatora. (Rysunek 36).
Podsumowanie
Rysunek 34. Program Experimenter zainicjowany do przeprowadzania eksperymentów
www.lpmagazine.org
17
dział ??? Technologie OLAP i Data Mining w systemie Linux Przy wykorzystaniu technologii OLAP i Data Mining wyłania się użytkownikom kompletny obraz sytuacji, dzięki któremu informacje z wielu działów firmy (np. sprzedaż, marketing, produkcja, logistyka, kadry), które same w sobie są rozproszone, można formować w logiczną całość. Dokładne liczenie kosztów poszczególnych wyrobów bądź usług oferowanych przez firmę stało się dzięki temu możliwe. Wiedza otrzymana za pomocą technik analizy przyjmuje postać reguł, prawidłowości czy też tendencji, która może być wykorzystana przy wspomaganiu podejmowania ważnych
decyzji, np. do podniesienia jakości produkcji, wykrywania różnych nieprawidłowości, obsługi klientów, czy też do zwiększania przewagi konkurencyjnej. Człowiek ma naturalną skłonność do klasyfikowania przedmiotów według cech wspólnych. Nasze mózgi rozwiązują skomplikowane problemy rozkładając je na mniejsze. Tak samo działają opisane w tym artykule systemy. Odpytywanie tabeli liczącej milion wierszy w celu uzyskania całkowitej sumy będzie trwać znacznie dłużej niż odpytanie kilkuset wierszy tabeli podsumowującej.
Rysunek 35. Analiza eksperymentu
Rysunek 36. Program Knowledge Flow
18
luty 2009
Opisane metody umożliwiają prognozowanie, szukanie powiązań, klasyfikacji, grupowanie i opisywanie przyszłych trendów i zachowań. Tworzą czytelne reprezentacje wiedzy wydobytej z danych w postaci m.in. wykresów, wzorców, reguł i tabel. Eksplorację czy jak to woli zgłębianie danych można wykorzystać m.in. do badania danych w e-biznesie, do rozpoznawania obrazu, do wspomagania diagnostyki medycznej, badaniach genetycznych, badaniach ryzyka kredytowego i wielu innych. Eksploracja umożliwia nam wyszukiwanie niezauważalnych prawidłowości i powiązań. Wynikiem tego typu analiz mogą być konkretne zbiory danych, które mogą być wykorzystane w procesach decyzyjnych.