FP-Growth Adam Pieśkiewicz Kamil Niezręcki Krzysztof Grześkowiak

Slides:



Advertisements
Podobne prezentacje
ALGORYTMY I STRUKTURY DANYCH
Advertisements

Lingwistyka Matematyczna
Data Mining w e-commerce
Wstawianie i wyszukiwanie kluczy w tablicach i drzewach binarnych
Przekształcanie dokumentów XML - XSL
STRUKTURY DANYCH.
Sortowanie przez scalanie
Algorytmy sortowania i porządkowania
Zaawansowane techniki algorytmiczne
ALGORYTMY GRAFOWE.
Rafał Hryniów Tomasz Pieciukiewicz
Grażyna Mirkowska PJWSTK 15 listopad 2000
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
Minimalne drzewa rozpinające
ALGORYTMY I STRUKTURY DANYCH
Elementarne struktury danych Piotr Prokopowicz
Ciągi de Bruijna generowanie, własności
Współprogramy III Ten wykład ma na celu pokazanie kolejnej ciekawej możliwości, którą oferują współprogramy. Wspólprogramy reprezentujące wyrażenia regularne.
Współprogramy II W tym wykładzie pogłębimy naszą znajomość z współprogramami. Omówimy współpracę procedur rekurencyjnych i współprogramów, wprowadzimy.
pseudokody algorytmów
Maciej Zabielski 15 stycznia 2003
ZŁOŻONOŚĆ OBLICZENIOWA
ALGORYTMY GEOMETRYCZNE.
(ph,pv) oznaczają stopień aproksymacji wielomianowej w kierunkach x i y nrdof = ilość stopni swobody na elemencie = (ph+1)* (pv+1) CAŁKOWANIE NA POJEDYNCZYM.
Algorytmy generowania reguł decyzyjnych
Promotor: dr inż. Leszek Koszałka Autor: Markuszewski Kamil
WYZWALACZE (TRIGGERY) Wyzwalacz jest specjalnym rodzajem procedury składowanej, która może być wykonana w odpowiedzi na jedną z trzech sytuacji: UPDATE.
Dynamiczne struktury danych 1
Klasyfikacja Obcinanie drzewa Naiwny klasyfikator Bayes’a kNN
Odkrywanie wzorców sekwencji
Wprowadzenie Sformułowanie problemu Typy reguł asocjacyjnych
Odkrywanie wzorców sekwencji
Algorytmy grafowe Reprezentacja w pamięci
FP-Growth Adam Pieśkiewicz Kamil Niezręcki Krzysztof Grześkowiak Michał Kucal
FP-Growth Adam Pieśkiewicz Kamil Niezręcki Krzysztof Grześkowiak Michał Kucal
ALGORYTMY I STRUKTURY DANYCH
Schemat Hornera Mgr inż. Michał Szucki.
Algorytmy i struktury danych
Algorytmy i struktury danych
Podstawy programowania II
Algorytmy i Struktury Danych Sortowanie
Sortowanie przez kopcowanie
DRZEWA BINARNE Emilia Krukowska.
IV OTWARTE MISTRZOSTWA OPOLA W PROGRAMOWANIU ZESPOŁOWYM
Algorytmy i struktury danych
Złożone typy danych Listy Tworzenie elastycznych baz danych
Materiały pochodzą z Platformy Edukacyjnej Portalu
Algorytm DIC Dynamic Itemset Countin
A-priori Partition Mateusz Mor, Kasper Rzepecki, Daniel Mendalka, Michał Samsonowski.
Wnioskowanie w stylu Takagi - Sugeno.
III EKSPLORACJA DANYCH
Algorytmy i Struktury Danych
Algorytmy i Struktury Danych Drzewa BTS, AVL
Algorytmy grafowe Minimalne drzewa rozpinające
Algorytmy równoległe Algorytm równoległy pozwala na wykonywanie w danej chwili więcej niż jednej operacji. EREW - wyłączny odczyt i wyłączny zapis; CREW.
Przeszukiwanie wszerz
Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/2006Prof. dr hab. Elżbieta Richter-Wąs Wykład 6 Model danych oparty.
Analiza (odkrywanie) Asocjacji 2 Association rule learning
Zbiory dynamiczne.
BAZY DANYCH Microsoft Access Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i.
ALGORYTMY I STRUKTURY DANYCH
Indeksy drzewiaste. ISAM ISAM - INDEXED SEQUENTIAL ACCESS METHOD Problem: –Dany jest plik uporządkowany – w jaki sposób zrealizować efektywnie zapytanie.
Rozdział 5 REKURENCJA.
Listy.
Kolejka priorytetowa.
Algorytm Dijkstry Podano graf Zdefiniowano jego listę sąsiedztwa 1 2 3
Zbiory rozłączne.
Algorytmy i struktury danych
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Zapis prezentacji:

FP-Growth Adam Pieśkiewicz Kamil Niezręcki Krzysztof Grześkowiak Michał Kucal 9.11.2010

Plan prezentacji 1. Zasada działania algorytmu 2. Implementacja 3. Wyniki 4. Podsumowanie

Zasada działania algorytmu 1. Odkrywanie zbiorów częstych a) Utworzenie FP-drzewa na podstawie skompresowanej bazy danych b) Znalezienie zbiorów częstych w procesie eksploracji FP-drzewa 2. Generacja reguł asocjacyjnych

Kompresja bazy danych 1. Znalezienie jednoelementowych zbiorów częstych w bazie danych 2. Usunięcie z każdej transakcji tych elementów, które nie są częste 3. Posortowanie elementów transakcji malejąco wg wsparcia

FP-drzewo - ukorzeniony, etykietowany w wierzchołkach graf acykliczny - korzeń – etykieta „null”, pozostałe wierzchołki to jednoelementowe zbiory częste wraz z licznikiem transakcji - tworzenie: wstawianie kolejnych transakcji ze skompresowanej bazy, przy czym jeśli transakcje współdzielą prefiks, następuje zwiększenie licznika transakcji w węzłach; w przeciwnym wypadku – dodawanie nowych węzłów Licznik transakcji ostatniego wierzchołka danej ścieżki zawiera informacje o liczbie transakcji wspierających zbiór elementów reprezentowanych przez wierzchołki grafu należące do tej ścieżki.

Przykład FP-drzewa

Eksploracja FP-drzewa FP-Growth(T, α) { //α = null at beginning if T contains a single path P then { for each combination β of nodes in path P generate pattern β + α with support = min(supports of all the nodes in β); } else { for each ai in the hTable of T { generate pattern β = ai + α with support = sup(ai); construct β's conditional pattern base and use it to build β's conditional FP-tree Treeβ; if Treeβ ≠ ø then FP-Growth(Treeβ, β); Obserwacja: dla każdego jednoelementowego zbioru częstego alfa, wszystkie częste nadzbiory zbioru alfa są reprezentowane w FP-drzewie przez ścieżki zawierające wierzchołek alfa.

Generacja reguł for each frequent pattern f with power > 1 { generate all nonempty and proper subsets of f; for each generated subset s of f { if sup(f) / sup(s) >= minconf output the rule ”s -> (f \ s)” }

Środowisko Język Java (JDK 1.6 update 19) Visual VM

Implementacja (1) 1. Klasa reprezentująca węzeł FP-drzewa (FPTreeNode): - wartość elementu - licznik transakcji - referencja do węzła – rodzica - lista referencji do węzłów potomnych 2. Mapa reprezentująca tablicę nagłówkową FP-drzewa: - klucz – wartość elementu transakcji - wartość – obiekt klasy HeaderTableRow (support, lista referencji do węzłów reprezentujących ten sam jednoelementowy zbiór częsty w FP-drzewie) - posortowana malejąco wg wsparcia

Implementacja (2) 3. Klasa reprezentująca transakcję (Transaction): - licznik transakcji – przydatny przy konstrukcji warunkowej bazy wzorca i tablicy nagłówkowej warunkowego FP-drzewa; pomaga przy obliczaniu wsparcia dla elementów transakcji w warunkowej bazie wzorca i przy kompresji tej bazy - lista elementów transakcji, po kompresji posortowana malejąco wg wsparcia; jeśli wartości wsparcia są równe, sortowanie ma miejsce wg wartości elementów (mniejsza liczba ścieżej w FP-drzewie)

Implementacja (3) 4. Klasa reprezentująca zbiór częsty (FrequentPattern): - wsparcie (przydatne przy obliczaniu wsparcia poprzednika reguły) - lista elementów

Pomiar czasu (mushroom)

Pomiar zajętości pamięci (mushroom)

Podsumowanie - wpływ na szybkość działania całego programu mają operacje wejścia – wyjścia, sama procedura szukania zbiorów częstych działa bardzo krótko - wraz ze wzrostem minimalnego wsparcia maleje czas działania, jak i zajętość pamięci (większy stopień kompresji transakcji, mniej zbiorów częstych) - zwiększenie ścieżki w FP-drzewie zwiększa liczbę generowanych zbiorów częstych - zwiększenie mocy zbioru częstego zwiększa liczbę generowanych reguł

Bibliografia 1. „FP-Growth approach for document clustering”, M. Akbar (praca magisterska) 2. „Algorytmy odkrywania binarnych reguł asocjacyjnych” (http://wazniak.mimuw.edu.pl, wykład 3. przedmiotu „Eksploracja danych”) 3. „FP-tree”, O. Kohonen (wykład)

Dziękujemy za uwagę