Krzysztof Dembczyński Instytut Informatyki Zakład Inteligentnych Systemów Wspomagania Decyzji Politechnika Poznańska Inteligentne Systemy Wspomagania Decyzji Studia magisterskie, semestr I Semestr letni 2007/08
Plan wykładu Systemy baz i hurtowni danych wprowadzenie do wykładu Modele danych i ewolucja systemów baz danych Projektowanie hurtowni danych i modelowanie wielowymiarowe Systemy OLAP Język MDX Proces ekstrakcji, transformacji i ładowania danych (Proces ETL)
Plan wykładu 1 Od hurtowni danych do eksploracji danych 2 Analityczne rozszerzenia systemów OLAP 3 Reguły Asocjacyjne 4 Algorytm Apriori 5 Odkrywanie sekwencji 6 Wybór interesujacych reguł asocjacyjnych 7 Podsumowanie
Plan wykładu 1 Od hurtowni danych do eksploracji danych 2 Analityczne rozszerzenia systemów OLAP 3 Reguły Asocjacyjne 4 Algorytm Apriori 5 Odkrywanie sekwencji 6 Wybór interesujacych reguł asocjacyjnych 7 Podsumowanie
Zastosowanie hurtowni danych: Przetwarzanie informacji: wydawanie zapytań, podstawowa analiza statystyczna, tworzenie raportów, wykresów itp., Przetwarzanie analityczne: podstawowe operacje OLAP, Zaawansowane przetwarzanie analityczne: rozszerzone operacje OLAP, Eksploracja danych: odkrywanie ukrytych i nietrywialnych wzorców, zwiazków w danych poprzez tworzenie modeli analitycznych; wizualizacja.
Przetwarzanie eksploracyjne na bieżaco (On-line Analytical Mining)
Plan wykładu 1 Od hurtowni danych do eksploracji danych 2 Analityczne rozszerzenia systemów OLAP 3 Reguły Asocjacyjne 4 Algorytm Apriori 5 Odkrywanie sekwencji 6 Wybór interesujacych reguł asocjacyjnych 7 Podsumowanie
Eksploracja hipotez Eksploracja hipotez w systemach OLAP polega na przegladaniu kostki danych i wyszukiwaniu w niej interesujacych informacji. Proces ten nie jest w żaden sposób wspierany, użytkownik formułuje hipotezy i sprawdza je w danych. Eksploracja odkrywcza Eksploracja odkrywcza w systemach OLAP polega na wspomaganiu przegladania kostki danych w celu wyszukiwania w niej interesujacych informacji. System wspomaga wybór najciekawszych wymiarów i podświetla interesujace wartości.
Eksploracja odkrywcza Sarawagi, S., Agrawal, R., Megiddo N.: Discovery-driven exploration of OLAP data cubes. Proc. of the Sixth Int. Conference on Extending Database Technology (EDBT), Valencia, Spain, March 1998 Sarawagi, S., Agrawal, R., Megiddo N.: IBM Research Report RJ 10102 (91918), January 1998 (http://www.almaden.ibm.com/software/quest/ Publications/papers/edbt98_ex_rj.pdf)
Poszukiwanie nieoczekiwanych wartości miar: SelfExp: reprezentuje nieoczekiwana wartość komórki ze względu na wartości innych komórek na tym samym poziomie agregacji, InExp: reprezentuje stopień zaskoczenia gdzieś poniżej danej komórki (w hierarchii wymiarów operacja drill down), PathExp: reprezentuje stopień zaskoczenia dla każdej możliwej ścieżki w dół dla danej komórki.
Eksploracja odkrywcza
Eksploracja odkrywcza
Eksploracja odkrywcza
Eksploracja odkrywcza
Eksploracja odkrywcza
Eksploracja odkrywcza
Eksploracja odkrywcza: y Wartość komórki, E(y) Wartość oczekiwana, R = y E(y) σ standaryzowane residuum (σ oznacza odchylenie standardowe), R τ wartość nieoczekiwana, E(y ijk ) = f (g(), g A (i), g B (j), g C (k), g AB (i, j), g BC (j, k), g AC (i, k)), SelfExp: wartość bezwzględna residuum z uwzględnieniem progu odcięcia, InExp: maksymalna wartość SelfExp w komórkach poniżej danej komórki, PathExp: maksymalna wartość SelfExp po wszystkich komórkach osiagalnych poprzez rozwijanie (drill down) danej ścieżki.
Plan wykładu 1 Od hurtowni danych do eksploracji danych 2 Analityczne rozszerzenia systemów OLAP 3 Reguły Asocjacyjne 4 Algorytm Apriori 5 Odkrywanie sekwencji 6 Wybór interesujacych reguł asocjacyjnych 7 Podsumowanie
Generowanie reguł asocjacyjnych jest jedna z głównych i najbardziej popularnych operacji w eksploracji danych, która pozwala na analizę ogromnych wolumenów danych.
Analiza koszyka zakupów Dla danej bazy danych transakcji konsumenckich, gdzie każda transakcja jest zbiorem produktów, znajdź grupę produktów, które sa często kupowane razem. Analiza koszyka zakupów: Wyciagana jest informacje o zachowaniach klientów, Odkryta informacja może posłużyć do odpowiedniego ustawienia produktów w sklepie, dodania nowych produktów do asortymentu, oraz do ustalenia, które produkty i w jaki sposób promować.
Zastosowanie analizy koszyka zakupów: Telekomunikacja (klient jest traktowany jako transakcja składajaca się z rozmów z innymi abonentami), Prognoza pogody (przedział czasowy jest transakcja składajac a się z zbiory zaobserwowanych zdarzeń pogodowych), Karty kredytowe, Usługi bankowe, Diagnostyka medyczna.
Reguły asocjacyjne wyrażaja, jak produkty/usługi powiazane sa ze soba i czy maja tendencje do wspólnego występowania: Jeżeli klient kupił chipsy, to jest prawdopodobne, ze również kupi piwo Reguły asocjacyjne sa proste w interpretacji!!!
Sformułowanie problemu: I = {i 1, i 2,..., i n } jest zbiorem produktów, Transakcja T jest zbiorem produktów takim, że T I, Baza danych D jest zbiorem transakcji, Transakcja T zawiera X I, jeżeli X T, Reguła asocjacyjna jest implikacja w postaci X Y, gdzie X, Y I.
Miary reguł asocjacyjnych: Wsparcie (ang. support) Zbiór produktów X ma wsparcie sup(x) = s w bazie danych D, jeżeli s% transakcji w D zawiera X, czyli: sup(x) = Card({T D : X T }). Card(D) Reguła asocjacyjna X Y ma wsparcie sup(x Y ) = s w bazie danych D, jeżeli s% transakcji w D zawiera X Y, czyli: sup(x Y ) = sup(x Y ) = Card({T D : X Y T }). Card(D)
Miary reguł asocjacyjnych: Zaufanie (ang. confidence) Reguła asocjacyjna X Y zachodzi w bazie danych D z zaufaniem conf (X Y ) = c, jeżeli c% transakcji w D, które zawieraja X, zawieraja również Y. conf (X Y ) = Card({T D : X Y T }) Card({T D : X T }) = sup(x Y ) sup(x)
Miary reguł asocjacyjnych: Wsparcie sup(x Y ) oznacza częstość występowania reguły w transakcjach w bazie danych. Duża wartość oznacza, że reguła dotyczy dużej części transakcji bazy danych: sup(x Y ) = P(X Y ) gdzie P oznacza prawdopodobieństwo. Zaufanie conf (X Y ) oznacza procent transakcji zawierajacych X, które również zawieraja Y. Jest to estymator prawdopodobieństwa warunkowego: conf (X Y ) = P(Y X) = P(X Y ) P(X) gdzie P oznacza prawdopodobieństwo.
Miary reguł asocjacyjnych: Użytkownik ustawia parametry reguł, którymi jest zainteresowany: minimalne wsparcie minsup minimalne zaufanie minconf Reguła pojawia się w wyniku końcowym, jeżeli zachodzi s minsup i c minconf.
Minimalne wsparcie: Miary reguł asocjacyjnych: duże niewiele reguł, które występuja bardzo często (reguły oczywiste, trywialne), małe dużo reguł, które występuja rzadko. Minimalne zaufanie: duże mało reguł, ale wszystkie prawie logicznie prawdziwe, małe dużo reguł, ale wiele z nich bardzo niepewnych. Typowe wartości: minsup 2%, 10%, minconf 70%, 90%.
Sformułowanie problemu: Znajdź wszystkie reguły, które maja wsparcie i zaufanie większe, od zadanych przez użytkownika, minimalnego wsparcia (minsup) i minimalnego zaufania (minconf). Example Transakcje Produkty 100 A, B, C 200 A, C 300 A, D 400 B, E, F Zadane parametry: minsup = 50%, minconf = 50%
Sformułowanie problemu: Znajdź wszystkie reguły, które maja wsparcie i zaufanie większe, od zadanych przez użytkownika, minimalnego wsparcia (minsup) i minimalnego zaufania (minconf). Example Transakcje Produkty 100 A, B, C 200 A, C 300 A, D 400 B, E, F Zadane parametry: minsup = 50%, minconf = 50% Reguły asocjacyjne: A C (sup = 50%, conf = 66%), C A (sup = 50%, conf = 100%).
Ogólny algorytm odkrywania reguł asocjacyjnych Znajdź wszystkie zbiory produktów L i = {I i1, I i2,..., I im }, L i I, dla których sup(l i ) minsup. Zbiór L i jest nazywany zbiorem częstym produktów. Wykorzystaj zbiory częste produktów to wygenerowania reguł asocjacyjnych Algorytmem Generowania Reguł.
Algorytm Generowania Reguł for each L i (zbiór częsty produktów) do for each SL i L i do if sup(l i ) sup(sl i ) minconf then stwórz regułę: SL i L i SL i o parametrach conf = sup(l i ) sup(sl i ) i sup = sup(l i )
Plan wykładu 1 Od hurtowni danych do eksploracji danych 2 Analityczne rozszerzenia systemów OLAP 3 Reguły Asocjacyjne 4 Algorytm Apriori 5 Odkrywanie sekwencji 6 Wybór interesujacych reguł asocjacyjnych 7 Podsumowanie
Algorytm Apriori Załóżmy, że wszystkie transakcje sa wewnętrznie posortowane zgodnie z porzadkiem leksykograficznym (pozwala to na zwiększenie efektywności algorytmu), L k oznacza zbiór częstych produktów o rozmiarze k (zbiór k-elementowy) zbiór częsty k-produktów, C k oznacza zbiór kandydatów, potencjalnych zbiorów częstych produktów, o rozmiarze k kandydat k-produktowy. Zauważmy, że jeżeli rozmiar zbioru zwiększa się, to wsparcie nie może rosnać.
Algorytm Apriori L 1 = {zbiór częsty 1-produktu}; for (k = 2;L k 1 ;k + +) do C k = apriori_gen(l k 1 ); for each transakcji t T do C t = {c C k : c t}; forall c C t do c.count + +; L k = {c C k : c.count minsup}; Odpowiedź = k L k;
Generacja Kandydatów Apriori (apriori_gen) INSERT INTO C k SELECT p.item 1, p.item 2,..., p.item k 1, q.item k 1 FROM L k 1 p, L k 1 q WHERE p.item 1 = q.item 1,... and p.item k 2 = q.item k 2 and p.item k 1 < q.item k 1 ; for all c C k do forall (k 1)-podzbiorów s c do if (s L k 1 ) then usuń c z C k ;
Apriori Candidate Generation dla danego L k, generuje C k+1 w dwóch krokach: Krok połaczenia: połacz L k1 z L k2, z warunkiem połaczenia takim, że pierwsze k 1 produktów jest takich samych i L k1 [k] < L k2 [k], Krok czyszczenia: usuń wszystkich kandydatów, których podzbiory nie sa zbiorami częstymi produktów.
Generowanie zbiorów częstych produktów Transakcje Produkty 100 1, 3, 4 200 2, 3, 5 300 1, 2, 3, 5 400 2, 5 Wygeneruj zbiory częste produktów z minsup = 50% = 2 transakcji. C 1 p 1 sup 1 2 2 3 3 3 4 1 5 3 L 1 p 1 sup 1 2 2 3 3 3 5 3
Generowanie zbiorów częstych produktów C 2 p 1 p 2 sup 1 2 1 1 3 2 1 5 1 2 3 2 2 5 3 3 5 2 C 3 p 1 p 2 p 3 sup 2 3 5 2 L 3 p 1 p 2 p 3 sup 2 3 5 2 C 4 = i L 4 = L 2 p 1 p 2 sup 1 3 2 2 3 2 2 5 3 3 5 2
Algorytm Apriori wykorzystuje własność monotoniczności. Własność monotoniczności Każdy podzbiór zbioru częstego produktów jest również zbiorem częstym, innymi słowami, jeżeli B jest zbiorem częstym oraz A B, to A jest również zbiorem częstym. Wniosek Jeżeli A nie jest zbiorem częstym, wtedy nie należy generować zbiorów produktów, które zawieraja A. Krok połaczenia i czyszczenie sa równoważne rozszerzaniu każdego zbioru produktów L k z każdym produktem w bazie danych i usuwaniu tych kandydatów z C k+1, których podzbiory (C k+1 C[k]) nie sa częste.
Jeżeli AD nie jest częsty, to nie należy generować zbiorów produktów, które zawieraja AD, tzn. ABD, ACD i ABCD nie sa także zbiorami częstymi produktów.
Odkrywanie reguł Dla zbioru częstego produktów {2, 3, 5}: 23 5 support = 2 confidence = 100% 25 3 support = 2 confidence = 66% 35 2 support = 2 confidence = 100% 2 35 support = 2 confidence = 66% 3 25 support = 2 confidence = 66% 5 23 support = 2 confidence = 66%
Zadanie Dla następujacej bazy danych: Transakcje Produkty 1 bread, milk 2 beer, milk, sugar 3 bread 4 bread, beer, milk 5 beer, milk, sugar przyjmij następujace wartości dla minsup i minconf: i wygeneruj reguły asocjacyjne. minsup = 30% minconf = 70%
Plan wykładu 1 Od hurtowni danych do eksploracji danych 2 Analityczne rozszerzenia systemów OLAP 3 Reguły Asocjacyjne 4 Algorytm Apriori 5 Odkrywanie sekwencji 6 Wybór interesujacych reguł asocjacyjnych 7 Podsumowanie
Odkrywanie sekwencji Odkrywanie sekwencji jest to odkrywanie często występujacych wzorców odnoszacych się do czasu lub innego rodzaju porzadku. Przykład Klient, który kupił telewizor, po pewnym czasie kupi magnetowid, itp. Zastosowania: Odkrywanie porzadku odwiedzania stron, Kolejności dokonywania zakupów, Cykl życia klienta sieci telekomunikacyjnej.
Sformułowanie problemu: I = {i 1, i 2,..., i n } jest zbiorem produktów, Transakcja T jest podzbiorem produktów T I, Sekwencja S jest lista podzbiorów produktów (S 1, S 2,..., S n ), gdzie S i I, Baza danych D jest zbiorem sekwencji, Sekwencja (A 1, A 2,..., A n ) zawiera się w sekwencji (B 1, B 2,..., B m ), jeżeli istnieja liczby naturalne i 1 < i 2 <... < i n, takie że: A 1 B i1, A 2 B i2,..., A n B in, Przykład: ({B}, {DE}) zawiera się w ({A}, {B}, {C}, {DAE}, {C}), ({A}, {B}) nie zawiera się w ({AB}) i na odwrót.
Sformułowanie problemu: Sekwencja dla klienta: transakcja zbiór produktów, lista transakcji dla konkretnego klienta uporzadkowana zgodnie z czasem sekwencja, Klient wspiera sekwencje S i, jeżeli S i zawiera się w sekwencji dla danego klienta, Wsparcie sekwencji S i to liczba klientów, którzy wspieraja S i, Długość sekwencji to liczba kolejnych podzbiorów produktów w niej zawartych (np. length(({b}, {DE})) = 2).
Sekwencje z minimalnym wsparciem nazywane sa częstymi sekwencjami, Wsparcie dla podzbioru produktów X: liczba klientów, którzy kupuja wszystkie produkty z X w jednej transakcji.
Sformułowanie problemu: Dla danej bazy danych D transakcji, znajdź najdłuższe sekwencje spośród wszystkich o minimalnym wsparciu podanym przez użytkownika.
Przykładowa bazy danych: Klient Data Produkty 1 1 A 1 2 A 2 1 A 2 2 B 2 3 C,E 3 1 A,E 4 1 A 4 2 C,D,E 4 3 A 5 1 A Przykładowe sekwencje: ({A},{A}): wsparcie dwóch klientów ({A},{C,E}): wsparcie dwóch klientów
Przykładowa bazy danych: Klient Data Produkty 1 1 A 1 2 A 2 1 A 2 2 B 2 3 C,E 3 1 A,E 4 1 A 4 2 C,D,E 4 3 A 5 1 A Przykładowe sekwencje: ({A},{A}): wsparcie dwóch klientów ({A},{C,E}): wsparcie dwóch klientów
Algorytm: Faza sortowania (według klientów i daty) Identyfikacja zbiorów częstych produktów (dla klientów) - sekwencji o długości 1, Faza transformacji - mapowanie każdej transakcji do zbioru wszystkich zbiorów częstych produktów zawartych w transakcji, Szukanie sekwencji - szukanie sekwencji algorytmem apriori, Faza najdłuższych sekwencji - usunięcie sekwencji będacymi podsekwencjami innych sekwencji.
Faza sortowania: uporzadkuj bazę danych D według klientów i daty transakcji. Celem tej fazy jest transformacja oryginalnej bazy danych do bazy danych sekwencji klientów. Klient Data Produkty 1 1 A 1 2 A 2 1 A 2 2 B 2 3 C,E 3 1 A,E 4 1 A 4 2 C,D,E 4 3 A 5 1 A Klient Produkty 1 ({A},{A}) 2 ({A},{B},{CE}) 3 ({AE}) 4 ({A},{CDE},{A}) 5 ({A})
Identyfikacja zbiorów częstych produktów: znajdź wszystkie częste sekwencje o długości 1 algorytmem Apriori. Uwaga: wsparciem jest liczba klientów, a nie transakcji. Klient Produkty 1 ({A},{A}) 2 ({A},{B},{CE}) 3 ({AE}) 4 ({A},{CDE},{A}) 5 ({A}) Wsparcie dla {A} jest 100%
Faza transformacji: mapuj każda transakcję do zbiorów częstych produktów zawartych w transakcji. Można wykorzystać kodowanie liczbami naturalnymi. Zbiory częste Kodowanie {A} 1 {B} 2 {C} 3 {BC} 4 Przykładowa transformacja: Transakcja: ({D}, {A}, {BEC}, {C}), Transformacja: ({A}, {{B}, {C}, {BC}}, {C}) Po mapowaniu: ({1}, {2, 3, 4}, {3}).
Szukanie sekwencji algorytmem Apriori L 1 = {częste sekwencje o długości 1}; //rezultat 2 fazy for (k = 2;L k 1 ;k + +) do C k = apriori_gen_seq(l k 1 ); for each klient-sekwencji k D do C t = {c C k : c k}; forall c C t do c.count + +; L k = {c C k : c.count minsup}; Odpowiedź = k L k;
Generowanie kandydatów dla sekwencji (apriori_gen_seq) INSERT INTO C k SELECT p.item 1, p.item 2,..., p.item k 1, q.item k 1 FROM L k 1 p, L k 1 q WHERE p.item 1 = q.item 1,... AND p.item k 2 = q.item k 2 ; for all c C k do forall (k 1)-podzbioru s c do if (s L k 1 ) then usuń c z C k ;
Wykorzystanie algorytmu Apriori w szukaniu sekwencji: Nie szukamy reguł, a jedynie zbiorów częstych, k 2 elementy zbioru częstego produktu należacego do L k 1 powinny być takie same w kroku łaczenia Uporzadkowanie leksykograficzne nie jest zachowane - można łaczyć sekwencje ze sama soba, Usuwanie kandydatów, których podkandydaci nie sa sekwencjami częstymi L 3 C 4 : łaczenie C 4 : usuwanie 123 1233 1234 1234 124 1243 1244 134 1344 234 2344
Faza najdłuższych sekwencji: usuń sekwencje będace podsekwencjami innych częstych sekwencji. for (k = n;k > 1;k ) do for each k-sekwencji s k S do for each k-sekwencji s i S, gdzie s < k do if s i zawiera się w s k then S = S - s i Answer = S;
Zadanie Dla poniższej bazy danych po fazie transformacji znajdź sekwencje o minimalnym wsparciu 40% Klient Produkty 1 ({1,5},{2},{3},{4}) 2 ({1},{2},{4},{3,5}) 3 ({1},{2},{3},{5}) 4 ({1},{3},{5}) 5 ({4},{5})
Plan wykładu 1 Od hurtowni danych do eksploracji danych 2 Analityczne rozszerzenia systemów OLAP 3 Reguły Asocjacyjne 4 Algorytm Apriori 5 Odkrywanie sekwencji 6 Wybór interesujacych reguł asocjacyjnych 7 Podsumowanie
Problem: Podczas generowania reguł asocjacyjnych, w jaki sposób system eksploracji danych jest w stanie zaprezentować reguły, które będa najbardziej interesujace dla użytkownika (Han). Duży zbiór danych może prowadzić do bardzo dużej liczby reguł asocjacyjnych, nawet przy odpowiednim doborze minimalnego zaufania i wsparcia, Silne reguły nie musza być koniecznie najbardziej interesujace, Tak naprawdę, tylko użytkownik może stwierdzić, czy dana reguła jest interesujaca, czy nie!
Przykład kawa nie kawa suma herbata 20 5 25 nie herbata 70 5 75 suma 90 10 100 Następujaca reguła asocjacyjna zostanie odkryta: herbata kawa (s = 20/100 = 20%, c = 20/25 = 80%) Reguła o dużym wsparciu i zaufaniu!
Przykład Prawdopodobieństwo, że klient kupi kawę jest 90%!!! klient, o którym wiadomo, że kupuje herbatę, z dużo mniejszym prawdopodobieństwem kupuje kawę, występuje negatywna korelacja pomiędzy kupowaniem herbaty i kawy, nie herbata kawa (s = 70%, c = 70/75 = 93%).
Miara dźwigni (lift) Dźwignia reguły asocjacyjnej X Y jest zdefiniowana następujaco: lift(x Y ) = P(Y X) P(Y ) = conf (X Y ) sup(y ) Jest to stosunek zaufania do tzw. zaufania oczekiwanego. Interpretacja: Jeżeli lift(x Y ) > 1, to X i Y sa pozytywnie skorelowane, lift(x Y ) < 1, to X i Y sa negatywnie skorelowane, lift(x Y ) = 1, to X i Y sa niezależne. W przykładzie: lift(herbata kawa) = 0.89, tzn. herbata i kawa sa negatywnie skorelowane.
Interpretacja matematyczna: Dwa zdarzenia A i B sa niezależne jeżeli P(A B) = P(A) P(B), w przeciwnym przypadku sa one skorelowane. Dźwignia może zostać przypisana do postaci: lift(a B) = conf (A B) sup(b) = P(A B) P(A) P(B).
Plan wykładu 1 Od hurtowni danych do eksploracji danych 2 Analityczne rozszerzenia systemów OLAP 3 Reguły Asocjacyjne 4 Algorytm Apriori 5 Odkrywanie sekwencji 6 Wybór interesujacych reguł asocjacyjnych 7 Podsumowanie
Podsumowanie Generowanie reguł asocjacyjnych jest jedna z głównych i najbardziej popularnych operacji w eksploracji danych, która pozwala na analizę ogromnych wolumenów danych. Algorytm Apriori, Uogólnienie algorytmu Apriori do odkrywania częstych sekwencji.
Plan wykładu Systemy baz i hurtowni danych wprowadzenie do wykładu Modele danych i ewolucja systemów baz danych Projektowanie hurtowni danych i modelowanie wielowymiarowe Systemy OLAP Język MDX Proces ekstrakcji, transformacji i ładowania danych (Proces ETL)