Sunteți pe pagina 1din 15

Data Mining

CURS 10
Algoritmi pentru determinarea mulimilor frecvente
de articole i a regulilor de asociere
Mulimile frecvente joac un rol esenial n multe aplicaii data mining, ncercnd s
gseasc modele interesante n bazele de date. Cea mai des ntlnit aplicaie este gsirea regulilor
de asociere, care a avut ca prim motivaie analizarea tranzaciilor dintr-un supermarket pentru
examinarea comportamentului clienilor n funcie de produsele cumprate.
Notaiile folosite n continuare sunt cele prezentate n cursul anterior.
Pentru calcularea suportului unei colecii de mulimi de articole, este nevoie s se acceseze
baza de date. Deoarece bazele de date ce memoreaz tranzaciile tind s fie foarte mari, nu este
ntotdeauna posibil stocarea acestora n memoria principal. Un factor important al marii majoriti
a algoritmilor este reprezentarea bazei de date a tranzaciilor. Conceptual, baza de date poate fi
reprezentat ca o matrice bidimensional n care fiecare linie reprezint o tranzacie individual iar
coloanele reprezint articolele din I. O astfel de matrice poate fi reprezentat n mai multe feluri.
Cel mai des utilizat este modelul orizontal al datelor. n acest model, fiecare tranzacie are un
identificator de tranzacie i o list de articole ce apar n cadrul tranzaciei. Alt model foarte des
utilizat este modelul vertical al datelor n care baza de date este alctuit dintr-o mulime de articole,
fiecare articol fiind nsoit de frontiera sa. De asemenea, algoritmii pot folosi i o combinaie a celor
dou modele.
Pentru a calcula suportul unei mulimi de articole X folosind modelul orizontal al bazei de
date, este nevoie s se parcurg toat baza de date i s se testeze pentru fiecare tranzacie dac
X T . n cadrul aceleiai parcurgeri, aceast operaie poate fi fcut pentru o colecie mare de

mulimi de articole. O concepie greit despre explorarea modelelor frecvente este c scanarea
bazei de date este o operaie de I/O foarte complex. n cele mai multe cazuri, aceast operaie nu
reprezint costul principal al timpului de execuie al unui algoritm. n schimb, actualizarea
suportului tuturor mulimilor de articole candidat coninute de o anumit tranzacie consum
considerabil mai mult timp dect citirea acelei tranzacii dintr-un fiier sau dintr-un cursor al bazei
de date. ntr-adevr, pentru fiecare tranzacie trebuie verificat pentru fiecare mulime de articole
candidat dac este inclus n acea tranzacie, sau trebuie verificat pentru fiecare submulime a acelei
tranzacii dac este coninut de o mulime de articole candidat. Pe de alt parte, numrul
tranzaciilor dintr-o baz de date este deseori corelat cu dimensiunea maxim a tranzaciilor din

Data Mining
baza de date. Prin urmare, numrul tranzaciilor nu are o mare influen pentru timpul necesar
calculrii suportului, nefiind factorul determinant.
Modelul vertical al bazei de date are avantajul major c suportul unei mulimi X poate fi
calculat uor prin simpla intersecie a frontierelor a dou din submulimile sale Y , Z X , astfel
nct Y Z X . Dndu-se o colecie de mulimi de articole candidat, aceast tehnic cere ca
frontierele unui numr mare de mulimi de articole s fie disponibile n memoria principal, ceea ce
nu este ntotdeauna posibil.
nc de la introducerea lor in 1993, de ctre Argawal et al., problema mulimilor frecvente i
a explorrii regulilor de asociere a primit o mare atenie din partea cercettorilor. n ultimii ani, sute
de lucrri de cercetare care au fost publicate au prezentat algoritmi noi i mbuntiri ale
algoritmilor existeni, pentru rezolvarea ct mai eficient a acestei probleme. n acest curs vom
descrie tehnicile de baz folosite pentru rezolvarea acestor probleme i voi face un studiu exhaustiv
al celor mai influeni algoritmi propui n ultimii ani.

1. Algoritmul Apriori
Algoritmul Apriori determin suportul mulimilor de articol prin metoda BFS (Breadth First
Search). Pentru nceput el determin suportul mulimilor cu un articol, apoi suportul mulimilor cu 2
articole etc.
Algoritmul nu determin suportul tuturor mulimilor posibile, ci folosete o strategie
inteligent pentru a determina candidai pentru mulimile frecvente. El gsete mulimile Ck cu k
articole ce conin toate submulimile frecvente. Observaia de baz const n faptul c selecia de
candidai se bazeaz pe principiul Apriori, conform cruia orice submulime a unei mulimi
frecvente trebuie s fie frecvent i toate mulimile frecvente cu cel mult k elemente vor fi
submulimi ale mulimilor frecvente de k+1 elemente. Deci, odat aleas o mulime de candidai
Ck 1 doar k+1 pot fi submulimi frecvente corespunztoare. Aceasta este mulimea cu numr minim
de candidai care poate fi gsit, fr a se face alte scanri ale bazei de date, avndu-se n vedere
mulimile frecvente pn la nivelul k.
Modalitatea simpl de a determina candidaii mulimii Ck 1 este s enumerm toate k+1
submulimi posibile i s le nlturm pe cele care nu sunt submulimi frecvente.
Complexitatea determinrii potenialilor candidai este redus i mai mult folosind
operatorul de join. Dac mulimile de elemente sunt reprezentate ntr-o list ordonat A[1:k],
operaia de join a unei mulimi frecvente Lk, ce conine k articole, cu ea nsi este mulimea cu k+1
submulimi ce sunt definite ca o reuniune de mulimi frecvente de k articole.
2

Data Mining
Lk * Lk { A B | A, B Lk , A B, A[1: k 1] B[1: k 1]}
Efectuarea operaiei de join necesit vizitarea elementelor lui Lk cel puin de dou ori, dac
ele sunt n ordine alfabetic.
Succesiunea operaiilor i etapele algoritmului Apriori se regsesc n figura 1.

Figura 1. Etapele algoritmului Apriori

Exist dou probleme majore de calcul la folosirea algoritmului Apriori pentru descoperirea
regulilor de asociere. Prima problem const n faptul c algoritmul furnizeaz un numr mare de
asocieri, multe din ele fiind neinteresante. Ct timp putem controla numrul de asocieri create cu
ajutorul pragului minim de suport, numrul de reguli de asociere este redus la un numr rezonabil.
Regulile interesante sunt deseori gsite ntr-o zon intermediar a dimensiunii suportului. O singur
valoare pentru suport nu este ntotdeauna suficient pentru a gsi structuri interesante.
A doua problem major de calcul nu se refer la numrul de mulimi frecvente de articole
(mrimea lui Lk ), ci la mrimea unei mulimi frecvente de articole. Dac folosim algoritmul Apriori
pentru fiecare mulime frecvent de articole, gsirea suportului tuturor submulimilor trebuie
realizat nainte ca mulimea s devin un candidat. Pentru o mulime care conine k articole,
trebuie calculat suportul pentru 2k 2 submulimi. Dac de exemplu k=20, numrul de submulimi
ce trebuie analizate este foarte mare. Complexitatea determinrii suportului pentru toate aceste
mulimi crete proporional cu numrul de articole din fiecare submulime considerat. Astfel,
mulimile frecvente de articole de dimensiuni mari nu sunt fezabile. Limitarea dimensiunii
mulimilor este o proprietate pe care metoda BFS o folosete. Pentru gsirea mulimilor frecvente
de articole foarte mari avem nevoie de alt metod.
Primul algoritm care a generat toate mulimile frecvente de articole i reguli de asociere de
ncredere a fost algoritmul AIS propus de Agrawal et al.. La scurt timp dup, algoritmul a fost
3

Data Mining
mbuntit i redenumit n Apriori, exploatnd proprietatea de monotonie a suportului mulimilor
de articole i a regulilor de asociere. Aceleai tehnici au fost independent propuse de Mannila et al..
Proprietatea 1. (Monotonia suportului) Dndu-se o baz de date de tranzacii D peste mulimea de
articole I, fie X , Y I dou mulimi de articole. Atunci,
X Y support(Y) support(X).
Prin urmare, n cazul n care o mulime de articole nu este frecvent, atunci toate mulimile
care o vor conine nu vor fi nici ele frecvente. n literatura de specialitate, aceast proprietate de
monotonie este denumit i nchidere de proprietate deoarece mulimea de mulimi frecvente este
nchis n raport cu includerea mulimilor.
Proprietatea 2. (Monotonia ncrederii) Fie X , Y , Z I trei mulimi de articole, astfel nct
X I Y {} . Atunci,
confidence( X / Z Y Z ) confidence( X Y )
ncrederea este monoton descresctoare cu privire la prelungirea regulii generate.
1.1. Explorarea mulimilor de articole
Pentru simplitate, vom presupune n continuare c articolele din tranzacii i mulimile de
articole sunt sortate n ordine lexicografic, cu excepia cazurilor n care se specific altfel.
Faza explorrii mulimilor din algoritmul Apriori este dat n listingul 1. Voi folosi notaia
X[i] pentru a reprezanta al i-lea articol din X. Submulimea k-prefix a unei mulimi X este kmulimea de articole {X[1],,X[k]}.
Listingul 1. Algoritmul Apriori Explorarea mulimilor de articole
Input: D, minsupp
Output: F
C1={{i}|i I};
k=1;
while Ck{} do{
//Compute the supports of all candidate itemsets
forall transactions(tid,D) D
forall candidate itemsets X Ck
if ( X I )
X.support++;
//Extract all frequent itemsets
Fk = {X|X.support minsupp};
//Generate new candidate itemsets
forall X,Y Fk, X[i]=Y[i] for 1 i k-1, and X[k}<Y[k]{
I X {Y [k ]} ;
if ( J I ,| J | k , J Fk )
Ck+1= Ck+1 I;

Data Mining
}
k++;
}

Algoritmul realizeaz o cutare n lime prin spaiul de cutare al tuturor mulimilor de


articole generatoare de mulimi candidat Ck+1 de mrime k+1, ncepnd cu k=0. O mulime este un
candidat dac toate submulimile ei sunt mulimi frecvente. Mai clar, C1 conine toate articolele
mulimii I, iar la un nivel k sunt generate toate mulimile de articole de mrime k+1. Aceast
operaie se face n doi pai. Pentru nceput Fk este unit cu ea nsi. Reuniunea de mulimi de
articole X Y , unde X,Y Fk, este generat dac ele au acelai (k-1)-prefix. n pasul reducerii,
X Y este inserat n Ck+1 doar dac toate k-submulimile sale se regsesc n Fk.
Pentru a numra suporturile tuturor k-mulimilor de articole candidat, baza de date este
parcurs tranzacie cu tranzacie iar suporturile tuturor mulimilor de articole candidat, care sunt
incluse n tranzacia curent, sunt incrementate. Toate mulimile de articole care vor fi frecvente la
finalul parcurgerii bazei de date, vor fi inserate n Fk.
Dac numrul de (k+1)-mulimi de articole candidat este prea mare pentru a le putea reine,
procedura de generare a mulimilor candidat se va opri i suporturile tuturor mulimilor candidat
generate sunt calculate. n acest caz, la iteraia urmtoare, n loc s fie generate mulimile candidat
de dimensiune k+2, sunt generate restul de (k+1)-mulimi de articole candidat, pn cnd toate
mulimile frecvente de articole de dimensiune k+1 sunt generate.
1.2. Explorarea regulilor de asociere
Dndu-se toate mulimile frecvente de articole, putem acum genera toate regulile de asociere
frecvente i de ncredere. Algoritmul este foarte asemntor cu algoritmul de explorare a mulimilor
frecvente de articole i este dat n listingul 2.
Listingul 2. Algoritmul Apriori Explorarea regulilor de asociere
Input: D, minsupp,minconf
Output: R
Compute F;
R={};
forall I F {
R R I {} ;
C1={{i}|i I};
k=1;
while Ck{} do{
//Extract all heads of confident association rules
H k { X Ck | confidence( I / X X ) minconf } ;
//Generate new candidate heads
forall X,Y Hk, X[i]=Y[i] for 1 i k-1, and X[k}<Y[k]{
I X {Y [k ]} ;
if ( J I ,| J | k , J H k )

Data Mining
}
k++;

Ck+1= Ck+1 I;

}
//cumulate all association rules

R R {I / X X | X H1 H 2 ... H k } ;

Pentru nceput, sunt generate toate mulimile frecvente de articole folosind algoritmul de
explorare a mulimilor de articole. Apoi, orice mulime frecvent de articole I este mprit ntr-un
candidat antecedent Y i un consecutiv X=I/Y. Procesul pornete cu Y={}, rezultnd regula I {} ,
care are ntotdeauna gradul de ncredere 100%. Dup aceasta, algoritmul va genera iterativ toi
antecedenii candidai Ck+1 de mrime k+1, ncepnd cu k=0. Un antecedent este candidat dac toate
submulimile sale reprezint reguli de ncredere. Pentru a calcula ncrederea unei mulimi candidat
Y, suporturile mulimilor I i X se regsesc n F. Toi antecedenii obinui n cadrul regulilor de
ncredere sunt apoi inserai n Hk. n final, toate regulile de ncredere sunt inserate n mulimea R.
Aa cum se poate vedea, n acest algoritm nu este exploatat pe deplin proprietatea de
monotonie a ncrederii. Dndu-se o mulime I i un antecedent candidat Y, reprezentnd regula
I / Y Y , algoritmul verific toate mulimile Y ' Y unde regula I / Y ' Y ' este de ncredere, dar

nu i mulimile n care regula I / Y Y ' este de ncredere. Cu toate acestea, acest lucru este perfect
posibil dac toate regulile sunt generate de o mulime I i toate regulile sunt deja generate pentru
toate mulimile de articole I ' I .
n orice caz, exploatarea proprietii de monotonie ct mai mult posibil nu este ntotdeauna
cea mai bun soluie. Din moment ce calculul ncrederii unei reguli necesit doar o privire asupra
suportului a cel mult dou mulimi de articole, s-ar putea s fie mai bine s nu se exploateze
proprietatea de monotonie a ncrederii i s se nlture simplu acest pas din procesul de generare a
candidailor. Desigur, aceasta depinde de eficiena n a gsi suportul unei mulimi de articole sau al
unui antecedent n structurile de date utilizate.
Din fericire, dac numrul regulilor de asociere frecvente i de ncredere nu este foarte mare,
timpul necesar gsirii tuturor acestor reguli const n timpul necesar gsirii tuturor mulimilor
frecvente.
Nu a fost propus nc nici o optimizare semnificativ a acestui algoritm de generare a
regulilor de asociere i aproape toate activitile de cercetare au fost concentrate pe generarea
mulimilor frecvente de articole.
n continuare vom prezenta un exemplu de generare a regulilor de asociere. S presupunem
o mulime cu cinci articole I={l1,l2,l3,l4,l5} i o baz de date D care conine nou tranzacii. Baza

Data Mining
de date a tranzaciilor este prezentat n tabelul 1. De asemenea presupun un suport minim de
valoare 2 i un grad minim de ncredere de 70%.
Tabelul 1. Baza de date a tranzaciilor

TID
101
102
103
104
105
106
107
108
109

Lista de articole
l1, l2, l5
l2, l4
l2, l3
l1, l2, l4
l1, l3
l2, l3
l1, l3
l1, l2, l3, l5
l1, l2, l3

minsupp = 2/9 = 22%


minconf = 70%

Pentru nceput vom cuta mulimile frecvente de articole. Pasul 1 al algoritmului genereaz
toate 1-mulimile de articole candidat care satisfac suportul minim stabilit. Dup primul pas al
algoritmului, toate articolele sunt membre ale mulimii de candidai, dup cum se vede n figura 2.

Figura 2. Generarea 1-mulimilor frecvente de articole

Pasul 2 al algoritmului genereaz toate 2-mulimile de articole candidat care satisfac


suportul minim stabilit. Pentru generarea mulimii C2, algoritmul efectueaz o operaie de join ntre
mulimea L1 i ea nsi (C2=L1*L1). Se scaneaz apoi baza de date pentru calcularea suportului
mulimilor din C2, iar n final se genereaz mulimea L2 ce conine toate 2-mulimile de articole
candidat care satisfac suportul minim stabilit. Acest pas al algoritmului este prezentat n figura 3.

Data Mining

Figura 3. Generarea 2-mulimilor frecvente de articole

Pasul trei al algoritmului genereaz toate 3-mulimile de articole candidat care satisfac
suportul minim stabilit, folosind proprietatea Apriori. Pentru a afla mulimea C3, algoritmul
efectueaz o operaie de join ntre mulimea L2 i ea nsi (C3=L2*L2). Pasul trei al algoritmului este
prezentat n figura 4.

Figura 4. Generarea 3-mulimilor frecvente de articole

Pasul patru genereaz toate 4-mulimile de articole candidat care satisfac suportul minim
stabilit. Pentru a afla mulimea C4, algoritmul efectueaz o operaie de join ntre mulimea L3 i ea
nsi (C4=L3*L3). Se obine mulimea {l1,l2,l3,l5} care este ns eliminat deoarece submulimea ei
{l2,l3,l5} nu este frecvent. Astfel se obine L4 {} iar algoritmul de gsire a mulimilor frecvente
de articole se termin.
n continuare, mulimile frecvente de articole obinute vor fi folosite pentru a genera reguli
de asociere puternice care s satisfac condiiile puse de suportul minim i gradul minim de
ncredere.
Pentru fiecare mulime frecvent de articole I, se genereaz toate submulimile sale nevide.
Pentru

fiecare

submulime

nevid

sa,

support(I)/support(s)minconf.

se

va

obine

regula

s I s

dac

Data Mining
n exemplul nostru, se obine mulimea L={{l1}, {l2}, {l3}, {l4}, {l5}, {l1,l2}, {l1,l3}, {l1,l5},
{l2,l3}, {l2,l4}, {l2,l5}, {l1,l2,l3},{l1,l2,l5}}. Fie I={l1,l2,l5}, ale crei submulimi nevide sunt {l1},
{l2},{l5},{l1,l2},{l1,l5}, {l2,l5}. Regulile de asociere obinute sunt comparate cu gradul minim de
ncredere i se obin urmtoarele:

R1: confidence({l1, l 2} {l 5})

support ({l1, l 2, l 5}) 2


50% , regula este respins.
support ({l1, l 2})
4

R2: confidence({l1, l 5} {l 2})

support ({l1, l 2, l 5}) 2


100% , regula este admis.
support ({l1, l 5})
2

R3: confidence({l 2, l 5} {l1})

support ({l1, l 2, l 5}) 2


100% , regula este admis.
support ({l 2, l 5})
2

R4: confidence({l1} {l 2, l 5})

support ({l1, l 2, l 5}) 2


33% , regula este respins.
support ({l1})
6

R5: confidence({l 2} {l1, l 5})

support ({l1, l 2, l 5}) 2


29% , regula este respins.
support ({l 2})
7

R6: confidence({l 5} {l1, l 2})

support ({l1, l 2, l 5}) 2


100% , regula este admis.
support ({l 5})
2

Pentru submulimea I={l1,l2,l5}, folosind gradul minim de ncredere de 70%, se obin


regulile de asociere puternice R2, R3 i R6.
1.3. Optimizri ale algoritmului Apriori
O serie de ali algoritmi au fost propui dup algoritmul Apriori. Aceti algoritmi au aceiai
structur general, dar ncearc prin diferite tehnici s optimizeze anumii pai ai algoritmului.
Deoarece performanele algoritmului Apriori sunt dictate aproape complet de procedura de calcul al
suportului, majoritatea activitilor de cercetare s-au concentrat pe acest aspect. Aa cum am mai
spus, performanele acestei proceduri depind, n principal, de numrul de mulimi de articole
candidat ce apar n fiecare tranzacie.
mpreun cu algoritmul Apriori propus, Agrawal et al. propun ali doi algoritmi: AprioriTid
i AprioriHybrid.
Algoritmul AprioriTid reduce timpul necesar procedurii de numrare a suportului, nlocuind
fiecare tranzacie din baza de date cu o mulime de mulimi de articole candidat ce apar n acea
tranzacie. Acest lucru se face n mod repetat la fiecare iteraie k. Baza de date adaptat a
tranzaciilor o vom nota cu Ck . Algoritmul este prezentat n listingul 3.
Algoritmul AprioriTid este mult mai rapid la iteraiile finale, dar performanele sale sunt mai
slabe dect ale algoritmului Apriori la primele iteraii. Acest lucru se datoreaz n principal

Data Mining
operaiilor necesare asupra mulimii Ck , care nu este pstrat n memoria principal ci este scris pe
disc. Dac o tranzacie nu conine k-mulimi de articole candidat, atunci Ck nu va avea nici o
intrare pentru acea tranzacie. Prin urmare, numrul de intrri n Ck poate fi mai mic dect numrul
de tranzacii din baza de date, mai ales n iteraiile finale. n plus, la iteraiile finale, fiecare intrare
poate fi mai mic dect tranzacia corespunztoare deoarece foarte puini candidai pot fi coninui
de acea tranzacie. n primele iteraii, fiecare intrare poate fi mai mare dect iteraia
corespunztoare.
Listingul 3. Algoritmul AprioriTid
Input: D, minsupp
Output: F
Compute F1 of all frequent items;
C1 =D; (with all items not in F1 removed)
k=2;
while Fk-1{} do{
Compute Ck of all candidate k-itemsets
Ck ={};
// Compute the supports of all candidate itemsets
forall transactions(tid,T) Ck {
CT = {};
forall X Ck
if ( { X [1],..., X [k 1]} T { X [1],..., X [k 2], X [k ]} T ){

CT CT { X } ;
}

X.support++;

if (CT{})

Ck Ck {(tid , CT )}
}
Extract Fk of all frequent k-itemsets;
k++;
}

Algoritmul AprioriHybrid combin algoritmii Apriori i AprioriTid ntr-un singur hibrid.


Acest algoritm hibrid folosete Apriori pentru iteraiile iniiale i trece pe algoritmul AprioriTid
atunci cnd este de ateptat ca mulimea Ck s poat fi ncrcat n memoria principal. ntru-ct
mrimea lui Ck este proporional cu numrul de mulimi de articole candidat, este folosit un
algoritm euristic pentru a estima mrimea pe care o va avea Ck n iteraia curent. Dac aceast
mrime este destul de mic i sunt cteva modele candidat n iteraia curent, n iteraia urmtoare
algoritmul va decide s comute pe AprioriTid. Algoritmul AprioriHybrid realizeaz aproape
ntotdeauna performane mai bune dect algoritmul Apriori.
10

Data Mining
La scurt timp dup propunerea algoritmului Apiori, Park et al. propun o alt optimizare,
denumit DHP (Direct Hashing and Pruning), care reduce numrul de mulimi de articole candidat.
n timpul celei de-a k iteraii, cnd suporturile tuturor k-mulimi de articole sunt calculate scannd
baza de date, DHP strange deja informaii despre mulimile de articole candidat de mrime k+1, n
aa fel nct toate (k+1)-submulimi de articole ale fiecrei tranzacii, dup cteva eliminri, s fie
dispersate ntr-o tabel de dispersie. Fiecare ramur din tabela de dispersie conine un contor ce
reprezint numrul de mulimi ce au fost dispersate pe acea ramur pn n acel moment. Apoi, dac
o mulime de articole candidat de mrime k+1 este generat, funcia de dispersie este aplicat acelei
mulimi. Dac contorul ramurei corespunztoare din tabela de dispersie este sub pragul minim de
suport stabilit, mulimea de articole generat nu este adugat mulimii de mulimi de articole
candidat. De asemenea, n timpul fazei de calcul al suportului din cadrul iteraiei k, fiecare
tranzacie este analizat n felul urmtor: dac o tranzacie conine o mulime frecvent de articole
de dimensiune k+1, fiecare articol din acea mulime va aprea n cel puin k din k-mulimile de
articole candidat din Ck. Ca i rezultat, un articol dintr-o tranzacie T poate fi eliminat dac nu apare
n cel puin k din k-mulimile de articole candidat din Ck. Folosind aceast tehnic, se obine o
scdere semnificativ a numrului de mulimi de articole candidat ce urmeaz s fie numrate, mai
ales la a doua iteraie.
Dei DHP a fost prezentat ca avnd performane mai bune dect Apriori i AprioriHybrid,
Ramakrishnan a contracarat aceast afirmaie prin adugarea unei optimizri algoritmului Apriori.
n loc s se utilizeze un arbore de dispersie pentru a memora i numra toate 2-mulimile de articole
candidat, se utilizeaz o matrice tringhiular C, n care contorul suport al unei 2-mulimi de articole
candidat {i,j} este stocat n locaia C[i][j]. Folosind aceast matrice, procedura de calcul al
suportului se reduce la dou bucle imbricate pentru fiecare tranzacie.
F
ntruct numrul de 2-mulimi de articole candidat este ( 2 1 ) , este posibil ca acest numr s

fie foarte mare i atunci sunt necesare multiple scanri ale bazei de date i numai o parte a structurii
poate fi generat. Cu toate acestea, s-a descoperit c foarte multe 2-mulimi de articole candidat nu
apar deloc n baza de date i prin urmare suportul lor rmne 0. Prin urmare, s-a propus urmtoarea
optimizare: cnd toate articolele sunt numrate individual, rezult o mulime frecvent de articole
F1 i nu vom genera nici o 2-mulime de articol candidat. n schimb, vom ncepe scanara bazei de
date i vom nltura din fiecare tranzacie toate articolele care nu sunt frecvente. Apoi, pentru
fiecare tranzacie curat, vom mri suportul tututor 2-mulimi de articole candidat coninute de
acea tranzacie. Dac nu exist 2-mulimi de articol candidat, vom genera o mulime de articole
candidat i i iniializm suportul cu 1. n acest fel sunt generate doar acele 2-mulimi de articole
candidat care apar cel puin o dat n baza de date.

11

Data Mining
Uneori este posibil s se obin informaii despre suportul unei mulimi de articole din
suportul tuturor submulimilor sale. Primul algoritm care folosete aceast tehnic a fost propus de
Bayardo i se numete Apriori-LB. Tehnica prezentat se bazeaz pe urmtoarea proprietate, care se
refer la limita inferioar a suportului unei mulimi de articole:
Proprietatea 3. Fie X , Y , Z I mulimi de articole. Atunci:
support ( X Y Z ) support ( X Y ) support ( X Z ) support ( X ) .
n practic, aceast limit inferioar poate fi folosit n felul urmtor: de fiecare dat, o
(k+1)-mulime de articole candidat este generat prin reuniunea a dou din submulimile sale de
mrime k, astfel nct putem calcula simplu aceast limit inferioar a mulimii candidat. ntradevr, presupunnd c mulimea candidat X {i1 , i2 } este generat prin reuniunea mulimilor
X {i1} i X {i2 } , adunm suporturile celor dou mulimi i scdem suportul lui X. Dac aceast
limit inferioar este mai mare dect pragul minim de suport stabilit, atunci aceasta este o mulime
frecvent de articole i de acum ncolo putem genera mulimi de articole candidat de mrime mai
mare, pentru care aceast limit inferioar poate fi calculat din nou. Cu toate acestea, trebuie n
continuare calculat suportul exact pentru toate aceste mulimi de articole. Folosind mecanismul
eficient de calcul al suportului care a fost descris, aceast optimizare ar putea duce la mbuntiri
semnificative ale performanei algoritmului.
Calders i Goethals prezint o generalizare a tuturor acestor tehnici rezultnd un sistem de
deducere a regulilor ce deriv din limitele solide ale suportului mulimilor de articole candidat.
Acest sistem de deducere a regulilor permite construirea unei reprezentri minime a tuturor
mulimilor frecvente de articole, dar de asemenea poate fi folosit pentru generarea eficient a unei
mulimi ce conine toate mulimile frecvente de articole. Din pcate, pentru o mulime de articole
candidat dat, trebuie s fie analizate un numr exponenial de reguli, ceea ce mrete foarte mult
timpul de execuie al algoritmului.
Algoritmul DIC (Dinamic Itemset Counting), propus de Brin et al. ncearc s reduc
numrul de parcurgeri ale bazei de date diviznd baza de date n intervale de o anumit mrime
specificat. Pentru nceput sunt generate toate modelele candidat de dimensiune 1. Suportul
mulimilor candidat este numrat pe primul interval al bazei de date. Bazndu-se pe acest suport un
nou model candidat de dimensiune 2 este generat, dac toate submulimile sale sunt cunoscute ca
fiind frecvente i, suportul su este numrat n baza de date mpreun cu modelele de dimensiune 1.
n general, dup fiecare interval, modelele candidate sunt generate i numrate. Algoritmul se
oprete dac nu mai pot fi generai ali candidai i toi candidaii au fost calculai pe ntreaga baz
12

Data Mining
de date. ntr-adevr, aceast metod reduce drastic numrul de parcurgeri ale bazei de date, dar
performanele sale depind de distribuia datelor.
Algoritmul CARMA (Continuous Association Rule Mining Algorithm) propus de Hidber,
folosete o tehnic similar, reducnd mrimea intervalului la 1. Mai precis, mulimile de articole
candidat sunt generate pentru fiecare tranzacie. Dup citirea unei tranzacii, se incrementeaz
suportul tuturor mulimilor de articole candidat coninute de acea tranzacie i se genereaz o nou
mulime de articole candidat dac toate submulimile sale sunt suspectate a fi relativ frecvente n
ceea ce privete numrul de tranzacii ce au fost deja procesate. Ca i consecin, CARMA
genereaz mult mai multe mulimi de articole candidat dect Apriori sau DIC. n plus, CARMA
permite utilizatorului s modifice pragul minim de suport n timpul execuiei algoritmului. Dup ce
baza de date a fost procesat o dat, CARMA garanteaz c a fost generat o super mulime a
tuturor mulimilor frecvente de articole relativ la pragul stabilit, care depinde de modul n care
utilizatorul a schimbat pragul minim de suport n timpul execuiei. Cnd pragul minim de suport a
fost meninut fix pe ntreaga execuie a algoritmului, au fost generate toate mulimile frecvente de
articole. Pentru a determina suportul exact al tuturor mulimilor de articole generate, este necesar o
a doua parcurgere a bazei de date.
Sarasere mparte baza de date n n partiii i mulimile frecvente de articole sunt calculate i
testate doar dac sunt globale (se regsesc n toate partiiile). Apoi regulile de asociere sunt generate
n consecin. Algoritmul este cunoscut sub numele Partition. Pentru nceput, baza de date original
este mprit logic n n partiii distincte i n fiecare partiie sunt cutate mulimile frecvente de
articole, iar apoi acestea sunt interclasate pentru a gsi mulimi frecvente globale posibile. Apoi
aceste mulimi posibile sunt numrate n toat baza de date pentru a se verifica dac sunt ntr-adevr
mulimi frecvente de articole ale bazei de date. Ideea depinde de urmtoarele aspecte: este greu s
gsim mulimile frecvente de articole n ntreaga baz de date, dar dac avem mulimi frecvente de
articole posibile, atunci este uor s le verificm n ntraga baz de date.
Baza de date este stocat n memoria principal folosind modelul vertical al bazei de date,
iar suportul unei mulimi de articole este calculat intersectnd frontierele a dou din submulimile
sale. Mai clar, pentru fiecare articole frecvent argoritmul memoreaz frontiera sa. Pentru a calcula
suportul unei k-mulimi de articole candidat I, care este generat prin reuniunea a dou din
submulimile sale X i Y, se intersecteaz frontierele lui X i Y, rezultnd frontiera lui I.
Stocarea frontierelor tuturor mulimilor de articole nseamn c toat baza de date este citit
n memoria principal. Pentru baze de date mari, acest lucru este imposibil. Din aceast cauz,
algoritmul Partition mparte baza de date n cele n partiii. Pseudocodul este prezentat n listingul 4.
Listingul 4. Algoritmul Partition Explorarea mulimilor locale
13

Data Mining
Input: D, minsupp
Output: F
Compute F1 and store with every frequent item its cover;
k=2;
while Fk-1{} do{
Fk={};
forall X , Y Fk 1 , X [i ] Y [i ] for 1 i k 2 , and X [k 1] Y [ k 1] {
I { X [1],..., X [ k 1], Y [ k 1]} ;
if( J I : J Fk 1 ){
I.cover=X.cover Y.cover;
if(|I.cover | minsupp)
Fk Fk I ;
}
}
k++;
}

Algoritmul intersecteaz toate mulimile relativ frecvente ale fiecrei partiii. Rezultatul este
o supermulime care conine toate mulimile frecvente de articole din toat baza de date, deoarece o
mulime de articole care este frecvent n toat baza de date trebuie s fie relativ frecvent n una
din partiii. Apoi, suportul tuturor mulimilor de articole este calculat efectundu-se o a doua
parcurgere a bazei de date. Din nou, fiecare partiie a bazei de date este citit n memoria principal
folosindu-se modelul vertical al bazei de date i suportul fiecrei mulimi de articole este calculat
prin intersecia frontierelor tuturor articolelor care apar n acea mulime. Algoritmul Partition este
prezentat n listingul 5.
Listingul 5. Algoritmul Partition
Input: D, minsupp
Output: F
Partition D in D1,...,Dn;
//Find all local frequent itemsets
for ( 1 p n )
Compute C p F ( D p ) ;
//Merge all local frequent itemsets
C global

C ;
p

1 p n

//Compute actual support of all itemsets


for ( 1 p n ){
Generate cover of each item in Dp;
forall( I C global )
I.support=I.support+|I[1].cover ... I[|I|].cover|;
}
//Extract all global frequent itemsets
F {I C global | I .support minsupp}

Dei frontierele tuturor articolelor pot fi stocate n memoria principal, n timpul generrii
tuturor mulimilor frecvente de articole locale pentru fiecare partiie, este posibil ca frontierele
14

Data Mining
tuturor k-mulimilor de articole candidat locale s nu poat fi stocate n memoria principal. De
asemenea, algoritmul este foarte dependent de eterogenitatea bazei de date i poate genera prea
multe mulimi frecvente locale, rezultnd o scdere semnificativ a performanelor algoritmului. Cu
toate acestea, dac baza de date se poate ncrca n memoria principal i toate frontierele fiecrei
iteraii nu depesc limitele memoriei principale, se poate ca baza de date s fie doar parial
partiionat i performanele algoritmului Apriori s fie surclasate prin mai multe ordine de mrime.
Desigur, aceasta se datoreaz n principal mecanismului de numrare bazat pe interseciile rapide
ale frontierelor.

15

S-ar putea să vă placă și

  • Analiza Datelor SPSS
    Analiza Datelor SPSS
    Document68 pagini
    Analiza Datelor SPSS
    Ioana Mihaela
    Încă nu există evaluări
  • Soo
    Soo
    Document1 pagină
    Soo
    Yon-el Florin
    Încă nu există evaluări
  • Soo
    Soo
    Document1 pagină
    Soo
    Yon-el Florin
    Încă nu există evaluări
  • Impulsul
    Impulsul
    Document12 pagini
    Impulsul
    Yon-el Florin
    50% (2)
  • Impulsul
    Impulsul
    Document12 pagini
    Impulsul
    Yon-el Florin
    50% (2)