Algorytm DIC. Dynamic Itemset Counting. Magdalena Przygórzewska Karolina Stanisławska Aleksander Wieczorek

Podobne dokumenty
Data Mining Wykład 3. Algorytmy odkrywania binarnych reguł asocjacyjnych. Plan wykładu

Metody eksploracji danych. Reguły asocjacyjne

Algorytmy odkrywania binarnych reguł asocjacyjnych

1. Odkrywanie asocjacji

INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH

Inżynieria biomedyczna

Reguły asocjacyjne, wykł. 11

METODY INŻYNIERII WIEDZY KNOWLEDGE ENGINEERING AND DATA MINING. EKSPLORACJA DANYCH Ćwiczenia. Adrian Horzyk. Akademia Górniczo-Hutnicza

Algorytmy i struktury danych

Ćwiczenie 5. Metody eksploracji danych

Systemy Wspomagania Decyzji

Reguły asocjacyjne. Żródło: LaroseD.T., Discovering Knowledge in Data. An Introduction to Data Minig, John Wiley& Sons, Hoboken, New Jersey, 2005.

Sprawozdanie z laboratorium: Hurtownie Danych. Algorytm generowania reguł asocjacyjnych. FP-Growth. 9 czerwca 2011

Odkrywanie asocjacji

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Sortowanie bąbelkowe

Sortowanie. Bartman Jacek Algorytmy i struktury

Inżynieria Wiedzy i Systemy Ekspertowe. Reguły asocjacyjne

Reguły asocjacyjne w programie RapidMiner Michał Bereta

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Metody Kompilacji Wykład 3

Ewelina Dziura Krzysztof Maryański

Algorytmy Apriori i Partition C++, Linux

Algorytmy optymalizacji zapytań eksploracyjnych z wykorzystaniem materializowanej perspektywy eksploracyjnej

Abstrakcyjne struktury danych - stos, lista, drzewo

Odkrywanie asocjacji. Cel. Geneza problemu analiza koszyka zakupów

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Reguły asocjacyjne. 1. Uruchom system weka i wybierz aplikację Knowledge Flow.

A C T A UNIVERSITATIS LODZIENSIS FOLIA OECONOMICA 183,2004. Sebastian Szamański, Ryszard Budziński

Drzewa poszukiwań binarnych

Kontenery i iteratory. Wykorzystanie kontenerów w praktyce.

Teoretyczne podstawy informatyki

Krzysztof Kawa. empolis arvato. e mail: krzysztof.kawa@empolis.com

Reguły asocjacyjne, algorytm Apriori

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

Reguły asocjacyjne na giełdzie

Eksploracja danych - wykład VIII

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste

Zastosowanie metod eksploracji danych Data Mining w badaniach ekonomicznych SAS Enterprise Miner. rok akademicki 2014/2015

Analiza i eksploracja danych

Drzewa czerwono-czarne.

Języki formalne i automaty Ćwiczenia 8

Wprowadzenie Sformułowanie problemu Typy reguł asocjacyjnych Proces odkrywania reguł asocjacyjnych. Data Mining Wykład 2

Algorytm i złożoność obliczeniowa algorytmu

Algorytmy i struktury danych Sortowanie IS/IO, WIMiIP

REGU LY ASOCJACYJNE. Nguyen Hung Son. 25 lutego i 04 marca Wydzia l Matematyki, Informatyki i Mechaniki Uniwersytet Warszawski.

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Klasyfikacja obiektów Drzewa decyzyjne (drzewa klasyfikacyjne)

Odkrywanie wzorców sekwencji

Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)!

Drzewa BST i AVL. Drzewa poszukiwań binarnych (BST)

Wstęp do programowania

Odkrywanie wzorców sekwencyjnych z zachowaniem prywatności

Sprawozdanie do zadania numer 2

Struktury Danych i Złożoność Obliczeniowa

Wykład X. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2016 Janusz Słupik

wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)

Algorytmy i struktury danych

Algorytmy i Struktury Danych

Indukowane Reguły Decyzyjne I. Wykład 3

Ogólne wiadomości o grafach

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

REGU LY ASOCJACYJNE. Nguyen Hung Son. Wydzia l Matematyki, Informatyki i Mechaniki Uniwersytet Warszawski. 28.II i 6.III, 2008

Strategia "dziel i zwyciężaj"

Metody Kompilacji Wykład 1 Wstęp

Programowanie sieciowe. Tadeusz Trzaskalik

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Metoda Tablic Semantycznych

Sortowanie przez scalanie


Materializowane perspektywy eksploracyjne w praktyce: Wnioski z implementacji w Oracle 11g

ANALIZA ZACHOWAŃ UŻYTKOWNIKÓW PORTALU ONET.PL W UJĘCIU REGUŁ ASOCJACYJNYCH

Sztuczna Inteligencja Projekt

Odkrywanie asocjacji

Lista 0. Kamil Matuszewski 1 marca 2016

SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska

Java Collections Framework

Wstęp do programowania

Analiza asocjacji i reguły asocjacyjne w badaniu wyborów zajęć dydaktycznych dokonywanych przez studentów. Zastosowanie algorytmu Apriori

Zadania laboratoryjne i projektowe - wersja β

W. Guzicki Próbna matura, grudzień 2014 r. poziom rozszerzony 1

AiSD zadanie drugie. Gliwiński Jarosław Marek Kruczyński Konrad Marek Grupa dziekańska I5. 10 kwietnia 2008

Praktyka programowania projekt

Indeksy w bazach danych. Motywacje. Techniki indeksowania w eksploracji danych. Plan prezentacji. Dotychczasowe prace badawcze skupiały się na

Modelowanie wieloskalowe. Automaty Komórkowe - podstawy

Wielopoziomowe i wielowymiarowe reguły asocjacyjne

ZALICZENIE WYKŁADU: 30.I.2019

a) 7 b) 19 c) 21 d) 34

Tadeusz Pankowski

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste.

Algorytmy i Struktury Danych. Anna Paszyńska

Plan wykładu. Reguły asocjacyjne. Przykłady asocjacji. Reguły asocjacyjne. Jeli warunki to efekty. warunki efekty

Wyszukiwanie. Wyszukiwanie binarne

(3 kwiecień 2014) Marika Pankowska Kamila Pietrzak

Listy, kolejki, stosy

Transkrypt:

Algorytm DIC Dynamic Itemset Counting Magdalena Przygórzewska Karolina Stanisławska Aleksander Wieczorek

Spis treści 1 2 3 4

Algorytm DIC jako rozszerzenie apriori DIC Algorytm znajdowania reguł asocjacyjnych Dynamic Itemset Counting (DIC) stanowi modyfikację algorytmu apriori, polegającą na rozpoczynaniu zliczania zbiorów częstych (n + 1)-elementowych przed zakończeniem zliczania zbiorów n-elementowych DIC W ten sposób możliwe jest szybsze rozpoczęcie (a zarazem zakończenie) zliczania większych zbiorów częstych.

Algorytm DIC jako rozszerzenie apriori DIC Algorytm znajdowania reguł asocjacyjnych Dynamic Itemset Counting (DIC) stanowi modyfikację algorytmu apriori, polegającą na rozpoczynaniu zliczania zbiorów częstych (n + 1)-elementowych przed zakończeniem zliczania zbiorów n-elementowych DIC W ten sposób możliwe jest szybsze rozpoczęcie (a zarazem zakończenie) zliczania większych zbiorów częstych.

Fazy algorytmu Algorytm DIC, podobnie jak apriori, przebiega w dwóch fazach: Faza wyszukiwania zbiorów częstych Faza ta stanowi o różnicy w stosunku do apriori. W algorytmie DIC wprowadza się dodatkowy parametr M, oznaczający liczbę transakcji, po których rozpoczyna się zliczanie zbiorów częstych o większej mocy. Faza generowania reguł asocjacyjnych Faza ta jest identyczna z odpowiednią fazą algorytmu apriori. Dla każdego zbioru częstego L o mocy większej od 1 sprawdza się wszystkie jego podzbiory sl a następnie w oparciu o dane o wsparciu zbiorów L oraz sl oblicza się ufność reguły sl (L sl). Jeśli ufność ta przekracza zadany próg, regułę dopisuje się do znalezionych reguł.

Fazy algorytmu Algorytm DIC, podobnie jak apriori, przebiega w dwóch fazach: Faza wyszukiwania zbiorów częstych Faza ta stanowi o różnicy w stosunku do apriori. W algorytmie DIC wprowadza się dodatkowy parametr M, oznaczający liczbę transakcji, po których rozpoczyna się zliczanie zbiorów częstych o większej mocy. Faza generowania reguł asocjacyjnych Faza ta jest identyczna z odpowiednią fazą algorytmu apriori. Dla każdego zbioru częstego L o mocy większej od 1 sprawdza się wszystkie jego podzbiory sl a następnie w oparciu o dane o wsparciu zbiorów L oraz sl oblicza się ufność reguły sl (L sl). Jeśli ufność ta przekracza zadany próg, regułę dopisuje się do znalezionych reguł.

Faza wyszukiwania zbiorów częstych Identyfikatory zbiorów Każdy ze zliczanych zbiorów ma przyporządkowany identyfikator, w zależności od tego, czy jest zbiorem częstym (zielony) czy nie (czerwony) oraz czy jego zliczanie zostało już zakończone (podkreślony). Identyfikatory zbiorów W momencie rozpoczęcia zliczania danego zbioru, jest on zbiorem czerwonym (potencjalnym zbiorem nieczęstym). Po każdym M-transakcyjnym etapie może zmienić kolor na zielony, o ile jego wsparcie przekroczyło minimalny próg wsparcia. Po zliczeniu danego zbioru przez wszystkie transakcje, jego identyfikator jest podkreślany i jego zliczanie jest kończone.

Faza wyszukiwania zbiorów częstych Identyfikatory zbiorów Każdy ze zliczanych zbiorów ma przyporządkowany identyfikator, w zależności od tego, czy jest zbiorem częstym (zielony) czy nie (czerwony) oraz czy jego zliczanie zostało już zakończone (podkreślony). Identyfikatory zbiorów W momencie rozpoczęcia zliczania danego zbioru, jest on zbiorem czerwonym (potencjalnym zbiorem nieczęstym). Po każdym M-transakcyjnym etapie może zmienić kolor na zielony, o ile jego wsparcie przekroczyło minimalny próg wsparcia. Po zliczeniu danego zbioru przez wszystkie transakcje, jego identyfikator jest podkreślany i jego zliczanie jest kończone.

Zakończenie algorytmu Po każdym M-transakcyjnym etapie sprawdza się, czy któryś ze zbiorów zamienionych na zielone ma nadzbiór, którego wszystkie bezpośrednie podzbiory są zielone. W takim przypadku nadzbiór ten dodaje się do drzewa zbiorów, nadaje się mu identyfikator czerwony i rozpoczyna jego zliczanie. Algorytm kończy się, gdy wszystkie zbiory w drzewie mają identyfikatory podkreślone (tzn. zakończono ich zliczanie).

Pseudokod Fazę wyszukiwania zbiorów częstych w algorytmie DIC można więc streścić następujaco: 1 Zbiór pusty jest zielony. Zbiory jednoelementowe są czerwone. 2 Przeczytaj M transakcji i inkrementuj liczniki zbiorów oznaczonych jako czerwone. 3 Jeśli jakiś czerwony zbiór przekroczył próg minimalnego wsparcia, zmień jego kolor na zielony. 4 Sprawdź, czy któryś ze zbiorów zamienionych na zielone ma nadzbiór, którego wszystkie bezpośrednie podzbiory są zielone. Jesli tak, dodaj go do drzewa zbiorów nadając mu identyfikator czerwony. 5 Jeśli jakiś zbiór został policzony przez wszystkie transakcje, podkreśl go. 6 Jeśli zostały zbiory niepodkreśline, przejdź do punktu 2.

Pseudokod Fazę wyszukiwania zbiorów częstych w algorytmie DIC można więc streścić następujaco: 1 Zbiór pusty jest zielony. Zbiory jednoelementowe są czerwone. 2 Przeczytaj M transakcji i inkrementuj liczniki zbiorów oznaczonych jako czerwone. 3 Jeśli jakiś czerwony zbiór przekroczył próg minimalnego wsparcia, zmień jego kolor na zielony. 4 Sprawdź, czy któryś ze zbiorów zamienionych na zielone ma nadzbiór, którego wszystkie bezpośrednie podzbiory są zielone. Jesli tak, dodaj go do drzewa zbiorów nadając mu identyfikator czerwony. 5 Jeśli jakiś zbiór został policzony przez wszystkie transakcje, podkreśl go. 6 Jeśli zostały zbiory niepodkreśline, przejdź do punktu 2.

Pseudokod Fazę wyszukiwania zbiorów częstych w algorytmie DIC można więc streścić następujaco: 1 Zbiór pusty jest zielony. Zbiory jednoelementowe są czerwone. 2 Przeczytaj M transakcji i inkrementuj liczniki zbiorów oznaczonych jako czerwone. 3 Jeśli jakiś czerwony zbiór przekroczył próg minimalnego wsparcia, zmień jego kolor na zielony. 4 Sprawdź, czy któryś ze zbiorów zamienionych na zielone ma nadzbiór, którego wszystkie bezpośrednie podzbiory są zielone. Jesli tak, dodaj go do drzewa zbiorów nadając mu identyfikator czerwony. 5 Jeśli jakiś zbiór został policzony przez wszystkie transakcje, podkreśl go. 6 Jeśli zostały zbiory niepodkreśline, przejdź do punktu 2.

Pseudokod Fazę wyszukiwania zbiorów częstych w algorytmie DIC można więc streścić następujaco: 1 Zbiór pusty jest zielony. Zbiory jednoelementowe są czerwone. 2 Przeczytaj M transakcji i inkrementuj liczniki zbiorów oznaczonych jako czerwone. 3 Jeśli jakiś czerwony zbiór przekroczył próg minimalnego wsparcia, zmień jego kolor na zielony. 4 Sprawdź, czy któryś ze zbiorów zamienionych na zielone ma nadzbiór, którego wszystkie bezpośrednie podzbiory są zielone. Jesli tak, dodaj go do drzewa zbiorów nadając mu identyfikator czerwony. 5 Jeśli jakiś zbiór został policzony przez wszystkie transakcje, podkreśl go. 6 Jeśli zostały zbiory niepodkreśline, przejdź do punktu 2.

Pseudokod Fazę wyszukiwania zbiorów częstych w algorytmie DIC można więc streścić następujaco: 1 Zbiór pusty jest zielony. Zbiory jednoelementowe są czerwone. 2 Przeczytaj M transakcji i inkrementuj liczniki zbiorów oznaczonych jako czerwone. 3 Jeśli jakiś czerwony zbiór przekroczył próg minimalnego wsparcia, zmień jego kolor na zielony. 4 Sprawdź, czy któryś ze zbiorów zamienionych na zielone ma nadzbiór, którego wszystkie bezpośrednie podzbiory są zielone. Jesli tak, dodaj go do drzewa zbiorów nadając mu identyfikator czerwony. 5 Jeśli jakiś zbiór został policzony przez wszystkie transakcje, podkreśl go. 6 Jeśli zostały zbiory niepodkreśline, przejdź do punktu 2.

Pseudokod Fazę wyszukiwania zbiorów częstych w algorytmie DIC można więc streścić następujaco: 1 Zbiór pusty jest zielony. Zbiory jednoelementowe są czerwone. 2 Przeczytaj M transakcji i inkrementuj liczniki zbiorów oznaczonych jako czerwone. 3 Jeśli jakiś czerwony zbiór przekroczył próg minimalnego wsparcia, zmień jego kolor na zielony. 4 Sprawdź, czy któryś ze zbiorów zamienionych na zielone ma nadzbiór, którego wszystkie bezpośrednie podzbiory są zielone. Jesli tak, dodaj go do drzewa zbiorów nadając mu identyfikator czerwony. 5 Jeśli jakiś zbiór został policzony przez wszystkie transakcje, podkreśl go. 6 Jeśli zostały zbiory niepodkreśline, przejdź do punktu 2.

Drzewo Trie Zgodnie z sugestią autorów artykułu, do reprezentacji kraty podzbiorów zbioru wszystkich elementów zastosowano drzewo trie. Drzewo Trie Każdy zbiór jest w nim reprezentowany przez wierzchołek drzewa Drzewo Trie Każdy zbiór (posortowany według elementów) jest w nim reprezentowany przez wierzchołek drzewa Wierzchołek drzewa reprezentuje zbiór złożony z elementów znajdujących się na ścieżce prowadzącej od korzenia do tego wierzchołka.

Drzewo Trie Zgodnie z sugestią autorów artykułu, do reprezentacji kraty podzbiorów zbioru wszystkich elementów zastosowano drzewo trie. Drzewo Trie Każdy zbiór jest w nim reprezentowany przez wierzchołek drzewa Drzewo Trie Każdy zbiór (posortowany według elementów) jest w nim reprezentowany przez wierzchołek drzewa Wierzchołek drzewa reprezentuje zbiór złożony z elementów znajdujących się na ścieżce prowadzącej od korzenia do tego wierzchołka.

Do implementacji wykorzystano język C++ (kompilacja za pomocą g++ 3.4.5) oraz bibliotekę standardową STL. Do zaimplementowania drzewa Trie zastosowano bibliotekę STL, oraz strukturę std::set (zbiór), ze względu na możliwość łatwej iteracji po elementach zbioru (reprezentujących dzieci) oraz logarytmiczny czas dostępu do elementu o żądanym kluczu.

Dynamic Itemset Counting and Implication Rules for Market Basket Data, S, Brin, R. Motwani, J. D. Ullman, S. Tsur