Odkrywanie reguł asocjacyjnych

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

Metody eksploracji danych. Reguły asocjacyjne

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

Algorytmy odkrywania binarnych reguł asocjacyjnych

Odkrywanie asocjacji

Systemy Wspomagania Decyzji

INDUKOWANE REGUŁY DECYZYJNE ALORYTM APRIORI JAROSŁAW FIBICH

Inżynieria biomedyczna

Ewelina Dziura Krzysztof Maryański

1. Odkrywanie asocjacji

Analiza i eksploracja danych

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

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

Reguły asocjacyjne, wykł. 11

Reguły asocjacyjne w programie RapidMiner Michał Bereta

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:

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

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

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

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

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2

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

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Odkrywanie asocjacji

Algorytmy optymalizacji zapytań eksploracyjnych z wykorzystaniem materializowanej perspektywy eksploracyjnej

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

Technologia informacyjna

Sztuczna Inteligencja i Systemy Doradcze

Algorytmy i struktury danych Matematyka III sem.

Odkrywanie wzorców sekwencji

PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ. Opis działania raportów w ClearQuest

Wprowadzenie do Sztucznej Inteligencji

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

WYKŁAD 6. Reguły decyzyjne

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

Wprowadzenie do Sztucznej Inteligencji

Teoria automatów i języków formalnych. Określenie relacji

Odkrywanie reguł asocjacyjnych. Rapid Miner

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

Algorytmy i struktury danych

Algorytmy sortujące i wyszukujące

PLAN ZARZĄDZANIA WYMAGANIAMI PROJEKT <NAZWA PROJEKTU> WERSJA <NUMER WERSJI DOKUMENTU>

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

Wielopoziomowe i wielowymiarowe reguły asocjacyjne

Reguły asocjacyjne na giełdzie

Krzysztof Jakubczyk. Zadanie 2

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

15. Funkcje i procedury składowane PL/SQL

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.

Algorytmy i struktury danych

Programowanie w VB Proste algorytmy sortowania

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

Rekurencja. Przykład. Rozważmy ciąg

Eksploracja danych - wykład VIII

KaŜdemu atrybutowi A przyporządkowana jest dziedzina Dom(A), czyli zbiór dopuszczalnych wartości.

jest rozwiązaniem równania jednorodnego oraz dla pewnego to jest toŝsamościowo równe zeru.

Wyszukiwanie. Wyszukiwanie binarne

RÓWNANIA NIELINIOWE Maciej Patan

Tabela wewnętrzna - definicja

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.

Sztuczna Inteligencja Projekt

Gramatyki atrybutywne

BAZY DANYCH. Transakcje. opracowanie: Michał Lech

Ćwiczenie 5. Metody eksploracji danych

Programowanie deklaratywne

funkcje rekurencyjne Wykład 12. Podstawy programowania (język C) Funkcje rekurencyjne (1) Funkcje rekurencyjne (2)

Gramatyki grafowe. Dla v V, ϕ(v) etykieta v. Klasa grafów nad Σ - G Σ.

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


PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Sortowanie przez scalanie

Zależności funkcyjne

Algorytmy i struktury danych

XII. Warunek wielokrotnego wyboru switch... case

Interpretacja krzywych sondowania elektrooporowego; zagadnienie niejednoznaczności interpretacji (program IX1D Interpex) Etapy wykonania:

Algorytmy i Struktury Danych

Instrukcja warunkowa i złoŝona.

Wykrywanie wzorców częstych w grafach

INSTRUKCJA INWENTARYZACJI

Wykład XII. optymalizacja w relacyjnych bazach danych

Efektywna metoda sortowania sortowanie przez scalanie

Plan. Zarządzanie zespołem rozproszonym. 1. O co chodzi w Agile (bez Manifestu!) 2. Rozpoczynanie projektu. 3. Utrzymywanie komunikacji

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

Laboratorium nr 8. Temat: Podstawy języka zapytań SQL (część 2)

Instrukcja zmian w wersji Vincent Office

Data Mining Wykład 5. Indukcja drzew decyzyjnych - Indeks Gini & Zysk informacyjny. Indeks Gini. Indeks Gini - Przykład

Wstęp do programowania

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

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

Charakterystyka oprogramowania obiektowego

Porządek symetryczny: right(x)

INFORMATYKA SORTOWANIE DANYCH.

Wstęp do programowania. Drzewa podstawowe techniki. Piotr Chrząstowski-Wachtel

Teoretyczne podstawy informatyki

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

Przykładowe B+ drzewo

Procedury i funkcje składowane

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Spis treści. spis treści wygenerowany automatycznie

Algorytmy przeszukiwania

Transkrypt:

Odkrywanie reguł asocjacyjnych Tomasz Kubik Na podstawie dokumentu: CS583-association-rules.ppt 1

Odkrywanie reguł asocjacyjnych n Autor metody Agrawal et al in 1993. n Analiza asocjacji danych w bazach danych n Dane typu kategorycznego (dane składają się z małej liczby wartości, z których kaŝda jest konkretną wartością kategorii lub etykietą) n Algorytm nie pracuje dla danych numerycznych n Początkowo uŝyty do analizy koszyka zakupów tj. do znalezienia powiązań pomiędzy kupowanymi artykułami Bread Milk [sup = 5%, conf = 100%] 2

Model formalny n I = {i 1, i 2,, i m }: zbiór elementów n t : pojedyncza transakcja, t jest zbiorem elementów, t I. n T = {t 1, t 2,, t n }: zbiór transakcji, 3

Przykład: koszyk zakupów n Transakcje (koszyk zakupów) : t1: {bread, cheese, milk} t2: {apple, eggs, salt, yogurt} tn: {biscuit, eggs, milk} n Znaczenie: gi k : produkt typu k występujący w koszyku gi: zbiór wszystkich sprzedawanych produktów gtransakcja: produkty w koszyku (rozumiane jako transakcja, która moŝe mieć własny numer ID) gzbiór transakcji: wszystkie zaobserwowane konfiguracje produktów w koszyku 4

Przykład: zbiór dokumentów n KaŜdy dokument rozumiany jest jako zbiór słów doc1: doc2: doc3: doc4: doc5: doc6: doc7: Student, Teach, School Student, School Teach, School, City, Game Baseball, Basketball Basketball, Player, Spectator Baseball, Coach, Game, Team Basketball, Team, City, Game 5

Model formalny: reguły n X jest zbiorem elementów z I g np. X = {milk, bread, cereal} n Transakcja t zawiera X jeśli X t. n Regułą asocjacyjną jest implikacja w postaci: X Y, gdzie X, Y I, oraz X Y = n Z k jest zbiorem elementów z I o liczności k. g np.., {milk, bread, cereal} jest zbiorem Z 3 6

Miary waŝności reguł n Wsparcie: reguła posiada wsparcie (support) sup w T (zbiorze transakcji) jeśli sup% transakcji zawiera X Y. gsup = P(X Y). n Zaufanie: reguła zachodzi w T z zaufaniem (confidence) conf jeśli conf% transakcji zawierających X zawiera równieŝ Y. gconf = P(Y X) n Reguła asocjacyjna jest schematem, który określa, Ŝe kiedy wystąpi X occurs, to Y wystąpi z pewnym prawdopodobieństwem. 7

Wsparcie i zaufanie n Wartość wsparcia X.count: jest to liczba transakcji w zbiorze transakcji T, które zawierają zbiór elementów X. Zakładając, Ŝe liczba transakcji w T wynosi n, to: support = confidence ( X Y ). count n ( X Y ). count = X. count 8

Cel i kluczowe załoŝenia n Cel: Znaleźć wszystkie reguły, które spełniają załoŝony przez uŝytkownika poziom minimalnego wsparcie (minsup) oraz minimalnego zaufania (minconf). n Kluczowe załoŝenia: g Zupełność: znaleźć naleŝy wszystkie reguły. g Niezdefiniowane elementy wynikowe: elementy po prawych stronach reguł są początkowo nieznane g Wykorzystanie pamięci zewnętrznej 9

Przykład: n Transakcje i dane n ZałoŜenie: minsup = 30% minconf = 80% n Przykład częstego zbioru elementów: {Chicken, Clothes, Milk} [sup = 3/7] n Reguły asocjacyjne ze zbioru elementów: Clothes Milk, Chicken [sup = 3/7, conf = 3/3] t1: Beef, Chicken, Milk t2: Beef, Cheese t3: Cheese, Boots t4: Beef, Chicken, Cheese Clothes, Chicken Milk, [sup = 3/7, conf = 3/3] t5: Beef, Chicken, Clothes, Cheese, Milk t6: Chicken, Clothes, Milk t7: Chicken, Milk, Clothes 10

Reprezentacja danych w transakcjach n Uproszczone spojrzenie na koszyk zakupów n Pominięte niektóre waŝne informacje, np..: gilość produktów zakupionych gcena 11

Algorytmy odkrywania reguł n Istnieje ich bardzo wiele n UŜywają róŝnych strategii i struktur danych n Wynikowy zbiór reguł jest taki sam gdla danego zbiory transakcji T, oraz zdefiniowanego minimalnego wsparcia i minimalnego zaufania, zbiór reguł asocjacyjnych występujących w T jest jednoznacznie określony. n Algorytmy, mimo iŝ produkują te same wyniki, mają róŝną złoŝoność obliczeniową i róŝne wymagania co do zasobów obliczeniowych. 12

Algorytm Apriori n Jest to jeden z najlepszych znanych algorytmów n Składa się on z dwóch kroków g Znalezienia (odkrycia) wszystkich zbiorów elementów, które mają zadeklarowany poziom wsparcia (zbiory częste). g UŜycia zbiorów częstych do wygenerowania reguł. n Przykład zbioru częstego: {Chicken, Clothes, Milk} [sup = 3/7] oraz przykład reguły na nim opartej: Chicken [sup = 3/7, conf = 3/3] Clothes Milk, 13

Krok 1: Odkrycie zbiorów częstych n Zbiór częsty jest zbiorem elementów, którego wsparcie jest minsup. n Własność apriori: dowolny podzbiór zbioru częstego jest równieŝ zbiorem częstym ABC ABD ACD BCD AB AC AD BC BD CD A B C D 14

Krok 1: implementacja Jest to algorytm iteracyjny, w którym dokonuje się przeszukiwania wszerz, levelwise search. Jego idea jest następująca: Znajdź wszystkie zbiory częste typu Z 1, następnie wszystkie zbiory częste Z 2, i tak dalej. W kaŝdej iteracji k, rozwaŝaj tylko te zbiory elementów, które zawierają zbiory częste Z k-1. n Utwórz kolekcję zbiorów częstych typu Z 1 : F 1 n Startując z k = 2 g Utwórz C k - zbiory elementów typu Z k, utworzone na podstawie zbiorów z F k-1, które są kandydatami na zbiory częste g Na bazie C k utwórz F k kolekcję zbiorów częstych, które faktycznie są częste, tj. F k C k (odrzuć te, które nie są częste). 15

Przykład Dataset T minsup=0.5 zbiór:liczność 1. przeglądaj T C 1 : {1}:2, {2}:3, {3}:3, {4}:1, {5}:3 F 1 : {1}:2, {2}:3, {3}:3, {5}:3 C 2 : {1,2}, {1,3}, {1,5}, {2,3}, {2,5}, {3,5} TID T100 T200 T300 T400 Items 1, 3, 4 2, 3, 5 1, 2, 3, 5 2, 5 2. przeglądaj T C 2 : {1,2}:1, {1,3}:2, {1,5}:1, {2,3}:2, {2,5}:3, {3,5}:2 F 2 : {1,3}:2, {2,3}:2, {2,5}:3, {3,5}:2 C 3 : {2, 3,5} 3. przeglądaj T C 3 : {2, 3, 5}:2 F 3: {2, 3, 5} 16

Szczegóły: porządkowanie elementów n Elementy w I posortowane są w porządku leksykalnym (jest to porządek całkowity) n W kolejnych krokach algorytmu obowiązuje ten sam porządek sortowania n {w[1], w[2],, w[k]} przedstawia zbiór w typu Z 1 składający się z elementów w[1], w[2],, w[k], gdzie w[1] < w[2] < < w[k] zgodnie z porządkiem całkowitym. 17

Szczegóły implementacji algorytmu Algorithm Apriori(T) C 1 zainicjuj(t); F 1 {f f C 1, f.count/n minsup}; // n: liczba transakcji w T for (k = 2; F k-1 ; k++) do C k generuj_kandydatów(f k-1 ); for each t Tdo for each c C k do if c zawiera się w t then c.count++; end end F k {c C k c.count/n minsup} end return F U k F k ; 18

Generacja kandydatów apriori n funkcja generuj_kandydatów bierze F k-1 i zwraca nadzbiór (zwany kandydatami) zbioru wszystkich częstych zbiorów k-elementowych. Składa się ona z dwóch kroków: g krok złączenia: generuje wszystkich moŝliwych kandydatów o długości k i wpisuje ich do C k g krok eliminacji: usuwa tych kandydatów z C k, którzy nie są zbiorami częstymi. 19

Funkcja generująca kandydatów Function generacja_kandydatów(f k-1 ) C k ; forall f 1, f 2 F k-1 with f 1 = {i 1,, i k-2, i k-1 } and f 2 = {i 1,, i k-2, i k-1 } and i k-1 < i k-1 do c {i 1,, i k-1, i k-1 }; //połącz f 1 i f 2 C k C k {c}; for each (k-1)-subset s of c do if (s F k-1 ) then end end return C k ; delete c from C k ; // usuń 20

Przykład n F 3 = {{1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {1, 3, 5}, {2, 3, 4}} n Po połączeniu g C 4 = {{1, 2, 3, 4}, {1, 3, 4, 5}} n Po eliminacji: g C 4 = {{1, 2, 3, 4}} poniewaŝ {1, 4, 5} nie jest w F 3 (tzn. {1, 3, 4, 5} jest usunięte) 21

Krok 2: Generowanie reguł ze zbiorów częstych n Zbiory częste reguły asocjacyjne Potrzeba więc dokonać kolejnych obliczeń: n Dla kaŝdego zbioru częstego X, dla kaŝdego właściwego niepustego A będącego podzbiorem zbioru X, gniech B = X - A ga B jest regułą asocjacyjną, jeśli zaufanie (A B) minconf, wsparcie(a B) = wsparcie(a B) = wsparcie(x) zaufanie(a B) = wsparcie(a B) / wsparcie(a) 22

Przykład generowania reguł n Przypuśćmy, Ŝe {2,3,4} jest częsty, z sup=50% g Właściwe niepuste podzbiory: {2,3}, {2,4}, {3,4}, {2}, {3}, {4}, z sup=50%, 50%, 75%, 75%, 75%, 75% odpowiednio g Podzbiory te generują reguły asocjacyjne: 2,3 4, zaufanie =100% 2,4 3, zaufanie =100% 3,4 2, zaufanie =67% 2 3,4, zaufanie =67% 3 2,4, zaufanie =67% 4 2,3, zaufanie =67% wszystkie reguły mają wsparcie = 50% 23

Tworzenie reguł: podsumowanie n Aby otrzymać regułę A B, powinno być wsparcie(a B) oraz wsparcie(a) n Wszystkie wymagane informacje dla obliczenia zaufania były juŝ zapisane podczas generacji zbiorów elementów. Nie ma więc konieczności przeglądania zbioru transakcji T. n Obliczenia w tym kroku zajmują mniej czasu niŝ generowanie zbiorów częstych. 24

Uwagi o algorytmie apriori n przeszukiwanie wszerz n K = rozmiar największego zbioru elementów n wykonuje co najwyŝej K przejść przez dane n w praktyce K jest ograniczone (np. do10). n Algorytm jest szybki, w niektórych warunkach znalezienie reguł jest liniowe w czasie. n MoŜna przeskalować do duŝych zbiorów danych 25

Uwagi dodatkowe na temat odkrywania reguł asocjacyjnych n Ilość moŝliwych reguł dla I o m elementach wyraŝa się liczbą wykładnicza, O(2 m ). n Wykorzystując wysoki minimalny poziom wsparcia i wysoki minimalny poziom ufności moŝna wpływać na ilość przetwarzanych danych n Niemniej ilość produkowanych reguł moŝe być ogromna 26

RóŜne typy danych n Dane mogą mieć postać transakcji lub tabeli Postać transakcji: a, b a, c, d, e a, d, f Postać tabeli: Attr1 Attr2 Attr3 a, b, d b, c, e n Dane w tabeli muszą być przekonwertowane do postaci transakcyjnej. 27

Przekształcenie tabeli na transakcje Tabela: Attr1 Attr2 Attr3 a, b, d b, c, e Transakcje: (Attr1, a), (Attr2, b), (Attr3, d) (Attr1, b), (Attr2, c), (Attr3, e) 28

Problemy z generacją reguł asocjacyjnych n Pojedyncze minsup: Zakłada się, Ŝe wszystkie elementy w zbiorze danych są tej samej natury lub teŝ mają podobą częstotliwość wystąpień. n Nie jest to prawda: W wielu zastosowaniach zdarza się, Ŝe elementy mają róŝną naturę, np. patelnie duŝo rzadziej są kupowane od bochenków chleba. n Jeśli mamy więc elementy o róŝnej naturze, pojawiają się dwa problemy: gzbyt wysokie minsup nie pozwoli utworzyć reguł dla elementów rzadkich gzbyt niskie minsup wygeneruje zbyt duŝo reguł 29

Model z wieloma minsup n Zmodyfikowana wersja algorytmu zakłada istnienie indywidualnego poziomu wsparcia dla kaŝdego z elementów, minimum item supports (MIS). n Definiując róŝne MIS dla róŝnych elementów moŝna uzyskiwać reguły odpowiadające bardziej naturze elementów, niŝ w przypadku jednakowego wsparcia dla wszystkich elementów. 30

Minsup reguły n Niech MIS(i) będzie wartością MIS dla elementu i. Wtedy minsup reguły R obliczane jest jako najniŝsza wartość MIS elementów w niej występujących dla reguły R: a 1, a 2,, a k a k+1,, a r minimalne wsparcie obliczane jest jako: min(mis(a 1 ), MIS(a 2 ),, MIS(a r )). 31

Przykład n RozwaŜmy następujące elementy: bread, shoes, clothes Niech wartości MIS będą zdefiniowane przez uŝytkownika jak niŝej: MIS(bread) = 2% MIS(shoes) = 0.1% MIS(clothes) = 0.2% Niech poziom wsparcia i zaufania wynosi [sup=0.15%,conf =70%] Wtedy następująca reguła spełnia załoŝenia na minimalne wsparcie: clothes bread bo min(mis(bread), MIS(clothes)) = 0.2%. Zaś następująca reguła nie spełnia załoŝenie na minimalne wsparcie: clothes shoes [sup=0.15%,conf =70%] bo min(mis(clothes), MIS(shoes)) = 0.1%. 32

Domknięcie w dół (Downward closure property) n Czy w nowym modelu właściwości nie są zachowane? n Jeśli zbiór elementów spełnia minsup, wtedy wszystkie jego podzbiory równieŝ spełniają minsup. RozwaŜmy cztery elementy 1, 2, 3, 4 w bazie danych. Ich minimalne wsparcie dane jest przez: MIS(1) = 10% MIS(2) = 20% MIS(3) = 5% MIS(4) = 6% Dla tego przykładu podzbiór {1, 2} mógłby mieć wsparcie 9% (czyli byłby to zbiór nieczęsty). Podzbiory {1, 2, 3} oraz {1, 2, 4} to podzbiory częste. Jednak ze względu na odrzucenie {1, 2} nie byłyby one wygenerowane! Nieodrzucenie zaś podzbioru {1,2} przeczyłoby zachowaniu właściwości domknięcia w dół. 33

Rozwiązanie problemu n Sortujemy wszystkie elementy w I zgodnie z ich wartościami MIS (sorted closure property) n Porządek ten uŝywamy w algorytmie dla kaŝdego zbioru elementów. n Posortowane podzbiory elementów mają następującą postać: gdzie {c[1], c[2],, c[k]}, MIS(c[1]) MIS(c[2]) MIS(c[k]). 34

Algorytm MSapriori Algorytm MSapriori(T, MS) M sort(i, MS); L init-pass(m, T); F 1 {{i} i L, i.count/n MIS(i)}; for (k = 2; F k-1 ; k++) do if k=2 then C k level2-candidate-gen(l) else C k MScandidate-gen(F k-1 ); end; for each transaction t Tdo for each candidate c C k do if c is contained in t then c.count++; if c {c[1]} is contained in t then c.tailcount++ end end F k {c C k c.count/n MIS(c[1])} end return F U k F k ; 35

Pierwszy przebieg poprzez dane n n n n n W pierwszym przebiegu wyznaczane są wartości wsparcia (support count) dla kaŝdego elementu. Następnie elementy są ustawiane w kolejności odpowiadającej kolejności wartości MIS(i) uszeregowanych rosnąco Mając listę elementów M pierwszy z nich (indeksowany przez i) wstawiany jest do L Teraz kolejno g Dla kaŝdego elementu j występującego w M po elemencie i, jeśli j.count/n MIS(i) wtedy j jest równieŝ wstawiane w L, gdzie j.count jest licznikiem wsparcia (support count) elementu j oraz n jest liczbą wszystkich transakcji w T. L jest wykorzystane w funkcji level2-candidate-gen 36

Przykład pierwszego przebiegu przez dane n Niech z zbiorze danych będą element 1, 2, 3, 4. Ich minimalne wsparcie będą odpowiednio: MIS(1) = 10% MIS(2) = 20% MIS(3) = 5% MIS(4) = 6% n ZałóŜmy, Ŝe nasz zbiór danych zawiera 100 transakcji. Pierwsze przejście poprzez dane dostarczy nam następujących wartości liczników wsparcia: {3}.count = 6, {4}.count = 3, {1}.count = 9, {2}.count = 25. n Wtedy L = {3, 1, 2} oraz F 1 = {{3}, {2}} Element 4 nie jest w L poniewaŝ 4.count/n < MIS(3) (= 5%), {1} nie jest w F 1 poniewaŝ 1.count/n < MIS(1) (= 10%). 37

Generacja reguł n PoniŜsze dwie linie algorytmu MSapriori są szczególnie waŝne dla tego algorytmu, nie są waŝne dla algorytmu Apriori: if c {c[1]} is contained in t then c.tailcount++ n Bez uwzględnienia tych dwóch linii wielu reguł nie dałoby się wygenerować 38

Wielokrotne minsup n Model z wielokrotnymi wartościami minimalnego wsparcia podsumowuje model z pojedynczą wartością wsparcia n Jest to model bardziej zbliŝony do rzeczywistości i praktycznych aplikacji. n Model ten pozwala znaleźć reguły dla elementów rzadkich jeszcze bez generowania wielkiej ilości nieprzydatnych reguł dla elementów częstych. n Ustanawiając MIS dla kilku elementów na wartość 100% (or more), moŝna efektywnie poinstruować algorytm, aby w nie generował on reguł zawierające tylko te elementy. 39

Odkrywanie reguły asocjacyjnych dla klas n Odkrywanie reguł zazwyczaj nie ma dobrze sprecyzowanego celu. n Znajduje on wszystkie moŝliwe reguły wynikające z danych, w szczególności reguły, w których dane elementy występują jako przesłanki jak równieŝ jako wnioski. n W niektórych zastosowaniach uŝytkownik jest zainteresowany osiągnięciem szczególnego celu gnp. uŝytkownik moŝe chcieć znaleźć w zbiorze posiadanych dokumentów na określony temat istniejących związków pomiędzy uŝywanymi w dokumentach słowami a ich tematami. 40

Definicja problemu n Niech T będzie zbiorem danych z n transakcji. n KaŜda transakcja jest etykietowana oznaczeniem klasy y. n Niech I będzie zbiorem wszystkich elementów w T, zaśy zbiorem wszystkich etykiet oraz I Y =. n Regułą asocjacyjną klasy (class association rule - CAR) jest implikacja w postaci: X y, gdzie X I, oraz y Y. n Definicje wsparcia i zaufania są identyczne jak w przypadku normalnych reguł asocjacyjnych. 41

Przykład n Zbiór dokumentów tekstowych doc 1: Student, Teach, School : Education doc 2: Student, School : Education doc 3: Teach, School, City, Game : Education doc 4: Baseball, Basketball : Sport doc 5: Basketball, Player, Spectator : Sport doc 6: Baseball, Coach, Game, Team : Sport doc 7: Basketball, Team, City, Game : Sport n Niech minsup = 20% oraz minconf = 60%. PoniŜej przedstawione są dwie przykładowe reguły asocjacyjne: Student, School Education [sup= 2/7, conf = 2/2] game Sport [sup= 2/7, conf = 2/3] 42

Algorytm odkrywania reguł n W odróŝnieniu od normalnego odkrywania reguł, CAR moŝe być wyznaczona wprost w jednym kroku. n Kluczową operacją jest znalezienie wszystkich elementów regułowych, które mają wsparcie przewyŝszające minsup. Element regułowy ma postać: (condset, y) gdzie condset jest zbiorem elementów z I (i.e., condset I), oraz y Yjest etykietą klasy. n Zasadniczo kaŝdy element regułowy reprezentuje regułę: condset y, n Algorytm Apriori moŝe być zmodyfikowany, aby generował reguły asocjacyjne klas CAR. 43

Wielokrotne minimalne wsparcie dla klas n W szukaniu reguł asocjacyjnych klas moŝna skorzystać z idei wielokrotnego minimalnego wsparcia. n UŜytkownik moŝe określić róŝne minimalne wsparcie dla róŝnych klas, w efekcie efektywnie przypisać róŝny poziom minimalnego wsparcia dla regół kaŝdej z klas. n Na przykład, niech będzie dany zbiór z dwiema klasami: Yes oraz No. W takim przypadku moŝna określić: greguły klasy Yes powinny mieć minimalne wsparcie na poziomie 5% greguły klasy Yes powinny mieć minimalne wsparcie na poziomie 5% Ustalając minimalne wsparcia klas na 100% (lub więcej dla wybranych klas) moŝna poinstruować algorytm, aby nie generował reguł dla tych klas. 44

Podsumowanie n Odkrywanie reguł asocjacyjnych jest popularnym tematem w drąŝeniu danych. n Istnieje wiele efektywnych algorytmów do tego problemu. n Tematy związane z odkrywaniem reguł: g wielopoziomowe lub zgeneralizowane odkrywanie reguł g Odkrywanie reguł z ograniczeniami g Stopniowe budowanie reguł g Odkrywanie maksymalnego zbioru częstego g Numeryczne odkrywanie reguł asocjacyjnych g Wizualizacja reguł g Algorytmy równoległe w odkrywaniu reguł g 45