Sunteți pe pagina 1din 17

Universitat

ea
Politehnica
Bucureti

Facultatea
de
Automatic
i
Calculatoar
e

Departamen
tul de
Calculatoare

Proiect Data mining i Data


Warehousing
Algoritmul FP-Growth

Student: Vlada Emanuel George


Seria: SSA, an I

Curpins
Introducere.............................................................................................................................................1
De la Apriori la FP-Growth....................................................................................................................2
Proiectarea i construirea arborelui tiparelor frecvente (FPTree)..........................................................4
FP-Growth..............................................................................................................................................7
WEKA..................................................................................................................................................11
Partea experimental............................................................................................................................11
Concluzii..............................................................................................................................................14
Bibliografie..........................................................................................................................................15

Introducere
Extragerea tiparelor frecvente din bazele de date tranzacionale, i multe alte tipuri de baze de
date, este un domeniu larg studiat de cercettorii data mining deoarece aceasta joac un rol important
n extragerea regulilor de asociere i a multor altor activiti importante din domeniul extragerii
datelor.
Problema se pune astfel :
Fie o mulime de articole
t i (i [ 1, N ] )

este o tranzacie i

I ={i 1 , , i n } , o baz de date


t i I . Fiecare subset al lui

(itemset). Dac un articolset contine k

D={t 1 , ,t n } , unde
I

se numeste articolset

articole (itemi), el se numete k-articolset (k itemset ) .

Suportul unui articolset l este definit ca fiind procentul de tranzacii ale bazei de date
conin articolset-ul

care

suport ( l )= {t |t D l t }/ D . Dac suportul unui articolset depete

un prag specificat anterior al suportului minim, atunci articolset-ul este denumit articolset (itemset)
frecvent sau tipar frecvent.
Scopul problemei de extragere a tiparelor frecvente este de a gsi toate tiparele frecvente ntro baz de date tranzactional dat cu un prag al suportului minim dat. Seturile de date ob inute
fcnd aceasta n anumite domenii pot fi foarte mari i pot conine tipare foarte lungi, ceea ce duce la
un numr enorm de tipare. Motivul este acela c fiind dat un set frecvent
subseturile sale sunt frecvente, numrul lor fiind

- articolset, toate

k
2 1 . Orice algoritm care genereaz setul

complet de tipare frecvente prezint dezavantajul c genereaz o mulime de tipare scurte, n


majoritate nefolositoare pentru utilizatori.
elurile principale ale procesului de extragere a tiparelor frecvente sunt:
a) Reducerea timpului de parcurgere a bazelor de date, tiind c majoritatea acestora sunt prea
mari pentru a ncape n memoria principal iar citirea lor de pe disc este foarte costisitoare.
b) Reducerea spaiului de cutate, stiind c fiecare subset a lui I poate fi frecvent, iar
numrul acestora crete exponenial cu numrul de itemset-uri din

I .

c) Calcularea eficient a suportului, parcurgerea tuturor subset-urilor este destul de costisitor


tinnd cont de dimensiunea mare a bazelor de date i de numrul mare de itemset-uri posibil
frecvente.

De la Apriori la FP-Growth
n ultimii ani au fost dezvoltai mai multi algoritmi destul de eficien i pentru extragerea
tiparelor frecvente. Cei mai multi dintre acestia au curat spaiul de cutare avnd la baz
proprietatea APRIORI: dac un articolset nu este frecvent, nici unul dintre superset-urile sale nu
poate fi frecvent. Multe dintre studiile anterioare au adoptat o tehnic bazat pe algoritmul APRIORI.
Au fost propuse dou abordri: generarea i testarea candidailor i creterea tiparelor. Ultima
s-a dovedit a fi mult superioar celei dinti, mai ales n cazul seturilor de date mari. Ambele abordri
au fost implementate ntr-o manier iterativ. Prima, genereaz toate seturile de dimensiune 1 (1itemsets). La fiecare pas al iteraiei se formeaz perechi de k-itemset-uri pentru a forma seturi de
dimensiune

k +1

suportul candidatului

( ( k +1 ) itemseturi ) . Apoi este parcurs baza de date pentru a verifica


( k +1 )itemset

( k +1 )itemset

iar setul frecvent rezultat

va fi folosit ca

i intrare pentru urmtoarea iteratie.


Spre deosebire de aceast abordare, a doua, creterea tiparului evit generarea i testarea
candidailor crescnd articolset-ul frecvent folosind prefix-ul su. Se construieste o baz de date
condiional pentru fiecare itemset frecvent
pot fi examinate folosind

D l . Toate tiparele care au prefixul

l , notat

D l fr a accesa alte informaii.

Ideea esenial a acestuia este de a genera iterativ un set de tipare candidat de lungime

( k +1 )

dintr-un set de tipare frecvente de lungime

(pentru

k 1 ) i verificarea apoi a

frecvenei de apariie a acestora n baza de date. Aceast metod este bazat pe o euristic APRIORI
anti-monoton formulat astfel: Dac orice tipar de lungime

nu este frecvent n baza de date,

atunci super-tiparul su de lungime ( k +1 ) nu poate fi niciodat frecvent.


Generarea unui set mare de tipare candidat, s-ar putea mbunati substanial performan a
acestei metode. Aceasta problem a fost abordat de prin trei aspecte:

n primul rnd este creat o structur nou de date, numit arbore de tipare frecvente
frequent pattern tree, pe scurt FP-Tree, care este o structur de arbore-prefix extins, coninnd
informaii cruciale, cantitative despre tiparele frecvente. Pentru asigura structura compact a
arborelui, vor exista noduri doar pentru articolele frecvente de lungime

l , nodurile fiind aranjate

astfel nct nodurile cu apariii mai frecvente vor avea o probabilitate mai ridicat n a partaja noduri
dect cele mai putin frecvente.
n al doilea rnd, este dezvoltat o metod de cretere a unui fragment de tipar, bazat pe FPTree, care pornete de la un tipar frecvent de lungime 1 (ca i un tipar sufix iniial), examineaz doar
baza sa condiional de tipare (o sub-baz de date care const din setul de articole frecvente care apar
mpreun cu tiparul sufix), construieste FP-Tree-ul su condiional i efectueaz extragerea n mod
recursiv pe acesta. Creterea tiparului este realizat prin concatenarea tiparului sufix cu noile tipare
generate din FP-Tree-ul condiional. Deoarece setul de articole frecvente din oricare tranzactie este
ntotdeauna codat n calea corespunzatoare arborilor FP, creterea tiparelor asigur complexitatea
rezultatului. n acest context, metoda nu este gen APRIORI, adic nu se realizeaz o generare i
verificare restricionat ci doar o verificare restricionat. Operaiile importante ale extragerii sunt
acumularea de frecvene i ajustarea contoarelor pe cile prefix, care sunt n general mult mai
economice dect operaiile de generare de candidai i cele de potrivire de tipare efectuate n
majoritatea algoritmilor de tip APRIORI.
n al treilea rnd, tehnica de cutare folosit n extragere este bazat pe partiionare, o metod
mai degrab tip divide i cucereste (divide et impera) dect tip APRIORI, generare de jos n sus a
combinaiilor de seturi de articole frecvente. Aceasta reduce n mod drastic dimensiunea bazei de
date conditionale generate la fiecare nivel de cautare ca i de altfel dimensiunea arborelui conditional
corespunzator. Mai mult, transform problema gsirii unor tipare frecvente lungi, n cutarea unora
mai scurte i apoi a concatenrii sufixurilor. Se folosesc cele mai putin frecvente articole ca i
sufixuri, ceea ce ofer o selectivitate bun. Toate aceste tehnici contribuie la reducerea substan ial a
costurilor de cautare.

Proiectarea i construirea arborelui tiparelor frecvente


(FPTree)
Fie

I ={i 1 ,i 2 , , i m }

tranzacional, unde

un set de articole (itemi), i

T i (i [ 1 n ] )

D={T 1 ,T 2 , ,T n }

o baz de date

este o tranzacie care conine un set de articole din I. Suportul

(sau frecvena de apariie) a unui tipar


numrul de tranzacii din baza de date

A , care este un set de articole, se definete ca fiind


D

care l conine pe

A .

este un tipar frecvent

dac suportul su nu este mai mic dect un prag suport minim predefinit minsup.
D

Fiind dat o baz de date tranzacional

i un prag suport minim, problema gsirii

setului complet de tipare frecvente este denumit problema extragerii tiparelor frecvente.
Un arbore de tipare frecvente (FP-Tree) este un arbore cu structura definit astfel:
1. Arborele are un nod radacin etichetat root, un set de subarbori prefix de articole ca i fii ai
rdcinii i o tabela antet pentru articolele frecvente.
2. fiecare nod din subarborele prefix de articole const din trei cmpuri: nume-articol, contor i
nlanuire-nod, unde:
a. nume-articol se refer la articolul pe care acest nod l reprezint,
b. contor nregistreaz numrul de tranzacii reprezentate de poriunea cii
care ajunge la acel nod,
c. nlanuire-nod face legtura la urmatorul nod din FP-Tree care se refer la
acelai articol sau conine NULL dac nu mai exist un alt astfel de nod.
3. Fiecare intrare n tabela antet pentru articole frecvente const din dou cmpuri (1) numearticol i (2) capul listei care pointeaz spre primul nod din FP-Tree care se refer la numearticol.
Pe baza acestei definiii, algoritmul de construcie a arborelui FP-Tree este urmtorul:

D i suportul minim s ;

Intrare: Baza de date tranzactional

Iesire: Arborele tiparelor frecvente corespunzator (FP-Tree);


Metoda:
Arborele FP-Tree este construit n urmtorii pai:
1. Se scaneaz baza de date D.
Se colecteaza setul de articole frecvente

i suportul

corespunztor acestora.
Se sorteaza

n ordinea descrescatoare a suportului n lista

articolelor frecvente

2. Se creeaz nodul rdcin al arborelui FP-Tree,

T , i se

eticheteaz cu root. Pentru fiecare tranzacie Trans din

se

efectueaz urmtoarele operaii:


a. Se selecteaz i se ordoneaz articolele din Trans conform
ordonrii lui

L , adic n ordine descrescatoare a

suportului.
b. Fie lista articolelor frecvente din Trans

[ pP ] , unde

p este primul element iar P este restul listei.


c. Se apeleaz funcia insert_tree ( [ pP ] ,T ) . Funcia

insert_tree se executa astfel: dac

N ,

are un fiu

astfel nct N.nume-articol = p.nume-articol, atunci se


incrementeaz contorul lui

cu 1; altfel se creeaz un

nou nod, cu contorul iniializat pe 1, printele

nlanuire-nod va fi nlnuit cu nodurile avnd acelai


nume-articol. Daca

nu este goal, se apeleaz n mod

recursiv insert_tree(P, T).


Fig. 1. Algoritmul de construire a arborelui FP-Tree
Analiznd procesul de construire a arborelui FP-Tree se poate observa c sunt necesare exact
dou scanri complete a bazei de date

D . Prima scanare colecteaz articolele frecvente, iar a doua

scanare construiete arborele FP-Tree. Costul inserrii unei tranzacii Trans n arbore este
O (|Trans|) unde |Trans| , este numrul de articole frecvente n Trans.

Pe baza procesului de construcie a arborelui FP-Tree, fiecare tranzacie din

este

mapat pe o cale din arbore, iar informaia despre tiparele frecvente din fiecare tranzacie este stocat
6

complet n arbore. Mai mult, o cale din FP-Tree poate reprezenta tipare frecvente din mai multe
tranzacii fr nici o ambiguitate, deoarece calea ce reprezint fiecare tranzac ie trebuie s porneasc
de la nodul radacin a fiecrui subarbore prefix.
Pe baza procesului de construcie a arborelui FP-Tree, pentru orice tranzacie T

din

D ,

exist o cale n arbore care ncepe de la subarborele prefix corespunztor astfel nct setul nodurilor
din cale este exact acelai ca i setul articolelor frecvente din

T . Deoarece nici un articol frecvent

din nici o tranzacie nu poate crea mai mult de un singur nod n arbore, rdcina fiind singurul nod
necreat de o inserie de articol frecvent, i fiecare nod conine o legatur i un contor, de aici avem
limita asupra imensiunii arborelui. naltimea oricrui subarbore

p prefix

este numrul maxim de

articole frecvente. Astfel, nalimea unui arbore este limitat de numrul maxim de articole frecvente
din oricare tranzacie n baza de date, asta cu condiia s nu considerm nivelul suplimentar adugat
de radcin.
Unul din beneficiile importante aduse de FP-Tree: dimensiunea unui arbore FP-Tree este
limitat de dimensiunea bazei de date corespunztoare deoarece fiecare tranzacie va contribui cu cel
mult o cale la arborele FP-Tree, cu lungimea egal cu numrul de articole frecvente din acea
tranzacie.
Deoarece exist de multe ori mai multe partajri ale articolelor frecvente ntre tranzac ii,
dimensiunea arborelui este de cele mai multe ori mult mai mic dect aceea a bazei de date originale.
Spre deosebire de metodele de tip APRIORI, care pot genera un numr exponenial de
candidai n cel mai rau caz, n nici un caz, nu va fi generat un arbore FP-Tree cu un numar
exponenial de noduri. FP-Tree este o structur foarte compact, care stocheaz informaia pentru
extragerea

tiparelor

frecvente.

{a} rsub {1} {a} rsub {2} {a} rsub {k}

Deoarece
pentru orice

cale

1 k n , dimensiunea

arborelui FP-Tree este substanial mai mic dect dimensiunea bazei de date i dect dimensiunea
setului de candidai generai pe parcursul extragerii regulilor de asociere.
Articolele din setul frecvent de articole sunt ordonate descresctor n funcie de suportul lor.
Articolele care apar mai frecvent sunt aranjate mai aproape de vrful arborelui FP-Tree i astfel au o
probabilitate mai mare de a fi partajate. Aceasta indic faptul c structura FP-Tree este n general
foarte compact. Experimentele arat, de asemenea, c rezult un arbore FP-Tree destul de mic prin
comprimarea unei baze de date destul de mari.
7

FP-Growth
Metoda numit FP-Growth (Frequent Pattern Growth) propus de J. Han, J. Pei i Y. Yin,
extrage tipare frecvente far a genera candidai. Metoda adopt tehnica divide et impera pentru
proiectarea i partiionarea bazei de date pe baza tiparelor frecvente descoperite i crete aceste tipare
la dimensiunea bazei de date proiectate. Mai mult, au fost dezvoltate structuri de date eficiente
pentru o comprimare efectiv a bazei de date i o traversare rapid n memorie. O astfel de
metodologie poate elimina sau reduce substanial numrul de seturi de candida i care sunt generate i
poate reduce de asemenea numrul de examinri iterative ale bazei de date, conducnd astfel la o
performan mult mai bun.
Metoda FP-Growth este folosit pentru baze de date de dimensiuni mari i utilizeaz
structura de date compact, de tip arbore FP-Tree, pentru a reprezenta datele n memoria
calculatorului. Operaia principal de extragere a tiparelor frecvente din baza de date se va reduce, n
acest caz, la parcurgerea acestui arbore i extragerea tiparelor frecvente din aceast structur
compact. Asadar, metoda realizeaz creterea numrului tiparelor frecvente datorit a doi factori:
este necesar s examinm doar o parte a bazei de date i datele pot fi organizate n structuri compacte
care faciliteaz creterea numrului de tipare frecvente controlat.
Construcia unui arbore FP-Tree compact asigur faptul c extragerile ulterioare pot fi
efectuate folosind o structur destul de compact. Cu toate acestea, nu este garantat n mod automat
faptul ca procesul va fi foarte eficient, deoarece putem totui ntlni problema combinatoric a
generrii candidailor dac folosim aceast structur pentru generarea i verificarea tuturor tiparelor
candidat.
n continuare se prezint modul de explorare a informaiilor compacte stocate n arborele FPTree i o metod eficient de extragere a setului complet de tipare frecvente. Structura FP-Tree are
cteva proprieti interesante care faciliteaz extragerea tiparelor frecvente:
Proprietatea 1. (Proprietatea legturii nodului) Pentru orice articol frecvent
tiparele frecvente posibile care l contin pe

ai

ai , toate

pot fi obtinue prin urmrirea legturilor nodurilor

care conin pe ai , ncepnd de la intrarea corespunzatoare ai

din tabela antet.

Aceast proprietate se bazeaz direct pe procesul de construcie al arborelui FP-Tree. Acesta


ai , prin traversarea arborelui FP-tree,

faciliteaz accesul tuturor informaiilor tiparelor legate de


urmarind legaturile nodurilor ai .

Proprietatea 2. (Proprietatea cii prefix) Pentru a calcula tiparele frecvente pentru un nod
ai

din calea

P , trebuie s se cumuleze doar sub-calea prefix

nodului ai

din O, fiecare

nod din aceast sub-cale ar trebui s poarte aceeai frecven ca i nodul ai .


Fie nodurile de-a lungul cii
a1

este rdcina sub-arborelui prefix,

etichetate cu
an

a1 , a2 , , an

ntr-o ordine astfel nct

este frunza a sub-arborelui

ai (1 i n)

este nodul referit. Bazndu-ne pe procesul de construcie a arborelui prezentat n algoritmul FP-Tree,
ak (1 k i) , sub-calea prefix a nodului

pentru fiecare nod prefix


cu ak

exact de

ai

din

apare mpreun

ai . count ori. Aadar, orice astfel de nod prefix ar trebui s aib aceeai valoare

a contorului ca i nodul ai . De notat faptul c un nod postfix


ci apare de asemenea mpreun cu nodul

ai . Cu toate acestea tiparele cu

am

vor fi generate la

am , incluzndu-le aici ar conduce la generarea redundant de tipare

examinarea nodului postfix


care ar fi generate pentru

am (1 n m) de-a lungul aceleai

am . Aadar, trebuie s examinm doar sub-calea prefix a lui

ai

din

P .
Pe baza acestei proprieti, sub-calea prefix a nodului

ai din calea

poate fi copiat i

transformat ntr-o sub-cale prefix a frecvenelor ajustate, prin ajustarea frecventelor fiecrui nod din
ai . Astfel, aceast transformare este numit

calea sub-prefix la aceeai frecven ca i a nodului


transformarea cii prefix a lui ai pentru calea
Setul de transformri a cii prefix a lui
Astfel, o baz de tipare a lui
astfel pattern base |

P .

ai

formeaz o baz de date de tipare a lui

ai este numit baz condiional de tipare a lui

ai .

ai i este notat

ai . Dup aceea se pot calcula toate tiparele frecvente asociate cu ai n

aceast baz condiional de tipare a lui

ai prin crearea unui arbore mic FP-Tree, numit FP-Tree

condiional a lui ai .
Pe baza celor artate mai sus, mai jos, este prezentat algoritmul FP-Growth pentru extragerea
tiparelor frecvente utiliznd arborele FP-Tree prin creterea fragmentelor de tipare.
9

Intrare: Arborele tiparelor frecvente construit pe baza algoritmului FPTree utiliznd baza de date

D i un suport minim s ;

Ieire: Setul complet de tipare frecvente;


Metoda: Apelul funciei FP-Growth (FP-Tree, NULL)
Procedure FP-Growth (Tree, )
{
(1) if Tree conine o singur cale

(2) then for each combinaie (notata cu


calea

) a nodurilor din

P do
(3) genereaz tiparele

al nodurilor din

cu support = suportul minim

(4) else for each ai


(5) genereaz tiparele

din tabela antet Tree do {


=ai

cu support = ai

.support;
(6) construiete baza condiional de tipare a lui
(7) arboele FP-Tree condiional a lui

i apoi

, notat Tree ;

(8) if Tree =
(9) then call FP-Growth ( Tree , )
}
}
Fig. 2. Algoritmul FP-Growth
Se observ c algoritmul FP Growth descoper setul complet de itemset-uri frecvente din
baza de date tranzacional

D .

Arborele FP-Tree al bazei de date D, conine informaiile complete ale bazei de date legate de
extragerea tiparelor frecvente care au suportul peste pragul minsup. Dac arborele conine o singur
cale, tiparele generate sunt combinaii ale nodurilor din cale, iar suportul este suportul minim al
nodurilor din sub-cai. Aceasta se realizeaz n liniile (1) (3) ale procedurii FP-Growth. Altfel, se
construiete baza condiional de tipare i se exploreaz arborele FP-Tree condiional pentru fiecare
itemset frecvent

ai . n conformitate cu proprietatea de cretere a fragmentelor, suportul

fragmentelor se ia ca fiind suportul itemset-urilor frecvente generate din baza condiional de tipare.
10

Procesul de explorare bazat pe algoritmul FP-Growth scaneaz arborele FP-Tree al bazei de


date

o dat i genereaz o baz de tipare mic pentru fiecare articol frecvent

constnd din seturi de ci prefix transformate ale lui

ai , fiecare

ai . Extragerea tiparelor frecvente este apoi

executat recursiv pe baza de tipare mic cu construirea unui arbore FP-Tree conditional.

WEKA
Weka este o colecie de algoritmi de nvare pentru data mining. Algoritmii pot fi aplica i fie
direct pe un set de date sau folosii chiar din codul Java. Weka contine instrumente pentru
preprocesarea datelor, clasificare, regresie, reguli de asociere i pentru vizualizare. De asemenea, este
potrivit pentru dezvoltarea de noi scheme de invatare.

Fig. 3. Weka Privire general


Weka este utilizat n cercetare, educaie i n cadrul aplicaiilor. Aplicaia nsumeaz un set
vast de instrumente de preprocesare a datelor, algoritmi de invare i metode de evaluare, interfee
grafice utilizator (incluznd vizualizarea datelor) i un mediu pentru compararea algoritmilor de
nvare.

11

Partea experimental
Cu ajutorul Weka se vor testa algoritmii FP-Growth i Apriori.
Formatul de date: setul de date pentru WEKA este formatat n concordant cu formatul arff.
n cazul de fa, vom utiliza fiierele supermarket.arff, supermarket2.arff, supermarket3.arff,
supermarket4.arff i supermarket5.arff. Fiecare fiier conine cte un set de date diferit, dar acela
numr de atribute (217) pentru a se putea vedea o diferen a rezultatelor n timp a celor doi
algorimi. Prin urmare fiierele mai sus menionate vor fi drept fisiere pentru antrenare pentru a
construi modelele de clasificare.
Set nr.
1

Tranzacii
4627

1
2
3
4
5

4275
3873
3424
3063

Fig. 4. Seturile de date pregtite pentru antrenare


Se alege primul set de date i se selecteaz algoritmul FP-Growth, se antreneaz setul de date
dup care se repeta aceeai operaie i pentru Apriori.

Fig. 5 Primul set de date

12

Se selecteaz parametrii i se ncepe antrenarea primului se de date, dup care se noateaz


rezultatele i timpul.
Paramentrii care trebuie setai sunt urmtorii:
delta: decrementarea iterativ a suportului cu acest factor. Reduce suportul pn este atins
minimul suport sau numrul cerut de reguli este generat.
findAllRulesForSupportLevel: Gsete toate regulile care ndeplinesc limita inferioar pe
suportul minim i constrngerea metric minim. Pornind acest modul, se va dezactiva procedura de
reducie suport iterativ pentru a gsi numrul specificat de reguli.
lowerBoundMinSuooport: limita inferioar pentru suportul minim ca fracie sau numr de
instane.
maxNumerOfltems: numrul maxim de itemi.
metricType: seteaz tipul metric prin care se definesc "rank rules". Aceasta este o msurare a
importanei asocierii care este independet de suport.
minMetric: scor nimim metric. Se iau n considerare doar regulile cu scor mai mare dect
aceast valoare.
numRulesToFind: numrul de reguli la ieire.
positivelndex: seteaz indexul de atribute binare evaluate.
rulesMustContain: se iau n considerare numai regulile care conin aceti itemi.
TransactionsMustContain: limita la intrare ctre FP-Growth la aceste tranzacii care conin
acesti itemi.
upperBoundMinSupport: limita superioar pentru minumul suport ca fracie sau numr de
instane.
useORForMustContainList: se folosete OR n loc de AND pentru trazacii/reguli care
trebuie s conina liste.
Rezultatele furnizare de ambii algoritmi sunt acelea, ns timpul nu:

13

50
45
40
35
30
Timp(s) 25
20

Apriori
FP-Growth

15
10
5
0

Set de date (Nr.)

Fig. 6. Timpul n care algoritmii au gsit tiparele frecvente


Rezultate:
1. [fruit=t, frozen foods=t, biscuits=t, total=high]: 788
2. [fruit=t, baking needs=t, biscuits=t, total=high]: 760
3. [fruit=t, baking needs=t, frozen foods=t, total=high]: 770
4. [fruit=t, vegetables=t, biscuits=t, total=high]: 815
5. [fruit=t, party snack foods=t, total=high]: 854
6. [vegetables=t, frozen foods=t, biscuits=t, total=high]: 797
7. [vegetables=t, baking needs=t, biscuits=t, total=high]: 772
8. [fruit=t, biscuits=t, total=high]: 954 ==> [bread and cake=t]: 866
9. [fruit=t, vegetables=t, frozen foods=t, total=high]: 834
10. [fruit=t, frozen foods=t, total=high]: 969

14

Concluzii
n bazele de date de mari dimensiuni regulile de asociere joac un rol important pentru
extragerea de noi informaii. Pentru obtinerea regulilor de asociere trebuie generate seturile cele mai
frecvente.
Cei mai comuni algoritmi sunt: Apriori i FP growth.
-

Apriori genereaz att cele mai frecvente seturi dar i regulile de asociere.

FP-Growth genereaz cele mai frecvente seturi de date care sunt ulterior utilizate
pentru generarea regulilor de asociere.

Performanele atinse de euristica APRIORI sunt destul de bune datorit reducerii


semnificative a dimensiunii seturilor de candidai. Cu toate acestea, n cazul n care exist multe
tipare frecvente, tipare lungi sau praguri de suport minim foarte joase, algoritmii bazai pe APRIORI
pot ntmpina dou situatii costisitoare:
-

Manipularea unui numr mare de seturi de candidai este foarte costisitoare. Astfel, dac
exist

10

seturi de articole frecvente de lungime

1 ,

(1articolseturi) , algoritmul

APRIORI va trebui s genereze mai mult de 107 candidai de lungime 2 i s acumuleze i


s verifice frecvenele de apariie ale acestora. Mai mult, pentru a extrage un tipar frecvent de
lungime 100, cum ar fi
-

(a1 , a2 , , a100 ) , trebuie s genereze n total mai mult de

100
3
2 10 candidai.
Scanarea repetat a bazei de date este destul de greoaie, ca i verificarea unui numr mare de

candidai prin potrivire de tipare, n special pentru extragerea tiparelor lungi (pentru un tipar
de lungime n este necesar scanarea de n+1 ori a bazei de date).
Dup o examinare atent, am ajuns la concluzia c principalele probleme ale metodei
APRIORI apar la generarea setului de candidai i la testarea acestuia. Astfel, evitnd generarea unui
set mare de tipare candidat, s-ar putea mbunati substanial performana acestei metode. Prin
urmare, algoritmul FP-Growth este mai eficient decat Algoritmul Apriori.

15

Bibliografie
1. Algoritmi Data Mining pentru determinarea frecvenei de apariie a seturilor de date:
http://en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Frequent_Pattern_Mining/The_
FP-Growth_Algorithm
2. Florian Verhein, Frequent Pattern Growth (FP-Growth) Algorithm, 2008Algoritmul FP
growth https://dspace.ist.utl.pt/bitstream/2295/55705/1/licao_10.pdf

3. Alexandrina Mirela Pater, Contribuii la dezvoltarea algoritmilor de extragere a datelor din


bazele de date multi-nivel, 2008, p:85-100.

16

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