Documente Academic
Documente Profesional
Documente Cultură
DMDW
DMDW
ea
Politehnica
Bucureti
Facultatea
de
Automatic
i
Calculatoar
e
Departamen
tul de
Calculatoare
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
D={t 1 , ,t n } , unde
I
se numeste articolset
Suportul unui articolset l este definit ca fiind procentul de tranzacii ale bazei de date
conin articolset-ul
care
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
I .
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 )itemset
va fi folosit ca
l , notat
Ideea esenial a acestuia este de a genera iterativ un set de tipare candidat de lungime
( k +1 )
(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
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
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.
I ={i 1 ,i 2 , , i m }
tranzacional, unde
T i (i [ 1 n ] )
D={T 1 ,T 2 , ,T n }
o baz de date
care l conine pe
A .
dac suportul su nu este mai mic dect un prag suport minim predefinit minsup.
D
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 ;
i suportul
corespunztor acestora.
Se sorteaza
articolelor frecvente
T , i se
se
suportului.
b. Fie lista articolelor frecvente din Trans
[ pP ] , unde
N ,
are un fiu
cu 1; altfel se creeaz un
scanare construiete arborele FP-Tree. Costul inserrii unei tranzacii Trans n arbore este
O (|Trans|) unde |Trans| , este numrul de articole frecvente n Trans.
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
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
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.
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
Proprietatea 2. (Proprietatea cii prefix) Pentru a calcula tiparele frecvente pentru un nod
ai
din calea
nodului ai
din O, fiecare
etichetate cu
an
a1 , a2 , , an
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
exact de
ai
din
apare mpreun
ai . count ori. Aadar, orice astfel de nod prefix ar trebui s aib aceeai valoare
am
vor fi generate la
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
P .
ai
ai .
ai i este notat
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 ;
) a nodurilor din
P do
(3) genereaz tiparele
al nodurilor din
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
fragmentelor se ia ca fiind suportul itemset-urilor frecvente generate din baza condiional de tipare.
10
ai , fiecare
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.
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
12
13
50
45
40
35
30
Timp(s) 25
20
Apriori
FP-Growth
15
10
5
0
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.
Manipularea unui numr mare de seturi de candidai este foarte costisitoare. Astfel, dac
exist
10
1 ,
(1articolseturi) , algoritmul
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
16