You are on page 1of 12

Wykrywanie asocjacji-algorytm APRIORI wraz z przykadem

Tematem naszej prezentacji jest wykrywanie asocjacji oraz zastosowanie algorytmu priori do ich wyznaczania. Wanym obszarem technik stosowanych w eksploracji danych jest grupa metod zwana odkrywaniem asocjacji. Odkrywanie regu asocjacyjnych polega na wyszukiwaniu grup obiektw, ktre wystpuj razem w okrelonym kontekcie. Zadanie jest realizowane poprzez wykorzystanie algorytmw analiz zwizkw (association rulet analysis). Pierwsza formalna prezentacja tego podejcia zostaa przedstawiona w ramach konferencji SIGMOD w 1993 roku. Klasycznym przykadem jest analiza koszyka zakupw (market basket analysis), w ktrej szuka si odpowiedzi na pytanie: jakie produkty sprzedaj si najczciej w ramach jednego koszyka. Reguy asocjacyjne przypominaj reguy decyzyjne. Tym razem jednak decyzja (prawa strona implikacji) nie jest z gry okrelona, tzn. nie wiemy, na ktrym atrybucie ma si opiera. Jest to przykad nauki bez nauczyciela (podobnie, jak w przypadku algorytmw grupowania): algorytm nie ma okrelonej z gry prawidowej odpowiedzi, zamiast tego ma opisa wewntrzne zalenoci midzy atrybutami, np:

Wykorzystywane tutaj algorytmy pozwalaj odkrywa reguy, ktre przyjmuj posta: jeli element A jest skadnikiem danego zdarzenia, to w X % przypadkw element B jest take skadnikiem tego zdarzenia jeli klient kupuje patki owsiane, to w 65 % przypadkw klient ten kupi mleko. Zainteresowanie odkrywaniem asocjacji niezwykle wzroso wraz z upowszechnieniem si w handlu detalicznym czytnikw kodw paskowych, co pozwala zbiera ogromne iloci danych juskojarzonych w koszyku kupujcego. Badania nad reguami asocjacyjnymi motywowane byo zagadnieniami analizy koszykowej (ang. Market Basket Analysis) polegajcej na odkrywaniu wzorcw zachowa klientw, a dokadniej na znalezieniu grup wsplnie kupowanych produktw. Przykadowo, wiedza o tym, e istotna grupa klientw, kupujc komputery kupuje rwnie oprogramowanie do zarzdzania finansami moe by wykorzystana przy ustalaniu polityki cenowej, rozmieszczaniu towarw, budowaniu kampanii marketingowej, itp. Zbir wszystkich dostpnych towarw w supermarkecie traktujemy jako uniwersum, ktrego kady element (towar) mona traktowa jako jedn zmienn boolowsk mwic, czy dany produkt jest obecny czy nieobecny w badanym koszyku. Kady koszyk mona zatem reprezentowa jako binarny wektor wyznaczony dla tych zmiennych. Analizujc te wektory moemy odkrywa grupy towarw, ktre czsto s kupowane razem lub maj cisy zwizek. Przykadowo - informacj o tym, e wikszo klientw, ktrzy kupuj komputer kupuj rwnie oprogramowanie do zarzdzania finansami mona zapisa za pomoc nastpujcej reguy asocjacyjnej:

komputer oprogramowanie do zarzdzania finansami

[suport (wsparcie) = 5%,confidence (wiarygodno) = 75%]

Jako reguy asocjacyjnej mona obiektywnie zmierzy, wyznaczajc dwa wskaniki: pierwszym z nich jest wsparcie (ang. support) reguy w bazie danych, za drugim wiarygodno (ang. confidence). Wsparcie 5% oznacza, e wrd zbadanych transakcji komputer i oprogramowanie wystpuj razem w piciu procentach, za wiarygodno 75% oznacza, e wrd klientw kupujcych komputer 75% klientw rwnie kupuje oprogramowanie. Na og, regua asocjacyjna jest uznana za interesujc, jeli spenia minimalne progi wsparcia i wiarygodnoci. W praktyce te parametry s ustawione przez uytkownika lub eksperta z danej dziedziny.

Podstawowe pojcia
Niech I = {i1, i2, ..., in} bdzie zbiorem wszystkich dostpnych towarw. Dowolny zbir X I bdziemy nazywa zbiorem towarw (ang. Itemset). Zbir towarw o mocy k nazwiemy kzbiorem towarw (ang. k-itemset). Baz transakcyjn nad zbiorem I nazywamy zbir transakcji D = {T1, T2, ..., Tk}, gdzie kada transakcja jest reprezentowana przez par T = (id, X) skadajc si z identyfikatora transakcji id oraz ze zbioru towarw X I wystpujcych w transakcji. Dla uproszczenia zakadamy, e identyfikatory transakcji pochodz ze skoczonego zbioru indeksw Tid = {id1, id2, ..., idm}, zatem kada baza transakcyjna D jest pewn binarn relacj midzy zbiorami Tid i I i moemy j zapisa jako D ( naley)!!! TidP(I). Mwimy, e transakcja T = (id, X) pokrywa zbir towarw A, jeli A X. Pokrycie zbioru towarw A w bazie D to zbir cover(A,D) = {T D: T pokrywa A}. Wanym pojciem jest zbir czsty (ang. frequent itemset). Mwimy, ze zbir towarw A jest czsty, jeli wystpuje on w conajmniej min_sup procentach transakcji w bazie | cover (A,D)| sup_min | D| . Regu asocjacyjn jest dowolna implikacja A B, gdzie A i B s zbiorami towarw A I, B I i AB = . Przykad bazy transakcyjnej oraz reguy asocjacyjnej znajdujemy na rysunku

Przykad analizy koszykowej


Chleb Mleko Piwo Pampersy Chleb Jajka Klient 2 Piwo Cola Pampersy Mleko Klient 3

Klient 1

Piwo Chleb Pampersy Mleko

Klient 4

Cola Chleb Pampersy Mleko

Klient 5

Tid 1 2 3 4 5

Produkt Chleb, mleko Piwo, pampersy, chleb, jajka Piwo, cola, pampersy, mleko Piwo, chleb pampersy, mleko Cola, chleb, pampersy, mleko

Przykad regu asocjacyjnych:

Cola Pampersy Pampersy, Mleko Cola Mleko Chleb, Piwo

Przykad bazy transakcyjnej i reguy asocjacyjnej

Mwimy, e w bazie transakcyjnej D regua A B ma wsparcie s, jeli s procent transakcji pokrywa zbir A B. Natomiast regua A B ma wiarygodno c, jeli wrd transakcji zawierajcej A jest c procent zawierajcych B. Te wskaniki s obliczone nastpujcymi wzorami:

support(A B, D) =
Suport = wsparcie Cover = pokrycie

| cover(A B,D)| | D|

confidence(A B, D) =
Confidence = wiarygodno

support(A B,D) support(A,D)

Dla czytelnoci zapisu bdziemy uywali notacji support(A), cover(A), confidence(A B) w sytuacji, gdy jest oczywiste do jakiej bazy danych odnosz si te wartoci. Na rysunku znajdziemy przykad reguy asocjacyjnej wraz z jej wsparciem i wiarygodnoci.

Tid 1 2 3 4 5

Produkt Chleb, mleko Piwo, pampersy, chleb, jajka Piwo, cola, pampersy, mleko Piwo, chleb pampersy, mleko Cola, chleb, pampersy, mleko

Regua asocjacyjna:{Pampersy, mleko} Piwo Wsparcie: s(pampersy, mleko, piwo) = =

0,4
Wiarygodno:

Regua asocjacyjna, jej wsparcie i wiarygodno Mwimy, e regua A B jest silna jeli jest wystpuje czsto w bazie danych i jest dostatecznie wiarygodna, tzn. support(A B) min_sup i confidence(A B) min_conf, dla pewnych parametrw min_sup i min_conf.

Definicja 1 Niech min_sup i min_conf bd wartociami rzeczywistymi pomidzy 0 a 1. Problem odkrywania regu asocjacyjnych w bazie D jest problemem wyszukiwania wszystkich silnych regu asocjacyjnych przy ustalonych wartociach minimalnego wsparcia i wiarygodnoci. Poniewa interesuj nas tylko istotne, a wic czste i wiarygodne reguy, zagadnienie wyznaczania regu asocjacyjnych mona zdefiniowa nastpujco: Niech I oznacza skoczony zbir towarw. Dla wszystkich czstych zbiorw X = (A B) z I znajd wyraenia postaci A B o dostatecznie duym poziomie wiarygodnoci. Proces generowania regu asocjacyjnych mona zatem podzieli na dwa etapy: 1. Wyznaczenie czstych zbiorw 2. Konstrukcja wiarygodnych regu asocjacyjnych na podstawie czstych zbiorw

Algorytm Apriori
Zaoenia:
Zakadamy, e wszystkie transakcje s wewntrznie uporzdkowane (np. leksykograficznie).

Lk oznacza kolekcj zbiorw czstych o rozmiarze k, nazywamy czstymi zbiorami k-elemntowymi.

Ck oznacza kolekcj zbiorw kandydujcych o rozmiarze k, nazywamy kandydujcymi zbiorami k-elementowymi.


Pierwszym algorytmem odkrywania binarnych regu asocjacyjnych, ktry wykorzysta wasno monotonicznoci miary wsparcia do ograniczenia przestrzeni poszukiwa zbiorw czstych, by algorytm Apriori. Algorytm ten jest algorytmem iteracyjnym, ktry w kolejnych krokach (iteracjach) znajduje zbiory czste o rozmiarach 1, 2, ..., k. Zakadamy, e elementy kadej transakcji ze zbioru D s uporzdkowane leksykograficznie {Jeeli nawet transakcje nie s wewntrznie posortowane, to krokiem wstpnym algorytmu moe by leksykograficzne uporzdkowanie elementw transakcji.}. Pierwszym krokiem algorytmu jest wyodrbnienie z bazy danych D wszystkich zbiorw jednoelementowych, ktre wystpuj w transakcjach, i sprawdzenie, ktre z nich s czste (posiadaj wsparcie co najmniej minsup). Nastpnie, w oparciu o zbiory czste jednoelementowe algorytm generuje zbiory kandydujce (ang.

candidate itemsets) dwuelementowe, ktre, potencjalnie mog by zbiorami czstymi. Dla kadego wygenerowanego zbioru kandydujcego obliczane jest jego wsparcie w bazie danych D. Jeeli obliczone wsparcie zbioru kandydujcego wynosi co najmniej minsup, to jest on doczany do listy zbiorw czstych i w kolejnym kroku zostanie on wykorzystany do generacji zbiorw kandydujcych trzyelementowych. Nastpnie, zbiory czste trzyelementowe s wykorzystywane do generacji zbiorw kandydujcych czteroelementowych, zbiory czste czteroelementowe s wykorzystywane do generacji zbiorw kandydujcych picioelementowych, itd. W kadym kolejnym kroku, w oparciu o zbiory czste znalezione w poprzednim kroku, algorytm generuje zbiory kandydujce o rozmiarze wikszym o 1. W celu obliczenia wsparcia zbiorw kandydujcych, w kadym kroku algorytmu jest dokonywany odczyt bazy danych D. Dziaanie algorytmu sie koczy, gdy nie ma mona ju wygenerowa kolejnych zbiorw kandydujcych. Wynikiem dziaania algorytmu jest suma k-elementowych zbiorw czstych (k=1, 2,...).

Idea algorytmu
Wasnosc monotonicznosci:
Wszystkie podzbiory zbioru czstego musza by czste, innymi sowy, jeeli B jest zbiorem czstym i A naley B, to A jest rwnie zbiorem czstym.

Wniosek:

Jeeli zbir B nie jest zbiorem czstym, to aden nadzbir A zbioru B, B naley A, nie bdzie zbiorem czstym.

Podstawowe znaczenie dla poprawy efektywnoci algorytmu znajdowania zbiorw czstych ma spostrzeenie, e miara wsparcia zbioru elementw ma wasno monotonicznoci. Monotoniczno miary wsparcia zbioru oznacza, e zbir X jest zbiorem czstym wtedy i tylko wtedy, gdy wszystkie podzbiory zbioru X s rwnie zbiorami czstymi. Innymi sowy, jeeli zbir X nie jest zbiorem czstym, to aden nadzbir zbioru X nie jest zbiorem czstym. Oznacza to, e nie musimy rozwaa wsparcia zbioru X, ktrego podzbir nie jest zbiorem czstym. Te wasno monotonicznoci miary wsparcia mona wykorzysta do redukcji przestrzeni poszukiwa zbiorw czstych.

Wasno Apriori

Ilustracja wasnoci Apriori: jeli AD nie jest czsty, to moemy wykluczy wszystkie jego nadzbiory. Podzbiory zbioru L, ze wzgldu na relacje zawierania sie, tworz krat, ktrej kresem dolnym jest zbir pusty, natomiast kresem grnym jest cay zbir L. Przykadowa krat podzbiorw zbioru L ={A, B, C, D}. Podstawowe znaczenie dla poprawy efektywnoci algorytmu znajdowania zbiorw czstych ma spostrzeenie, e miara wsparcia zbioru elementw ma wasno monotonicznoci o ktrej wspomnielimy wczeniej. A co sie z tym wie, nie musimy rozwaa wsparcia zbioru X, ktrego podzbir nie jest zbiorem czstym. Dlatego skoro podzbiory {ABCD}, {ABD} oraz {ACD} nie s czste stad zbir {AD} rwnie nie jest czsty. Wasno ta znacznie redukuje przestrze poszukiwa podczas generacji czstych kandydatw.

Przykad 1
TID 100 200 300 400 Produkty 134 235 1235 25
Zamy minsup = 50% (2 transakcje) W podanych poniej tabelach wsparcie zbioru jest liczone, dla uproszczenia, w transakcjach.

C1
Zbir 1 2 3 4 5 Sup 2 3 3 1 3

L1
Zbir 1 2 3 4 Sup 2 3 3 3

Powyszy przykad ilustruje dziaanie algorytmu Apriori. Rozwamy przykadow baz danych produktw przedstawiona na slajdzie w postaci znormalizowanej relacji. W relacji mamy transakcje ze sprzeday 5 produktw. Transakcja okrelona jest przez TID, ktry jest identyfikatorem transakcji oraz produktw, ktre w ramach danej transakcji zostay zakupione. Zamy warto minimalnego wsparcia = 50% (2 transakcje z 4 moliwych). Dla uproszczenia w podanych tabelach wsparcie zbioru jest liczone w transakcjach. Pierwszy krok algorytmu polega na znalezieniu wszystkich zbiorw kandydatw zbiorw czstych 1-elementowych C1 i sprawdzeniu czy speniaj minimalny prg wsparcia. Otrzymalimy w ten sposb zbir L1 wszystkie zakupione produkty poza 4 s wspierane przez co najmniej 2 transakcje, zatem, kady produkt z wyczeniem 4, stanowi zbir czsty 1-elementowy.

C2
Zbir 12 13 15 23 25 35 Sup 1 2 1 2 3 2

L2
Zbir 13 23 25 35 Sup 1 2 3 2

C3
Zbir 235 Sup 2

L3
L4 =

Zbir 235

Sup 2

C4 =

Nastpnie, w kolejnym kroku algorytmu, funkcja apriori-gen() generuje zbiory kandydujce 2-elementowe C2 uzyskane w oparciu o L1. Na powyszym slajdzie moemy zobaczy zbir C2, wraz z wartociami wsparcia poszczeglnych zbiorw kandydujcych. Zbir L2 skada sie z tych zbiorw kandydujcych 2-elementowych nalecych do C2, ktrych wsparcie spenia warunek minimalnego wsparcia minsup. Pamitamy w naszym przykadzie wynosi on 50% (2 transakcje). W kolejnym kroku, funkcja apriori-gen() generuje zbiory kandydujce 3-elementowe C3 w oparciu o L2. Kady zbir kandydujcy 3-elementowy jest nadzbiorem zbioru czstego 2-elementowego nalecego do L2, i kady jego podzbir rwnie naley do L2. C3 zawiera tylko jeden zbir kandydujcy. Wygenerowany zbir kandydujcy jest rwnie zbiorem czstym, gdy jego wsparcie wynosi 2 stad pojawia sie on w zbiorze L3. Zbir C4 jest zbiorem pustym, gdy L3 zawiera tylko jeden zbir czsty. Stad L4 rwnie jest zbiorem pustym. Koczy to pierwszy etap algorytmu Apriori. Wynikiem tego etapu s zbiory czste 1-elementowe L1, 2-elementowe L2, oraz 3-elementowe L3. W kolejnym etapie, w oparciu o otrzymane zbiory czste, s generowane binarne reguy asocjacyjne zgodnie z algorytmem. Na etapie generacji regu pomijamy zbiory czste 1-elementowe, gdy prowadziyby one do regu asocjacyjnych, ktrych poprzednik lub nastpnik byby zbiorem pustym.

Generacja regu

L3
Zbir 235 Sup 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%
W kolejnym etapie, w oparciu o otrzymane zbiory czste, s generowane binarne reguy asocjacyjne zgodnie z algorytmem. Na etapie generacji regu pomijamy zbiory czste 1-elementowe, gdy prowadziyby one do regu asocjacyjnych, ktrych poprzednik byby zbiorem pustym. Ostatnia faza algorytmu jest sprawdzenie, ktre z wygenerowanych regu speniaj warunek minimalnej ufnoci minconf. Reguy, ktrych ufno jest mniejsza od minconf s odrzucane. Wiedza o takich powizaniach sprzeday moe by wykorzystana do: Zarzdzania rozmieszczeniem produktw na pkach w sklepie, Opracowania pakietw promocyjnych, Sugerowania sprzeday dodatkowej, Badania porwnawczego sklepw.

Algorytm Apriori

W opisie algorytmu zastosowano nastpujca notacje: C_k oznacza rodzin zbiorw kandydujcych k-elementowych, L_k oznacza rodzin zbiorw czstych k-elementowych, c.count oznacza licznik zliczajcy liczb transakcji wspierajcych zbir elementw c, apriori_gen () oznacza funkcje, opisana na kolejnym slajdzie, ktra generuje zbiory kandydujce, natomiast subset() oznacza funkcje, ktra dla danej transakcji t zwraca wszystkie zbiory kandydujce wspierane przez t. W pierwszym kroku algorytm zlicza wystpienia wszystkich elementw w bazie danych D w celu wyodrbnienia zbiorw czstych 1-elementowych (L_1). Kady kolejny k-ty krok algorytmu skada sie z dwch faz. W pierwszej, funkcja apriori_gen(), w oparciu o zbiory czste nalece do L_{k-1}, generuje zbiory kandydujce k-elementowe (C_k). W drugiej fazie k-tego kroku jest realizowany odczyt bazy danych D i dla kadego zbioru kandydujcego c ze zbioru C_k jest obliczane wsparcie zbioru c w bazie danych D, {wsparcie}(c). W celu zapewnienia odpowiedniej efektywnoci procedury obliczania wsparcia zbiorw kandydujcych, algorytm Apriori wykorzystuje struktur danych postaci drzewa haszowego, ktra suy do przechowywania zbiorw kandydujcych. Procedura subset() zwraca te zbiory kandydujce nalece do C_k, ktre s wspierane przez transakcje t. Jeeli zbir kandydujcy c spenia warunek minimalnego wsparcia, to jest, {wsparcie}(c)>=minsup, to zbir ten jest dodawany do listy zbiorw czstych, w przeciwnym razie zbir ten jest usuwany z listy zbiorw kandydujcych. Podstawowe znaczenie dla efektywnoci dziaania algorytmu Apriori ma rozwizanie dwch problemw szczegowych: jak zapewni efektywno procedury generowania zbiorw kandydujcych, oraz, jak zapewni efektywno procedury obliczania wsparcia dla tych zbiorw. Pierwszy z wymienionych problemw dotyczy efektywnoci funkcji apriori_gen().

You might also like