34
Wykrywanie wzorców częstych Anna Seweryn Opiekun: dr inż. Grzegorz Protaziuk

Wykrywanie wzorców częstych

  • Upload
    arich

  • View
    47

  • Download
    0

Embed Size (px)

DESCRIPTION

Wykrywanie wzorców częstych. Anna Seweryn Opiekun: dr inż. Grzegorz Protaziuk. Spis treści:. Eksploracja danych Podstawowe definicje Algorytm Apriori Ulepszenia Algorytmu Apriori Algorytm dla grafów skierowanych ważonych Implementacja algorytmu Testy wydajnościowe Zastosowanie algorytmu - PowerPoint PPT Presentation

Citation preview

Page 1: Wykrywanie wzorców częstych

Wykrywanie wzorców częstych

Anna SewerynOpiekun: dr inż. Grzegorz Protaziuk

Page 2: Wykrywanie wzorców częstych

Spis treści: Eksploracja danych Podstawowe definicje Algorytm Apriori Ulepszenia Algorytmu Apriori Algorytm dla grafów skierowanych

ważonych Implementacja algorytmu Testy wydajnościowe Zastosowanie algorytmu Podsumowanie

Page 3: Wykrywanie wzorców częstych

Eksploracja danych Pojęcie eksploracji danych potocznie rozumiane

jest jako odkrywanie wiedzy w bazach danych, integruje ono kilka dziedzin takich jak: statystyka, systemy baz danych, sztuczna inteligencja, optymalizacja, obliczenia równoległe.

Problemy: Magazynowanie danych Dostęp do danych Analizowanie w rozsądnym przedziale czasowym Niepoprawne wartości, zanieczyszczenia, zakłamane

dane Zależności i podsumowania będące wynikami

eksploracji danych zwane są modelami lub wzorcami

Page 4: Wykrywanie wzorców częstych

Podstawowe pojęcia Częstość fr(Y) zadanego wzorca zbioru

elementów Y jest liczba przypadków w danych spełniających Y.

Wsparcie częstość wystąpień zbioru X lub Y. Dokładność (ufność) zadanej reguły to frakcja

(część wszystkich) wierszy spełniających wśród tych wierszy, które spełniają Y (prawdopodobieństwo warunkowe P(Y|X).

Zadanie znajdowania wzorców częstych:mając dany próg częstościowy s znajdujemy wszystkie wzorce zbiorów elementów, które są częste i ich częstości. Jeśli próg częstości jest niski może być wiele zbiorów częstych.

Page 5: Wykrywanie wzorców częstych

Metoda trywialna wyszukiwania wzorców częstych

Metodą trywialną jest branie po kolei każdego wzorca i sprawdzanie czy występuje on w danych i czy jest w jakimś sensie znaczący. Jeśli liczba możliwych wzorców jest mała, to wówczas można tę metodę zastosować, ale z reguły jest ona całkowicie niewykonalna.

Page 6: Wykrywanie wzorców częstych

Algorytm Apriori Algorytm Apriori

znalezienie wszystkich wzorców częstych zaczynamy od znalezienia wszystkich zbiorów częstych składających się z 1 zmiennej. Zakładając, że już je znamy, budujemy zbiory kandydujące rozmiaru 2: zbiory {A,B} takie, że {A} jest częsty i {B} jest częsty. Po zbudowaniu przeglądamy je i stwierdzamy, które są częste. Budujemy z nich zbiory kandydujące rozmiaru 3, których częstość jest następnie obliczana z danych i tak dalej.

Ograniczenia: struktura danych jest ograniczona do elementów

zbioru.

Page 7: Wykrywanie wzorców częstych

Ulepszenia algorytmu Apriori Możliwość stosowania algorytmu Apriori dla

struktur grafowych po prostym przetworzeniu danych. Wada: utrata ważnych informacji o strukturze,

wierzchołki i etykiety muszą być unikalne Zastosowanie zasady MDL przycinania

drzew Wada: strategia wyszukiwań chciwa i

heurystyczna – pomijanie znaczących związków. Duża złożoność obliczeniowa

Page 8: Wykrywanie wzorców częstych

Ulepszenia algorytmu Apriori cd

Równe rozmieszczenie sekwencji – sekwencje epizodów.Mając dany zbiór E typów zdarzeń, sekwencję zdarzenia s w E, zbiór epizodów EE, okno szerokości win i próg częstości min_fr, następujący algorytm oblicza zbiór epizodów częstych FE(s, win, min_fr):

Wada: ważna kolejność wstawiania wierzchołków Zastosowanie podgrafu jako cechy, by

sklasyfikować w grafach dane Wada: ograniczenia co do ilości węzłów, większa ilość

prowadzi do wykładniczej eksplozji obliczeniowej czasu

Page 9: Wykrywanie wzorców częstych

System: WARMR Pierwszy algorytm dla wyszukiwania danych

stosujący ILP (Indukcyjne Programowanie Logiki) ILP ma ograniczenia ilościowe By zmniejszyć złożoność obliczeniową stosuje się

heurystyki by przyciąć badaną przestrzeń Wzorce: relacyjne reguły asocjacyjne budowane

na podstawie częstych zapytań do baz wiedzy w Prologu

wsparcie s zapytania to procent liczby możliwych podstawień pod zmienne wyróżnione dla danego zapytania w stosunku do liczby wszystkich możliwych podstawień pod zmienne wyróżnione

Page 10: Wykrywanie wzorców częstych

System: FARMAR 2001

Słabszy warunek równoważności niż w WARMR, by przyspieszyć wyszukiwanie wzorców częstych

Bazuje na strukturze TRIE Ścieżka od korzenia do liścia

reprezentuje całe zapytania

Page 11: Wykrywanie wzorców częstych

Inokuchi, Washio, Motoda 2003 - algorytm Proces przerobienia ogólnego grafu

danych transakcji do grafu etykietowanych węzłów z zapętleniem

macierz sąsiedztwa – nie unikalna kodowanie macierzy – zmniejszenie

zapotrzebowania pamięci zaufanie i częstość Kanoniczna postać

Page 12: Wykrywanie wzorców częstych

Proces przerobienia ogólnego grafu danych transakcji do grafu etykietowanych węzłów z zapętleniem

Graf reprezentowany jako macierz sąsiedztwa

Jeśli graf ma etykietowane związki to związki stają się węzłami i węzły stają się związkami:

informacja link() –etykieta może zostać usunięta i otrzymujemy zredukowany graf, gdzie oryginalna informacja o związku i węźle zostaje zachowana:

Page 13: Wykrywanie wzorców częstych

Transformacja macierzy sąsiedztwa

Page 14: Wykrywanie wzorców częstych

kiedy jest pętla ważona tak jak w N1, zmienia się etykieta węzła na N’1, odtąd macierz wygląda tak:

Fakt ten pozwala na zapisywanie różnych etykiet dla węzłów, które mają wiele pętli. Zapisywanie etykiet węzłów odbywa się wg zasady:

Page 15: Wykrywanie wzorców częstych

Kody macierzy – graf nieskierowany

Dla wydajności algorytmu definiujemy kody macierzy sąsiedztwa.

Dla grafu nie skierowanego otrzymujemy kody przez skanowanie wyższych trójkątnych elementów. Powstaje kod 01 według poniższego schematu:

Dla macierzy otrzymujemy kod: code(Xk)=0101100101

Page 16: Wykrywanie wzorców częstych

Kody macierzy – graf skierowany Dla grafu skierowanego jeżeli oba elementy (i,j) oraz (j,i)

są zerami to dla kodu wstawiamy 0, natomiast gdy: element (i,j) ma wartość 1 a element ma wartość 0 to wstawiamy 1. w przypadku gdy element (i,j) ma wartość 0 a (j,i) wartość 1 to w kod w stawiamy 2, w końcu, gdy element (i,j) i (j,i) mają wartości 1 to w kodzie wstawiamy 3.

Wzór:

Dla macierzy kod jest następujący: code(Xk)=101012120000300

Page 17: Wykrywanie wzorców częstych

Algorytm wyszukiwania wzorców częstych Generowanie kandydata

Xk i Yk – macierze sąsiedztwa dwóch podrafów G(Xk) i G(Yk). Jeśli dwa częste podgrafy mają równe elementy z wyjątkiem k-tej kolumny i k-tego wiersza to wtedy łączy się i tworzy się podgraf Zk+1:

Page 18: Wykrywanie wzorców częstych

Graf nieskierowany grafu nie skierowanego rozważane są 2

przypadki: (1)jest związek między k-węzłem i k+1-

węzłem grafu G(Zk+1) oraz (2) nie ma żadnego związku między nimi.

Odpowiednio tym dwóm przypadkom generujemy 2 macierze sąsiedztwa wstawiając odpowiednio 0 lub 1 dla (k, k+1)-elementu oraz (k+1, k)-elementu.

Page 19: Wykrywanie wzorców częstych

Graf skierowany W przypadku skierowanego grafu możliwe są 4 przypadki:

(1) skierowany związek z węzła k do k+1 grafu G(Zk+1) oraz (2) skierowany związek od k+1 do k oraz (3)są dwukierunkowe związki między nimi oraz (4) nie ma żadnych związków między nimi.

Odpowiednio 4 różne macierze graniczne są generowane. Nazywamy odpowiednio Xk i Yk "pierwsza macierz” i "druga macierz” by wygenerować kolejno Zk + 1

Page 20: Wykrywanie wzorców częstych

Kandydat częsty k+1 elementowy graf G(Zk+1) jest rozważany na

kandydata częstego wyszukanego podgrafu gdy macierz sąsiedztwa wszystkich wywołanych k-podgrafów G(Zk+1) jest potwierdzona aby reprezentować częsty podgraf.

Ponieważ nasz algorytm wygeneruje tylko macierze sąsiedztwa normalnej formy. Wcześniejsza k macierz sąsiedztwa jest generowana przez usunięcie i-tego węzła, i-tej kolumny i wiersza prowadzi to do powstanie nie normalnej postaci macierzy sąsiedztwa. Macierz nienormalnej formy jest przekształcana do normalnej wg schematu:

Page 21: Wykrywanie wzorców częstych
Page 22: Wykrywanie wzorców częstych

Kandydat częsty cd Gdy wyprowadzimy wszystkich kandydatów częstych ich

wartość wsparcia jest wyliczana przez skanowanie całej bazy danych. Jednakże różne normalne macierze sąsiedztwa mogą reprezentować inne grafy. Aby poprawnie policzyć wsparcie musimy sprowadzić macierz do postaci kanonicznej.

K jest wielkością grafu G i T(G)-{Xk | Xk jest normalną formą macierzy G przystającą do G(Xk)}. Wtedy kanoniczna postać CK grafu G ma postać

kanoniczna forma macierzy Ck jest otrzymywana przez permutacje wierszy i kolumn normalnej formy macierzy Xk. Permutacje są zrobione przez operację

Page 23: Wykrywanie wzorców częstych

Wyliczenie częstości

Page 24: Wykrywanie wzorców częstych

Implementacja Struktura drzewa jest często stosowaną strukturą danych do przeszukiwań.

Przeszukiwania zaczyna się od korzenia i schodzi się niżej. Poniżej struktura drzewa nieskierowanego o dwóch etykietach N1 I N2. Punkt rozgałęzienia odpowiada normalnej formie macierzy.

Kolejność symbolu składająca się z literowego (powyższy) i liczebnik (poniżej) w każdym pokazie punktu kolejno etykieta węzła i kod macierzy sąsiedztwa.

Głębokość struktury Trie odpowiada wielkości wykresów i źródłowa macierz każdej macierzy w strukturze Trie jest pierwszą macierzą, by wygenerować macierz.

Page 25: Wykrywanie wzorców częstych

Testy wydajnościowe 1/5

Jak zmienia się czas kiedy zmieniamy ilość transakcji

Page 26: Wykrywanie wzorców częstych

Testy wydajnościowe 2/5Jak zmienia się czas kiedy zmieniamy średnią wielkość transakcji

Page 27: Wykrywanie wzorców częstych

Testy wydajnościowe 3/5Jak zmienia się czas kiedy zmieniamy liczbę etykiet węzła

Page 28: Wykrywanie wzorców częstych

Testy wydajnościowe 4/5

Jak zmienia się czas kiedy zmieniamy minimalne wsparcie

Page 29: Wykrywanie wzorców częstych

Testy wydajnościowe 5/5

Jak zmienia się czas kiedy zmieniamy istnienie związków

Page 30: Wykrywanie wzorców częstych

Zastosowanie Analiza sieci Web (web browning analysis)

liczba wpisów url: 25000wielkość pliku ok. 400MBokoło 8700-adresów i powiązańŚredni czas trwania dostępu do strony przez użytkowników: 5minutzmiana pliku testowego do struktury macierz doprowadziła do

powiększenia pliku do 800MBliczba transakcji wyniosła 50666przeciętna wielkość jednej transakcji to 118liczba etykiet węzła 8566każda etykieta była zastąpiona przez krótki symbol indeksuupakowanie tak danych do 79MBdla minsup=15% liczba częstych wzorców wyniosła

1898 i rozmiar maksymalny transakcji to 7 czas 52.3 sekundy

Page 31: Wykrywanie wzorców częstych

3 przykłady wykrytych wzorców:

Page 32: Wykrywanie wzorców częstych

Zastosowanie

Analiza substancji chemicznej Eksperymenty na toksyczność

substancji chemicznej w mieszaninie Zadanie: znaleźć czynniki

rakotwórcze Uniwersytet Oxford do odnajdywania

substancji rakotwórczej w substancjach

Page 33: Wykrywanie wzorców częstych

Podsumowanie Powyższy algorytm świetnie sobie radzi ze

strukturą grafu skierowanego jak i niekierowanego, graf może mieć wiele etykietowanych węzłów oraz może posiadać pętle.

Może być stosowany w praktyce do wyszukiwania częstych zachowań użytkowników WWW jak również do analizy substancji chemicznych – badanie toksyczności substancji chemicznej- znajdywanie struktury typowej dla czynnika rakotwórczego

Page 34: Wykrywanie wzorców częstych

Dziękuję za uwagę!