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

Podobne dokumenty
Algorytmy odkrywania binarnych reguł asocjacyjnych

Metody eksploracji danych. Reguły asocjacyjne

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

INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH

Analiza i eksploracja danych

Odkrywanie wzorców sekwencji

Odkrywanie asocjacji

1. Odkrywanie asocjacji

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

Ewelina Dziura Krzysztof Maryański

Systemy Wspomagania Decyzji

Algorytmy optymalizacji zapytań eksploracyjnych z wykorzystaniem materializowanej perspektywy eksploracyjnej

Inżynieria biomedyczna

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

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

Odkrywanie reguł asocjacyjnych

Wyszukiwanie reguł asocjacji i ich zastosowanie w internecie

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

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

Wielopoziomowe i wielowymiarowe reguły asocjacyjne

Reguły asocjacyjne, wykł. 11

Odkrywanie wzorców sekwencji

Odkrywanie reguł asocjacyjnych. Rapid Miner

Odkrywanie asocjacji

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

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

Odkrywanie wzorców sekwencyjnych z zachowaniem prywatności

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

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

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

Integracja technik eksploracji danych ]V\VWHPHP]DU]G]DQLDED]GDQ\FK QDSU]\NáDG]LH2UDFOHi Data Mining

15. Funkcje i procedury składowane PL/SQL

Reguły asocjacyjne w programie RapidMiner Michał Bereta

Sortowanie topologiczne skierowanych grafów acyklicznych

Reguły asocjacyjne na giełdzie

B jest globalnym pokryciem zbioru {d} wtedy i tylko wtedy, gdy {d} zależy od B i nie istnieje B T takie, że {d} zależy od B ;

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Rozdział 17. Zarządzanie współbieżnością zadania dodatkowe

Procedury i funkcje składowane

Język PL/SQL Procedury i funkcje składowane

Ćwiczenie 5. Metody eksploracji danych

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

Sztuczna Inteligencja Projekt

Eksploracja danych - wykład VIII

Technologie baz danych

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

BAZA DANYCH SIECI HOTELI

Reguły asocjacyjne, algorytm Apriori

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Kowalski Marcin Wrocław, dn Jaśkiewicz Kamil Bazy Danych 1 Podstawy Projekt Temat: Baza danych do zarządzania projektami

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

Matematyka dyskretna. Andrzej Łachwa, UJ, /10

Ćwiczenia z Zaawansowanych Systemów Baz Danych

Laboratorium 3. Odkrywanie reguł asocjacyjnych.

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Podstawowe algorytmy i ich implementacje w C. Wykład 9

EGZAMIN MATURALNY Z INFORMATYKI WYBRANE: ... (system operacyjny) ... (program użytkowy) ... (środowisko programistyczne)

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

Wykład 2. Poprawność algorytmów

Algorytmy i Struktury Danych, 2. ćwiczenia

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

KOMBINATORYKA OBIEKTY KOMBINATORYCZNE MATEMATYKA DYSKRETNA (2014/2015)

SQL 4 Structured Query Lenguage

Sortowanie przez scalanie

Laboratorium grafiki i multimediów

Analiza algorytmów zadania podstawowe

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Wstęp do programowania

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Algorytmy Apriori i Partition C++, Linux

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Wyzwalacze. do automatycznego generowania wartości kluczy głównych. Składnia instrukcji tworzacej wyzwalacz

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Algorytmy i struktury danych Sortowanie IS/IO, WIMiIP

Temat: Algorytm kompresji plików metodą Huffmana

Bloki anonimowe w PL/SQL

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie. dr inż. Adam Piórkowski. Jakub Osiadacz Marcin Wróbel

Wielowersyjne metody synchronizacji transakcji

Algorytmy i złożoność obliczeniowa. Wojciech Horzelski

Metody Rozmyte i Algorytmy Ewolucyjne

SQL :: Data Definition Language

Wprowadzenie do złożoności obliczeniowej

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Nowe technologie baz danych

Wyszukiwanie. Wyszukiwanie binarne

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

Cel normalizacji. Tadeusz Pankowski

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.

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Rozdział 7 Relacje równoważności

Lista 0. Kamil Matuszewski 1 marca 2016

Algorytmy i Struktury Danych

Wnioskowanie z wiedzy niepełnej

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Wybrane algorytmy tablicowe

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Model relacyjny. Wykład II

Transkrypt:

Data Mining Wykład 3 Algorytmy odkrywania binarnych reguł asocjacyjnych Plan wykładu Algorytm Apriori Funkcja apriori_gen(ck) Generacja zbiorów kandydujących Generacja reguł Efektywności działania Własności algorytmu Przykład Założenia: Założenia Algorytmu Apriori Zakładamy, że wszystkie transakcje są wewnętrznie uporządkowane (np. leksykograficznie)) L k oznacza kolekcje zbiorów częstych o rozmiarze k, nazywanych częstymi zbiorami k-elementowymi C k oznacza kolekcje zbiorów kandydujących o rozmiarze k, nazywanych kandydującymi zbiorami k-elementowymi 1

Algorytm Apriori 1. Wyodrębnij z D wszystkie zbiory jednoelementowe, które występują w transakcjach, i sprawdź, które posiadają wsparcie co najmniej minsup. 2. W oparciu o zbiory częste 1-elementowe, 2-elementowe, algorytm generuje zbiory kandydujące 2-elementowe, 3-elementowe. i oblicza ich wsparcie w bazie danych D. Jeżeli wsparcie wynosi co najmniej minsup, dołącz do listy zbiorów częstych. 3. Działanie algorytmu się kończy, gdy nie można już wygenerować kolejnych zbiorów kandydujących. Wynikiem działania algorytmu jest suma k-elementowych zbiorów częstych (k=1, 2,...). Algorytm Apriori pseudokod L1 = {zbiory czeste 1-elementowe}; for (k=2;lk-1 Ø;k++) do begin Ck = apriori_gen(lk-1); For each transakcji t T do begin Ct = subset(ck,t); For each zbioru kandydujacego c Ct do c.count++; end; Lk = {c Ck c.count minsup} end; Wynik = Lk; Funkcja apriori_gen(ck) Funkcja apriori_gen() jest realizowana w dwóch krokach: 1. Generacji zbiorów kandydujących Ck poprzez łączenie zbiorów częstych (k-1)-elementowych (Lk-1) 2. Usuwania zbiorów kandydujących ze zbioru Ck, których jakikolwiek podzbiór nie jest zbiorem częstym 2

Funkcja apriori_gen(ck) - pseudokod function apriori_gen(ck) insert into Ck select p.item1, p.item2,..., p.itemk-1, q.itemk-1 from Lk-1 p, Lk-1 q where p.item1=q.item1,..., p.itemk-2=q.itemk-2, p.itemk-1<q.itemk-1; end; forall itemsets c Ck do forall (k-1)-subsets s of c do if ( s Lk-1 ) then delete c from Ck; Generacja zbiorów kandydujących Dana kolekcja zbiorów częstych k-elementowych - L k. Generacja kolekcji C k+1 przebiega w dwóch krokach: Krok 1 - Połączenie: połącz zbiór L k1 ze zbiorem L k2, z następującym warunkiem połączeniowym - pierwszych k-1 elementów musi być identycznych oraz L k1 [k] < L k2 [k] (L ki [k] oznacza k-ty element zbioru L ki ) Krok 2 - Odcięcie: usuń wszystkie zbiory kandydujące, które posiadają nieczęste podzbiory Generacja zbiorów kandydujących - przykład Dana kolekcja L 2 łączenie L2 1 3 2 2 3 3 2 5 3 3 5 1 3 7 3 C3 po kroku łączenia 2 3 5 3 5 7 odcięcie C3 po kroku łączenia 2 3 5 3

Przykład 1 (1) TR ID Produkty 100 1,3,4 200 2,3,5 300 1,2,3,5 400 2,5 Załóżmy minsup = 50% (2 transakcje) W podanych poniżej tabelach wsparcie zbioru jest liczone, dla uproszczenia, w transakcjach Krok 1: C1 L1 1 2 1 2 2 3 2 3 3 3 3 3 4 1 5 3 5 3 Przykład 1 (2) Krok 2: C2 L2 1 2 1 1 3 2 1 5 1 2 3 2 2 5 3 3 5 2 1 3 2 2 3 2 2 5 3 3 5 2 Krok 3: By stworzyć C3 bierzemy tylko zbiory które maja taki sam pierwszy element (patrz alg: where p.item1=q.item1,..., p.itemk-2=q.itemk-2, p.itemk-1<q.itemk-1;) C3 L3 2 3 5 2 2 3 5 2 Krok 4: C4 = Ø L4 = Ø Generacja reguł L3 2 3 5 2 2 3 -> 5 wsparcie = 2 ufność = 100% 2 5 -> 3 wsparcie = 2 ufność = 66% 3 5 -> 2 wsparcie = 2 ufność = 100% 2 -> 3 5 wsparcie = 2 ufność = 66% 3 -> 2 5 wsparcie = 2 ufność = 66% 5 -> 2 3 wsparcie = 2 ufność = 66% 4

Efektywności działania Podstawowe znaczenie dla efektywności działania algorytmu Apriori ma rozwiązanie dwóch problemów szczegółowych: jak zapewnić efektywność procedury generowania zbiorów kandydujących, jak zapewnić efektywność procedury obliczania wsparcia dla tych zbiorów. Pierwszy z wymienionych problemów dotyczy efektywności funkcji apriori_gen(). Efektywności generowania zbiorów kandydujących Złożoność pierwszego kroku funkcji apriori_gen(), dla i-tej iteracji, w najgorszym przypadku, jest rzędu O( Li 2 ). Wynika ona z konieczności znalezienia wszystkich par zbiorów (ci, cj) należących do Lk-1, takich, ż ich suma daje zbiór o rozmiarze i. Krok drugi funkcji apriori_gen() wymaga sprawdzenia Li zbiorów. Stad, złożoność obliczeniowa funkcji apriori_gen() jest rzędu O(Si Li 3 ) Wynika ona z konieczności sprawdzenia, czy utworzony zbiór jest rzeczywiście zbiorem kandydującym, to znaczy, wymaga sprawdzenia, czy każdy podzbiór tego zbioru jest zbiorem częstym. W praktyce, niewiele zbiorów częstych posiada k-1 wspólnych elementów, wiec rzadko mamy najgorszy przypadek. Złożoność obliczeniowa funkcji apriori_gen jest niezależna od liczby transakcji n. Wynika to z faktu, że generowanie zbiorów kandydujących nie wymaga dostępu do bazy danych, lecz wykorzystuje do tego celu odkryte wcześniej zbiory czeste. Efektywność procedury obliczania wsparcia Drugi ze wspomnianych problemów dotyczy efektywności procedury obliczania wsparcia dla wygenerowanych przez funkcje apriori_gen zbiorów kandydujących. Załóżmy, że dany jest zbiór zbiorów kandydujących Ci, o rozmiarze i. Obliczenie wsparcia zbiorów kandydujących ze zbioru Ci wymaga tylko jednokrotnego odczytu bazy danych D tworząc dla każdego zbioru c licznik, c.count, który będzie zliczał liczbę transakcji wspierających zbiór c. Złożoność obliczeniowa przedstawionej procedury obliczania wsparcia dla zbioru Ci jest rzędu: O( Ci nq), gdzie n oznacza liczba transakcji w bazie danych D, natomiast q oznacza maksymalny rozmiar transakcji należącej do D. Algorytm Apriori wymaga k lub k+1 odczytów bazy danych D, gdzie k oznacza maksymalny rozmiar zbioru częstego. 5

Własności algorytmu Własność monotoniczności: wszystkie podzbiory zbioru częstego musza być czeste, innymi słowy, jeżeli B jest zbiorem częstym i A B, to A jest równie zbiorem częstym Wniosek: jeżeli zbiór B nie jest zbiorem częstym, to żaden nadzbiór A zbioru B, B A, nie będzie zbiorem częstym Idea algorytmu Krok połączenia jest równoważny dodaniu do każdego zbioru częstego należącego do Lk, kolejno, każdego elementu z bazy danych, a następnie, usunięciu tych zbiorów kandydujących Ck+1, dla których podzbiór (C[2], C[3],...,C[k+1]) nie jest częsty. Przykład 2 (1) Dana jest baza danych postaci: TR ID Produkt 1 chleb, mleko 2 cukier, mleko, piwo 3 chleb 4 chleb, mleko, piwo 5 Chleb, mleko, piwo Załóżmy następujące wartości minsup i minconf: minsup = 30% minconf = 70% 6

Przykład 2 (2) C1 Zb.kandydujacy id (%) L1 Zb.częsty id (%) chleb 1 60 chleb 1 60 mleko 2 80 mleko 2 80 piwo 3 60 piwo 3 60 cukier 4 40 cukier 4 40 C2 Zb.kandydujacy (%) 1 2 40 1 3 20 1 4 0 2 3 60 2 4 40 3 4 40 L2 Zb.częsty (%) 1 2 40 2 3 60 2 4 40 3 4 40 Przykład 2 (3) C3 Zb.kandydujacy (%) L3 Zb.częsty (%) 2 3 4 40 1 2 40 C4 = Ø L4 = Ø To jest koniec pierwszego etapu generowania zbiorów częstych Przykład 2 generacja reguł (1) Zb.cz sup reguła conf 1 0.40 piwo cukier 0.67 1 0.40 cukier piwo 1.00 2 0.60 piwo mleko 1.00 2 0.60 mleko piwo 0.75 3 0.40 cukier mleko 1.00 3 0.40 mleko cukier 0.50 4 0.40 mleko chleb 0.50 4 0.40 chleb mleko 0.67 5 0.40 piwo cukier mleko 1.00 5 0.40 piwo mleko cukier 0.67 5 0.40 cukier mleko piwo 1.00 5 0.40 piwo cukier mleko 0.67 5 0.40 cukier piwo mleko 1.00 5 0.40 mleko piwo cukier 0.50 7

Przykład 2 generacja reguł (2) Tylko kilka ze znalezionych reguł spełnia warunek minimalnej ufności. Stad, ostateczny wynik działania algorytmu Apriori jest następujący: Zb.cz. sup reguła conf 1 0.40 cukier piwo 1.00 2 0.60 piwo mleko 1.00 2 0.60 mleko piwo 0.75 3 0.40 cukier mleko 1.00 5 0.40 piwo cukier mleko 1.00 5 0.40 cukier mleko piwo 1.00 5 0.40 cukier piwo mleko 1.00 Podsumowanie Algorytm Apriori Funkcja apriori_gen(ck) Generacja zbiorów kandydujących Generacja reguł Efektywności działania Własności algorytmu Przykład 8