Internetowe Forum Archiwalne > Problematyka budowy baz danych
Analiza dużych zbiorów danych
(1/1)
Grzegorz Gałęzowski:
Analiza danych.
Chciałbym dzisiaj przedstawić ciekawą technologię, związaną z analizą danych gromadzonych np. w bazach danych. Na początku opisana zostanie technologia data mining, w przyszłości chciałbym przedstawić Państwu technologię text mining (z przykładami przydatnymi dla AP), którą można wykorzystać do analizy dokumentów prawniczych, historycznych, kancelaryjnych, książek o dowolnej tematyce, poczty elektronicznej lub innych dużych zbiorów tekstowych.
Text mining to według definicji: ?proces mający na celu wydobycie z zasobów tekstowych nieznanych wcześniej informacji?. (Marti A. Hearst).
Text mining polega na wyszukiwaniu kluczowych fraz, zdań, które są następnie zakodowane pod postacią zmiennych numerycznych. W następnym etapie korzysta się z metod statystycznych i eksploracji danych w celu odkrycia zależności pomiędzy zmiennymi.
Text mining może być przydatny między innymi do:
- Dokonywania segmentacji dużych zbiorów dokumentów.
- Automatycznego generowania streszczeń dokumentów.
- Identyfikacji powiązań.
- Przeprowadzania rozszerzonego modelowania predykcyjnego polegającego na łączeniu danych pochodzących z różnych źródeł.
- Pozyskiwaniu nazwy z dokumentów.
- Rozpoznawaniu skrótów i skrótowców.
- Wizualizacji danych.
- Generowania odpowiedzi na pytania.
Text mining korzysta ze zdobyczy technologii data mining, którą poniżej postarałem się opisać.
Wszystkich, których zainteresował text mining, zapraszam do zapoznania się z prezentacją dr Roberta Sandersona znajdującą się pod adresem:
http://ucrel.lancs.ac.uk/events/htm06/RobSandersonHTM06.pdf
Data mining
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. Bazy 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 nie ingerują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). Autorem 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ępnie obliczone dla poszczególnych wymiarów. Przykładowy zestaw danych (Tabela 1):
Tabela 1 Przykładowy zestaw danych w kostce OLAP.
Systemy OLAP wykonują kalkulacje i modelowanie ważnych wielkości, które są nazywane wymiarami i wykazują w swojej zasadzie podobieństwo do fizycznych wymiarów przestrzeni i czasu.
Wymiary są atrybutami do pomiaru wskaźnika efektywności danych, które posiadają miarę zwaną Key Performance Indicators (KPI), czyli kluczowe wskaźniki wydajności.
Przy wykonywaniu analizy należy wziąć pod uwagę pojedynczą miarę dla kilku wymiarów. Miarą może być ilość sprzedanych towarów, a wymiarami czas i geografia. Przy wybraniu jako wymiarów Lublin i miesiąca listopad, system OLAP wyliczy ilość sprzedanych towarów w Lublinie, w listopadzie. Systemy OLAP zawsze analizują miary na bazie wielu wymiarów i dlatego właśnie są one nazywane wielowymiarowymi
Gdy zostanie zdefiniowana miara i wymiary można przystąpić do zdefiniowania i budowy kostki OLAP (Cube). Kostkę taką buduje się z atrybutów wymiarów. Atrybuty te są osiami koordynat kostki. Kostka może mieć, np. oś miast z wymiaru klienta, oś lat z wymiaru czasu i oś nazw produktów z wymiaru produktów (Rys.1).
Rys. 1 Trójwymiarowa kostka OLAP (Cube).
Wielowymiarowość OLAP nie odnosi się tak jak to w przypadku sześcianu tylko do trzech wymiarów. W tej technologii liczba wymiarów przypisanych do kostki danych może wahać się od jednego do nieskończoności. Czyli takiej ilości jaka będzie potrzebna.
OLAP może kojarzyć się wielu ludziom jako jedno lub też wielowymiarowa hurtownia danych. Najczęściej termin ten jednak jest zarezerwowany dla wyspecjalizowanych narzędzi służących do łatwego udostępniania zgromadzonych informacji w hurtowniach danych.
Narzędzia OLAP wykonują skomplikowane analizy danych historycznych przy pomocy wspomnianej już struktury wielowymiarowej. Struktura ta jest przechowywana w hurtowni danych, czyli wyspecjalizowanej bazie danych, 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.
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
Natomiast Data Mining jest procesem mającym na celu pozyskanie użytecznej wiedzy z baz danych. W języku polskim tłumaczy się ten termin jako ?drążenie danych? lub ?zgłębianie danych?. Data Mining to praca na dużych zbiorach danych, w sytuacjach gdy techniki statystyczne nie są wystarczające.
Ręczne przeglądanie tabel rzadko pozwala na wykrycie przydatnych relacji, to w większości przypadków dane są analizowane za pomocą automatycznego procesu nazywanego Knowledge Discovery, czyli odkrywanie wiedzy). Knowledge Discovery jest komponentem Data Mining i umożliwia dostrzeganie prawidłowości i reguł w odpowiednio prezentowanych zbiorach danych. Proces wykrywania prawidłowości jest zautomatyzowany, a operator 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 zjawiskami. Warunkiem niezbędnym jest posiadanie zbioru danych, które odzwierciedlają badane zjawisko.
Jako już książkowy przykład 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 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:
-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:
1. Analiza statystyczna, która opiera się na odpowiednim wykorzystaniu reguł na relacjach między danymi.
2. Analizę klasyfikacji, która grupuje dane według pewnych podobieństw lub ustalonych cech wspólnych.
3. Analiza odchyleń, która wykorzystuje wartości procentowe i wyjątki od reguły, aby zdefiniować obszary wymagające usprawnień.
4. 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 (http://sourceforge.net/projects/mondrian)
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ń 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 lub 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:
1.Warstwa prezentacji danych to coś co dotyczy 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ą komunikację z programem, dzięki czemu można tworzyć nowe zapytania dla systemu.
2.Warstwa przetwarzania danych. Dokonują się tutaj obliczenia, parsowanie, i zapytania MDX.
3.Trzecią warstwą jest warstwa agregacji.
4.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 zostanie instalacja bazująca na starym wydaniu systemu. W drugiej części przedstawię konfigurację bazującą na wersji z uproszczonym interfejsem instalacyjnym, która także jest opensource.
(dla leniwych dostępny jest obraz vmware całego gotowego systemu pod tymi adresami:
http://linuxbi.com/files/pentaho/vmware/grupoeglu_-_Pentaho_2.0_-_Ubuntu_8.10.rar lub http://linuxbi.com/files/VM_centos-5.2_Pentaho-1.7GA.zip)
Zaczynamy od wersji historycznej.
1. Zainstalowanie Java Development Kit. Polecam instalację najnowszą wersję JDK ze strony http://java.sun.com/javase/downloads/index.jsp
2. Instalacja Ant http://jakarta.apache.org/ant/
3. Instalacja serwera aplikacji Apache Tomcat http://jakarta.apache.org/tomcat/
4. Instalacja Xalan?a http://xml.apache.org/xalan-j/index.html
5. Następnie przechodzimy do (katalog_domowy)/bin instalacji Xalan?a i kopiujemy pliki xalan.jar i xml-apis.jar do (katalog_domowy)/common/lib.
6. Teraz pozostaje nam modyfikacja pliku wsadowego build.sh, ustawiamy tutaj nasze lokalizacje środowiskowe: JAVA_HOME, ANT_HOME, TOMCAT_HOME, XALAN_HOME, JUNIT_HOME.
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ń:
1. Ładujemy bazę danych (szczegółowy opis w dalszej części tekstu, ze szczególnym uwzględnieniem konkretnych systemów bazodanowych).
2. Dokonujemy zmian w /bin/mondrian.sh i /bin/mondrian.properties by dostosować nasze środowisko systemowe.
3. Przechodzimy do katalogu bin.
4. Skrypt mondrian.sh przeprowadza cały zestaw testów JUnit. Wszystko powinno odbyć się bez przeszkód.
5. 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.
6. 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 zależ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:
Na koniec pozostaje skonfigurowanie zmiennych środowiskowych według poniższych wskazań:
1. Ustaw ścieżkę dostępu do ORACLE_HOME w build.sh, lub w zmiennych środowiskowych w twoim systemie operacyjnym.
2. Dodaj driver JDBC (Oracle8i/jdbc/lib/classes12.zip) do ścieżki CLASSPATH w build.sh, lub w zmiennych środowiskowych w systemie operacyjnym.
3. 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 bazę danych:
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:
W build.xml należy ustawić odpowiednią wartość. Dla celów testowych może to być:
PostgreSQL
W pliku FoodMartTables.sql, wystarczy zmienić DOUBLE na DOUBLE PRECISION, i BIT na SMALLINT.
Uruchomienie aplikacji.
1. Jednak oczywiście wcześniej musimy mieć zainstalowany serwer Tomcat.
2. 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.
3. Uruchom build deploy-webapp.
4. Uruchom serwer Tomcat.
5. 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:
1. Ściągamy plik instalacyjny ze strony Pentaho:
http://www.pentaho.org/download/latest.html
2. 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 (Rys. 2)
Rys.2 Ekran powitalny.
3. W kolejnym kroku musimy przeczytać licencję programu i aby kontynuować instalację musimy się z nią zgodzić. (Rys. 3)
Rys.3 Ekran z licencją systemu.
4. Następnie wybieramy aplikacje które nas interesują. W tym przypadku pozostawiamy domyślnie wszystkie aplikacje i przechodzimy do kolejnego kroku (Rys. 4).
Rys.4 Wybór instalowanych aplikacji.
5. Wybieramy instalację dla początkujących (Easy), która umożliwi nam szybkie skonfigurowanie niezbędnych do funkcjonowania systemu elementów (Rys. 5).
Rys. 5 Wybór poziomu instalacji.
6. Wybieramy katalog dla naszej instalacji (Rys. 6).
Rys.6 Wybór katalogu dla naszej instalacji.
6. W tym kroku wybieramy sposób konfiguracji i instalacji serwera MySQL (Rys.7).
Mamy tutaj trzy możliwości:
-instalacja MySQL w wersji 5.0 wraz z użyciem tej instalacji jako repozytorium dla naszego systemu analitycznego,
-stworzenie repozytorium dla MySQL 5.0,
-wykorzystanie repozytorium na już istniejącym zewnętrznym serwerze MySQL 5.0
Rys.7 Instalacja bazy danych.
8. Ustalamy nazwę użytkownika i hasło dla serwera MySQL (Rys. 8).
Rys.8 Konfiguracja loginu i hasła dla MySQL.
9. 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 przydzielić mu jakiś inny wolny port. (Rys. 9).
Rys.9 Konfiguracja portu serwera aplikacji JBoss.
10. 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.
11. 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 (Rys. 10). Gdy cały proces zakończy się pomyślnie, będziemy mogli uruchomić cały system.
Rys.10 Podsumowanie instalatora.
12. Aby sprawdzić czy poprawnie uruchomił się nasz system. Uruchamiamy przeglądarkę Internetową i wprowadzamy do niej adres: http://localhost:8080 (Rys.11). 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ę.
Rys.11 Ekran logowania do Pentaho Mondrian.
13. Mondrian Pentaho posiada parę demonstracji, które prezentują jego możliwości zarówno z zakresu analizy danych jak i ich raportowania (Rys. 12 i 13).
Rys.12 Przykładowe raporty.
Rys.13 Raporty i panel administracyjny
14. 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. (Rys. 14).
Rys. 14 Prezentacja możliwości z zakresu analizy wielowymiarowych danych.
Aby sprawdzić możliwości MDX kliknij w górnym menu na MDX i uruchom edytor MDX.(Rys. 15).
Rys.15 Edytor MDX.
Wprowadź do okna edytora poniższą komendę i wciśnij APPLY:
select NON EMPTY {[Measures].[Actual]} ON COLUMNS,
NON EMPTY Hierarchize(Union({[Positions].[All Positions]}, [Positions].[All Positions].Children)) ON ROWS
from [Quadrant Analysis]
Powinniśmy zobaczyć taki oto raport (Rys. 16):
Rys.16 Raport z zapytania MDX.
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 przeznaczonych do zgłębiania danych 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:
+,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
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 nie numerycznymi.
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:
1. Musimy być w stanie zdefiniować nowe funkcje agregacji, które można podsumować, w grupy nie numeryczne.
2. 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 adnotacjami, np. domen białkowych itp. Wszystkie te adnotacje są potencjalnie przydatne jako wymiary sześcianu.
Przykład użycia jednej z baz iProClass w OLAP Mondrian (Rys. 17).
Rys.17 Baza iProClass w OLAP Mondrian.
MDX
MDX (Multidimensional Expressions) jest wyspecjalizowanym podzbiorem języka SQL, przeznaczonym dla zapytań dotyczących kostek 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:
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 stosowanie 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 zestawy.
1. 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.
2. Łańcuch MDX jest sekwencja znaków, mogącą posiadać format przypisany im w środowisku klienta.
3. 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.
4. 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 pozycję na osi kostki, zawierającą wiele elementów.
5. 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.
6. Deklaracja MDX może zawierać wyrażenia przypisania, wyrażenia członkowskie i funkcje matematyczn1e.
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]),([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 nazwy 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.
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].[Canda],
[Product].[All Products].[Drink]),
([Customers].[All Products].[Non-Consumable])
} ON ROWS
FROM SALES
Puste rekordy dla Kanady związane są z próba przeglądania nie istniejących rekordów. Serwer w takim przypadku nie zwraca błędu, zwraca jedynie zero.
Zapytanie należy zmodyfikować następująco:
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
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.
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].[Alcoholic Beverages]),
([Time].[1998],[Customers].[All Customers].[USA],[Product].[All Products].[Drink].[Beverages]),
([Time.[1998],[Customers].[All Customers].[USA],[Product].[All Products].[Drink].[Dairy]),
([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
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.
SELECT
{([MEASURES}.[Unit Sales])} ON COLUMNS,
[Product].[Product Category]. MEMBERS ON ROWS
FROM Sales
WHERE ([Customers].[All Customers].[USA].[WA],[Time].[1997])
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 nowych 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:
WITH MEMBER nazwa1.nadrzędny1 AS ?wyrażenie1?,
[MEMBER nazwa 2.nadrzędny2 AS ?wyrażenie2?, ...]
Zysk jest równy sprzedaży minus koszty. Zapytanie tworzące nowy element kalkulowany dla zysku ma następującą postać:
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])
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:
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
Weka ?Data Mining.
Nikt nie rodzi się eksploratorem danych. Aby zdobyć i powiększyć doświadczenie analityka, należy przyswoić sobie podstawowe umiejętności. Następnie potrzebne są nadające się do eksploracji dane, a także sposób na zmierzenie ważnych cech zjawiska. W tym celu należy skorzystać z odpowiednich narzędzi, takich jak Weka Data Mining.
Weka jest to aplikacja 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) (Rys.18), lub graficznymi narzędziami Experimenter, Explorer i Weka Knowledge. Na początek zalecam zapoznać się z Explorer?em. Uruchamiamy program Weka GUI Chooser (Rys. 19).
Rys.18 Weka CLI.
Rys.19 Weka GUI Chooser.
i po kliknięciu na Explorer zobaczymy główną stronę Explorera (Rys.20).
Rys. 20 Weka Explorer.
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. (Rys.21)
Rys. 21 Explorer z załadowanymi przykładowymi danymi.
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 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 (Rys.22 i 23).
Rys.22 Zbiór wszystkich wizualizacji danych.
Rys.23 Inny przykład wizualizacji danych.
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.(Rys. 24 i 25).
Rys.24 Zbiór macierzy punktów przedstawiajających różne wizualizacje.
Rys.25 Inny przykład tzw. scatterplots.
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. (Rys. 26 i 27).
Rys.26 Pierwszy przykład podglądu w zbliżeniu wykresów punktowych.
Rys.27 Inna forma zbliżonego scatterplots.
Program posiada szereg dostępnych filtrów, które stosują różne kryteria pozwalające wybierać albo obiekty (wiersze w macierzy danych) lub 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ł (Rys. 28)
Rys. 28 Wybór filtra.
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 (Rys.29). 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 (przycisk Log).
Rys.29 Zakładka Select Attributes.
Zakładka Classification
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 (Rys.30).
Rys.30 Zakładka Classification
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 (Rys. 31).
Rys.31 Zakładka Clustering
Zakładka Associate.
Weka oferuje trzy algorytmy, pozwalające wyodrębniać z danych nie liczbowych, jak to pokazano na rysunku poniżej. (Rys. 32)
Rys.32 Zakładka Associate.
Program Experimenter
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. (Rys. 33).
Rys.33 Program Experimenter
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 zatwierdzanie lub procentowo podzielony na szkolenie i test zestawu). (Rys.34)
Rys.34 Program Experimenter zainicjonowany do przeprowadzania eksperymentów.
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 (Rys.35).
Rys.35 Analiza eksperymentu.
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. (Rys. 36).
Rys.36 Program Knowledge Flow.
Podsumowanie
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 podejmowaniu 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.
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.
Mam nadzieję że uda mi się przedstawić w przyszłości przykłady wykorzystania technologii data mining i text mining na przykładach związanych z archiwistyką i historią.
Nawigacja
Idź do wersji pełnej