395 Implementacja metod eksploracji danych - Oracle Data Mining 396 Plan rozdziału • • • • • • • Wprowadzenie do eksploracji danych Architektura Oracle Data Mining Możliwości Oracle Data Mining Etapy procesu eksploracji danych Przykład wykorzystania ODM – reguły asocjacyjne Przykład wykorzystania ODM – klasyfikacja Podsumowanie 397 Czym jest eksploracja danych? • • Eksploracja danych (ang. data mining): zbiór technik automatycznego odkrywania nietrywialnych zależności i schematów (patterns) w dużych zbiorach danych (bazach i hurtowniach danych) Eksploracja danych a OLAP – OLAP ma postać weryfikacji hipotez, eksploracja danych umożliwia odkrycie niespodziewanych zależności – Eksploracja danych często jest kolejnym etapem analizy danych DANE DATA MINING SCHEMATY, MODELE 398 Techniki eksploracji danych • • • • • • • • Odkrywanie asocjacji (zbiorów częstych i reguł) Odkrywanie wzorców sekwencyjnych Klasyfikacja Odkrywanie charakterystyk Analiza skupień (klastrowanie, grupowanie) Dyskryminacja Regresja Wykrywanie zmian i odchyleń 399 Dziedziny zastosowań eksploracji danych • Handel i marketing – identyfikacja „profilu klienta” na potrzeby marketingu kierunkowego – wykrywanie schematów zakupów i planowanie lokalizacji artykułów • Finanse i bankowość – schematy wykorzystywania kradzionych kart kredytowych – przewidywanie dochodowości portfela akcji, znajdowanie korelacji wśród wskaźników finansowych • Nauka i technologia – analiza strumieni wyników pomiarów – biologia molekularna (analiza DNA, białek) • Internet (Web Mining) – handel i marketing internetowy – analiza zachowań użytkowników WWW – personalizacja serwisów WWW 400 Metody eksploracji: klasyfikacja • Klasyfikacja: znajdowanie sposobu odwzorowywania danych w zbiór predefiniowanych klas • Przykład klasyfikacji: automatyczny podział kierowców na powodujących i niepowodujących wypadków drogowych: – kierowcy prowadzący czerwone pojazdy o pojemności 650 ccm powodują wypadki drogowe – kierowcy, którzy posiadają prawo jazdy ponad 3 lata lub jeżdżą niebieskimi samochodami nie powodują wypadków drogowych • Modele klasyfikacji: – modele probabilistyczne – zbiory reguł – drzewa decyzyjne 401 Metody eksploracji: analiza skupień • Analiza skupień (klastrowanie): znajdowanie skończonego zbioru klas (podzbiorów) w bazie danych wiek 50 klasa 1: wiek<25 i pensja<3 klasa 2: 25<wiek<50 i pensja<3 klasa 3: wiek>25 i 3<pensja<6 25 3 • 6 pensja [tys.] Zastosowania analizy skupień: – określanie segmentów rynku na podstawie cech klientów – odkrywanie grup podobnie zachowujących się użytkowników WWW na potrzeby personalizacji 402 Metody eksploracji: odkrywanie asocjacji • • Odkrywanie asocjacji: znajdowanie związków pomiędzy występowaniem podzbiorów elementów w zbiorach danych Przykłady asocjacji: – – • Zastosowania odkrytych asocjacji: – – – • klienci, którzy kupują piwo, kupują również orzeszki klienci, którzy kupują chleb i ser, kupują również wodę mineralną i ketchup analiza koszyka zakupów (ang. market basket analysis) planowanie kampanii promocyjnych planowanie rozmieszczenia stoisk sprzedaży w supermarketach Reguły asocjacyjne: (chipsy, orzeszki) -> (piwo), support=5%, confidence=50% – wsparcie reguły (support): liczba krotek, potwierdzających regułę – ufność reguły (confidence): poprawność reguły w zbiorze krotek 403 Czym jest Oracle Data Mining? • Oracle Data Mining (ODM) to funkcje eksploracji danych zagnieżdżone w serwerze bazy danych Oracle (DMS – Data Mining Server) – Transformacja danych, budowa modeli i zastosowanie modeli ma miejsce w bazie danych – dane nigdy nie opuszczają bazy! – ODM ułatwia integrację eksploracji danych z aplikacjami bazodanowymi • ODM jest dostępny jako opcja dla Oracle 9i/10g EE – Minimalna zalecana wersja 9i to 9.2.0.4 (ewentualnie 9.2.0.2 + ODM Patch 9.2.0.3) 404 Techniki eksploracji w ODM • Modele predykcyjne (supervised learning) – Klasyfikacja – Regresja (10g) – Ważność atrybutów • Modele deskryptywne (unsupervised learning) – Analiza skupień (klastrowanie, grupowanie) – Reguły asocjacyjne – Ekstrakcja właściwości (10g) • Eksploracja danych tekstowych (10g) – Klasyfikacja, grupowanie w oparciu o charakterystyki wyekstrahowane z dokumentów tekstowych • BLAST (10g) – Analiza danych biologicznych (sekwencje DNA i protein) 405 Algorytmy eksploracji danych w ODM 10g • Klasyfikacja – – – • Regresja – • – Enhanced k-means – dla zadanej liczby klastrów, dla atrybutów numerycznych Orthogonal Clustering (O-Cluster) – automatycznie określa liczbę klastrów, obsługuje atrybuty numeryczne i nominalne Odkrywanie reguł asocjacyjnych – • Minimal Descriptor Length (MDL) Analiza skupień (klastrowanie, grupowanie) – • Support Vector Machine (SVM) Ważność atrybutów – • Naive Bayes (NB) – szybki, do 200 atrybutów, nie zwraca reguł Adaptive Bayes Network (ABN) – pokazuje reguły Support Vector Machine (SVM) – gdy któryś z atrybutów tekstowy Apriori Ekstrakcja właściwości – Non-Negative Matrix Factorization (NMF) 406 Użytkownicy bazy danych dla ODM • Oracle 9i – ODM: zawiera metadane i modele, eksploracja prowadzona jest jako użytkownik ODM – ODM_MTR: zawiera dane użytkownika i wyniki zastosowania modeli do danych (również zawiera przykładowe tabele z danymi) • Oracle 10g – DMSYS: zawiera repozytorium ODM (metadane dla eksploracji) – Użytkownicy (data mining users) • Będący odpowiednikami ODM w 9i • Prowadzący eksplorację danych • Dane źródłowe i wyniki eksploracji składowane w ich schematach • Do ich tworzenia dostarczone są skrypty SQL $ORACLE_HOME/dm/admin/odmtbs.sql (tworzenie przestrzeni tabel) $ORACLE_HOME/dm/admin/odmuser.sql (tworzenie użytkownika) $ORACLE_HOME/dm/admin/dmuserld.sql (ładowanie przykładowych tabel) 407 Interfejs Oracle Data Mining • Dostęp do ODM realizowany jest poprzez interfejs programistyczny (API): – Java API – dla aplikacji implementowanych w języku Java – PL/SQL API – od wersji 10g, dla aplikacji w języku PL/SQL • Charakterystyka ODM Java API i PL/SQL API – W chwili obecnej (10g R1) interfejsy nie są ze sobą zgodne! (np. niektóre algorytmy dostępne tylko poprzez Java API) – W 10g R2 Java API ma być dostosowany do standardu Java Data Mining • Interfejs graficzny do Oracle Data Mining – – – – Klient ODM zaimplementowany w języku Java Ukrywa złożoność API i ułatwia dostęp do funkcji eksploracji danych Umożliwia budowę, testowanie i stosowanie modeli Towarzyszy mu generator kodu Java dla JDevelopera 408 Interfejs graficzny do ODM – 9i • Data Mining for Java (DM4J) – • rozszerzenie (extension) dla JDeveloper 9i DM4J obejmuje: – – ODM Components – zbiór kreatorów do realizacji typowych zadań eksploracji danych ODM Browser – umożliwia przeglądanie wyników eksploracji (modeli) i monitorowanie wykonywania zadań eksploracji Tools/Data Mining Browser Automatycznie generowany jest kod Java 409 Interfejs graficzny do ODM – 10g • Oracle Data Miner – – – • graficzny klient ODM napisany w języku Java stand-alone – nie wymaga JDevelopera nie generuje kodu ODM Java Code Generator – rozszerzenie (extension) dla JDeveloper 10g 410 Dane źródłowe dla ODM (1/2) • • ODM wymaga, aby dane źródłowe były w postaci jednej tabeli lub perspektywy ODM akceptuje następujące typy danych: – VARCHAR2, CHAR, NUMBER, CLOB, BLOB, BFILE, XMLTYPE, URITYPE – Daty muszą zostać przedstawione jako łańcuchy znaków lub liczby! • Wartości puste są traktowane jako: – brakujące wartości • w algorytmach klasyfikacji, ważności atrybutów i grupowania – jako wyznaczniki „rzadkiego” zbioru danych • w innych metodach 411 Dane źródłowe dla ODM (2/2) • Tabela (perspektywa) źródłowa może być w formacie: – Nietransakcyjnym – jeden rekord opisuje przypadek (case) • Tradycyjne tabele relacyjne – Transakcyjnym – wiele rekordów opisuje przypadek (case) • • Odpowiednie dla danych opisanych przez wiele atrybutów Odpowiednie dla danych z dużą liczbą wartości pustych 412 Przygotowanie danych do eksploracji • Przygotowanie danych stanowi ważny etap eksploracji – • Operacje wykonywane jawnie przez eksperta – – – – • wpływa na czas pracy algorytmów i jakość uzyskanych modeli zastąpienie wartości pustych usunięcie wartości odbiegających od normy (ang. outliers) wybór ważnych atrybutów dla klasyfikacji (funkcją ODM) generacja atrybutów wywiedzionych (funkcją ODM) Operacje wykonywane przez eksperta lub automatycznie przed ODM – Binning (dyskretyzacja) – redukcja liczby różnych wartości dla atrybutu (Top-N frequent items lub Equi-width) • • – Skraca czas budowy modelu kosztem jego dokładności Przydatna dla NB, ABN, analizy skupień, asocjacji, ważności atrybutów Normalizacja – sprowadzenie wartości wszystkich atrybutów do tego samego przedziału • • Typowo <0;1> lub <-1;1> Przydatna dla SVM, NMF 413 Kroki procesu eksploracji danych ` 1) Zdefiniowanie problemu – Identyfikacja celu do osiągnięcia 2) Identyfikacja danych źródłowych – Sformułowanie problemu w kontekście dostępnych danych 3) Przygotowanie danych 4) Budowa i testowanie modelu – Testowanie tylko dla klasyfikacji i regresji; wymaga podziału danych na zbiór do budowy modelu i zbiór testowy 5) Wdrożenie modelu – Wbudowanie wygenerowanego kodu w aplikację użytkową 6) Zastosowanie modelu – Aplikacja modelu do nowych danych – Dotyczy klasyfikacji, regresji, analizy skupień 414 Odkrywanie asocjacji – Przykład (1/6) • Dane źródłowe: – • historia zakupów w formacie transakcyjnym Cel eksploracji: – Odkrycie produktów kupowanych wspólnie 415 Odkrywanie asocjacji – Przykład (2/6) • Wybór połączenia z bazą danych (jako ODM user!) • Uruchomienie kreatora do budowy modelu 416 Odkrywanie asocjacji – Przykład (3/6) • Wybór tabeli z danymi źródłowymi Tabela w formacie transakcyjnym • Parametry algorytmu 417 Odkrywanie asocjacji – Przykład (4/6) • Ustawienia dotyczące danych źródłowych Dane już przygotowane (binned) Wybór atrybutów 418 Odkrywanie asocjacji – Przykład (5/6) • Monitorowanie statusu zadania eksploracji – QUEUED -> EXECUTING -> SUCCESS 419 Odkrywanie asocjacji – Przykład (6/6) • Przeglądanie wyniku eksploracji – Model w postaci zbioru reguł 420 Klasyfikacja – Przykład (1/10) • Dane źródłowe: – • Charakterystyki demograficzne osób wraz z informacją o przynależności do grupy o wysokich (CLASS=1) lub niskich dochodach (CLASS=0) Cel eksploracji: – Model pozwalający przewidzieć przynależność osób do grupy o wysokich lub niskich dochodach na podstawie ich charakterystyk 421 Klasyfikacja – Przykład (2/10) • Uruchomienie kreatora do budowy modelu • Wybór tabeli z danymi źródłowymi Tabela w formacie nietransakcyjnym 422 Klasyfikacja – Przykład (3/10) • Wybór algorytmu: Naive Bayes • Informacja o przygotowaniu danych Dane nieprzygotowane; żądanie automatycznego przygotowania (binning) 423 Klasyfikacja – Przykład (4/10) • Wskazanie atrybutu określającego klasę (target attribute) • Wybór atrybutów, które mają być uwzględnione w modelu 424 Klasyfikacja – Przykład (5/10) • Wyniki eksploracji - model • Algorytm Naive Bayes buduje model probabilistyczny – Model jest aplikowany do nowych danych na zasadzie „czarnej skrzynki”; nie można podejrzeć reguł jego działania 425 Klasyfikacja – Przykład (6/10) • Uruchomienie kreatora do testowania modelu – – Cel: ocena jakości modelu Dane testowe mają taką samą strukturę jak te do budowy modelu Wskazanie modelu do przetestowania Test standardowy: dane testowe rozłączne z danymi na których zbudowano model Wskazanie tabeli z danymi testowymi 426 Klasyfikacja – Przykład (7/10) • Wyniki testowania modelu: – współczynnik dokładności modelu – macierz pomyłek (confusion matrix) Budowę/testowanie modelu należy powtarzać, zmieniając algorytm i/lub parametry, aż do uzyskania satysfakcjonującego modelu! 427 Klasyfikacja – Przykład (8/10) • Uruchomienie kreatora do aplikacji modelu do nowych danych – – Dane źródłowe nie zawierają informacji o przypisaniu przypadków do klas Wynikiem aplikacji modelu będzie przypisanie przypadków do klas Wybór modelu Wybór tabeli z danymi do zaklasyfikowania 428 Klasyfikacja – Przykład (9/10) • Wskazanie atrybutów identyfikujących przypadki Tylko jedna klasa, najbardziej prawdopodobna dla danego przypadku • Wybranie klas, dla których ma być wskazane prawdopodobieństwo przynależności przypadku 429 Klasyfikacja – Przykład (10/10) • Wybór nazwy tabeli, w której zostaną zapisane informacje o przypisaniu przypadków do klas • Wyniki zastosowania klasyfikatora 430 Podsumowanie • • • Oracle Data Mining to opcja serwera Oracle umożliwiająca eksplorację danych Eksploracja danych to zautomatyzowane odkrywanie wzorców, zależności i modeli w dużych zbiorach danych Ocena ODM na tle innych narzędzi eksploracji danych – Ścisła integracja z bazą danych, algorytmy „działają blisko danych”, brak konieczności eksportu danych z bazy – Brak wsparcia dla wszystkich technik eksploracji danych • brak odkrywania wzorców sekwencyjnych i analizy przebiegów czasowych – Stosunkowo niewiele algorytmów do wyboru • np. brak budowy drzew decyzyjnych jako modelu klasyfikacji