Technologie OLAP i Data Mining

17
dział ??? Technologie OLAP i Data Mining w systemie Linux 2 luty 2009 [email protected] Technologie OLAP i Data Mining w systemie Linux 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. Grzegorz Gałęzowski B azy o rozmiarach terabajtów są już na porząd- ku dziennym. Często przedsiębiorstwo zdobywa i przechowuje różnego rodzaju dane, których nie potrafi wykorzystać. Sukces zależy w dużej mie- rze 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 techno- logie jak OLAP i Data Mining. OLAP OLAP w swoim głównym zamierzeniu jest narzędziem nie- ingerującym w zawartość bazy, ani nie aktualizującym ba- zy danych. Narzędzia z tej rodziny przetwarzają dane onli- ne, znajdujące się w bazach i odpowiadają na zapytania użyt- kowników. Szeroka gama aplikacji umożliwia analizy ilo- ściowe, jak i dostarcza niezbędnych informacji do analiz ja- koś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- torem tego terminu jest E. F. Codd, który zaproponował 12 kryteriów definiujących bazę danych typu OLTP. Zapropo- nowana przez niego terminologia została powszechnie zaak- ceptowana jako standard dla baz danych używanych do za- rządzania transakcjami firmy. W 1993 Codd wprowadził ko- lejny termin przetwarzanie analityczne w trybie online (ang. Online Analytical Processint). Tak jak w poprzednim przy- padku, 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 rzeczy- wistym. W przeciwieństwie do przetwarzania transakcji na bieżąco (OLTP), które są zaprojektowane tak, aby umożli- wić przechowywanie danych operacyjnych w celu skutecznej obsługi transakcji, OLAP zajmuje się przechowywaniem da- nych w streszczonych tabelach, w celu ułatwienia użytkow- nikom nawigacji i pobierania danych. System OLAP wykorzystuje technikę Multidimensio- nal 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-

description

systeymy baz danych rozbudowywały się zn acząco wi 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.

Transcript of Technologie OLAP i Data Mining

Page 1: Technologie OLAP i Data Mining

dział ???Technologie OLAP i Data Mining w systemie Linux

2 luty 2009

dział ???Technologie OLAP i Data Mining w systemie Linux

3www.lpmagazine.org

lin

ux@

softw

are.

com

.pl

Technologie OLAP i Data Mining w systemie LinuxSystemy 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.

Grzegorz Gałęzowski

Bazy o rozmiarach terabajtów są już na porząd-ku dziennym. Często przedsiębiorstwo zdobywa i przechowuje różnego rodzaju dane, których nie potrafi wykorzystać. Sukces zależy w dużej mie-

rze 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 techno-logie jak OLAP i Data Mining.

OLAPOLAP w swoim głównym zamierzeniu jest narzędziem nie-ingerującym w zawartość bazy, ani nie aktualizującym ba-zy danych. Narzędzia z tej rodziny przetwarzają dane onli-ne, znajdujące się w bazach i odpowiadają na zapytania użyt-kowników. Szeroka gama aplikacji umożliwia analizy ilo-ściowe, jak i dostarcza niezbędnych informacji do analiz ja-koś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-

torem tego terminu jest E. F. Codd, który zaproponował 12 kryteriów definiujących bazę danych typu OLTP. Zapropo-nowana przez niego terminologia została powszechnie zaak-ceptowana jako standard dla baz danych używanych do za-rządzania transakcjami firmy. W 1993 Codd wprowadził ko-lejny termin przetwarzanie analityczne w trybie online (ang. Online Analytical Processint). Tak jak w poprzednim przy-padku, 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 rzeczy-wistym. W przeciwieństwie do przetwarzania transakcji na bieżąco (OLTP), które są zaprojektowane tak, aby umożli-wić przechowywanie danych operacyjnych w celu skutecznej obsługi transakcji, OLAP zajmuje się przechowywaniem da-nych w streszczonych tabelach, w celu ułatwienia użytkow-nikom nawigacji i pobierania danych.

System OLAP wykorzystuje technikę Multidimensio-nal 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-

Page 2: Technologie OLAP i Data Mining

dział ???Technologie OLAP i Data Mining w systemie Linux

2 luty 2009

dział ???Technologie OLAP i Data Mining w systemie Linux

3www.lpmagazine.org

nie obliczone dla poszczególnych wymiarów. Przykładowy zestaw danych (Tabela 1):

Systemy OLAP wykonują kalkulacje i mo-delowanie ważnych wielkości, które są nazy-wane wymiarami i wykazują w swojej zasadzie podobieństwo do fizycznych wymiarów prze-strzeni i czasu.

Wymiary są atrybutami do pomiaru wskaź-nika efektywności danych, które posiadają mia-rę zwaną Key Performance Indicators (KPI), czyli kluczowe wskaźniki wydajności.

Przy wykonywaniu analizy należy wziąć pod uwagę pojedynczą miarę dla kilku wymia-rów. Miarą może być ilość sprzedanych towa-rów, a wymiarami czas i geografia. Przy wybra-niu jako wymiarów Lublin i miesiąca listopad, system OLAP wyliczy ilość sprzedanych towa-rów w Lublinie, w listopadzie. Systemy OLAP zawsze analizują miary na bazie wielu wymia-rów i dlatego właśnie są one nazywane wielo-wymiarowymi

Gdy zostanie zdefiniowana miara i wymia-ry można przystąpić do zdefiniowania i budo-wy kostki OLAP (Cube). Kostkę taką buduje się z atrybutów wymiarów. Atrybuty te są osia-mi koordynat kostki. Kostka może mieć np. oś miast z wymiaru klienta, oś lat z wymiaru cza-su i oś nazw produktów z wymiaru produktów (Rysunek 1).

Wielowymiarowość OLAP nie odnosi się tak jak to w przypadku sześcianu tylko do trzech wymiarów. W tej technologii liczba wy-miarów przypisanych do kostki danych może wahać się od jednego do nieskończoności. Czy-li takiej ilości jaka będzie potrzebna.

OLAP może kojarzyć się wielu ludziom ja-ko jedno lub też wielowymiarowa hurtownia danych. Najczęściej termin ten jednak jest zare-zerwowany dla wyspecjalizowanych narzędzi służących do łatwego udostępniania zgroma-dzonych informacji w hurtowniach danych.

Narzędzia OLAP wykonują skomplikowa-ne analizy danych historycznych przy pomocy wspomnianej już struktury wielowymiarowej. Struktura ta jest przechowywana w hurtowni danych, czyli wyspecjalizowanej bazie danych,

Tabela 1. Przykładowy zestaw danych w kostce OLAP

Rok 2007 2008 WzrostProdukt Sprzedaż w

złotówkachSprzedaż jednostko-wa

Sprzedaż w złotówkach

Sprzedaż jednostko-wa

Sprzedaż w złotówkach

Sprzedaż jednostko-wa

Całość 17,165 2,825 18,867 3,163 10% 12%

Książki 12,845 956 14,562 1,121 13% 17%

—— Ro-manse

1,341 424 1,202 380 16% 37%

—— Sen-sacja

1,412 400 1,224 386 11% 2%

— Czasopi-sma

2,753 824 2,426 766 -12% -7%

— Pocz-tówki

1,567 1,045 1,879 1,276 20% 22%

Listing 1. ?????????????????????

sqlplus system/manager

SQL> create user foodmart identified by foodmart;

User created.

SQL> grant connect, resource to foodmart;

Grant succeeded.

SQL> exit

. importing FOODMART's objects into FOODMART

. . importing table "customer" 10281 rows

imported

. . importing table "days" 7 rows

imported

. . importing table "inventory_fact_1997" 4070 rows

imported

. . importing table "inventory_fact_1998" 7282 rows

imported

. . importing table "product" 1560 rows

imported

. . importing table "product_class" 110 rows

imported

. . importing table "promotion" 1864 rows

imported

. . importing table "region" 110 rows

imported

. . importing table "sales_fact_1997" 86837 rows

imported

. . importing table "sales_fact_1998" 164558 rows

imported

. . importing table "sales_fact_dec_1998" 18325 rows

imported

. . importing table "store" 24 rows

imported

. . importing table "time_by_day" 730 rows

imported

. . importing table "warehouse" 24 rows

imported

. . importing table "warehouse_class" 6 rows

imported

Import terminated successfully without warnings.

Rysunek 1. Trójwymiarowa kostka OLAP (Cube)

Page 3: Technologie OLAP i Data Mining

4 luty 2009

dział ???Technologie OLAP i Data Mining w systemie Linux

5www.lpmagazine.org

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 za-pytań analitycznych zamiast budowania specy-ficznej 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), RO-LAP (OLAP relacyjny), HOLAP (OLAP hy-brydowy).

MOLAP służy do tworzenia kostek wielo-wymiarowych na podstawie danych przecho-wywanych w hurtowni danych.

Listing 2. ???????????????????????

mysql\bin> mysql

mysql> GRANT ALL PRIVILEGES ON *.* TO

foodmart@localhost

-> IDENTIFIED BY 'foodmart';

Query OK, 0 rows affected (0.06 sec)

mysql> create database foodmart;

Query OK, 1 row affected (0.00 sec)

mysql> use foodmart

Database changed

mysql> connect foodmart

Connection id: 5

Current database: foodmart

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”.

Utwórz tabele, następnie załaduj dane (przy okazji

można sprawdzić czy wszystko jest OK.) i utwórz

indeksy:

mysql> source /mondrian/demo/FoodMartTables.sql

Query OK, 1 row affected (0.00 sec)

(15 times)

mysql> source /mondrian/demo/FoodMartData.sql

Query OK, 1 row affected (0.00 sec)

(315,789 times)

mysql> commit;

Query OK, 0 rows affected (0.00 sec)

mysql> show tables;

+------------------------+

| Tables_in_foodmart |

+------------------------+

| customer |

| days |

| inventory_fact_1997 |

| inventory_fact_1998 |

| product |

| product_class |

| promotion |

| region |

| sales_fact_1997 |

| sales_fact_1998 |

| sales_fact_dec_1998 |

| store |

| time_by_day |

| warehouse |

| warehouse_class |

+-------------------------+

15 rows in set (0.03sec)

mysql> select * from days;

+------+-----------+

| day | week_day |

+------+-----------+

| 1 | Sunday |

| 2 | Monday |

| 5 | Thursday |

| 4 | Wednesday |

| 3 | Tuesday |

| 6 | Friday |

| 7 | Saturday |

+------+-----------+

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

... itd.

mysql> exit

Rysunek 2. Ekran powitalny

Page 4: Technologie OLAP i Data Mining

4 luty 2009

dział ???Technologie OLAP i Data Mining w systemie Linux

5www.lpmagazine.org

dział ???Technologie OLAP i Data Mining w systemie Linux

ROLAP umożliwia wysyłanie zapytań do-tyczących zagregowanych danych.

HOLAP łączy zalety MOLAP i ROLAP i został zaprojektowany z myślą o takich sy-tuacjach, w których 80% zapytań dotyczy da-nych 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 MiningData Mining jest procesem mającym na celu pozyskanie użytecznej wiedzy z baz danych. W języku polskim tłumaczy się ten termin ja-ko drążenie danych lub zgłębianie danych. Da-ta Mining to praca na dużych zbiorach danych, w sytuacjach, gdy techniki statystyczne nie są wystarczające.

Ręczne przeglądanie tabel rzadko pozwa-la na wykrycie przydatnych relacji, to w więk-szości przypadków dane są analizowane za po-mocą automatycznego procesu nazywanego Knowledge Discovery, czyli odkrywanie wie-dzy. Knowledge Discovery jest komponentem Data Mining i umożliwia dostrzeganie prawi-dłowości i reguł w odpowiednio prezentowa-nych zbiorach danych. Proces wykrywania prawidłowości jest zautomatyzowany, a ope-rator decyduje, które prawidłowości uznać za ważne.

Techniki tego typu są stosowane wszędzie tam, gdzie szukany jest związek pomiędzy zja-wiskami. Warunkiem niezbędnym jest posiada-nie zbioru danych, które odzwierciedlają bada-ne zjawisko.

Jako już książkowy można podać przykład zależności sprzedaży piwa i pieluch. Dzięki ko-dom kreskowym supermarkety mogą zidenty-fikować każdy produkt objęty transakcją oraz zbadać otrzymane dane w celu ustalenia rela-cji pomiędzy zakupami. Na przykład, jeśli fir-ma chce zwiększyć sprzedaż piwa, to może przeanalizować wszystkie zakupy piwa w celu ustalenia, jakie produkty wybierają klienci ku-pują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 przepro-wadzenie promocji pieluszek.

Inny jeszcze przykład zastosowania Da-ta Mining jak najbardziej na czasie to budo-wa modeli oceniających zdolność kredyto-wą klientów banku. Jeśli dysponujemy bazą klientów, którzy zaciągnęli w przeszłości kre-dyty oraz informacją o tym, jak każdy z nich

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;

.....;

+,RRNAB_P1,ttttaaatttcctcttgtcaggccggaataactccctataatgcgccaccactgaca;

+,RRNAB_P2,gcaaaaataaatgcttgactctgtagcgggaaggcgtattatgcacaccccgcgccg;

+,RRNDEX_P2,cctgaaattcagggttgactctgaaagaggaaagcgtaatatacgccacctcgcgac;

+,RRND_P1,gatcaaaaaaatacttgtgcaaaaaattgggatccctataatgcgcctccgttgaga.

Listing 5. ????????????????????SELECT;

{([Measures].[Unit Sales]])} ON COLUMNS;

{;

([Customers].[All Customers].[USA],[Product].[All Products].[Food]);

([Customers].[All Customers].[USA],[Product].[All Products].[Drink]);

([Customers].[All Customers].[USA];

[Product].[All Products].[Non-Consumable]);

([Customers][All Customers].[Canada];

[Product].[All Products].[Food]);

([Customers].[All Customers].[Canada];

[Product].[All Products].[Drink]);

([Customers].[All Products].[Non-Consumable]);

} ON ROWS;

FROM SALES.

Rysunek 3. Ekran z licencją systemu

Page 5: Technologie OLAP i Data Mining

6 luty 2009

dział ???Technologie OLAP i Data Mining w systemie Linux

7www.lpmagazine.org

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łaca-ją i cechy takich, którzy mają z tym problemy. W ten sposób przy dobrej analizie, można za-bezpieczyć się przed przydzielaniem złych kre-dytów. Metodę zgłębiania danych można także wykorzystać w wielu innych dziedzinach życia i nie ogranicza się tylko do zastosowań bizne-sowych. Co ciekawe, zgłębianie danych stosu-je się także w takich dziedzinach jak diagnosty-ka medyczna czy meteorologia. Każda dziedzi-na biznesu czy nauki, w której zbiera się i bada duże ilości danych, może skorzystać z techno-logii zgłębiania danych.

Analizy danych wspierane metodami Data Mining mogą przynieść wiele korzyści:

• pozyskiwanie informacji o bieżącym lub potencjalnym rynku;

• stworzenie profilów klientów i modelowa-nie ich zachowań;

• przewidywanie trendów;• wykrywanie błędów i nieprawidłowości w

danych.

Prognozowanie polega na wykorzystaniu zna-nych w danej chwili zmiennych w celu przewi-dywania 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 uszko-dzeniu lub zużyciu.

Najczęściej używane i najbardziej użytecz-ne metody analityczne z jakimi możemy się spotkać w odkrywaniu wiedzy to:

• Analiza statystyczna, która opiera się na odpowiednim wykorzystaniu reguł na re-lacjach między danymi;

Listing 6. ????????????????????

Rysunek 4. Wybór instalowanych aplikacji

SELECT;

{([Measures].[Unit Sales])} ON COLUMNS;

{;

([Time].[1997],[Customers].[All Customers].[USA];

[Product].[All Products].[Food]);

([Time].[1997],[Customers].[All Customers].[USA];

[Product].[All Products].[Drink]);

([Time].[1997],[Customers].[All Customers].[USA];

[Product].[All Products].[Non-Consumable]);

([Time].[1997],[Customers].[All Customers].[Canada];

[Product].[All Products].[Food]);

([Time].[1997],[Customers].[All Customers].[Canada];

[Product].[All Products].[Drink]);

([Time].[1997],[Customers].[All Customers].[Canada];

[Product].[All Products].[Non-Consumable]);

([Time].[1998],[Customers].[All Customers].[USA];

[Product].[All Products].[food]);

([Time].[1998],[Customers].[All Customers].[USA];

[Product].[All Products].[Drink]);

([Time].[1998],[Customers].[All Customers].[USA];

[Product].[All Products].[Non-Consumable]);

([Time].[1998],[Customers].[All Customers].[Canada];

[Product].[All Products].[Food]);

([Time].[1998],[Customers].[All Customers].[Canada];

[Product].All Products].[Drink]);

([Time].[1998],[Customers].[All Customers].[Canada];

[Product].[All Products].[Non-Consumable]);

} ON ROWS;

FROM Sales.

Rysunek 5. Wybór poziomu instalacji

Page 6: Technologie OLAP i Data Mining

6 luty 2009

dział ???Technologie OLAP i Data Mining w systemie Linux

7www.lpmagazine.org

dział ???Technologie OLAP i Data Mining w systemie Linux

• Analiza klasyfikacji, która grupuje dane według pewnych podobieństw lub ustalo-nych cech wspólnych;

• Analiza odchyleń, która wykorzystu-je wartości procentowe i wyjątki od regu-ły, aby zdefiniować obszary wymagające usprawnień;

• Analiza trendu, polegająca na poszukiwa-niu trendów i wyprowadzaniu założeń lub prognoz opartych na nich.

MondrianMondrian jest silnikiem OLAP napisanym w języku Java, udostępnionym na licencji GNU

Jest uważany za czołowy projekt openso-urce w zakresie aplikacji OLAP. Umożliwia in-teraktywną analizę dużych ilości danych, prze-chowywanych w bazach danych SQL.

Jego zadaniem jest wykonywanie pytań napisanych w specjalnym rozszerzeniu języka SQL – MDX, który pobiera dane do analizy z relacyjnej bazy danych (RDBMS). Po przetwo-rzeniu 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 da-nych;

• eksploracji wielowymiarowej danych;• analizy z wykorzystaniem MDX w języku

SQL;• zaawansowane obliczenia z wykorzysta-

niem wyrażeń języka MDX.

System Mondrian składa się z czterech warstw:

• Warstwa prezentacji danych to coś co do-

Listing 7. ????????????????????

SELECT;

{([Measures].[Unit Sales])} ON COLUMNS;

{;

([Time].[1997],[Customers].[All Customers].[USA],[Prod

uct].[All Products].[Food]);

([Time].[1997],[Customers].[All Customers].[USA],[Prod

uct].[All Products].[Drink]);

([Time].[1997],[Customers].[All Customers].[USA],[Prod

uct].[All Products].[Non-Consumable]);

([Time].[1997],[Customers].[All Customers].[Canada],[P

roduct].[All Products].[Food]);

([Time].[1997],[Customers].[All Customers].[Canada],[P

roduct].[All Products].[Drink]);

([Time].[1997],[Customers].[All Customers].[Canada],[P

roduct].[All Products].[Non-Consumable]);

([Time].[1998],[Customers].[All Customers].[USA],[Prod

uct].[All Products].[Food]);

([Time].[1998],[Customers].[All Customers].[USA],[Prod

uct].[All Products].[Drink].[Alcoholic Beverages]);

([Time].[1998],[Customers].[All Customers].[USA],[Prod

uct].[All Products].[Drink].[Beverages]);

([Time.[1998],[Customers].[All Customers].[USA],[Produ

ct].[All Products].[Drink].[Dairy]);

([Time].[1998],[Customers].[All Customers].[USA],[Prod

uct].[All Products].[Non-Consumable]);

([Time].[1998],[Customers].[All Customers].[Canada],[P

roduct].[All Products].[Food]);

([Time].[1998],[Customers].[All Customers].[Canada],[P

roduct].[All Products].[Drink]);

([Time].[1998],[Customers].[All Customers].[Canada],[P

roduct].[All Products].[Non-Consumable]);

} ON ROWS;

FROM Sales.

Rysunek 6. Wybór katalogu dla naszej instalacji

Rysunek 7. Instalacja bazy danych

Page 7: Technologie OLAP i Data Mining

8 luty 2009

dział ???Technologie OLAP i Data Mining w systemie Linux

9www.lpmagazine.org

dział ???Technologie OLAP i Data Mining w systemie Linux

tyczy końcowego użytkownika. Warstwa ta jest odpowiedzialna za prezentację prze-tworzonych 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 przechowy-

wania 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 Mon-drian, muszą być uruchomione na tym samym komputerze. Warstwa 3 może być już zaimple-mentowana 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ś praktycznegoPierwszy 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 in-stalacja bazująca na starym wydaniu systemu. W drugiej części przedstawię konfigurację ba-zującą na wersji oferowanej przez firmę Penta-do, która także jest opensource.

Zaczynamy od wersji historycznej.

• 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 Tom-cat 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 kopiuje-my pliki xalan.jar i xml-apis.jar do (kata-log_domowy)/common/lib;

• Teraz pozostaje nam modyfikacja pliku wsadowego build.sh, ustawiamy tutaj na-sze lokalizacje środowiskowe: JAVA_HO-ME, ANT_HOME, TOMCAT_HOME, XALAN_HOME, JUNIT_HOME.

Teraz, gdy mamy przygotowany warsztat pra-cy, możemy przejść do następnego etapu budo-wy naszego systemu analitycznego. W tym celu musimy zaopatrzyć się w dystrybucję Mondria-na (mondrian-0.x.bin.zip) i oczywiście następ-nie rozpakować do wybranego miejsca na dys-ku twardym. Powiedzmy, że może to być kata-log /mondrian.

A teraz krok po kroku musimy postępować według następujących zaleceń:

• Ł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

Listing 8. ????????????????????SELECT;

{([MEASURES}.[Unit Sales])} ON COLUMNS;

[Product].[Product Category]. MEMBERS ON ROWS;

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;

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])’;

SELECT;

{(MEASURES.[Store Sales]),(MEASURES.[Store Cost]);

(MEASURES.[Store Profit])} ON COLUMNS;

{([Time].[1997]),([Time].[1998]),([Time].[1998 1997 Difference])};

ON ROWS;

FROM Sales.

Rysunek 8. Konfiguracja loginu i hasła dla MySQL

Page 8: Technologie OLAP i Data Mining

8 luty 2009

dział ???Technologie OLAP i Data Mining w systemie Linux

9www.lpmagazine.org

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 ze-

staw testów JUnit. Wszystko powinno od-być się bez przeszkód;

• Następny krok to utworzenie aplikacji (de-ploy-to-tomcat). Utworzy się dzięki temu w katalogu domowym serwera TOMCAT /webapps/mondrian.war zarchiwizowana wersja Mondriana;

• Uruchom serwer Tomcat, następnie uru-chom przeglądarkę internetową i wpro-wadź poniższy adres: http://localhost:8080/mondrian.

Następnie musimy zaopatrzyć się w plik mon-drian-data.zip i rozpakować wszystko do uprzednio wybranego katalogu. Teraz będzie-my musieli utworzyć bazę danych. Tworzenie i ładowanie danych do bazy danych będzie za-leżało od systemu bazodanowego, którego uży-wamy. W naszym tutorialu oprzemy się na kil-ku najbardziej popularnych.

Na pierwszy ogień pójdzie serwer Oracle. Oracle w wersji od 8.1.7 do najnowszych

wersji Oracle 11gUtworzymy bazę przez importowanie do

systemu pliku FoodMart.dmp z poniższej loka-lizacji ../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_HO-ME w build.sh, lub w zmiennych środowi-skowych w twoim systemie operacyjnym;

• Dodaj driver JDBC (Oracle8i/jdbc/lib/classes12.zip) do ścieżki CLASSPATH w bu-ild.sh, lub w zmiennych środowiskowych w systemie operacyjnym;

• W build.xml, ustawiamy wartość dla mon-drian.foodmart.jdbcURL i mondrian.fo-odmart.jdbcURL.oracle. Powinno się tu-taj znaleźć nasze hasło i nazwa użyt-kownika jaką ustawiliśmy dla mon-driana, np. jdbc:oracle:oci8:foodmart/foodmart@myoracle.

MySQLNajpierw zakładamy użytkownika i tworzymy bazę danych: (Listing 2.)

Rysunek 9. Konfiguracja portu serwera aplikacji Jboss

Rysunek10. Podsumowanie instalatora

Rysunek11. ?????????????????????

Page 9: Technologie OLAP i Data Mining

10 luty 2009

dział ???Technologie OLAP i Data Mining w systemie Linux

11www.lpmagazine.org

dział ???Technologie OLAP i Data Mining w systemie Linux

W build.xml należy ustawić odpowiednią wartość. Dla celów testowych może to być:

<property name="mondrian.foodmart.jd

bcURL"

value="jdbc:mysql://localhost/foodma

rt?user=root&#38;password="/>

PostgreSQLW pliku FoodMartTables.sql wystarczy zmie-nić DOUBLE na DOUBLE PRECISION i BIT na SMALLINT.

Uruchomienie aplikacji.

• Wcześniej jednak oczywiście musimy mieć zainstalowany serwer Tomcat;

• Musimy się upewnić, czy wartości założo-ne w pliku mondrian.properties są właści-we dla naszego środowiska. Szczególnie w: • Musimy się upewnić, czy sterownik

JDBC naszej bazy danych znajduje się w mondrian.jdbcDrivers ;

• Sprawdź URL katalogu w mon-drian.test.connectString i mon-drian.foodmart.catalogURL ;

• Sprawdź połączenie JDBC w mon-drian.test.connectString i mon-drian.foodmart.jdbcURL.

• Uruchom build deploy-webapp;• Uruchom serwer Tomcat; • Teraz można uruchomić przeglądarkę in-

ternetową 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 bez-pośrednio ze strony Pentaho, będzie to wyglą-dać tak:

• Ściągamy plik instalacyjny ze strony Pen-taho: http://www.pentaho.org/download/latest.html;

• Uruchamiamy shell. Przechodzimy do miejsca składowania pliku instalacyjnego. Przełączamy się na użytkownika uprzywi-lejowanego root (su) i uruchamiamy insta-lator ./ pentaho-1.7GA-linux-opensour-ce-installer.bin.

• Naszym oczom powinna ukazać się strona startowa instalatora (Rysunek. 2)

• W kolejnym kroku musimy przeczytać li-cencję programu i aby kontynuować insta-lację musimy się z nią zgodzić. (Rysunek 3)

• Następnie wybieramy aplikacje które nas interesują. W tym przypadku pozostawia-my domyślnie wszystkie aplikacje i prze-chodzimy do kolejnego kroku (Rysunek 4).

• Wybieramy instalację dla początkujących (Easy), która umożliwi nam szybkie skon-figurowanie niezbędnych do funkcjonowa-nia systemu elementów (Rysunek 5).

• Wybieramy katalog dla naszej instalacji

Rysunek12. Przykładowe raporty

Rysunek 13. Raporty i panel administracyjny

Rysunek 14. Prezentacja możliwości z zakresu analizy wielowymiarowych danych

Page 10: Technologie OLAP i Data Mining

10 luty 2009

dział ???Technologie OLAP i Data Mining w systemie Linux

11www.lpmagazine.org

dział ???Technologie OLAP i Data Mining w systemie Linux

(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 analityczne-go;

• 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 za-pytanie o konfigurację portu dla serwera Jboss. Serwer ten domyślnie wykorzystu-je port 8080, jeżeli jakaś inna aplikacja go właśnie wykorzystuje, będziemy przydzie-

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 pod-sumowanie naszych wyborów i jeże-li wszystko się zgadza możemy przystą-pić do właściwej instalacji plików (Rysu-nek 10). Gdy cały proces zakończy się po-

myślnie, będziemy mogli uruchomić cały system.

• Aby sprawdzić czy poprawnie uruchomił się nasz system, uruchamiamy przeglądar-kę internetową i wprowadzamy do niej ad-res: http://localhost:8080 (Rysunek11). Port 8080 jest portem domyślnym i jeże-li podczas instalacji wprowadziliśmy inny port, należy wtedy zastąpić 8080 wybra-nym przez nas portem. Następnie musi-my zalogować się do systemu. Mamy pa-ru użytkowników zdefiniowanych podczas instalacji, wystarczy wybrać z listy dowol-nego użytkownika i bez podawania hasła zalogować się.

• Mondrian Pentaho posiada parę demon-stracji, 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 wybra-niu nowej analizy. Uzyskamy w ten spo-sób dostęp do tworzenia własnych kostek danych i analizy z wykorzystaniem MDX. (Rysunek 14).

Aby sprawdzić możliwości MDX kliknij w

Rysunek15. Edytor MDX

Rysunek16. Raport z zapytania MDX Rysunek17. Baza iProClass w OLAP Mondrian

Page 11: Technologie OLAP i Data Mining

12 luty 2009

dział ???Technologie OLAP i Data Mining w systemie Linux

13www.lpmagazine.org

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ą ko-mendę i wciśnij APPLY: (Listing 3.)

Powinniśmy zobaczyć taki oto raport (Ry-sunek 16)

To, co tutaj obserwujemy, to zbiorczy wi-dok wszystkich wydatków i wynagrodzeń.

Mondrian posiada bazę danych z informa-cjami, które mogą przydać się w analizie biz-nesowej. Oczywiście możemy podłączyć wła-sną bazę i przeprowadzać analizy w innym za-kresie.

Wszyscy, którzy chcieliby trochę poekspe-rymentować ze zgłębianiem danych, mogą za-opatrzyć się w jedną z wielu baz danych do te-go przeznaczonych i oferowanych bezpłat-nie w Internecie przez Machine Learning Re-pository, Uniwersystet Kalifornii, Irvine: http://archive.ics.uci.edu/ml/

Dostępnych jest tam bardzo wiele przykła-dów pochodzących z najprzeróżniejszych dzie-dzin. Znajdą się tutaj przykłady, które mogą za-interesować astronomów, ekonomistów, chemi-kó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 da-ne, które uzyskujemy, często są danymi nienu-merycznymi.

Załóżmy, że jesteśmy zainteresowani pod-sumowaniem zestawu sekwencji białkowych. Zwykle te sekwencje są reprezentowane jako ciągi liter i dlatego istnieje kilka sposobów na racjonalne podsumowanie takich grup sekwen-cji. W celu obsługi danych przestrzennych w biologii mamy dwa podstawowe wymagania:

• Musimy być w stanie zdefiniować nowe

funkcje agregacji, które można podsumo-wać w grupy nienumeryczne;

• Potrzebujemy własnych funkcji sumowa-nia.

Dla każdego z tych białek mamy adnotacje opi-sujące ich funkcję i taksonomię. Możemy sko-rzystać z tych adnotacji jako wymiary sześcia-nu i określić funkcje agregacji.

Więcej przykładów można odna-leźć także w bazach iProClass. ftp://ftp.pir.georgetown.edu/databases/.

Dostępna jest tam baza danych, która za-wiera ponad 2 mln. sekwencji białkowych z ad-notacjami, np. domen białkowych itp. Wszyst-

Rysunek18. Weka CLI

Rysunek19. Weka GUI Chooser

Rysunek 20. Weka Explorer

Rysunek 21. Explorer z załadowanymi przykładowymi danymi

Page 12: Technologie OLAP i Data Mining

12 luty 2009

dział ???Technologie OLAP i Data Mining w systemie Linux

13www.lpmagazine.org

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)

MDXMDX (Multidimensional Expressions) jest wy-specjalizowanym podzbiorem języka SQL, przeznaczonym dla zapytań dotyczących ko-stek OLAP. Składnia jest podobna do standar-dowej składni SQL, obejmując słowa kluczowe takie jak SELECT, WHERE i FROM.

Przykład składni MDX:

SELECT;

{([Measures].[Unit Sales])} ON

COLUMNS;

{([TIME].[1997])} ON ROWS;

FROM SALES.

Rozszerzenia MDX pozwalają na dostosowa-nie procesów OLAP do specyficznych wyma-gań. Rozwiązanie problemów przetwarzania danych w hurtowni danych nie jest możliwe wyłącznie za pomocą narzędzi OLAP. Dla uzy-skania oczekiwanych rozwiązań konieczne jest uzupełnienie przez rozszerzenia MDX.

Podstawowymi blokami MDX są zestawy elementów formujące składnię łączenia i osa-dzania obiektów bazy danych dla OLAP. Ele-menty te umożliwiają utworzenie zestawu da-nych 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-stawy.

• Liczba w MDX może być liczbą każde-go 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ść atrybu-tu należącego do wymiaru. MDX posiada zestaw deklaracji zwanych wyrażeniami członkowskimi, które mogą być używa-ne w operacjach na każdym z elementów do wymiaru. Wyrażenia członkowskie za-wsze 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

element. Reprezentuje on unikalna pozy-cję na osi kostki, zawierającą wiele ele-mentów;

• Zestaw MDX jest zbiorem elementów cią-gów. Zbiór ten może być zestawem ele-mentów z tego samego wymiaru lub z różnych wymiarów. Zestaw obejmu-je zawartość osi kostki;

• Deklaracja MDX może zawierać wyraże-nia przypisania, wyrażenia członkowskie i funkcje matematyczne.

W celu zwrócenia danych przez deklarację

MDX musi ona zawierać dwa elementy:

• Nazwę kostki lub kostek dla pobrania da-nych;

• Liczbę osi MDX, zawierających elementy z jednego lub więcej ustanowionych cią-gów.

W zapytaniu MDX musi być określona co naj-mniej jedna oś. W większości przypadków są to dwie osie, które określamy jako osie kolumn i wierszy.

Pytanie :

Rysunek 22. Zbiór wszystkich wizualizacji danych

Rysunek 23. Inny przykład wizualizacji danych

Page 13: Technologie OLAP i Data Mining

14 luty 2009

dział ???Technologie OLAP i Data Mining w systemie Linux

15www.lpmagazine.org

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żde-go poziomu elementu. Brak nawiasów powo-duje, że usługi OLAP próbują ustalić ich do-mniemane położenie, co często daje komuni-katy błędów.

Miary są umieszczone we własnym wy-miarze o nazwie MEASURES. Przy pomocy te-go wymiaru można uzyskać dostęp do każ-dej miary kostki. Kropka jako operator pozwa-la 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 przy-padku gdy wszystkie nazwy będą unikalne.

W pytaniu tym znajdują się dwa ciągi wier-szy: [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 uzyska-

nie 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 wyni-ku sprzedaży dla wszystkich klientów w USA i Kanady, którzy kupili produkty z kategorii Fo-od. (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ępu-jąco: (Listing 6.)

Zmiana spowoduje, że wymiar Customers jest zagnieżdżony w wymiarze Time, a wymiar Products jest zagnieżdżony w wymiarze Cu-stomers, 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 wy-konywaniu przekrojów wszystkie wymiary oprócz jednego są stałe. Z punktów kostki po-bierane są wartości jednej lub więcej miar. Je-śli kostka posiada trzy osie i wykonujemy prze-krój po jednej z nich, to wszystkie punkty prze-kroju będą stałe dla dwóch wymiarów. Opera-cja 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 po-woduje utrzymanie stałej wartości wymiaru Customer jako WA i wymiaru Time jako 1997. W rezultacie otrzymujemy Unit Sales mie-rzone na wszystkich wartościach Product Ca-tegory 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

Page 14: Technologie OLAP i Data Mining

14 luty 2009

dział ???Technologie OLAP i Data Mining w systemie Linux

15www.lpmagazine.org

dział ???Technologie OLAP i Data Mining w systemie Linux

wych elementów w oparciu o istniejące mia-ry 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:

WITH MEMBER nazwa1.nadrzędny1 AS

‘wyrażenie1’;

[MEMBER nazwa 2.nadrzędny2 AS

‘wyrażenie2’, ...].

Zysk jest równy sprzedaży, minus koszty. Za-

pytanie tworzące nowy element kalkulowany dla zysku ma następującą postać: (Listing 9.)

W celu ustalenia sprzedaży, kosztów i zy-sku sklepu za 1997 i 1998 oraz różnicy zysku w tych dwóch latach należy użyć poniższego py-tania: (Listing 10.)

Weka –Data MiningNikt nie rodzi się eksploratorem danych. Aby zdobyć i powiększyć doświadczenie analityka, należy przyswoić sobie podstawowe umiejęt-ności. Następnie potrzebne są nadające się do eksploracji dane, a także sposób na zmierze-

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 zawie-ra narzędzia do wstępnego przetwarzania da-nych, 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 li-cencji 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ędzia-mi Experimenter, Explorer i Weka Knowledge. Na początek zalecam zapoznać się z Explore-r’em. Uruchamiamy program Weka GUI Cho-oser (Rysunek 19) i po kliknięciu na Explo-rer zobaczymy główną stronę Explorera (Ry-sunek20).

Na początku wszystkie pola są jeszcze pu-ste. Mamy tutaj kilka możliwości wyboru, ale zanim będzie można pracować z konkretny-mi danymi, należy je załadować do progra-mu Weka. Do programu zostały dołączone pli-ki z przykładowymi danymi, które pozwolą za-poznać się z funkcjonalnością całego syste-mu. Zacznijmy od otworzenia pliku z danymi (Open file...) Przechodzimy do katalogu data i tutaj mamy zbiór gotowych danych. Wybierz-my jakiś gotowy przykład, np. soybean.arff. (Rysunek21)

Jak widać, program dostarcza nam trochę informacji na temat danych, takich jak na przy-kład liczne przypadki, liczby atrybutów, a także kilka informacji statystycznych na temat atry-butów.

Istnieje szereg metod, za pomocą których

Rysunek 26. Pierwszy przykład podglądu w zbliżeniu wykresów punktowych

Rysunek 27. Inna forma zbliżonego scatterplots Rysunek 28.Wybór filtra

Page 15: Technologie OLAP i Data Mining

16 luty 2009

dział ???Technologie OLAP i Data Mining w systemie Linux

17www.lpmagazine.org

dział ???Technologie OLAP i Data Mining w systemie Linux

można użyć Weka do wizualizacji danych. Na ekranie głównym zostanie przedstawiony hi-stogram dla jednego atrybutu dystrybucji, do-myślnie jest to atrybut klasy. Należy pamiętać, że poszczególne kolory wskazują poszczególne klasy. Przycisk Visualize All pozwoli nam po-kazać na ekranie wszystkie dystrybucje, które są dostępne (Rysunek22 i 23).

Mamy jeszcze jedną możliwość wizualiza-cji poprzez zakładkę Visualize.. Kliknięcie na tę zakładkę otworzy tzw. scatterplots (macierze punktowe) dla wszystkich par atrybutów.(Ry-sunek 24 i 25).

Możemy z prezentowanych tutaj zesta-wień wywnioskować kilka ciekawych rzeczy. Na przykład na powyższym obrazku widać, że w niektórych zestawieniach punktów różne ko-lory 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 przyci-skiem myszy na każdej z wyróżnionych klas, mamy możliwość ustawienia własnego koloru dla klas. Również domyślnie kolor jest stoso-wany w połączeniu z atrybutem klasy, ale mo-że być użyteczny dla innych kolorów oraz atry-butów. Mamy także możliwość podglądu wy-branych komórek w dużym zbliżeniu. (Rysu-nek 26 i 27).

Program posiada szereg dostępnych fil-trów, które stosują różne kryteria pozwalające wybierać albo obiekty (wiersze w macierzy da-nych),albo atrybuty (kolumny w macierzy da-nych). Dzięki temu można odrzucić część ma-tryc danych bez konieczności manipulowa-nia 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ć ro-dzaj filtra, klikając na przycisk Choose Filters z prawej strony na głównym pulpicie. Wybie-ramy folder z filtrami i rozwijamy listę dostęp-nych pozycji. Następnie możemy wybrać z do-stępnej listy filtr, który będzie nas interesował (Rysunek 28)

Zakładka Select AttributesWeka przewiduje również techniki odrzucania nieistotnych atrybutów lub zmniejszenia wy-miarowości danych. Po załadowaniu danych, kliknij przycisk wyboru atrybutu znacznika, aby otworzyć GUI, które pozwoli wybrać za-równo metody oceny (podstawowe komponen-ty, takie jak na przykład analiza) oraz metody wyszukiwania (Rysunek29). Należy mieć świa-domość, że nie wszystkie oceny i metody mo-gą być prawidłowe, należy przeglądać komu-nikaty o błędach, które dostępne są w logach

Rysunek 29. Zakładka Select Attributes

Rysunek 30. Zakładka Classification

Rysunek 31. Zakładka Clustering

Page 16: Technologie OLAP i Data Mining

16 luty 2009

dział ???Technologie OLAP i Data Mining w systemie Linux

17www.lpmagazine.org

dział ???Technologie OLAP i Data Mining w systemie Linux

(przycisk Log).

Zakładka ClassificationOtwarcie menu z możliwością wyboru kla-syfikatora, który ma być zastosowany do na-szych danych. Mamy tutaj 4 opcje, pozwalają-ce w różny sposób przetestować model danych (Rysunek30).

Zakładka ClusteringMamy tutaj grupowanie (klastrowanie). Opcja jest bardzo podobna do klasyfikacji, z kilko-ma różnicami w zakresie wybierania opcji. Na przykład, istnieje możliwość prostego odrzuca-nia niepożądanych atrybutów (Rysunek 31).

Zakładka AssociateWeka oferuje trzy algorytmy pozwalające wy-odrębniać z danych nieliczbowych, jak to po-kazano na rysunku poniżej. (Rysunek 32)

Program ExperimenterExperimenter można uruchomić zarówno z li-nii poleceń oraz jako łatwiejszy w użyciu pro-gram graficzny. Jest to narzędzie, które pozwa-la wykonywać więcej niż jeden eksperyment w tym samym czasie. Może stosować różne tech-niki do analizy danych lub tej samej techniki tylko że z różnymi parametrami. (Rysunek 33).

Po wybraniu opcji New, która inicjuje no-wy eksperyment z domyślnymi parametrami, możemy wybrać, gdzie mają być przechowy-wane 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 stosowa-ne w odniesieniu do wybranych danych. Moż-na również wybrać rodzaj eksperymentu (cross 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ęp-nie można taki plik załadować do analizatora Weka, aby zobaczyć swoje wyniki. Poniżej zo-stała przedstawiona gotowa analiza przykłado-wego eksperymentu (Rysunek 35).

Program Knowledge FlowKnowledge Flow jest alternatywnym pakietem funkcji dostarczanym wraz z programem We-ka Data Mining. Dostępne są tutaj dodatkowe funkcje, które nie są obsługiwane przez ekspe-rymentatora. (Rysunek 36).

Podsumowanie

Rysunek 32. Zakładka Associate

Rysunek 33. Program Experimenter

Rysunek 34. Program Experimenter zainicjowany do przeprowadzania eksperymentów

Page 17: Technologie OLAP i Data Mining

18 luty 2009

dział ???Technologie OLAP i Data Mining w systemie Linux

19www.lpmagazine.org

dział ???Technologie OLAP i Data Mining w systemie Linux

Przy wykorzystaniu technologii OLAP i Data Mining wyłania się użytkownikom komplet-ny obraz sytuacji, dzięki któremu informacje z wielu działów firmy (np. sprzedaż, marketing, produkcja, logistyka, kadry), które same w so-bie są rozproszone, można formować w logicz-ną całość. Dokładne liczenie kosztów poszcze-gólnych wyrobów bądź usług oferowanych przez firmę stało się dzięki temu możliwe.

Wiedza otrzymana za pomocą technik ana-lizy przyjmuje postać reguł, prawidłowości czy też tendencji, która może być wykorzysta-na przy wspomaganiu podejmowania ważnych

decyzji, np. do podniesienia jakości produkcji, wykrywania różnych nieprawidłowości, obsłu-gi klientów, czy też do zwiększania przewagi konkurencyjnej.

Człowiek ma naturalną skłonność do kla-syfikowania przedmiotów według cech wspól-nych. 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.

Opisane metody umożliwiają prognozo-wanie, szukanie powiązań, klasyfikacji, gru-powanie i opisywanie przyszłych trendów i za-chowań. 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 da-nych można wykorzystać m.in. do badania da-nych w e-biznesie, do rozpoznawania obrazu, do wspomagania diagnostyki medycznej, bada-niach genetycznych, badaniach ryzyka kredyto-wego i wielu innych.

Eksploracja umożliwia nam wyszukiwanie niezauważalnych prawidłowości i powiązań. Wynikiem tego typu analiz mogą być konkret-ne zbiory danych, które mogą być wykorzysta-ne w procesach decyzyjnych.

Rysunek 35. Analiza eksperymentu

Rysunek 36. Program Knowledge Flow