Seminarium Dyplomowe Magisterskie inż. Sławomir Skowyra Implementacja wybranych algorytmów eksploracji danych w Oracle 10g. Opiekun pracy: dr inż. Michał Rudowski Warszawa, dnia 18.04.2008 Plan Przedstawienie zagadnienia Przegląd technik eksploracji danych Wsparcie ze strony Oracle 10g Problem grupowania Przykładowy algorytm grupowania Zastosowanie grupowania w praktyce Podsumowanie Eksploracja danych (ang. Data Mining): Proces automatycznego odkrywania nietrywialnych, dotychczas nieznanych, potencjalnie pożytecznych reguł, zależności, wzorców schematów, podobieństw lub trendów w dużych repozytoriach danych (bazy danych, hurtownie danych, itd..) Cel Analiza danych i procesów w celu lepszego ich rozumienia. Przegląd technik klasyfikacja regresja grupowanie odkrywanie sekwencji odkrywanie charakterystyk analiza przebiegów czasowych odkrywanie asocjacji wykrywanie zmian i odchyleń eksploracja WWW eksploracja tekstów Przykłady zastosowań W świecie nauki: odkrywanie nowych obiektów (astronomia), bioinformatyka, przemysł farmaceutyczny, … W świecie biznesu: reklama, CRM, inwestycje, finanse, ubezpieczenia, telekomunikacja, … Web: Przeglądarki (Google), handel elektroniczny – Amazon, eBay, Allegro Administracja: wykrywanie przestępstw, wykrywanie nadużyć podatkowych, etc. Handel i marketing: identyfikacja „profilu klienta” dla przewidywania, którzy klienci odpowiedzą na marketing korespondencyjny, wykrywanie schematów zakupów i planowanie lokalizacji artykułów. Finanse i bankowość: identyfikacja schematów wykorzystywania np. kradzionych kart kredytowych przewidywanie dochodowości portfela akcji, znajdowanie korelacji wśród wskaźników finansowych. Telekomunikacja: wykrywanie schematów alarmowych w sieciach telekomunikacyjnych. Medycy do oceny terapii itd. Wsparcie ze strony Oracle 10g. Oracle Data Mining (ODM) — jako opcja w Oracle Database 10g Enterprise Edition Oracle Data Miner Interfejsy programistyczne Java API PL/SQL Wsparcie ze strony Oracle 10g Cd… Klasyfikacja Drzewa decyzyjne, SVM (Support Vector Machine), Naiwny Klasyfikator Bayesa Grupowanie K-Menas, O-Cluster Regresja SVM, GLM (Generalized Linear Models) Wykrywanie istotnych atrybutów MDL (Minimum Description Length) Wykrywanie zmian i odchyleń One Class SVM Reguły asocjacyjne Apriori Wykrywanie cech Non-Negative Matrix nFactorization (NMF) Grupowanie Klaster – kolekcja obiektów Podobieństwo obiektów wewnątrz tego samego klastra Niepodobieństwo do obiektów należących do innego klastra Analiza klastrów Grupowanie zbioru obiektów w klastry Klasteryzacja to uczenie bez nadzoru – brak jakichkolwiek wstępnie zdefiniowanych klas Typowe zastosowania Jako standardowe narzędzie do analizy rozmieszczenia obiektów Jako przetwarzanie wstępne w różnych algorytmach Przykłady zastosowań Marketing – rozpoznawanie różnych grup klientów, ich preferencji, i wykorzystywanie tej wiedzy w celu stworzenia nowych programów marketingowych Ubezpieczenia – tworzenie nowych form ubezpieczeń oraz ocenianie średniego kosztu roszczeń Użyteczność lądu – identyfikacja powierzchni o podobnej użyteczności Planowanie miast – rozpoznawanie grup domów ze względu na typ domu, wartości i umiejscowienia Analiza trzęsień ziemi – zaobserwowane trzęsienia powinny leżeć wzdłuż uskoków kontynentów Miary Miary numeryczne – zazwyczaj funkcja odległości Często używa się tzw. odległości Minkowskiego gdzie q to dodatnia liczba naturalna q q d (i, j ) q xi1 x j1 xi 2 x j 2 ... xip x jp q Jeśli q = 1 to otrzymujemy odległość Manhattan d (i, j ) xi1 x j1 xi 2 x j 2 ... xip x jp Jeśli q = 2 to uzyskujemy odległość Euklidesową d (i, j ) 2 Miary binarne Miary symboliczne 2 xi1 x j1 xi 2 x j 2 ... xip x jp 2 Metody grupowania Metody hierarchiczne Produkują klastry hierarchicznie Szybkie Metody partycjonujące Produkują klastry o kształtach sferycznych Dobre dla niedużej ilości obiektów oraz gdy znana jest liczba klastrów Metody wyszukiwania gęstości Produkują klastry o dowolnych kształtach Dobre dla danych przestrzennych Metody gridowe Produkują klastry oparte na siatkach Szybkie dla dużych, wielowymiarowych danych Metody modelujące Metody wyszukiwania gęstości Na wejściu dwa parametry: ε - maksymalny promień sąsiedztwa MinPts – minimalna ilość punktów w ε-sąsiedztwie danego punktu Sąsiedztwo : N y X ; d ( x, y) Rdzenny obiekt – punkt w którego sąsiedztwie znajduje się co najmniej MinPts punktów Punkt y jest bezpośrednio osiągalny z rdzennego obiektu x jeśli y należy do N ε(x) MWG – CD … Punkt y jest osiągalny z rdzennego obiektu x jeśli istnieje ścieżka p1=x, p2, ..., pn=y taka, że pi+1 należy do N ε(pi) Punkty x i y są gęstościowo połączone jeśli istnieje rdzenny punkt, taki że zarówno x jak i y są z niego osiągalne DBScan - Algorytm Wybierz dowolny punkt p Wyszukaj wszystkie punkty osiągalne z p dla ustalonych MinPts, ε Jeśli p jest rdzennym punktem to tworzymy klaster Jeśli p jest punktem granicznym, to żaden punkt nie jest osiągalny z p Jeśli p jest punktem oddalonym to zaznaczamy go jako takiego Powtarzaj proces do momentu, aż wszystkie punkty zostaną przetworzone Wyznaczanie ε Przykład praktyczny grupowania 300 250 200 150 Series1 100 50 0 0 50 100 150 200 250 300 350 400 DBScan – własna implementacja 300 250 200 Series1 Series2 150 Series3 Series4 Series5 100 50 0 0 50 100 150 200 250 300 350 400 K-Means – przy użyciu ODM 300 250 200 Series1 Series2 150 Series3 Series4 Series5 100 50 0 0 50 100 150 200 250 300 350 400 Grupowanie w SQL Server 2005 300 250 Series1 200 Series2 Series3 Series4 Series5 150 Series6 Series7 Series8 100 Series9 Series10 50 0 0 50 100 150 200 250 300 350 400 Podsumowanie Dobre wsparcie ze strony Oracle Łatwe i wygodne narzędzie Oracle Data Miner Dokumentacja (Tutoriale) Wysoka wydajność Pytania? Dziękuję za uwagę.