implementacja metod eksploracji danych - oracle data mining · • oracle data mining to opcja...
TRANSCRIPT
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 technikautomatycznego 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
DANEDATA
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ącychwypadkó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
• 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
3 6
25
50 klasa 1: wiek<25 i pensja<3klasa 1: wiek<25 i pensja<3
klasa 2: 25<wiek<50 i pensja<3klasa 2: 25<wiek<50 i pensja<3
klasa 3: wiek>25 i 3<pensja<6klasa 3: wiek>25 i 3<pensja<6
pensja [tys.]
wiek
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:– klienci, którzy kupują piwo, kupują również orzeszki– klienci, którzy kupują chleb i ser, kupują również wodę mineralną i ketchup
• Zastosowania odkrytych asocjacji:– 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– 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
• Regresja– Support Vector Machine (SVM)
• Ważność atrybutów– Minimal Descriptor Length (MDL)
• Analiza skupień (klastrowanie, grupowanie)– 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
– 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– wpływa na czas pracy algorytmów i jakość uzyskanych modeli
• Operacje wykonywane jawnie przez eksperta– 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 przygoto-waniu danych
Dane nieprzygotowane;żądanie automatycznegoprzygotowania (binning)
423
Klasyfikacja – Przykład (4/10)
• Wskazanie atrybutu określającegoklasę (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 tabeliz danymi testowymi
Wskazanie modeludo przetestowania
Test standardowy: dane testowe rozłącznez danymi na których zbudowano model
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 tabeli z danymi do zaklasyfikowania
Wybór modelu
428
Klasyfikacja – Przykład (9/10)
Tylko jedna klasa, najbardziej prawdopodobna dla danego przypadku
• Wskazanie atrybutów identyfikujących przypadki
• 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