Sunteți pe pagina 1din 195

UNIVERSITATEA POLITEHNICA TIMIOARA

FACULTATEA DE AUTOMATIC I CALCULATOARE








Ing. ALEXANDRINA MIRELA PATER



TEZ DE DOCTORAT







Conductor tiinific:
Prof. Univ. Dr. Ing. IONEL JIAN





TIMIOARA
-2006-
2
ING. ALEXANDRINA MIRELA PATER









CONTRIBUII LA DEZVOLTAREA
ALGORTIMILOR DE EXTRAGERE
A DATELOR DIN BAZELE DE
DATE MULTI-NIVEL















Conductor tiinific:
Prof. Univ. Dr. Ing. IONEL JIAN
3
CUPRINS
1. INTRODUCERE ..................................................................................................... 13
1.2. Descoperirea cunotinelor i Data Mining ........................................................... 13
1.3. Model Data Mining ................................................................................................. 17
1.4. Cerinele i provocrile extragerii de date .............................................................20
1.5. Extragerea de date privit din perspectiva bazelor de date ................................ 22
2. TEHNICI DE EXTRAGERE DE DATE (DATA MINING) .............................. 26
2.1. Noiuni de baz ........................................................................................................ 26
2.2. Clasificarea i regresia ............................................................................................ 27
2.2.1. Clasificarea bazat pe arbori de decizie ............................................................... 28
2.2.1.1.Definiie .................................................................................................................. 28
2.2.1.2.Inducia arborelui de decizie .................................................................................. 30
2.2.1.3.Extragerea regulilor din arbore ............................................................................. 32
2.2.1.4.Algoritmi de decizie ................................................................................................ 33
2.2.1.5.Avantajele i dezavantajele arborilor de decizie ................................................... 35
2.2.2. Reele neuronale .................................................................................................... 36
2.2.2.1.Avantaje i dezavantaje ale reelelor neuronale .................................................... 38
2.2.3. Algoritmul celor mai apropiai k vecini (k-nearest neighbors) ........................... 39
2.2.3.1.Avantaje i dezavantaje ale algoritmului k-NN ...................................................... 40
2.3. Gruparea .................................................................................................................. 41
2.3.1. Algoritmi bazai pe msuri de similaritate ............................................................ 43
2.3.2. Algoritmi cu reele neuronale ............................................................................... 46
2.3.2.1.Avantaje i dezavantaje ale metodei SOM ............................................................. 48
2.4. Alte tehnici Data Mining ......................................................................................... 48
2.5. Concluzii ................................................................................................................... 48
3. DESCOPERIREA REGULILOR DE ASOCIERE ............................................. 50
3.1. Definiii i terminologie ........................................................................................... 50
3.2. Descoperirea seturilor frecvente de articole (large itemsets) .............................. 55
3.3. Algoritmi pentru descoperirea regulilor de asociere ........................................... 58
3.3.1. Definirea problemei ............................................................................................... 59
3.3.2. Algoritmul APRIORI ............................................................................................. 60
3.3.2.1.Funcia AprioriGen ................................................................................................ 61
3.3.2.2.Funcia Subset ........................................................................................................ 62
4
3.3.2.3.Avantaje i dezavantaje ale algoritmului APRIORI ............................................... 63
3.3.3. Algoritmul SAMPLING (de eantionare) ............................................................. 63
3.3.3.1.Exemplu de aplicare ............................................................................................... 66
3.3.3.2.Avantaje i dezavantaje ale algoritmului SAMPLING ........................................... 67
3.3.4. Algoritmul PARTITIONING (de partiionare) .................................................... 68
3.3.4.1.Exemplu de aplicare ............................................................................................... 69
3.3.4.2.Avantaje i dezavantaje ale algoritmului PARTITIONING ................................... 70
3.4. Studiu comparativ de performan ....................................................................... 70
3.5. Concluzii ................................................................................................................... 75
4. DESCOPERIREA REGULILOR DE ASOCIERE FOLOSIND
EXTRAGEREA TIPARELOR FRECVENTE .................................................... 76
4.1. Introducere ............................................................................................................... 76
4.2. Proiectarea i construirea arborelui tiparelor frecvente (FP-Tree) ................... 79
4.2.1. Definirea problemei ............................................................................................... 79
4.2.2. Construirea arborelui FP-Tree ............................................................................. 81
4.3. Metoga FP-Growth de extragere a tiparelor frecvente folosind arborele
FP-Tree ..................................................................................................................... 85
4.4. Algoritmul AFOPT (Ascending Frequency Ordered Prefix Tree) ..................... 94
4.4.1. Prezentarea problemei ........................................................................................... 94
4.4.2. Algoritmul AFOPT ................................................................................................ 96
4.5. Studiu comparativ de performan ..................................................................... 101
4.6. Concluzii ................................................................................................................. 103
5. DESCOPERIREA REGULILOR DE ASOCIERE
GENERALIZATE (MULTI_NIVEL) ................................................................. 104
5.1. Definiii i terminologie ......................................................................................... 104
5.2. Algoritmi de extragere a regulilor de asociere multi-nivel ................................ 109
5.2.1. Algoritmul ADAPTIVE APRIORI .......................................................................109
5.2.1.1.Avantajele algoritmului ........................................................................................ 113
5.2.2. Algoritmul ML_T2L1 .......................................................................................... 113
5.2.2.1.Exemplu de utilizare ............................................................................................. 115
5.2.2.2.Avantajele algoritmului ........................................................................................ 119
5.2.2.3.Dezavantajele algoritmului .................................................................................. 119
5.2.3. Algoritmul ADA-FP ............................................................................................ 120
5.2.3.1.Descrierea algoritmului ....................................................................................... 122
5
5.2.4. Studiu comparativ de performan ..................................................................... 126
5.2.4.1.Avantajele ADA-FP fa de ML_T2L1 ................................................................. 126
5.2.4.2.Avantajele ADA-FP fa de ADAPTIVE APRIORI .............................................. 127
5.3. Concluzii ................................................................................................................. 128
6. ALGORITMI DE EXTRAGERE A DATELOR DIN BAZE DE DATE
MULTI-NIVEL ..................................................................................................... 129
6.1. Algoritmul Depth First Multi-Level APRIORI (DFMLA) ................................ 132
6.1.1. Prezentarea algoritmului (DFMLA1) ................................................................. 132
6.1.2. Versiune optimizat (DFMLA2) ......................................................................... 139
6.1.3. Studiu comparativ de performan ..................................................................... 139
6.1.3.1.Avantaje ................................................................................................................ 139
6.1.3.2.Dezavantaje ...........................................................................................................141
6.2. Algoritmul MULTI-LEVEL FP-Growth (MLFP-Growth) .............................. 142
6.2.1. Prezentarea algoritmului MLFP-Growth ........................................................... 143
6.2.1.1.Metoda I: Obinerea arborelui FP-Tree i apoi aplicarea algoritmului
FP-Growth direct pe nivelul conceptual k (MLFP-Growth I) ............................. 145
6.2.1.2.Metoda II: Obinerea arborelui FP-Tree pentru nivelul k din arborele
nivelului l (l>k) (MLFP-Growth II) .................................................................... 147
6.2.2. Studiu comparativ de performan ..................................................................... 151
6.2.2.1.Avantaje ................................................................................................................ 151
6.2.2.2.Dezavantaje .......................................................................................................... 152
6.3. Algoritmul Multi-Level AFOPT (ML-AFOPT) ................................................. 153
6.3.1. Prezentarea algoritmului ..................................................................................... 154
6.3.2. Studiu comparativ de performan ..................................................................... 160
6.3.2.1.Avantaje ................................................................................................................ 160
6.3.2.2.Dezavantaje .......................................................................................................... 162
6.4. Algoritmul ML-ADA-AFOPT .............................................................................. 163
6.4.1. Prezentarea algoritmului ..................................................................................... 163
6.4.2. Studiu comparativ de performan ..................................................................... 167
6.5. Concluzii ................................................................................................................. 172
7. CONCLUZII I CONTRIBUII PERSONALE ................................................174
7.1. Contribuii personale ............................................................................................ 175
7.2. Concluzii finale ...................................................................................................... 178
Bibliografie ...................................................................................................................... 187
6
GLOSAR


DM - Extragerea datelor (Data Mining)
KDD - Descoperirea de cunotine din baze de date (Knowledge
Discovery in Databases)
FP-Tree - Arborele tiparelor frecvente (Frequent Pattern Tree)
FP-Growth - Extragerea tiparelor frecvente folosind FP-Tree prin creterea
fragmentelor de tipare
AFOPT - Arborele tiparelor frecvente sortate n ordine cresctoare a
frecvenei de apariie (Ascending Frequency Ordered Prefix-Tree)
DBMS - Sisteme de gestiune a bazelor de date (DataBase Management
Systems)
MLDB - Baze de date multi-nivel (Multi-Level DataBase)



































7
Lista de figuri

Fig. 1.1-1. Etapele procesului de KDD (conform Fayyad et al. din 1996) ........................ 14
Fig. 1.2-1. Model al procesului Data Minnig (conform Rainsford din 1993) .................... 18
Fig. 2.2-1. Set de date de antrenare .................................................................................... 28
Fig. 2.2-2. Exemplu de arbore de decizie ........................................................................... 29
Fig. 2.2-3. Arborele de decizie pentru cumprtorii de calculatoare .............................. 31
Fig. 2.2-4. Exemplu de reea neuronal cu 6 noduri .......................................................... 37
Fig. 2.2-5. Nod al reelei neuronale .................................................................................... 38
Fig. 2.2-6. Clasificarea folosind 3-NN ............................................................................... 39
Fig. 2.2-7. Exemplu de clasificare k-NN ............................................................................ 40
Fig. 2.3-1. Clasificarea algoritmilor de grupare ................................................................. 43
Fig. 3.3-1. Algoritmul APRIORI ........................................................................................ 61
Fig. 3.3-2. Funcia AprioriGen ........................................................................................... 62
Fig. 3.3-3. Grania negativ ................................................................................................ 64
Fig. 3.3-4. Algoritmul SAMPLING .................................................................................... 66
Fig. 3.3-5. Algoritmul PARTITIONING ............................................................................. 69
Fig. 3.3-6. Exemplu de aplicare a algoritmului PARTITIONING ...................................... 69
Fig. 3.4-1. Scalabilitatea raportat la suport pentru o baza de date D1 40K ...................... 72
Fig. 3.4-2. Scalabilitatea raportat la numr de tranzacii (25% suport) ............................ 73
Fig. 3.4-3. Scalabilitatea APRIORI raportat la tranzacii/suport ...................................... 74
Fig. 4.2-1. Construirea arborelui FP-Tree pentru Exemplul 1 ........................................... 82
Fig. 4.2-2. Algoritmul de construire a arborelui FP-Tree .................................................. 83
Fig. 4.3-1. Arborele FP-Tree condiional construit pentru m ............................................ 88
Fig. 4.3-2. Algoritmul FP-Growth ..................................................................................... 92
Fig. 4.4-1. Arborele spaiului de cutare ............................................................................ 95
Fig. 4.4-2. Arborele AFOPT ............................................................................................... 97
Fig. 4.4-3. Parcurgerea subarborelui c ............................................................................... 98
Fig. 4.4-4. Reunirea fiilor nodului c cu nodurile frai ale lui c .......................................... 99
Fig. 4.4-5. Algoritmul AFOPT ......................................................................................... 100
Fig. 4.4-6. Studiu comparativ ntre algoritmul FP-Growth i algoritmul AFOPT ........... 103
Fig. 5.1-1. Exemplu de ierarhie taxonomic simpl ......................................................... 105
Fig. 5.1-2. Exemplu de ierarhie taxonomic multipl ...................................................... 106
8
Fig. 5.1-3. Exemplu de extragere de reguli de asociere multi-nivel ................................ 108
Fig. 5.2-1. Baza de date exemplu ..................................................................................... 111
Fig. 5.2-2. Arborele schemei de enumerare T marcat cu Sminsup/Pminsup .................... 112
Fig. 5.2-3. Algoritmul ML_T2L1 ...................................................................................... 115
Fig. 5.2-4. Arborele ierarhiei conceptuale ........................................................................ 116
Fig. 5.2-5. Procedura ADA-FP-Growth ............................................................................ 125
Fig. 6.1-1. Baza de date ierarhic multi-nivel .................................................................. 134
Fig. 6.1-2. Motenirea unei reguli .................................................................................... 138
Fig. 6.1-3. Funcia recursiv pentru verificarea descendenilor ....................................... 138
Fig. 6.1-4. Comparaie Multi-level APRIORI cu DFMLA1 .............................................. 140
Fig. 6.1-5. Comparaie DFMLA1 cu DFMLA2 ................................................................ 141
Fig. 6.2-1. Comparaie ML_T2L1 cu FP-Growth ............................................................ 143
Fig. 6.2-2. Baza de date ierarhic multi-nivel .................................................................. 144
Fig. 6.2-3. Arborele FP-Tree al celui de-al 2-lea nivel conceptual .................................. 146
Fig. 6.2-4. Crearea tabelei antet pentru nivelul k ............................................................. 147
Fig. 6.2-5. Completarea arborelui FP-Tree al nivelului l ................................................. 148
Fig. 6.2-6. Arborele FP-Tree al nivelului k ...................................................................... 150
Fig. 6.2-7. Comparaie MLFP-GrowthI (Metoda I) cu MLFP-GrowthII (Metoda II) ..... 152
Fig. 6.3-1. Arborele AFOPT ............................................................................................. 155
Fig. 6.3-2. Construirea tabelei antet a nivelului k ............................................................ 156
Fig. 6.3-3. Completarea tabelei antet ............................................................................... 157
Fig. 6.3-4. Arborele AFOPT completat al nivelului l....................................................... 158
Fig. 6.3-5. Arborele AFOPT al nivelului k ....................................................................... 160
Fig. 6.3-6. Timpii de execuie ai algoritmului ML-AFOPT ............................................. 161
Fig. 6.4-1. Funcia Meets_Min_Support ........................................................................... 166
Fig. 6.4-2. Funcia Meets_Printing_Min_Support ........................................................... 166
Fig. 6.4-3. Algoritmul ML-ADA-AFOPT ......................................................................... 167
Fig. 6.4-4. Studiu comparativ - algoritmii ML-AFOPT vs. ML-ADA-AFOPT ............... 168
Fig. 6.4-5. Studiu comparativ - algoritmii ML-AFOPT vs. ML-ADA-AFOPT................ 169
Fig. 6.4-6. Studiu comparativ - algoritmii ML-ADA-AFOPT vs. FP-Growth i
ADA-FP ............................................................................................................... 170
Fig. 6.4-7. Studiu comparativ pentru 5 000 de tranzacii ................................................. 171
Fig. 6.4-8. Studiu comparativ pentru 10 000 de tranzacii ............................................... 172

9
Lista de tabele


Tabel 3.1-1. Exemplu de date n format orizontal n regulile de asociere ......................... 54
Tabel 3.1-2. Exemplu de date n format vertical n regulile de asociere ............................ 54
Tabel 3.2-1. Notaii utilizate ............................................................................................... 57
Tabel 3.4-1. Parametri utilizai pentru generarea setului de date ....................................... 71
Tabel 3.4-2. Rezultate pentru baza de date D1 40K ........................................................... 71
Tabel 3.4-3. Rezultate pentru baza de date D2 150K ......................................................... 72
Tabel 3.4-4. Rezultate APRIORI raportate la tranzacii/suport .......................................... 74
Tabel 4.2-1. Baza de date D cu tranzacii ........................................................................... 80
Tabel 4.3-1. Extragerea tuturor tiparelor prin crearea bazelor condiionale de
(sub)tipare ................................................................................................. 89
Tabel 4.4-1. Tranzaciile bazei de date D ........................................................................... 96
Tabel 5.2-1. Articole (descriere) ...................................................................................... 116
Tabel 5.2-2. Tranzacii ..................................................................................................... 116
Tabel 5.2-3. Codificarea tranzaciilor T[1] ...................................................................... 117
Tabel 5.2-4. 1-itemset-ul L[1,1] ...................................................................................... 117
Tabel 5.2-5. 2-itemset-ul L[1,2] ...................................................................................... 117
Tabel 5.2-6. Tranzaciile filtrate T[2] .............................................................................. 118
Tabel 5.2-7. 1-itemset-ul L[2,1] ...................................................................................... 118
Tabel 5.2-8. 2-itemset-ul L[2,2] ...................................................................................... 118
Tabel 5.2-9. 3-itemset-ul L[2,3] ..................................................................................... 118
Tabel 5.2-10. 1-itemset-ul L[3,1] ................................................................................... 119
Tabel 5.2-11. 2-itemset-ul L[3,2] .................................................................................... 119
Tabel 6.1-1. Codurile i descrierea articolelor ................................................................. 135
Tabel 6.1-2. Tranzaciile bazei de date ............................................................................. 135
Tabel 6.1-3. Tranzaciile i codurile produselor ............................................................... 136
Tabel 6.2-1. Codurile i descrierea categoriilor ............................................................... 144
Tabel 6.2-2. Baza de date tranzacional .......................................................................... 146
10
Tabel 6.2-3. Crearea bazei condiionale de tipare pentru nivelul k .................................. 150
Tabel 6.2-4. Rezultatele obinute de algoritmii MLFP-GrowthI( Metoda I)
i MLFP-GrowthII (Metoda II) ......................................................................... 151
Tabel 6.3-1. Tranzaciile bazei de date ............................................................................. 154
Tabel 6.3-2. Articolele bazei de date ................................................................................ 154
Tabel 6.3-3. Articolele sortate ascendent ......................................................................... 154
Tabel 6.3-4. Tranzaciile adugate ................................................................................... 158
Tabel 6.3-5. Ordonarea tabelei antet a nivelului k ........................................................... 159
Tabel 6.3-6. Rezultatele obinute de algoritmul ML-AFOPT ........................................... 161
Tabel 6.4-1. Rezultatele obinute de algoritmul ML-ADA-AFOPT
(articole speciale rare) ......................................................................................... 168
Tabel 6.4-2. Rezultatele obinute de algoritmul ML-ADA-AFOPT
(articole speciale comune) .................................................................................... 169
Tabel 6.4-3. Rezultatele obinute pentru 5 000 de tranzacii ............................................ 170
Tabel 6.4-4. Rezultatele obinute pentru 10 000 de tranzacii .......................................... 171



















11
Prefa



Datorit creterii foarte mari din ultimi ani a dimensiunii bazelor de date, ct i a
aplicaiilor de baze de date n domeniul comercial, industrial, administrativ i altele, a
crescut n egal msur i interesul utilizatorilor n extragerea automat a cunotinelor din
acestea. Din acest motiv, muli cercettori au considerat descoperirea i extragerea de
cunotine din bazele de date un domeniu provocator i semnificativ de investigat.
Sistemul de descoperire a cunotinelor (Knowledge Discovery System) care este
capabil s opereze pe o baz de date de dimensiune mare este numit siatem de descoperire
a cunotinelor din baze de date (Knowledge Discovery in Databases System KDD).
KDD a fost conceput n anul 1989, pentru a desemna o zon de cercetare bazat pe
metode de Data Mining (DM), recunoaterea formelor, nvare automat i tehnici de baze
de date n contextul bazelor de date de dimensiuni mari. Data Mining poate fi definit n
prim instan ca fiind totalitatea proceselor de cutare i manipulare a datelor din bazele
de date. KDD/Data Mining este un domeniu inter-disciplinar care dezvolt algoritmi i
procese pentru descoperirea cunotinelor construind modele i fcnd preziceri din date
structurate, semi-structurate sau ne-structurate.
Progresul n tehnologia codurilor de bare a fcut posibil ca firmele de
comercializare a produselor s colecteze i s stocheze cantiti imense de date despre
produse i vnzri, referite ca i basket data (date despre coul de cumprturi). Firmele
mari , de succes, privesc aceste baze de date ca i pri eseniale ale infrastructurii de
marketing. Ele sunt interesate n introducerea unor procese de marketing conduse de
informaii, coordonate prin folosirea tehnologiilor de baze de date, care s permit
agenilor de marketing s dezvolte i s implementeze programe i strategii de marketing
adaptate diverselor categorii de clieni [DSA90].
innd cont pe de o parte de domeniul vast al sistemelor de descoperire de
cunotine, precum i de posibilele aplicaii practice pe care le are descoperirea de reguli de
asociere, n aceast lucrare s-au luat n considerare tehnicile de extragere a datelor ct i
cele de descoperire a tiparelor frecvente din bazele de date multi-nivel, care au un rol
important n dezvoltarea sistemelor de descoperirea a regulilor de asociere [HK00].
Extragerea tiparelor frecvente joac un rol esenial n descoperirea regulilor de
asociere [HPY00]. Descoperirea regulilor frecvente de asociere dintr-o baz de date de
12
dimensiuni mari este o problem complex, deoarece spaiul de cutare crete exponenial
cu numrul de atribute din baza de date i cu obiectele bazei de date. Se tie c, n general,
bazele de date implicate n astfel de aplicaii sunt de dimensiuni foarte mari. Din acest
motiv este foarte important ca algoritmii utilizai n aplicaii pentru extragerea de date din
aceste baze de date s fie ct mai rapizi.
Primii algoritmi propui pentru acest gen de aplicaii au fost de natur iterativ, gen
algoritmul APRIORI [AS94], care ns prezentau dezavantajul unor parcurgeri multiple ale
bazei de date, operaie foarte costisitoare din punct de vedere al timpului de execuie.
Pe parcursul studierii procesului de extragere de cunotine (KD), cercettorii au
ncercat prin diverse metode s ndeprteze dintre regulile generate pe cele neinteresante,
propunnd cteva msuri de cuantificare a utilitii sau gradului de interes pe care regula
respectiv o prezint [HF95].
Acest fapt, a condus cercetrile spre cutarea unor metode de extragere a regulilor
de asociere pe mai multe nivele conceptuale, ceea ce duce la descoperirea nu doar a unor
reguli de asociere la fiecare nivel, dar i extragerea unor reguli de asociere utile i
informative, datorit flexibilitii concentrrii ateniei asupra seturilor diferite de date i a
posibilitii aplicrii unor praguri diferite ale suportului sau confidenei pentru nivele
diferite. Metodele de extragere de cunotine de pe mai multe nivele conceptuale au fost, n
general, dezvoltate prin extinderea tehnicilor existente pentru un singur nivel.
n aceast lucrare s-a ncercat dezvoltarea i mbuntirea metodelor existente,
optimizarea algoritmilor aprui pn la aceast or prin variante noi adaptate la extragerea
regulilor de asociere multi-nivel. Au fost adaptai o serie de algoritmi considerai
performani la aceast or, la bazele de date multi-nivel, deoarece acestea i-au dovedit
superioritatea n optimizarea exploatrii i au i un potenial ridicat de a fi nsemnate
deoarece sunt flexibile i pot fi orientate spre diferite seturi de date.
Pe baza experimentelor efectuate, s-a demonstrat c toi algoritmii propui n
aceast lucrare sunt mai eficieni dect cei de la care s-a plecat, minimiznd timpul de
extragere a datelor i regulilor de asociere dorite, prin micorarea drastic a timpului
necesar parcurgerii bazei de date de dimensiuni foarte mari.
Folosind structurile existente FP-Tree [HP00] i AFOPT [LLX+03] s-au propus
algoritmi care s le utilizeze ct mai eficient, micornd sau chiar evitnd noi parcurgeri
ale bazei de date.


13
1. INTRODUCERE

1.1. Descoperirea cunotinelor i Data Mining


Odat cu creterea rapid a numrului i dimensiunii bazelor de date ct i a
aplicaiilor de baze de date n domeniul comercial, industrial, administrativ i altele, este
necesar i interesant s examinm extragerea automat a cunotinelor din bazele de date
de mari dimensiuni. Muli cercettori au considerat acest domeniu unul provocator i
semnificativ de investigat.
Descoperirea de cunotine din bazele de date (Knowledge Discovery in
Databases KDD) sau extragerea de date (Data Mining DM) reprezint efortul de a
nelege, analiza i eventual de a utiliza o cantitate imens de date disponibile [Fay
+
96 ].
KDD a fost conceput n anul 1989, pentru a desemna o zon de cercetare bazat pe
metode de Data Mining, recunoaterea formelor, nvare automat i tehnici de baze de
date n contextul bazelor de date de dimensiuni mari. Prima conferin internaional pe
Knowledge Discovery i Data Mining a avut loc n 1995 (KDD95), n zilele de azi
reprezentnd un domeniu de vrf, n plin avnt.
Descoperirea de cunotine n bazele de date este considerat un proces nsemnat de
identificare a unor tipare de date valide, noi, potenial folositoare, care pot fi nelese, aa
cum este artat de ctre Fayyad n [FPS
+
96]. n opinia sa, exist mai multe etape n
procesul de descoperire de cunotine: selectarea, preprocesarea, transformarea, extragerea
datelor, interpretarea sau evaluarea rezultatelor, aa cum este artat n figura 1.1-1.
Datorit extragerii de cunotine din bazele de date, acestea au devenit surse bogate
i sigure pentru generarea i verificarea cunotinelor, iar cunotinele descoperite pot fi
aplicate n managementul informatic, procesul de interogare, luarea deciziilor, controlul
proceselor i multe alte domenii de larg interes. Aadar, extragerea de cunotine este
considerat unul dintre cele mai actuale i importante domenii de cercetare n baze de date,
conform multor cercettori din domeniul bazelor de date [Sil95,Sil96]. Data Mining poate
fi definit n prim instan ca fiind totalitatea proceselor de cutare i manipulare a datelor
din bazele de date. Aceast exploatare a "zcmintelor" de date are ca scop descoperirea
unor corelaii necunoscute sau puin evidente ntre date. Marketingul modern folosete din
ce n ce mai mult rezultate obinute prin data mining.
14


Fig. 1.1-1. Etapele procesului de KDD (conform Fayyad et al. din 1996)

Funcia principal a DM este, deci, de a extrage modele de cunotine din date.
Pentru aceasta, DM utilizeaz o varietate de algoritmi din statistic, recunoaterea
formelor, clasificare, logic fuzzy, nvare automat (machine learning), algoritmi
genetici, reele neuronale, vizualizarea datelor, etc. Varietatea de algoritmi poate fi grupat
n principalele componente ale DM. Numrul acestor componente difer de la un autor la
altul, ele fiind n principal:

modelul - care, ca orice model informatic, se reprezint printr-o funcie ntr-un
spaiu unidimensional sau multidimensional (un ansamblu de funcii), depinznd de
parametri. El poate fi reprezentat fie ca o funcie liniar de parametri, fie ca o
funcie de probabilitate (de exemplu normal), fie ca o funcie fuzzy, etc. Obinerea
modelului se realizeaz prin diferii algoritmi, cum ar fi cei de clasificare i grupare
(clusterizare);
criteriile de preferin - care pot fi de natur diferit, unele dintre acestea bazndu-
se pe ordonare, altele pe interpolare sau cea mai bun aproximare;
algoritmi de selecie - care conduc la selectarea a trei elemente importante care apar
n DM, i anume: modelul (tiparul), care se selecteaz din baza de modele, datele,
care se selecteaz din baza de date i constituie parametri, i criteriul sau criteriile
de preferine, care se selecteaz din baza de criterii;
Date
Date int
Date
preprocesate
Date
transformate
Tipare
Cunotine
Selectare
Preprocesare
Transformare
Extragere
de date
Interpretare/
Evaluare
15
stabilirea abaterilor - care const n general n algoritmi de determinare a deviaiei
i stabilitii; o categorie specific de astfel de algoritmi sunt cei statistici, prin care
se stabilesc abaterile modelului fa de ideal.

Bineneles c fiecare produs comercial utilizeaz mai muli algoritmi i n fiecare
dintre ei se regsesc o parte sau toate componentele de mai sus n diferite proporii.
Deoarece extragerea de date (Data Mining) este partea central a procesului de
descoperire de cunotine din bazele de date (KDD), termenii data mining i descoperirea
de cunotine din baze de date au fost utilizai alternativ de muli cercettori din domeniu.
n ultimul timp ns, se face o distincie clar ntre cei doi termeni. Distincia care se face
este referitoare la faptul c descoperirea de cunotine din bazele de date (KDD) poate fi
considerat ca procesul de extragere a informaiilor folositoare i interesante din baza de
date. Aa cum am artat i mai sus, (fig.1.1-1) acest proces include selectarea, pregtirea
datelor, manipularea i analiza rezultatelor. Pe de alt parte, extragerea datelor (Data
Mining) este considerat procesul de aplicare a algoritmilor de descoperire a cunotinelor i
este o etap a procesului KDD.
Autorii care fac deosebire ntre DM si KDD consider KDD ca fiind un proces
iterativ i interactiv complex, care include DM. Astfel, n cadrul KDD se consider c
extragerea cunotinelor se realizeaz n urmtorii pai (fig.1.1-1):

nvarea domeniului aplicaiei - care const n achiziia unor cunotine despre
starea iniial, precum i despre scopul aplicaiei;
stabilirea setului de date - cruia i se va aplica procesul de extragere a
cunotinelor; majoritatea autorilor atrag atenia asupra acestei faze, numite i
faza de preprocesare;
curirea i selectarea datelor - care este un proces complex, specific
depozitelor de date, n cadrul cruia se nltur zgomotele, se reduc
dimensiunile, se stabilete modul de nlocuire a datelor care lipsesc, etc.;
aplicarea procedurilor de DM - care este de fapt pasul cel mai important al
procesului KDD;
interpretarea rezultatelor din punct de vedere al utilizatorului - care este o faz
de decizie; dac acesta nu este mulumit de rezultat, poate relua oricare dintre
fazele precedente;
16
utilizarea cunotinelor descoperite - care este faza final; aceast utilizare se
realizeaz fie prin includerea lor n sisteme integrate de cunotine fie, pur i
simplu, prin rapoarte simple adresate celor interesai.

Aadar, KDD/Data Mining este un domeniu inter-disciplinar care dezvolt
algoritmi i procese pentru descoperirea cunotinelor (categorii, tipare, concepte, relaii i
tendine), ne-structurate. Deoarece cercettorii din domeniul KDD vin din cele mai diverse
domenii, aa cum era de ateptat, KDD a mprumutat multe de la teoriile tradiionale ale
nvrii automate ct i de la bazele de date.
nvarea poate fi definit ca i achiziionarea de cunotine fr o programare
explicit. nvarea automat are ca scop automatizarea procesului de nvare, aa nct
cunotinele s poat fi obinute cu minim de efort din partea experilor umani. nvarea
automat, n mod tradiional, este orientat pe nvarea din seturi specificate i n multe
cazuri din date generate artificial. Extragerea de date (Data Mining) are ca scop s
adapteze aceste paradigme ale nvrii automate la nvarea din baze de date care conin
date din lumea real. nvarea din baze de date are cteva avantaje:

Datele sunt depozitate ntr-o manier mai mult sau mai puin structurat. De
exemplu, ntr-o baz de date relaional, datele sunt normalizate n relaii,
eliminnd astfel redundana iar relaiile pot fi combinate prin diferite ci pentru
a regsi seturile de date cerute din baza de date.
Unele cunotine din domeniu sunt deja codate n interiorul bazei de date. De
exemplu, existena unei constrngeri de not null. De asemenea, cardinalitatea
dintre legturi (relaii) este explicit specificat n interiorul structurii bazei de
date, la fel i constrngerile.
Interogarea bazei de date la performane ridicate, precum i existena unor
unelte de manipulare a datelor i a tranzaciilor
Numrul de baze de date pe care se aplic tehnici de minare este mare i n
cretere. Efortul consumat n dezvoltarea unor astfel de unelte este economic
viabil
Volumul de date este foarte mare. De exemplu, sistemul SKICAT a fost
dezvoltat pentru a procesa trei terabytes de imagini grafice rezultate dintr-o
17
vedere a cerului. Din acest motiv, orice unealt de extragere de date trebuie s
se execute satisfctor pe un volum mare de date
Datele pot conine zgomot. Uneltele de extragere de date trebuie s ofere un
mecanism adecvat pentru gsirea rezultatelor suficient de corecte din date
zgomotoase.
Datele pot conine informaii incomplete. Nu toate informaiile folositoare
pentru descoperirea de cunotine pot fi realmente depozitate n baza de date.
De asemenea, pot fi prezente multe date redundante sau inutile. Aadar uneltele
de extragere de date trebuie s faciliteze att selectarea datelor relevante ct i
nvarea cu cunotine incomplete.
Datele nu au fost, n general, colectate cu scopul de descoperire a cunotinelor.
Uneltele de descoperire a cunotinelor trebuie aadar s acceseze date
depozitate n forme variate.

Un scop general al cercetrii n domeniul descoperirii de cunotina i al extragerii
de date este acela al utilizrii avantajelor nvrii din baze de date innd cont de
constrngerile impuse.

1.2. Model Data Mining


n acest paragraf este prezentat un posibil model al procesului de extragere de date
(Data Mining) propus de Rainsford n [RR96]. Pentru o baz de date, n general, numrul
de reguli posibile ce pot fi extrase este mult mai mare dect numrul de tupluri din baza de
date. Din acest motiv, descoperirea de cunotine poate fi privit ca un proces cu multiple
faze de selectare a regulilor interesante din totalul regulilor existente n interiorul bazei de
date. Este aadar un proces de reducere progresiv a totalului de reguli la un subset de
reguli folositoare.

18


Fig. 1.2-1. Model al procesului Data Minnig (conform Rainsford din 1993)

Modelul descris n figura 1.2-1 este bazat pe o rafinare obinut cu multe din
uneltele de cercetare curente, adic aceea a unui proces de reducere efectuat folosind o
selecie de filtre care reduc spaiul de reguli pe baza datelor surs, tiparelor de reguli,
statisticilor i semanticii. Exist multe cazuri speciale cnd o faz a procesului de filtrare
nu exist sau nu este folosit n cadrul unei anumite unelte de cercetare, n aceste cazuri
filtrul permite ca spaiul de reguli s treac ne-redus.
Fiecare din fazele de filtrare poate consta din zero sau mai multe filtrri specificate
de utilizator sau de sistemul de descoperire. Un controler central coordoneaz operaia de
filtrare. Aa cum este artat i n figur, setul final de reguli poate fi interogat n baza de
cunotine existent. Baza de cunotine i utilizatorul pot interaciona la fiecare pas al
Aplicaii
Tipare, Unelte de
vizualizare i selectare
Crete
Domeniu/Cunotine
apriori
Sisteme expert
Optimizarea interogrilor
semantice
Sisteme suport de decizie
Inteligene artificiale
Proiectarea bazei de date
Asigurarea integritii

Baza de date
Baza de
cunotine
Set final de
reguli
Filtre
date
Filtre
tipare
Filtre
statistice
Filtre
semantice
Specificarea regulilor
i tiparelor
Parametri i praguri Filtre i Browseri
Intrri utilizator
Control Control Control Control
Reguli Reguli Reguli
19
procesului de reducere a spaiului de reguli. Filtrrile au efect serios asupra ieirilor n
procesul de extragere de date.
Filtrarea datelor este faza iniial care implic selectarea datelor de interes pentru
descoperirea cunotinelor. Utilizatorul poate direciona sistemul KDD la zone de interes
folosind abloane, unelte de vizualizare sau prin specificare unor strategii de eantionare.
Rezultatul acestei faze este reducerea setului de date de test i reducerea corespunztoare a
spaiului de reguli.
Filtrarea tiparelor este a doua faz a procesului unde este specificat un tip de
regul special de cutat. Acest tip poate fi specificat de limitri ale sistemului sau prin
folosirea unor selecii de modele sau tipuri de reguli. Tipul de tipar descoperit este limitat
de sistemul KDD nsui deoarece cele mai multe sisteme pot descoperi un numr limitat de
tipuri de reguli. Tiparul poate fi n continuare limitat prin specificarea de ctre utilizator a
existenei unui atribut particular pe o parte sau pe cealalt a regulii descoperite sau prin
limitarea numrului de conjuncii pe care o regul le poate conine. Efectul filtrului de
tipare este aadar de a reduce spaiul de reguli la reguli de un anumit tip, de exemplu reguli
de asociere care au un anumit termen ca i component. Specificarea cutrii unui tipar
poate fi realizat intuitiv n forma unei cereri bazate pe ablon astfel:

Gsete toate regulile de asociere cu consecina LAPTE.

n acest exemplu simplu de ablon, cuvintele scrise pot fi nlocuite n diferite forme
cerute. Acesta poate fi implementat ntr-o interfa utiliznd unelte cum ar fi liste, care
simplific interaciunea utilizatorului cu sistemul. Cele mai multe sisteme KDD
implementeaz cteva forme de abloane pentru specificare tiparelor. Un exemplu este
Nielsen Opportunity Explorer, o unealt de descoperire de cunotine care utilizeaz
abloane i care a fost descris de Anand i Kahn n [AK93]. n acest sistem abloanele de
descoperire a cunotinelor permit utilizatorului de asemenea s specifice att tehnicile
analitice care s fie aplicate (filtre statistice) ct i datele pe care ele vor fi aplicate (filtre
de date).



20
1.3. Cerinele i provocrile extragerii de date


n dezvoltarea tehnicilor de extragere de date se prefigureaz o serie de trsturi i
cerine de baz ale unui sistem aplicat de extragere de cunotine din bazele de date.

1. Tratarea diferitelor tipuri de date deoarece exist o multitudine de date i de baze de
date, se ateapt de la un sistem de descoperire de cunotine s poat trata ct mai
multe tipuri diferite de date. Deoarece cele mai multe baze de date disponibile sunt
relaionale este crucial ca un sistem de descoperire de cunotine s poat explora
eficient datele relaionale. Mai mult, multe sisteme de baze de date conin tipuri de
date complexe, cum ar fi date structurate i obiecte complexe de date, date de tip
hypertext i multimedia, date spaiale i temporale, tranzacii, i altele. Un sistem de
extragere de date trebuie s poat trata i toate aceste tipuri complexe de date. n
orice caz, cu toat aceast multitudine de tipuri de date i innd cont de scopurile
diferite ale unui sistem de extragere de date, este absurd s credem c acesta poate
trata chiar toate tipurile de date. Sistemele de extragere de date sunt construite ca i
sisteme dedicate pentru descoperirea anumitor tipuri specifice de date n funcie de
destinaia aplicaiei respective, cum ar fi sisteme dedicate pentru extragerea de
cunotine din bazele de date relaionale, din bazele de date tranzacionale, din bazele
de date spaiale, din bazele de date multimedia, etc.
2. Eficiena algoritmilor de extragere de date pentru a extrage informaii din cantiti
enorme de date din bazele de date, algoritmii de descoperire de cunotine trebuie s
fie eficieni i s poat fi dezvoltai i mbuntii pentru bazele de date de
dimensiuni mari. Astfel, timpul de execuie al acestor algoritmi pe baze de date de
dimensiuni mari, trebuie s fie previzibil i acceptabil.
3. Utilitatea, exactitatea i expresivitatea rezultatelor extragerii de date cunotinele
descoperite trebuie s reflecte exact coninutul bazei de date i sa fie utile unor
aplicaii concrete. Imperfeciunile trebuie s poat fi exprimate prin msuri de
incertitudine, sub form de reguli de aproximare sau reguli cantitative. Aceasta, st la
baza unui studiu sistematic de msurare a calitii cunotinelor descoperite, inclusiv
a interesului i ncrederii, prin construirea unor modele i instrumente statistice,
analitice i simulative.
21
4. Exprimarea rezultatelor extragerii unor tipuri variate de date din cantiti mari de
date pot fi extrase diferite tipuri de cunotine. Aceste cunotine pot fi examinate din
diferite puncte de vedere i prezentate sub diferite forme. Pentru aceasta, ele trebuie
utilizate n limbaje de programare de nivel nalt sau interfee grafice pentru utilizator,
astfel nct s poat fi nelese i interpretate de nespecialiti, iar cunotinele
descoperite s poat fi utilizate de utilizatori. Din acest motiv sistemele de
descoperire de cunotine trebuie s adopte tehnici de reprezentare ct mai expresiv
a cunotinelor descoperite.
5. Extragerea de cunotine interactiv la multiple nivele de abstractizare deoarece
este foarte dificil de prezis cu exactitate ce se va extrage dintr-o baz de date, o cerere
de extragere de date de nalt nivel trebuie tratat ca o surs de explorri viitoare
interesante. Trebuie dezvoltat o extragere de date interactiv pentru a permite
utilizatorului s rafineze interactiv cererile de extragere de date, s concentreze
dinamic schimbarea datelor, s adnceasc progresiv procesul de extragere de date, i
s priveasc flexibil datele i rezultatele extragerii de date, la nivele multiple de
abstractizare i din diferite unghiuri.
6. Extragerea de informaii din diferite surse de date diversitatea reelelor locale i de
larg rspndire, incluznd internetul, conecteaz o mulime de surse de date din baze
de date imense distribuite i eterogene. Extragerea de date din diferite surse de date
formatate sau neformatate cu diferite semantici genereaz noi provocri domeniului.
Pe de alt parte, extragerea de date poate dezvlui regulariti de nivel nalt n baze
de date eterogene ce pot fi descoperite foarte greu printr-o interogare clasic a bazei
de date. Mai mult, dimensiunea imens a bazelor de date, larga distribuie a datelor i
complexitatea calculelor unor metode de extragere de date, au dus la dezvoltarea unor
algoritmi de extragere de date paraleli i distribuii.
7. Asigurarea confidenialitii i securitatea datelor n situaia n care datele pot fi
privite din diferite puncte de vedere i la diferite nivele de abstractizare, apare
necesitatea asigurrii securitii datelor i protejarea mpotriva violrii
confidenialitii datelor. Este important de studiat cazurile n care descoperirea de
cunotine poate duce la invadarea confidenialitii, i ce msuri de securitate pot fi
luate pentru a preveni dezvluirea de informaii sensibile.

22
Unele dintre aceste cerine pot duce la rezultate conflictuale. De exemplu
asigurarea securitii datelor poate intra n conflict cu asigurarea extragerii interactive a
cunotinelor de nivel multiplu din diferite puncte de vedere.

1.4. Extragerea de date privit din perspectiva bazelor de date


n ultimii ani, capacitatea noastr de a genera i stoca date a crescut enorm i rapid.
Rspndirea pe scar tot mai larg a utilizrii codurilor de bare pentru cele mai multe
produse comerciale i informatizarea multor tranzacii comerciale i guvernamentale, ct i
progresul n domeniul apariiei uneltelor de lucru avansate n colectarea de date, ne oblig
s avem de-a face cu cantiti tot mai imense de date de prelucrat. Milioane de baze de date
sunt utilizate la ora actual n aplicaii de managementul afacerilor, administrare
guvernamental, gestionarea datelor tiinifice i inginereti, ct i n multe alte tipuri de
aplicaii.
Aceast explozie masiv de date n domeniul bazelor de date a generat o nevoie
urgent de creare de tehnici i instrumente noi, inteligente care s transforme automat
datele procesate n cunotine i informaii utile. Aadar, extragerea de date (Data Mining)
a devenit un domeniu de cercetare de o deosebit importan [PSF91], [FPS
+
96].
Extragerea de date (Data Mining - DM) denumit i descoperirea de cunotine din
bazele de date (Knowledge Discovery in Databases KDD) reprezint un proces nsemnat
de extragere a informaiilor implicite, previzibile i potenial folositoare din bazele de date
[PSF91]. n lucrrile de specialitate aprute de-a lungul anilor, au fost folosii i ali
termeni pentru a defini acest domeniu, cum ar fi: extragere de cunotine din bazele de
date, extragere de date, arheologia datelor, analiza datelor, etc. Prin descoperirea de
cunotine din bazele de date, se extrag informaii i cunotine interesante, regulate, din
mulimi relevante de date din bazele de date care, apoi, sunt investigate din mai multe
puncte de vedere, din diferite unghiuri, pentru a genera surse de cunotina fiabile.
Extragerea de cunotine i informaii din bazele mari de date a fost recunoscut de
muli cercettori ca fiind un domeniu de cercetare cheie care ofer multe si variate
oportuniti de investigare. Un interes foarte mare l-au artat pentru acest domeniu de
cercetare muli specialiti din diferite arii: sisteme de baze de date, statistic, inteligena
23
artificial, sisteme bazate pe cunotine, nvare automat, achiziie de date, baze de date
spaiale, vizualizarea datelor, servicii on-line i WWW, i altele.
Deoarece extragerea de date ofer multe posibiliti de cercetare, aplicarea direct a
metodelor i tehnicilor dezvoltate n studierea nvrii automate, a statisticii i a bazelor de
date nu poate rezolva toate problemele aprute. Astfel, sunt necesare studii dedicate special
pentru a inventa noi metode pentru extragerea de date i pentru a dezvolta tehnici noi,
integrate pentru o extragere de date eficient i efectiv. Din acest motiv, extragerea de
date din bazele de date a devenit un domeniu de cercetare independent i de sine stttor.
Aadar, n ultimii ani au fost dezvoltate o mulime de tehnici i sisteme pentru a
realiza extragerea de date din bazele de date [CHY96]. Aceste tehnici pot fi clasificate
dup o serie de criterii, aa cum urmeaz:

n funcie de tipul datelor cu care lucreaz.
Un sistem de extragere de date poate fi clasificat n funcie de tipul de baze de date din care
extrage datele. De exemplu, avem un sistem relaional de extragere de date dac descoper
cunotine dintr-o baz de date relaional, sau avem un sistem orientat pe obiect dac
extrage cunotine dintr-o baz de date obiectual. n general, un sistem de extragere de
date poate descoperi cunotine din mai multe tipuri de baze de date:
o relaionale,
o tranzacionale,
o obiectuale,
o deductive,
o spaiale,
o temporale,
o multimedia,
o eterogene,
o active,
o motenite,
o Web.

n funcie de tipul cunotinelor extrase
Exist o serie de cunotine tipice care pot fi extrase din bazele de bate:
o Reguli de asociere
o Reguli caracteristice
24
o Reguli de clasificare
o Reguli discriminante
o Grupri
o Evoluii

Mai mult dect att, datele extrase pot fi categorisite i n funcie de nivelul de
abstractizare al cunotinelor descoperite, ce poate fi:
o Cunotine generalizate
o Cunotine de nivel primitiv
o Cunotine multi-nivel

n funcie de tehnicile utilizate.
Sistemele de extragere de date pot utiliza mai multe tehnici pentru a-i atinge scopul. De
exemplu, n funcie de metoda coordonatoare avem:
o extragere determinat de date,
o extragere determinat de interogri,
o extragere determinat de date interactive

n funcie de abordarea fundamental a extragerii de date avem:
o extragere bazat pe generalizri
o extragere bazat pe tipare
o extragere bazat pe teorii statistice
o extragere bazat pe teorii matematice

Extragerea de date din baze de date este o problem dependent de aplicaie,
aadar, diferite tipuri de aplicaii vor necesita diferite tehnici de extragere de date.
Extragerea de date din baze de date relaionale sau tranzacionale a atras recent
foarte mult atenia comunitii cercettorilor n domeniul bazelor de date. Problema este de
a obine un set puternic de reguli de asociere de forma X
1
... X
m
Y
1
... YB
n
,
unde X
i
(pentru i {1, , m}) i Y
j
(pentru j {1, , n}) sunt seturi de perechi atribut-
valoare, din seturi relevante de date din baza de date. De exemplu, putem gsi o regul de
asociere de forma un client care cumpr un anumit sortiment de lapte cumpr de
asemenea i un anumit sortiment de pine la aceeai tranzacie.
25
Deoarece extragerea de reguli de asociere de acest fel poate necesita parcurgerea
unei baze de date tranzacionale n mod repetat de nenumrate ori, pentru a gsi diferite
tipare de asociere, timpul de procesare poate crete enorm aadar, mbuntirea
performanei trebuie s fie o preocupare esenial la extragerea acestor tipuri de reguli. n
capitolul 3 sunt prezentai o serie algoritmi pentru extragerea regulilor de asociere i cteva
metode pentru mbuntirea performanelor acestora.
Cele mai populare unelte de extragere de date i de analiz a datelor asociate
sistemelor de baze de date sunt uneltele de generalizare a datelor i uneltele de rezumare a
datelor care poart diferite denumiri, cum ar fi: procesare analitic on-line (On-Line
Analitycal Processing OLAP), baze de date multi-dimensionale, cuburi de date,
abstractizarea datelor, generalizarea datelor, caracterizarea datelor, rezumarea datelor, etc.
O alt aplicare important a extragerii de date este abilitatea de a crea clasificri n
cantiti enorme de date, adic de a crea reguli de clasificare. Clasificarea datelor
presupune clasificarea lor pe baza valorilor atributelor lor. De exemplu, un distribuitor de
maini are nevoie de o clasificare a clienilor n funcie de preferinele lor pentru maini,
astfel nct vnztorul s tie pe cine s abordeze, iar cataloagele cu noile modele de
maini s fie expediate direct spre acei clieni care pot deveni potenialii cumprtori.

























26
2. TEHNICI DE EXTRAGERE DE DATE
(DATA MINING)

2.1 Noiuni de baz


Datorit faptului c acest domeniu de cercetare este foarte provocator, aplicarea
direct a metodelor i tehnicilor dezvoltate n domeniile nvrii automate (machine
learning), a statisticii, a bazelor de date, nu mai pot rezolva multitudinea de probleme cu
care se confrunt. Este necesar dezvoltarea unor studii dedicate acestor probleme,
dezvoltarea unor tehnici integrate pentru extragerea eficient i efectiv a datelor. Din
acest motiv, extragerea de date a format un nou domeniu de cercetare independent
[BRR01].
Tipurile de date pe care se pot aplica tehnicile Data Mining sunt: baze de date
relaionale, baze de date deductive, depozite de date (data warehouses), baze de date
tranzacionale, baze de date avansate i depozite de informaii cum ar fi: baze de date
orientate pe obiect i relaional-obiectuale, baze de date spaiale, baze de date text i
multimedia, etc.
Folosind tehnicile de extragere de date pot fi descoperite diferite tipuri de
informaii cum ar fi: reguli de asociere, reguli caracteristice, reguli de clasificare, reguli
discriminante sau analiza gruprii, evoluiei i derivrii datelor.
Tehnicile Data Mining utilizeaz metode din domenii cum ar fi: baze de date,
statistic, nvare automat, recunoaterea formelor i vizualizare.
Tehnicile i uneltele bazelor de date (SQL) sunt utilizate pentru: depozitarea
datelor, accesarea datelor surs, selectarea i integrarea datelor, procesarea datelor.
Tehnicile statistice sunt utilizate pentru: explorarea datelor, preprocesarea datelor i
postprocesarea datelor, construirea unui model statistic, testarea modelului i verificarea
rezultatelor. nvarea automat ofer algoritmi folositori n extragerea datelor cum ar fi:
inducia arborilor decizionali, reele neuronale, gruparea conceptual, algoritmi genetici.
Recunoaterea formelor ofer metodologii i tehnici pentru: clasificare, grupare, selectarea
de caracteristici i validarea rezultatelor.
27
Extragerea de date este o problem dependent de aplicaie, astfel nct n funcie
de cerinele acesteia pot fi folosite o serie de tipuri de tehnici de extragere a datelor.
La ora actual exist mai multe metode de Data Mining. Alegerea metodei potrivite
unei aplicaii se face innd cont de date, de situaie i de obiectivele acesteia. Principalele
tehnici de extragere de date sunt prezentate n continuare.

2.2. Clasificarea i regresia


Clasificarea este probabil cea mai utilizat tehnic de data mining.
Clasificarea datelor este procesul prin care cutm proprieti comune n seturi de
obiecte din bazele de date i le clasificm n clase diferite n conformitate cu un model de
clasificare. Clasificarea permite crearea modelelor pentru prezicerea membrilor unei clase.
Estimarea i predicia pot fi considerate ca i tipuri de clasificare. Obiectivul clasificrii
este n primul rnd analiza datelor antrenate i dezvoltarea unei descrieri exacte sau a unui
model pentru fiecare clas, folosind trsturile disponibile ale datelor. O astfel de descriere
sau clas este folosit apoi pentru a clasifica viitoarele date test ntr-o alt baz de date sau
pentru a dezvolta o descriere mai bun (numit regul de clasificare) pentru fiecare clas
din baza de date. Clasificarea este folosit cu succes n domenii ca: aprobri de credite,
gsirea cumprtorilor int, diagnosticare medical, analiza tratamentelor ineficiente,
clasificarea tendinelor financiare, detectarea erorilor n aplicaiile industriale, etc.
Regresia este utilizat la prezicerea unei valori a unei variabile continue pe baza
valorilor altor variabile, presupunnd un model de dependen liniar sau neliniar. Regresia
logistic este utilizat pentru prezicerea valorii unei variabile binare. Regresia logistic este
o unealt de clasificare care este utilizat la precizarea valorii unei variabile, de exemplu:
dac o persoan este cumprtor sau nu, de asemenea este utilizat la prezicerea
variabilelor continue, de exemplu: probabilitatea ca o persoan s fac cumprturi sau
nu.
Datele utilizate la construcia unui model de clasificare sunt:
Un set de nregistrri
Toate nregistrrile au acelai numr de cmpuri
Un cmp conine indicatorul clasei creia aparine nregistrarea
28
Restul cmpurilor sunt numite cmpuri independente i descriu obiecte
individuale care compun nregistrarea

n figura 2.2-1. este prezentat ca i exemplu un set de date de antrenare al
cumprtorilor de calculatoare.

Vrsta Student Venit Nivel_creditare
31...40 nu mare normal
<=30 da mic excelent
31...40 da mediu normal
>40 nu mediu excelent
>40 nu mare excelent
<=30 da mediu normal
31...40 nu mic normal
31...40 nu mare excelent
<=30 da mic normal

Fig. 2.2-1. Set de date de antrenare

Clasificare datelor a fost ndelung studiat n statistic, nvarea automat, reele
neuronale i sisteme expert fiind o problem important n extragerea datelor [FPS
+
96]. La
ora actual exist o serie de algoritmi de extragere a datelor importani pentru clasificare i
regresie, bazai pe: arbori de decizie, reele neuronale, algoritmi genetici, algoritmul celor
mai apropiai k vecini (k-nearest neighbors), modelul regulilor de asociere, etc.

2.2.1. Clasificarea bazat pe arbori de decizie
2.2.1.1. Definiie

Un arbore de decizie (arbore de clasificare) este o structur folosit pentru a divide
o colecie mare de articole n seturi mai mici succesive aplicnd o secven de reguli
simple de decizie. Aceast tehnic construiete un arbore pentru a modela un proces de
clasificare. O dat arborele construit, el este aplicat fiecrui articol (tuplu) al bazei de date
29
i rezultatelor clasificrii acelui articol. Tehnica are doi pai de baz: construirea arborelui
i aplicarea arborelui la baza de date.
Metoda de clasificare bazat pe arbori de decizie a fost foarte des folosit n
studierea nvrii automate [Qui86]. Este o metod de supervizare a nvrii care
construiete arbori de decizie dintr-un set de exemple. Clasificarea bazat pe arbori de
decizie este o metod pentru aproximarea funciilor int cu valori discrete, n care funcia
de nvare este reprezentat printr-un arbore de decizie. Calitatea arborelui depinde att de
acurateea clasificrii ct i de dimensiunea arborelui.
Metoda alege n primul rnd un subset din exemplele antrenate pentru a forma un
arbore de decizie. Dac arborele creat nu ofer rspunsul corect pentru toate obiectele, se
adaug o selecie a excepiilor la arbore i procesul continu pn cnd setul corect de
decizie este gsit. Arborii de decizie execut mai multe teste i apoi ncearc s ajung la
cea mai bun secven pentru precizarea scopului. Fiecare test creeaz ramuri care conduc
la mai multe testri, pn cnd testarea se termin ntr-un nod frunz (Fig. 2.2-2).
Arborii de decizie pot fi construii fie de sus n jos fie de la stnga la dreapta. Nodul
de sus (marginea stng) este nodul rdcin. Nodurile descendente sunt noduri fii, iar
nodurile de jos (marginea dreapt) sunt noduri frunz. Calea unic de la nodul rdcin la
un nod frunz formeaz o regul.


Fig. 2.2-2 Exemplu de arbore de decizie

Decizia 1
Decizia 2 Decizia 3
Decizia 4 Decizia 5
DA
DA
DA
DA
DA
NU
NU NU
NU NU
frunze
ramuri
Regula
30
Calea de la nodul rdcin la nodul frunz int, reprezentat cu linie punctat n
fig. 2.2-2, este regula care clasific scopul. Regulile sunt exprimate sub form de reguli if-
then.
Un arbore de decizie este o structur n care:
Nodurile interne indic un test pe un atribut
Ramurile reprezint rezultatul unui test
Nodurile frunz reprezint etichete ale claselor
2.2.1.2. Inducia arborelui de decizie

Inducia este procesul care creeaz arborele de decizie folosind un set de date
antrenate. Ea cere un numr mic de treceri prin setul e antrenare [Qui86]. Crearea arborilor
de decizie este de cele mai multe ori alctuit din dou faze: faza de construcie (cretere) a
arborelui (prin divizare splitting) urmat de faza de tiere (pruning).
Faza de construire a arborelui este un proces iterativ care implic divizarea
progresiv a datelor n subseturi. Prima iteraie consider c nodul rdcin conine toate
datele. Urmtoarea iteraie lucreaz pe noduri derivate care vor conine subseturi de date.
La fiecare divizare, sunt analizate variabilele i este aleas cea mai bun divizare. O
caracteristic important a divizrii este faptul c ea este lacom (greedy), ceea ce
nseamn c algoritmul nu verific arborele nainte s vad dac o alt decizie ar produce
un rezultat final mai bun. Faza de tiere identific i mut ramurile care reflect zgomote
sau excepii.
Arborii de decizie sunt utilizai pentru clasificarea exemplelor necunoscute prin
testarea valorilor atributelor exemplelor prin arborele de decizie.
Algoritmii de construire a arborilor de decizie au de obicei reguli de oprire. Aceste
reguli sunt bazate, n general, pe adncimea maxim a arborelui, numrul minim de
elemente dintr-un nod care este considerat pentru divizare sau numrul minim de elemente
care trebuie s fie ntr-un nod nou. Utilizatorul poate modifica parametri asociai acestor
reguli. Unii algoritmi ncep prin construirea arborilor de decizie la adncimea lor maxim.
Un astfel de arbore poate preciza exact toate exemplele din setul de date de antrenare
(exceptnd nregistrrile conflictuale).
Folosind exemplul din fig. 2.2-1. al cumprtorilor de calculatoare, se poate
construi arborele de decizie astfel:
31

Fig. 2.2-3. Arborele de decizie pentru cumprtorii de calculatoare

Algoritmul de inducie al arborelui de decizie este alctuit din algoritmul de baz
(algoritm Greedy) i din condiiile de oprire a partiionrii.

Algoritmul de baz numit i algoritm Greedy const din urmtorii pai:
Arborele este construit folosind metoda divide i cucerete (divide et impera)
recursiv de sus n jos
La nceput, toate exemplele de nvare sunt n nodul rdcin
Atributele sunt de tip enumerare (dac valorile sunt continue, mai nti sunt
discretizate)
Exemplele unt partiionate recursiv pe baza atributelor selectate
Atributele de test sunt selectate pe baza unei msuri euristice sau statistice

Condiiile de oprire a partiionrii sunt:
Toate exemplele pentru un anumit nod aparin unei aceleiai clase
Nu mai exist nici un atribut pentru partiionri ulterioare
Nu rmne nici un exemplu

Vrsta?
3140
Student? Nivel_creditare?
DA
DA NU DA NU
DA NU normal excelent
<=30 >40
32
n momentul n care arborele este complet, se poate explora modelul pentru a gsi
nodurile de ieire, subarborii care sunt de nedorit, sau regulile care sunt apreciate ca
neadecvate.
Tierea este o tehnic obinuit pentru a face un arbore mai general. Algoritmii
care construiesc arborii la adncimea maxim vor invoca automat tierea. n unele aplicaii
utilizatorii au posibilitatea de a tia arborele interactiv.
2.2.1.3. Extragerea regulilor din arbore

Un sistem tipic de nvare bazat pe arbore de decizie adopt o strategie top-down
care caut doar ntr-o parte a spaiului de cutare. Acesta garanteaz gsirea unui arbore
simplu, fr a fi neaprat cel mai simplu.
Un arbore de decizie, dup ce a fost antrenat, poate prezice o instan nou de date
pornind de la nodul rdcin i parcurgnd ramurile pn se ajunge la un nod frunz. Calea
este determinat prin evaluarea regulilor de tiere pe baza valorilor variabilelor
independente din noua instan.
Arborii de decizie pot fi folosii att pentru modele predictive ct i descriptive.
Predicia poate fi fcut caz cu caz prin parcurgerea arborelui. De cele mai multe ori,
predicia poate fi fcut prin procesarea cazurilor noi prin arbore sau prin setul de reguli
automat i genernd un fiier de ieire cu valorile precizate sau adugnd clase. O serie de
implementri ofer opiunea de exportare a regulilor pentru a fi utilizate extern sau
nglobate n alte aplicaii.
Extragerea de reguli de clasificare din arbore poate fi realizat n modul urmtor:

Reprezentarea cunotinelor sub form de reguli if-then
O regul este creat pentru fiecare cale de la nodul rdcin la un nod
frunz (vezi fig. 2.2-2.)
Fiecare pereche de valori de atribute de-a lungul cii formeaz o conjuncie
Un nod frunz conine clasa prediciei
Regulile sunt uor de neles de ctre oameni



33
2.2.1.4. Algoritmi de decizie

Cei mai cunoscui i des utilizai algoritmi care implementeaz arbori de decizie
sunt: CART (Classification and Regression Trees) [IE00], CHAID (Chisquared Automatic
Interaction Detection) [BRR01], ID3/C4.5 i C5.0 [Qui93]. Toi aceti algoritmi sunt
potrivii pentru clasificare. Unii dintre ei sunt adaptai i pentru regresie.
Algoritmul CART se bazeaz pe divizare binar folosind GINI (diversitatea
populaiei) - partiionare recursiv motivat printr-o predicie statistic. Arborele construit
are 2 ramuri de la oricare nod neterminal (care nu e nod frunz). Tierea este bazat pe
msurarea complexitii arborelui. Algoritmul suport att clasificarea ct i regresia,
tratnd variabile continue i necesitnd pregtirea datelor.
Algoritmul CHAID utilizeaz pentru divizare teste chi-square - detectarea
relaiilor statistice complexe. n construirea arborelui, numrul de ramuri variaz de la
dou la numrul de categorii de preziceri.
Algoritmii ID3/C4.5 i C5.0 includ metode de generalizare a regulilor asociate unui
arbore, acesta ndeprtnd redundanele. Aceti doi algoritmi produc arbori cu ramuri
multiple pentru un nod. Numrul de ramuri este egal cu numrul de categorii de preziceri.
Ei combin arbori decizionali multipli ntr-un singur clasificator utiliznd informaia
ctigat pentru divizare. Tierea este bazat pe o rat de eroare la fiecare frunz.
Algoritmul SLIQ este un clasificator scalabil rapid, fiind un algoritm de tiere
rapid.
Algoritmul SPRINT este utilizat pentru seturi mari de date, divizarea fiind bazat
pe valoarea unui singur atribut. Acest algoritm nltur toate restriciile de memorie prin
utilizarea structurii de date de tip list de atribute.
Trsturile de baz care fac distincie ntre toi aceti algoritmi sunt:

Cei mai muli algoritmi de decizie necesit variabile int de tip enumerare, ei
solicit ca variabilele continue s fie grupate pentru a folosi regresia
Muli algoritmi suport doar divizarea binar (fiecare nod printe se poate
diviza n cel mult dou noduri fii). Alii genereaz mai mult de dou divizri i
produc o ramur pentru fiecare valoare a unei categorii de variabil
Msurarea divizrii ne ajut s selectm care variabil va fi folosit pentru a
diviza un anumit nod. Cele mai obinuite msurri includ criterii bazate pe
GINI, chi-square, rata de ctig i entropie.
34
Generarea regulii se face folosind metode de generare asociate arborilor (n
cazul algoritmilor C4.5 i C5.0). Aceasta elimin redundana. Ali algoritmi pur
i simplu cumuleaz toate testele dintre nodul rdcin i nodul frunz pentru a
produce o regul.

Dintre toi aceti algoritmi, cel mai des utilizat este algoritmul ID3/C4.5. ID3
[Qui86] este un sistem de nvare bazat pe arbori de decizie tipic. El adopt o strategie de
parcurgere de sus n jos (top-down) care caut doar ntr-o parte a spaiului de cutare.
Acesta garanteaz gsirea unui arbore simplu, fr a fi neaprat cel mai simplu. C4.5 este o
extensie la ID3 care extinde domeniul clasificrii de la atribute de tip enumerare la unele
numerice. Paii algoritmului sunt prezentai n continuare:

1) selecteaz atributele care au cea mai mare informaie ctigat
2) presupunnd c exist dou clase P i N:
a) fie un set de exemple S care conin p elemente din clasa P i n elemente din clasa N
b) cantitatea de informaie necesar pentru a decide dac un exemplu arbitrar din S
aparine clasei P sau clasei N este definit astfel:

( )
n p
n
log
n p
n
n p
p
log
n p
p
n , p I
+ +

+ +
=
2 2
(2.2.1)

3) presupunem c utiliznd atributul A, un set S va fi partiionat n seturile {S
1
, S
2
, ..., S
v
}
a) dac S
i
conine p
i
exemple din P i n
i
exemple din N, atunci entropia sau informaia
necesar clasificrii tuturor obiectelor din toi subarborii S
i
este:

=
+
+
=
n
i
i i
i i
) n , p ( I
n p
n p
) A ( E
1
(2.2.2)

4) informaia de codificare care ar fi ctigat pe ramura A este dat de:

) A ( E ) n , p ( I ) A ( Gain = (2.2.3)

Selecia atributelor pe baza informaiei ctigate pentru problema cumprtorilor
de calculatoare prezentat n figura 2.2-3 este urmtoarea:
35
o clasa P: cumprtor_calculator = DA
o clasa N: cumprtor_calculator = NU
o 0.940 = (9,5) = ) , ( n p
o Entropia pentru atributul vrsta este:




694 0 2 3
14
5
0 4
14
4
3 2
14
5
. ) , ( I ) , ( I ) , ( I ) sta (var E = + + =
aadar
) sta (var E ) n , p ( I ) sta (var Gain =
similar
029 . 0 ) venit ( Gain =
151 . 0 ) student ( Gain =
048 . 0 ) creditare _ nivel ( Gain =
2.2.1.5. Avantajele i dezavantajele arborilor de decizie

Principalele avantajele ale arborilor de decizie sunt c ei produc modele eficiente,
uor de neles, uor de utilizat i c nu sunt afectai de lipsa valorilor unor date [BRR01].
De asemenea ei sunt perfect aplicabili unor probleme reale cum ar fi regulile comerciale.
Aceti arbori se potrivesc bazelor de date de dimensiuni mari deoarece dimensiunea
arborelui este independent de dimensiunea bazei de date.
Dintre dezavantaje amintim faptul c arborii de decizie impun anumite restricii
asupra datelor care sunt analizate [KWG
+
97]. n primul rnd, arborii de decizie permit doar
o singur variabil dependent. Pentru a prezice mai mult de o variabil dependent,
fiecare variabil cere un model diferit. De asemenea, cei mai muli algoritmi pentru arbori
de decizie pretind ca datele continue s fie grupate sau convertite la date de tip enumerare,
muli algoritmi bazai pe arbori de decizie fiind instabili.



Varsta p
i
n
i
I(p
i
,n
i
)
<=30 2 3 0.971
3040 4 0 0
>40 3 2 0.971

36
2.2.2. Reele neuronale

Reelele neuronale (neuronal networks NN) au fost utilizate n domeniul
calculatoarelor pentru prima dat n anii 1980 [SM83]. Ele au fost adesea denumite reele
neuronale artificiale (artificial neuronal networks ANN) [Has95] pentru a le deosebi de
reelele neuronale biologice dup modelul crora au fost construite, folosind modelul de
lucru al minii umane.
La ora actual ele reprezint un sistem de procesare a informaiei reprezentat printr-
un graf, ct i o serie de algoritmi care acceseaz acel graf. Ca i mintea uman, reelele
neuronale constau din mai multe elemente de procesare interconectate. Aadar, o reea
neuronal este un graf cu mai multe noduri (elemente de procesare) i arcuri
(interconexiuni) ntre ele. Nodurile grafului sunt ca i neuronii individuali, n timp ce
arcurile sunt interconexiunile dintre acetia.
Reelele neuronale reprezint unii dintre cei mai compleci algoritmi de clasificare
i regresie, fiind adesea considerate adevrate cutii negre [Hay99]. Dei o reea neuronal
are o mulime de date pentru antrenare, consumnd astfel timp, ea poate face predicii
pentru noi cazuri foarte repede, chiar n timp real. Mai mult, o reea neuronal poate oferi
ieiri multiple reprezentnd predicii simultane multiple. O trstur cheie a reelelor
neuronale este aceea c ele opereaz direct numai pe numere. Astfel, orice dat aflat n
coloane independente sau dependente (ieiri) care nu este de tip numeric trebuie convertit
n numr (de exemplu, valorile de tip yes/no, high/low ale unei variabile trebuie
nlocuite cu 0/1).
Cele mai comune arhitecturi de reelele neuronale conin trei nivele: nivelul
unitilor de intrare (surse), nivelul unitilor ascunse (interne) i nivelul unitilor de ieire
(rezultate) .
O reea neuronal (NN) este un graf direct F=V,A, care are mulimea nodurilor
V={1,2,n} i mulimea arcelor A={i,j | 1i, jn }, cu urmtoarele restricii [Dun03]:

1. mulimea V este mprit n submulimile V
I
(noduri de intrarea), V
H
(noduri
ascunse) i V
O
(noduri de ieire)
2. mulimea arcelor {1,2,k} este mprit n nivele
a. nodurile de intrarea pe nivelul 1,
b. nodurile ascunse pe nivelele 2, ..., k-1
c. nodurile de ieire pe nivelul k
37
3. orice arc i,j trebuie s aib nodul i pe nivelul h-1 i nodul j pe nivelul h
4. arcul i,j primete o etichet - valoarea numeric w
ij

5. nodul i primete o etichet funcia f
i


Un exemplu de reea neuronal este prezentat n figura 2.2-4, unde se observ c
nivelul nodurilor de intrare (I1, I2, I3) este conectat la nivelul nodurilor ascunse (H1, H2),
care este conectat la nivelul nodurilor de ieire (O1).

Fig. 2.2-4. Exemplu de reea neuronal cu 6 noduri

Arcele care leag nodurile (w1, ...,w8) determin ponderea (gradul de importan)
a acelui nod.
Nodurile de intrare preiau informaia de intrare i o introduc n reea. Activarea
fiecrei uniti din nivelul ascuns este determinat de activarea nodurilor de intrare i de
ponderile legturilor dintre nodurile de intrarea i nodurile ascunse. Ieirea unui nod i
dintr-o reea neuronal este dat de funcia de activare a acelui nod, F(I) asociat lui.
Funcia de activare a unui nod n reea este calculat astfel:

( )
k k 2 2 1 1
w x ... w x w x I F + + + = (2.2.4)

O reea neuronal execut o transformare neliniar a intrrilor. Funcia de transfer,
transformata neliniar a funciei de activare F(I) este F(I). n figura 2.2-5. se poate
observa ce se ntmpl n interiorul fiecrui nod din reea.
X1
Predicia
(rezultatul)
w8
w7
w6
w5
w4
w3
w2
w1
I1
I2
I3
H1
O1
H2
X2
X3
Nivelul de intrare Nivelul ascuns Nivelul de ieire
38

Fig. 2.2-5. Nod al reelei neuronale

Comportamentul unitilor de ieire depinde de activarea unitilor ascunse i de
ponderile legturilor dintre unitile ascunse i unitile de ieire. Nivelul ascuns face ca
reeaua s recunoasc mai multe tipare, astfel numrul nodurilor ascunse crete deseori cu
numrul de intrri i cu complexitatea problemei. Folosirea a prea multor noduri ascunse
poate duce la o potrivire excesiv (overfitting), iar a prea puine noduri poate duce la
obinerea de modele cu o acuratee (precizie) sczut. Gsirea unui numr potrivit de
noduri ascunse este o parte important a oricrei tehnici Data Mining ce folosete reele
neuronale [Mit99].
Multe produse care folosesc reele neuronale includ algoritmi de cutare pentru
gsirea numrului optim de noduri ascunse (algoritmi genetici). Ponderile dintre unitile
de intrare i unitile ascunse determin dac un nod este activ, i astfel, prin modificare
acestor ponderi, un nod ascuns poate alege ce va reprezenta.

2.2.2.1. Avantaje i dezavantaje ale reelelor neuronale

O reea neuronal poate fi privit adesea ca o cutie neagr fiind incapabil s
explice gsirea dependenelor (relaiilor) dintre noduri. Ea lucreaz doar cu date numerice,
cele nenumerice fiind convertite. Mai mult, intrrile trebuie normalizate ntre 0 i 1.
O reea neuronal poate prezice repede un caz nou dac este antrenat cum trebuie.
Faza de antrenare este destul de delicat, deoarece trebuie aleas o structur potrivit. n
unele pachete, acest lucru a fost fcut cu ajutorul altor unelte Data Mining (de exemplu
algoritmi genetici). Dezavantajul este acela c o reea neuronal nu poate fi niciodat
exact, chiar dac ea este antrenat la infinit.

w1 X1
F(I)
wk
w2
.
.
.

F(I)
X2
Xk
39
2.2.3. Algoritmul celor mai apropiai k vecini (k-nearest neighbors)

Algoritmul celor mai apropiai k vecini (k nearest neighbors k-NN) este o tehnic
predictiv potrivit pentru clasificarea modelelor. Tehnica k-NN presupune c ntregul set
de antrenare include att datele ct i clasificrile dorite pentru fiecare item. Ca urmare a
aplicrii tehnicii datele de antrenare devin modelul. K reprezint numrul de cazuri
similare sau numrul de articole din grup.
La apariia unui caz sau exemplu nou n model algoritmul verific toate datele
pentru a gsi un subset care este cel mai apropiat de cel nou i ofer acest subset ca i
rezultat, plasndu-l n clasa care conine cei mai muli itemi din acest set al celor mai
apropiai k itemi.
Algoritmul k-NN are doi parametri principali:
numrul celor mai apropiate (similare) cazuri k
o metric pentru msurarea similaritii

La fiecare utilizare a algoritmului k-NN este necesar s se specifice o valoare
ntreag pozitiv pentru k. Aceast valoare reprezint numrul de cazuri existente care sunt
analizate la precizarea unui nou caz. De exemplu, n figura 2.2-6. este prezentat cazul
pentru k=3, algoritmul 3-NN va folosi cele mai apropiate 3 cazuri pentru a prezice
rezultatul unui nou caz.

Fig. 2.2-6. Clasificarea folosind 3-NN

Algoritmul k-NN decide n ce clas s plaseze un nou caz prin examinarea unui
numr k de cazuri (vecini) cu un grad mare de asemnare. Algoritmul calculeaz distana
de la noul caz (N) la fiecare caz din setul de antrenare (X, Y). Noul caz N este atribuit
6

5

4

3

2

1

0
0 1 2 3 4 5 6 7 8 9
X X
X
X

X
X X
X
t

X X X
40
clasei creia i aparin majoritatea cazurilor din cele k cazuri, considerate cele mai
apropiate din setul de antrenare. Astfel, noul caz este asignat acelei clase creia i aparin
cele mai multe cazuri similare, respectiv clasei X, deoarece n interiorul elipsei sunt mai
multe elemente X dect elemente Y (Fig. 2.2-7).

Fig. 2.2-7. Exemplu de clasificare k-NN

Algoritmul k-NN este bazat pe conceptul de distan iar aceasta necesit o metric
pentru determinarea distanelor. Presupunnd c avem n vectori de caracteristici x
1
, x
2
, ...,
x
n
i c acetia fac parte din grupri compacte, cu c<n. Fie m
i
media vectorilor din
gruparea i. Dac gruprile sunt bine separate putem utiliza un clasificator de distan
minim pentru a le separa. Adic putem spune c x este n gruparea i dac distana x-m
i

este minimul dintre toate cele k distane.
Pentru atributele continue putem folosi distana Euclidian iar pentru variabilele de
tip enumerat trebuie s gsim un mod potrivit pentru calcularea distanelor dintre atributele
din setul de date. Alegerea unei metrici potrivite este o problem dificil deoarece diferite
metrici folosite pe acelai set de antrenare pot da rezultate complet diferite. Aceasta
nseamn c avem nevoie de un expert n domeniu care s ajute la alegerea unei metrici
potrivite.
2.2.3.1. Avantaje i dezavantaje ale algoritmului k-NN

Algoritmul k-NN este un model vast, deoarece folosete ntregul set de antrenare ca
i model. Numrul de clase este dat, n general, ca i variabil de intrare, ceea ce, n
anumite probleme, nu este ntotdeauna uor de presupus. Timpul de calcul a algoritmului
k-NN este de ordinul factorialului numrului total de puncte, deoarece se realizeaz
recalcularea pentru fiecare caz nou.
X





X


X Y
Y X
X

X N Y

X X
41
Msurile de similaritate bazate pe distane nu pot s fac fa unor date de
dimensiune mare deoarece noiunea de vecini devine fr sens. n astfel de cazuri se
folosete o metod mai sofisticat (de exemplu, SOM-self organizing map).
Un alt dezavantaj l reprezint tratarea unor inexactiti n date i a suprapunerii
gruprilor, cu alte cuvinte de a decide de care grup aparin datele care sunt n regiunea
frontierelor. n astfel de cazuri se folosete o abordare fuzzy. O tehnic fuzzy k-NN este de
fapt o tehnic k-NN n care tehnica de msurare este fuzzy.

2.3. Gruparea


Gruparea (clustering) este o tehnic similar clasificrii deoarece face o grupare a
datelor. Spre deosebire ns de clasificare, grupurile nu sunt predefinite. Gruparea este
realizat prin gsirea similaritilor dintre date n conformitate cu caracteristicile gsite n
datele actuale. Grupurile sunt numite clusteri (clusters). O bun parte dintre autorii de
specialitate [TB70], [JD88], [HK99] consider gruparea ca fiind un tip special de
clasificare. Alii [Dun03] cred c cele dou tehnici sunt diferite. Clusterii au fost definii n
multe moduri, de exemplu:

Seturi de elemente asemntoare (similare). Elementele din diferite grupri nu sunt
asemntoare.
Distana dintre punctele aparinnd unei grupri este mai mic dect distana dintre un
punct din interiorul gruprii i altul din afara gruprii.

Analiza bazat pe grupare ne ajut s realizm parionarea unui mare set de obiecte
folosind tehnica divide et impera (divide and conquer, mparte i stpnete) care
descompune un sistem de dimensiuni mari n componente mici, pentru a simplifica
proiectarea i implementarea.
Ca o metod de extragere de date (Data Mining), gruparea datelor identific grupuri
sau regiuni dens populate innd cont de msuri de distan, n seturi mari sau
multidimensionale de date.
Gruparea este o metod studiat n mai multe domenii cum ar fi statistica [JD88],
nvarea automat [Fis95], baze de date spaiale [EKX95], extragerea de date [NH94],
42
medicina, biologia, antropologia, economia sau marketing. Aplicaiile bazate pe grupare
includ clasificarea de animale, plante, diagnostice, imagini procesate, recunoatere de
tipare i regsirea de documente. n aplicaiile de extragere de date bazate pe grupare, acest
concept de asociere trebuie vzut ca un fel de msur numeric a gradului de similaritate.
R. Ng [NH94] afirm c o grupare este bun dac:

Un grup (cluster) conine membrii care au un grad mare de similaritate
Metoda standard de msurare a similaritii n interiorul unui grup este
variana (suma ptratelor diferenelor dintre elementul principal i
fiecare element n parte). Sunt considerate cele mai bune grupurile cu
variana cea mai mic.
Deoarece dimensiunea grupului este de asemenea important, o alt
abordare este folosirea variaiei medii (variaia total mprit la
dimensiunea grupului).

M. Dunham [Dun03] folosete pentru grupare un termen similar segmentarea
bazei de date (database segmentation). n acest caz, articolele (tuplurile) unei baze de date
sunt grupate mpreun prin partiionarea sau segmentarea datelor n componente care apoi
dau utilizatorului o vedere mai general asupra datelor. Putem evidenia cteva trsturi de
baz ale gruprii (ca fiind opus clasificrii):
Numrul de clusteri nu este cunoscut
Clusterii rezultai sunt dinamici

Gruparea poate fi definit astfel:

Fiind dat o baz de date de articole (tupluri) D = {t
1
, t
2
, ..., t
n
} i o valoare ntreag
k, problema gruprii este definirea unei mapri f : D {1,2,...,n}, unde fiecare articol
(tuplu) t
i
este asociat unui grup (cluster) K
j
, 1 j k. Un grup K
j
, conine acele
articole (tuplur)i care au fost mapate n el; adic K
j
= {t
i
| f(t
i
) = K
j
, 1 i n i t
i

D}.
43

Fig. 2.3-1. Clasificarea algoritmilor de grupare

n timp au aprut o serie de algoritmi folosii n grupare care pot fi clasificai ca n
figura 2.3-1.
Algoritmii folosii n grupare pot fi de asemenea clasificai i pe baza tehnicilor de
implementare folosite.
Dintre cei mai des folosii algoritmi n grupare amintim: algoritmi cu msuri de
similaritate i distan, algoritmi cu reele neuronale (SOM Self Organizing Map).
2.3.1. Algoritmi bazai pe msuri de similaritate

Pentru a rezolva o problem specific de grupare au fost create multe proprieti de
dorit. Cea mai important dintre ele este aceea c un articol dintr-o grupare este mult mai
asemntor cu celelalte articole din interiorul grupului dect cu cele din afara lui. Ca i n
cazul clasificrii, aadar, putem defini ntre oricare dou articole (tupluri) t
i
i t
k
, o msur
a similaritii sim(t
i
,t
k
), astfel:

Fiind dat o baz de date de articole (tupluri) D = {t
1
, t
2
, ..., t
n
}, o msur de
similaritate sim(t
i
, t
j
) definit ntre oricare dou articole (tupluri) t
i
, t
j
D i o
valoare ntreag k, problema gruprii este definirea unei mapri f : D {1,2,...,k},
unde fiecare articol (tuplu) t
i
este asociat unui grup (cluster) K
j
, 1 j k. Aadar,
avnd un grup K
j
, t
jl
, t
jm
K
j
i t
i
K
j
, sim(t
jl
, t
jm
) sim(t
jl
, t
i
).

Grupare
a
Ierarhic
Partiionat

Categoric
BD mari
Aglomerativ
Diviziv
Eantionare
Compresie
44
n cazul n care avem o mulime X de obiecte de grupat, putem defini o msur de
similaritate peste X = (x
1
, x
2
, ..., x
d
) ca fiind o funcie S : X*X R, care satisface axiomele:

a) S(x,y) 0, S(x,y) = S(y.x), x, y X
b) S(x,x) = S(y,y) > S(x,y), x, y X

Dac X este o submulime a spaiului R
d
, atunci ca o msur a similaritii
vectorilor x i y din X, putem considera ca fiind cosinusul unghiului dintre cei doi vectori.
Aadar msura de similaritate este:


(2.3.1)

unde:
(x*y) este produsul scalar a doi vectori, pentru cazul dat avem x
1
y
1
+x
2
y
2
+...+x
d
y
d


[x]
T
transpusa matricei componentelor formei x

x- normala lui x :
2
d
2
2
2
1
x ... x x x + + + =

Aceast msur de similaritate este util atunci cnd mulimea X a datelor este
format din grupuri liniare. O distan poate induce o msur de similaritate. Dac d este o
distan peste X, atunci putem defini distana normalizat d/d
max
, unde:
) y , x ( d d
max
X y , x
max

= (2.3.2)
Msura de similaritate indus de distana d se definete prin:

max
2
d
) y , x ( d
1 ) y , x ( S = (2.3.3)

n cazul n care avem o mulime de obiecte de grupat, cea mai general msur de
similaritate pe care o putem defini peste X este o funcie D : X*X R, care satisface
axiomele:
a) D(x,y) 0 x,y X
[ ] [ ]
y x
y x
y x
) y * x (
) y , x ( S
T
1

=
45
b) D(x,x) = 0 x X
c) D(x,y) = D(y,x) x,y X

Admitem c X este o mulime de instruire (n care se cunoate pentru fiecare obiect,
clasa creia el aparine), iar D este o msur de disimilaritate adecvat. n aceste condiii,
este de ateptat ca disimilaritatea dintre obiectele aceluiai grup s fie sensibil mai mic
dect disimilaritatea dintre obiecte aflate n grupuri diferite. n cazul n care datele sunt
obiecte dintr-un spaiu euclidian vom considera metrica spaiului ca o msur a
disimilaritii.
Dac X i Y sunt puncte dintr-un spaiu euclidian d-dimensional
X=(x
1
, x
2
, ..., x
d
)
Y=(y
1
, y
2
, ..., y
d
)
atunci, pentru orice numr real p 1, se poate defini metrica:

p
1
d
1 i
p
i i
y x ) Y , X ( d
|
|

\
|
=

(2.3.4)
Formula de mai sus, reprezint de fapt o familie infinit de metrici. Pentru p=1, din
(2.3.4) se obine:

=
d
1 i
i i
y x ) Y , X ( d (2.3.5)
numit metrica absolut sau distana City Block.
Dac p=2, se obine distana euclidian:

2
1
d
1 i
2
i i
y x ) Y , X ( d
|
|

\
|
=

(2.3.6)
iar pentru p , se obine metrica valorii maxime:

i i
i
y x ) Y , X ( d
max
= (2.3.7)
n cazul n care valorile posibile ale caracteristicilor de clasificat sunt un numr
finit d, se pot utiliza ca msuri de disimilaritate distanele Hamming i Lee.
Distana Hamming dintre vectorii X i Y este dat de numrul componentelor
(poziiilor) n care cei doi vectori difer. Ponderea Hamming a vectorului X, notat cu
W
H
(X), se definete ca fiind numrul de componente nenule ale lui X. Rezult c distana
Hamming dintre X i Y este egal cu ponderea Hamming a diferenei lor:
46
) Y X ( W ) Y , X ( d
H H
= (2.3.8)
Distana Lee dintre vectorii X i Y se definete astfel:
Fie vectorul X=(x
1
, x
2
, ..., x
d
), cu x
i
{0,1, , q-1}, unde q este un numr pozitiv , q 2.
Ponderea Lee a vectorului X, notat cu W
L
(X), se definete ca fiind:

=
=
d
1 i
i L
x ) X ( W (2.3.9)
unde:

<

=
1 q x
2
q
daca x q
2
q
x 0 daca x
x
i i
i i
i
(2.3.10)

Distana Lee a vectorilor X i Y este ponderea Lee a diferenei lor:
) Y X ( W ) Y , X ( d
L L
= (2.3.11)
Pentru q=2, distana Hamming este:

=
d
1 i
i i H
y x ) Y , X ( d
Pentru q=2 i q=3, distanele Hamming i Lee coincid. Pentru q> 3, avem:
Y , X ) Y , X ( d ) Y , X ( d
H L

2.3.2. Algoritmi cu reele neuronale

Reelele neuronale care folosesc nvarea ne asistat ncearc s gseasc trsturi
ale datelor care s caracterizeze ieirile dorite. Aceste tipuri de reele neuronale sunt
denumite adesea SONN (Self-Organizing Neural Networks). Ele au fost dezvoltate prin
observarea modului de lucru al neuronilor din creierul uman [BS97].
SOM (Self Organizing Map) este o reea neuronal care folosete nvarea
competitiv neasistat. SOM este un tip special de arhitectur de reea neuronal care ofer
o mapare din spaiul multidimensional de intrare ntr-o latice de celule regulate de ordin
redus. Dac setul de intrri este multidimensional, algoritmii tradiionali de grupare nu
ofer un mod uor de vizualizare a apropierii de alte grupri.
O astfel de grupare este folosit pentru identificarea gruprilor de elemente care
sunt similare n spaiul original. Probabil cel mai obinuit exemplu de SOM este reeaua
47
Kohonen [Koh82], care este folosit foarte des n produsele de extragere de date
comerciale pentru a realiza gruparea.
ntr-o SOM, gruprile sunt de obicei organizate ntr-o latice, de obicei o matrice
bidimensional, dar se folosesc i unidimensionale sau multidimensionale [FAQ95].
Matricea exist ntr-un spaiu care este separat de spaiul de intrare. n schimb, reciproca
nu este adevrat: centrele de grupri care sunt apropiate unele de altele n spaiul de
intrare nu corespund n mod necesar unor grupri apropiate n matrice.
Spre deosebire de alte abordri bazate pe reele neuronale, SOM efectueaz o
antrenare neasistat. O abordare mai des ntlnit a reelelor neuronale necesit o antrenare
asistat a reelei, cu alte cuvinte, reeaua este alimentat cu un set de cazuri de antrenare iar
ieirea general este comparat cu ieirea corect cunoscut. Nodurile din reeaua SOM
converg n formarea unor grupri pentru a reprezenta grupuri de entiti cu proprieti
similare. Numrul i compoziia grupurilor pot fi determinate vizual pe baza distribuiei de
ieire generat de procesul de antrenare.
SOM este o reea de propagare nainte (feed-forward) fr nivele ascunse. Ea are
dou nivele de noduri: nivelul de intrare i nivelul Kohonen. SOM folosete msura
euclidian pentru msurarea distanei.
Algoritmul bazat pe SOM asigneaz centrelor de grupri o locaie ntr-o matrice
organizat spaial. Datele sunt procesate urmnd urmtorii pai:

1. asigneaz o funcie de vecintate care, pentru un centru dat, identific centrele
gruprilor nvecinate.
2. pentru fiecare punct:
a. gsete centrul grupri care este cel mai apropiat punctului considerat
(ctigtor)
b. mut centrul ctigtor spre punctul considerat
c. folosete funcia de vecintate pentru a identifica centrele nvecinate i
pentru a le muta spre punctul considerat
3. descrete dimensiunea vecintii i repet procesul pn cnd vecintatea include
doar centrul ctigtor.

Astfel, gruparea ncepe ca i un proces foarte general i continu devenind din ce n
ce mai localizat pe msur ce vecintatea descrete.

48
2.3.2.1. Avantaje i dezavantaje ale metodei SOM

Unul dintre principalele avantaje ale SOM este faptul c poate nva din date
complexe multidimensionale i le poate transforma ntr-o reea (map) de dimensiuni mai
reduse, de exemplu bidimensionale. Reprezentarea bidimensional ofer o interfa grafic
utilizator uor de folosit pentru a ajuta factorul de decizie s vizualizeze, de exemplu,
similaritile dintre tiparele preferinelor clienilor. Metoda este foarte puternic pentru
vizualizarea unor interaciuni multiple dintre caracteristici astfel oferind o mai bun
nelegere a datelor.
Ca i dezavantaj putem aminti faptul c la o prim abordare, SOM este o tehnic
destul de dificil de tratat iar rezultatele nu pot fi interpretate ntotdeauna uor.

2.4. Alte tehnici Data Mining


Pe lng tehnicile prezentate n acest capitol, n literatura de specialitate, mai sunt
ntlnite i altele, cum ar fi: analiza discriminant, algoritmi genetici, logica fuzzy i BBN
(Bayesian Belief Networks).
Analiza discriminant are rolul de a gsi hiperplane de separare a claselor.
Rezultatul modelului este foarte uor de interpretat deoarece utilizatorii trebuie doar s
determine pe care latur se afl un punct.
Algoritmii genetici sunt cei mai folosii n probleme de optimizri i foarte puin n
Data Mining. n general, ei sunt ncorporai ntr-o reea neuronal pentru a mri
performana reelei.
Logica fuzzy este o tehnic utilizat pentru grupare i clasificare. Tehnica este
folosit n extragerea de date din paginile Web, deoarece gruprile i asocierile nu au
granie pronunate, astfel suprapunerile sunt cel mai bine descrise prin seturi fuzzy.
BBN este un model pentru reprezentarea incertitudinii n domeniul cunotinelor.
Pentru tratarea incertitudinii este utilizat teoria probabilitii pentru reprezentarea
explicit a dependenelor condiionale dintre diferite componente. Aceasta ofer o
vizualizare grafic intuitiv a cunotinelor incluznd interaciuni ntre diferite surse de
incertitudine. BBN poate fi utilizat la gruparea clienilor (cumprtorilor).

49
2.5. Concluzii


n acest capitol au fost prezentate principalele tehnici utilizate n extragerea de date
i rolul acestora n descoperirea de cunotine.
Dintre metodele Data Mining existente, cel mai des sunt utilizate metodele de
descoperire a regulilor de asociere. Aceste metode sunt utilizate frecvent n analiza
vnzrilor cu amnuntul, dar ele pot fi aplicate cu acelai succes i n serviciile de
marketing (analiza coului de cumprturi) pentru determinarea caracteristicilor comune
ale clienilor. Industria serviciilor financiare utilizeaz, de asemenea, frecvent extragerea
de reguli de asociere. Analitii folosesc aceste tehnici pentru a analiza cantiti masive de
date pentru a construi afaceri i modele de risc pentru dezvoltarea strategiilor de investiii.
Multe companii din sectorul financiar au testat aceste tehnici care au produs rezultate
pozitive n analiza conturilor clienilor i la identificarea serviciilor financiare pe care
acetia le solicit mpreun.
KDD/DM este un domeniu interdisciplinar care dezvolt algoritmi i procese
pentru descoperirea de cunotine (categorii, tipare, concepte, relaii i tendine), construind
modele i fcnd preziceri din date structurate, semi-structurate sau nestructurate. De
asemenea, extrage informaii de interes sau tipare din baze de date de dimensiuni mari.
Datorit importanei i aplicabilitii pe care o au, aa cum am artat, n diverse
domenii, descoperirea regulilor de asociere din baze de date de dimensiuni mari a fost i
este n continuare una din tehnicile Data Mining cel mai mult studiate.
Descoperirea regulilor de asociere este probabil cea mai semnificativ contribuie a
colectivelor de cercettori din domeniul descoperirii de cunotine din baze de date.













50
3. DESCOPERIREA REGULILOR DE ASOCIERE

3.1. Definiii i terminologie


Descoperirea de reguli de asociere nseamn s gsim asocieri interesante sau
relaii de legtur (corelaii) n seturi mari de date, de exemplu, s identificm seturi de
valori ale atributelor (predicate sau itemi) care apar frecvent mpreun, i apoi s formulm
reguli care s caracterizeze aceste relaii. Descoperirea acestor reguli poate identifica tipare
sau comportamente care sunt apoi utilizate n diferite scopuri.
O definiie formal a unei reguli de asociere poate fi formulat astfel [Zhu98]:

O regul de asociere este o regul de forma
A
1
, A
2
, ..., A
m
B
1
, B
2
, ..., B
n

unde A
i
i B
j
sunt predicate sau articole (itemi) i care poate fi interpretat astfel:
Cnd ntr-o tranzacie apar articolele A
1
, A
2
, ..., A
m
, n cele mai multe cazuri apar i
articolele B
1
, B
2
, ..., B
n
n aceeai tranzacie.

Primele dezvoltri ale regulilor de asociere au fost fcute n anul 1993 de ctre
Agrawal, care a propus atunci un algoritm [AIS93] pentru descoperirea lor.
De atunci, foarte muli cercettori au studiat din multe puncte de vedere aceast
problem, ea devenind la ora actual un instrument util i important n extragerea de date.
n timp, cercetrile au dus la diferite moduri de formulare a acestor tehnici:

Extragerea de reguli de asociere booleene uni-dimensionale din baze de
date tranzacionale
Extragerea de reguli de asociere multi-nivel din baze de date
tranzacionale
Extragerea de reguli de asociere multi-dimensionale din baze de date
tranzacionale i depozite de date (warehouse)
Extragerea de asocieri bazate pe constrngeri
51
Extragerea regulilor de asociere a fost iniial generat de analizarea coului de
cumprturi. Mai trziu ea a fost aplicat n multe alte domenii cum ar fi: afaceri, inginerie,
medicin sau finane [FPS
+
96]. Mai mult dect att, unul din scopurile principale ale
extragerii de reguli de asociere a fost utilizat pentru a atinge scopul altor probleme de
extragere de date cum ar fi modelarea datelor, prezicerea viitoarelor ieiri sau suport de
decizii:

Analiza coului de cumprturi - Pentru a nelege obiceiurile i preferinele
cumprtorilor este important s lum diferite decizii cum ar fi: ce punem n vnzare,
cum s proiectm ambalajul, cum s plasm marfa n rafturi astfel nct s mrim la
maximum profitul, etc. Regulile de asociere pot oferi aceste informaii. O aplicaie
eficient de extragere de date analizeaz obiceiurile clienilor de a asocia produsele
cumprate si poate extrage reguli de asociere ntre produse. Aceste tehnici pot fi
aplicate cu succes la dezvoltarea campaniilor de marketing, n vnzrile cu amnuntul,
la crearea pachetului unei campanii promoionale.
Cross-marketing n prezent, n puternicul mediu competitiv din interiorul serviciilor,
pstrarea clienilor i folosirea mai eficient a bazei de date a cumprtorilor a devenit o
treab la fel, dac nu mai important dect atragerea de noi clieni. Tot mai multe
companii ofer mai mult de un serviciu sau produs. Din moment ce ei tiu tot mai
multe despre clienii lor obinuii cu ajutorul datelor colectate despre ei, faptul c le
ofer acestora produse pe care nc nu le au poate aduce profituri rapide. Acest tip de
vnzare prin care se ofer un produs vechilor clieni ai companiei, care nu sunt nc
cumprtori ai acestui produs se numete vnzare ncruciat (cross-sale). O aplicaie
de extragere de reguli de asociere poate descoperi cunotine utile pentru acest domeniu
pentru a ajuta rezolvarea acestui tip de vnzare.
Clasificarea parial Multe aplicaii din viaa real necesit clasificri pariale ale
datelor, de exemplu, descrierea descoperiri de modele care s arate caracteristicile unei
clase de date, dar care s nu acopere toate clasele i toate exemplele unei anumite clase.
n mod convenional clasificarea nu este eficient atunci cnd sunt foarte multe atribute
i cele mai multe dintre valorile acestor atribute lipsesc. Acest tip de problem se
rezolv folosind analiza asocierilor. Un exemplu n aceast direcie ar fi testele
medicale la care este supus un pacient. Aa cum se tie exist mii de teste medicale,
ns doar unele dintre acestea sunt fcute unui anumit pacient. Medicii pot folosi reguli
i modele descoperite prin analiza asocierilor pentru a vedea care teste pot fi combinate
52
cu altele. Astfel, ei pot evita supunerea pacienilor unor teste inutile, redundante, iar
testele complexe pot fi nlocuite cu unele mai simple.
Servicii financiare Industria serviciilor financiare utilizeaz frecvent extragerea de
reguli de asociere. Analitii folosesc aceste tehnici pentru a analiza cantiti masive de
date pentru a construi afaceri i modele de risc pentru dezvoltarea strategiilor de
investiii. Multe companii din sectorul financiar au testat aceste tehnici care au produs
rezultate pozitive n analiza conturilor clienilor i la identificarea serviciilor financiare
pe care acetia le solicit mpreun.

Formularea clasic a unei probleme de extragere de reguli de asociere este
urmtoarea:
Fie I = {I
1
, I
2
, .., I
m
} un set de articole, i D = {t
1
, t
2
, ..., t
n
} o baz de date
tranzacional, unde fiecare tranzacie are un identificator unic (tid) i conine un set de
articole t
i
= {I
i1
, I
i2
, ..., I
ik
} i I
ij
I, o regul de asociere este o implicare de forma X Y
unde X,Y I sunt seturi de articole (itemi) numite articolset-uri (itemset-uri) i X Y =
. O mulime de articole se numete articolset (itemset).
Altfel, putem spune: gsete toate regulile care asociaz prezena unui articolset n
coul de cumprturi cu alt articolset. De exemplu:

40% din cei care cumpr o bere bere bere bere cumpr de asemenea i alune alune alune alune.

Regula extras nu trebuie s fie restricionat de numrul de obiecte cumprate n
acel moment, nainte sau dup. Exist ns i posibilitatea de a specifica anumite
constrngeri pe reguli (de exemplu doar reguli care invoca anumite obiecte, cum ar fi:
bere). Tiparele secveniale maximale gsite trebuie s fie susinute de mai mult dect un
procentaj specificat de clieni. Fiecare regul are dou msuri suportul i confidena.
Pornind de la aceste formulri iniiale, se definesc conceptele de baz utilizate
[Dun03].

a) Frecvena unui articolset este numrul total de tranzacii care conine acel articolset.
b) Suportul (preponderena) unei reguli X Y este procentul de tranzacii din baza de
date care conine X Y. Pentru calculare suportului folosim formula:
) Y X ( P ) Y X ( S = (3.1.1.)
53
sau
tranzactii de total Numarul
Y si X pe contin care tranzactii de seturi de Numarul
Suportul (3.1.2.)

Interpretare: Regula de asociere este valid n s% din totalul tranzaciilor.

c) Confidena (ncrederea n regul) () unei reguli de asociere X Y este raportul
dintre numrul de tranzacii care conin X Y i numrul de tranzacii care conin X.

) X ( P ) Y X ( P ) X Y ( P ) Y X ( = = (3.1.3.)
sau
X pe contin care tranzactii de seturi de Numarul
Y si X pe contin care tranzactii de seturi de Numarul
Confidenta (3.1.4.)

Interpretare: Dac X i Y sunt n acelai co (sunt cumprate de aceeai persoan), atunci Z
este de asemenea n co n % din cazuri.

d) Scopul unei reguli de asociere este de a identifica toate regulile X Y cu un suport
minim i o confiden minim. Aceste valori sunt date ca i intrri ale problemei, fiind
stabilite de utilizatori sau de specialiti n domeniu.

Selecia unei reguli de asociere se bazeaz pe cele dou msuri: confidena care
msoar puterea unei reguli i suportul care msoar frecvena cu care ea apare n baza de
date. Ea se face de obicei n dou etape:

pasul 1: gsirea tuturor tiparelor frecvente. Prin definiie, fiecare din
aceste tipare va apare cu o frecven cel puin egal cu o valoare
predefinit denumit suport minim.
pasul 2: generarea unor reguli puternice din aceste tipare frecvente.
Prin definiie, aceste reguli trebuie s satisfac suportul minim i
confidena minim.

Datele utilizate de algoritmii de asociere sunt formate din entiti i atribute i pot
exista n unul din cele dou formate vertical sau orizontal.
54
Formatul orizontal presupune existena unui rnd pentru fiecare entitate i de
asemenea coloane pentru fiecare atribut, de exemplu, un rnd pentru fiecare co de
cumprturi (market basket) i coloane pentru fiecare produs (vezi tabelul 3.1-1)

Tranz ID Articol 1 Articol 2 Articol 3 Articol 4 Articol 5
312 DA DA DA
842 DA DA

Tabel 3.1-1. Exemplu de date n format orizontal n regulile de asociere

Problema care apare este aceea c numrul de coloane poate crete foarte mult
(numrul de produse poate fi peste 100 000). n acest caz, este nevoie ca produsele similare
s fie grupate mpreun pentru a ajunge la un numr rezonabil de coloane.
Formatul vertical presupune folosirea mai multor rnduri pentru memorarea unei
entiti, utiliznd un rnd pentru fiecare atribut. Rndurile care corespund unei singure
entiti au un numr de identificare comun (Tranz ID) (vezi tabelul 3.1-2.). Acest tip de
reprezentare este normalizat n sens relaional i permite ca o entitate s aib o variabilitate
mai mare referitor la numrul de atribute.

Tranz ID Produs
312 Item 1
842 Item 2
842 Item 3
312 Item 4
312 Item 5

Tabel 3.1-2. Exemplu de date n format vertical n regulile de asociere

Unele produse Data Mining suport operaia de conversie din format orizontal n
format vertical. Algoritmii de asociere pot opera doar cu date de tip enumerare (categorical
data). Dac trebuie analizate date care nu sunt de tip enumerare, cum ar fi de exemplu
venitul, atunci aceste date trebuie grupate ntr-un interval (de exemplu: 0 20 000; 20 001
40 000; 40 001 70 000; > 70 001) transformnd fiecare interval ntr-un atribut.
55
Descoperirea regulilor de asociere este probabil cea mai semnificativ contribuie a
cercettorilor din domeniul descoperirii de cunotine din baze de date. Descoperirea
eficient a unor astfel de reguli este nc o problem intens cercetat de specialiti.
Unele dintre principalele domenii n care gsim aplicaii ale extragerii regulilor de
asociere sunt:
o descoperirea regulilor de asociere n sisteme GIS (Geographic
Information System)
o descoperirea regulilor de asociere n date temporale
o descoperirea regulilor de asociere n baze de date multimedia i n baze
de date text
o descoperirea regulilor de asociere n baze de date multi-nivel i multi-
dimensionale

3.2. Descoperirea seturilor frecvente de articole (large itemsets)

Problema descoperirii regulilor de asociere const n generarea acelor reguli care au
un suport mai mare dect suportul minim s i o confiden mai mare dect confidena
minim .
Cea mai comun abordare a problemei descoperirii regulilor de asociere este de a
descompune aceast problem n dou etape:

1. Gsirea tuturor seturilor de articole (articolset, itemsets) care au suportul
mai mare dect suportul minim. Suportul pentru un articolset este numrul
de tranzacii care conin articolset-ul. Seturile de articole care au suportul
minim sunt denumite seturi frecvente (mari) de articole (large itemsets), iar
toate celelalte sunt denumite seturi mici de articole (small itemsets)
2. Folosirea seturilor de articole pentru generarea regulilor dorite. Acest pas
presupune gsirea, pentru fiecare set frecvent de articole l, a tuturor
subseturilor nevide ale lui l. Pentru fiecare astfel de subset x, se tiprete o
regul de forma x (l-x), dac raportul suport(l) / suport (x) este cel puin
minconf (confidena minim). Se iau n considerare toate subseturile lui l n
generarea regulilor.
56
Odat ce s-a gsit un set frecvent de articole (large itemset), se tie c orice regul
de asociere X Y, trebuie s aib X Y n acest set al articolset-urilor frecvente. Orice
subset al unui set frecvent de articole este de asemenea mare. Din acest motiv, dei gsirea
seturilor frecvente se face relativ uor, datorit dimensiunii lor aceast operaie este destul
de costisitoare.
Fiind dat un set de articolset-uri de dimensiune m, acesta are 2
m
subseturi. Deoarece
nu ne intereseaz s obinem seturi vide, numrul potenial de seturi frecvente este aadar
2
m
-1. Datorit creterii explozive a acestui numr, provocarea extragerii regulilor de
asociere se rezum adesea la eficientizarea determinrii numrului seturilor frecvente.
Algoritmii de descoperire a seturilor frecvente de articole, n general, fac mai
multe treceri asupra datelor. n prima trecere, se calculeaz suportul pentru articole
individuale i se determin care dintre ele sunt frecvente, adic satisfac suportul minim. n
urmtoarele treceri, se pornete cu seturile de articole gsite a fi frecvente. Acestea sunt
folosite pentru generarea de noi seturi de articole potenial frecvente, denumite seturi de
articole candidat (C), i se calculeaz suportul actual pentru aceti candidai. La sfritul
trecerii, se determin care dintre candidai sunt ntr-adevr frecveni i acetia sunt folosii
n urmtoarea trecere. Procesul continu pn cnd nu mai sunt gsite seturi frecvente de
articole.
Dimensiunea lui C este adesea folosit ca o msur de performan a algoritmilor
pentru descoperirea regulilor de asociere.
O caracteristic comun a algoritmilor pentru descoperirea regulilor de asociere
este ierarhia de articole (itemi). Ierarhia de articole poate fi utilizat pentru a reduce
numrul de combinaii la o dimensiune rezonabil prin gruparea articolelor similare
mpreun. Utilizarea ierarhiei de articole duce la reducerea numrului de combinaii i
totodat ajut la o mai mare generalizare i la o mai bun folosire a relaiilor.
n descrierea algoritmilor de descoperire de reguli de asociere se utilizeaz, n
general, un set de notaii prezentate mai jos, n tabelul 3.2-1.
Presupunem c articolele din fiecare tranzacie sunt pstrate ntr-o ordine
lexicografic. n acest caz, adaptarea algoritmilor de extragere de reguli de asociere la
bazele de date normalizate este o operaie relativ simpl deoarece n acest tip de baze de
date fiecare nregistrare const din perechi <TID, articol>, unde TID este identificatorul de
tranzacie.
57
Numrul de articole (itemi) dintr-un set reprezint dimensiunea acestuia, iar un set
de articole de dimensiune k, se numete k-articolset (k-itemset). Articolele din cadrul unui
set sunt meninute n ordina lexicografic.
Un articolset cu k articole se noteaz
c = c[1]
.
c[2]
.
...
.
c[k]
i are articolele c[1], c[2], ... , c[k], unde c[1] < c[2] < ... < c[k].
Dac c = X
.
Y i Y este un m- articolset, denumim Y ca fiind o m-extensie a lui X.
Fiecare articolset are asociat un cmp contor care stocheaz suportul pentru acel
articolset. Cmpul contor este iniializat cu 0, atunci cnd setul este creat.

Notaie Descriere
D Baza de date de tranzacii
t
i
O tranzacie din D
s Suport

Confiden
X,Y Articolset-uri (Itemset-uri)
X Y Regul de asociere
L Set frecvent de articole
k-itemset Un set care are k articole (itemi)

L
k

Set de k-articolset-uri (k-itemset-uri) frecvente (cele care au suport
minim) Fiecare membru al acestui set are dou cmpuri:
o Articolset (Itemset)
o Contor suport
C Set de itemset-uri candidai

C
k
Set k-articolset-uri (k-itemset-uri) candidai (seturi de articole
potenial frecvente) Fiecare membru al acestui set are dou cmpuri:
o Articolset (Itemset)
o Contor suport
k
C
Set de k-articolset-uri (k-itemset-uri) candidat care au TID-urile
tranzaciilor generatoare asociate cu seturile candidat
p Numr de partiii

Tabel 3.2-1. Notaii utilizate
58
3.3. Algoritmi pentru descoperirea regulilor de asociere


Descoperirea regulilor de asociere are ca scop descoperirea unui set de atribute
comune care aparin unui numr mare de obiecte dintr-o baz de date n general.
Pentru descoperirea asocierilor, se presupune c exist un set de tranzacii, fiecare
tranzacie fiind o list de articole (list de cri, list de alimente). Un utilizator ar putea fi
interesat de gsirea tuturor asocierilor care au s% suport (preponderen) cu % confiden
(ncredere), aadar:
trebuie gsite toate asocierile care satisfac constrngerile utilizatorului
asocierile trebui gsite eficient dintr-o baz de date de dimensiuni mari

O dat cu progresul n tehnologia codurilor de bare, firmele de comercializare a
produselor au acumulat i stocat cantiti imense de date despre produse, despre vnzri
referite ca i date despre coul de cumprturi (basket data). n cazul acestor tipuri de date,
o nregistrare (articol, item) const n mod tipic dintr-un identificator de tranzacie, data
tranzaciei i produsele cumprate la acea tranzacie.
Firmele de succes privesc aceste baze de date ca i pri eseniale ale infrastructurii
de marketing. Ele sunt interesate n introducerea unor procese de marketing conduse de
informaii, coordonate prin folosirea tehnologiilor de baze de date care s permit agenilor
de marketing s dezvolte i s implementeze programe i strategii de marketing adaptate
diverselor categorii de clieni.
Primele abordri ale problemei le-a fcut Agrawal care a propus algoritmul AIS n
anul 1993 [AIS93]. n anul 1994, tot el a propus algoritmul APRIORI [AS94]. n anul
1995, apare algoritmul SETM propus de Houtsma i Swami [HS95]. ns algoritmul
APRIORI a avut cel mai mare impact, rmnnd i la ora actual tehnica major utilizat
de productorii comerciali pentru a detecta seturile frecvente de item-uri.
Gsirea acestor tipuri de reguli sunt folosite adesea att n analizarea coului de
cumprturi, ct i pentru design-ul de cataloage, pentru aezarea mrfurilor n rafturi,
pentru categorisirea clienilor pe baza tiparelor de cumprturi pe care acetia le fac, etc.
De obicei, aa cum am mai artat, bazele de date implicate n astfel de aplicaii sunt
de dimensiuni foarte mari. Din acest motiv, este foarte important utilizarea unor algoritmi
ct mai rapizi pentru aceste aplicaii.
59
Descoperirea regulilor frecvente de asociere dintr-o baz de date de dimensiuni
mari este o problem complex deoarece spaiul de cutare crete exponenial cu numrul
de atribute din baza de date i cu obiectele bazei de date. Cele mai recente abordri sunt de
natur iterativ necesitnd scanri multiple ale bazei de date, ceea ce este foarte costisitor.
Cei mai importani algoritmi utilizai la aceast or pe pia pentru descoperirea
regulilor de asociere sunt prezentai n continuare. La final am fcut i un studiu
comparativ al acestora.

3.3.1. Definirea problemei


Formularea clasic a unei probleme de extragere de reguli de asociere este
urmtoarea:
Fie I = {I
1
, I
2
, .., I
m
} un set de articole, i D = {t
1
, t
2
, ..., t
n
} o baz de date
tranzacional, unde fiecare tranzacie are un identificator unic (TID) i conine un set de
articole t
i
= {I
i1
, I
i2
, ..., I
ik
} i I
ij
I:
O regul de asociere este o implicare de forma X Y unde X,Y I sunt seturi
(mulimi) de articole (itemi) numite articolset-uri (itemseturi) i X Y = .
Regula de asociere trebuie s aib dou msuri: un suport (preponderen) minim
(s) i o confiden (ncredere) minim (). Aceste valori (s, ) sunt date ca i parametri de
intrare.
Suportul indic frecvena de apariie a unui tipar, de exemplu ct de des apar
articolele mpreun. Msura suport este calculat cu formulele:
) Y X ( P ) Y X ( S = (3.1.1.)
sau
tranzactii de total Numarul
Y si X pe contin care tranzactii de seturi de Numarul
Suportul (3.1.2.)

A doua msur, confidena, indic puterea unei asocieri, de exemplu ct de mult un
anumit articol este dependent de altul (de exemplu, dac produsul X este cumprat de o
persoan, atunci n % din cazuri este cumprat i produsul Y). Ea se calculeaz cu
formulele:

60
) X ( P ) Y X ( P ) X Y ( P ) Y X ( = = (3.1.3.)
sau
X pe contin care tranzactii de seturi de Numarul
Y si X pe contin care tranzactii de seturi de Numarul
Confidenta (3.1.4.)
Problema descoperirii regulilor de asociere const n generarea unor reguli care s
aib un suport mai mare dect suportul minim s i o confiden mai mare dect confidena
minim .
Abordarea este independent de reprezentarea bazei de date D, care poate fi un
fiier cu date, o tabel relaional sau rezultatul unei interogri.

3.3.2. Algoritmul APRIORI


Algoritmul APRIORI este cel mai cunoscut algoritm pentru descoperirea regulilor
de asociere i este folosit n cele mai multe produse comerciale. El a fost propus de
Agrawal i Strikant n 1994 [AS94] pentru a extrage articolset-uri frecvente folosind
generarea candidailor. Algoritmul folosete proprietatea itemset-urilor frecvente:
Orice subset al unui articolset frecvent trebuie s fie la rndul su frecvent.
Algoritmul pornete de la presupunerea c un articolset este format din dou
cmpuri: unul care pstreaz numrul de tranzacii suportate de articolset-ul respectiv (un
contor) i altul un set de articole.
n prima parte a algoritmului, se numr, pentru fiecare articol i L n cte
tranzacii apare i. Dac rezultatul depete suportul minim s
min
atunci acel articol devine
1-articolset (1 itemset) frecvent (set de articole frecvente de lungime 1). Orice pas
ulterior, de exemplu pasul k, const mai departe din dou faze.
n figura 3.3-1. este prezentat algoritmul APRIORI n limbaj pseudocod.







61













Fig. 3.3-1. Algoritmul APRIORI

n prima faz, articolset-urile frecvente gsite la pasul (k -1) sunt folosite pentru
generarea articolset-urilor candidat C
k
, folosind funcia AprioriGen, descris n figura 3.3-
2.
n faza a doua se scaneaz baza de date D i se calculeaz, pentru fiecare tranzacie
t, care dintre candidai se gsesc n t. Dac un candidat se gsete n t, contorul su este
mrit cu 1. Pentru un calcul rapid, se determin ntr-un mod eficient candidaii din C
k
care
sunt coninui ntr-o anumit tranzacie t cu ajutorul funciei Subset prezentat n seciunea
3.3.2.2.
3.3.2.1. Funcia AprioriGen

Funcia AprioriGen const la rndul ei din dou faze. Ea primete ca i argument
L
k-1
, setul tuturor (k-1) articolset-uri frecvente i ntoarce un superset al setului tuturor k-
articolset-urilor frecvente.
n prima faz, numit faza reuniune, se reunete L
k-1
cu el nsui. Se presupune c
articolele unui articolset sunt sortate n ordine lexicografic. Aceast prim faz genereaz
mai multe articolset-uri dect este necesar.
n faza a dou se terg toate itemset-urile c C
k
a cror oricare (k-1) subset nu se
regsete n L
k-1
.
Intrare: baza de date de tranzacii D i suportul minim s
min

Ieire: setul L care conine toate itemset-urile frecvente ale lui D.
Funcia:
(1) L
1
= {1 itemset frecvent};
(2) k 2;
(3) while (L
k-1
0) do begin
(4) C
k
= AprioriGen (L
k-1
); // generare noi candidai
(5) forall tranzacii t D do begin
(6) C
t
Subset (C
k
, t) ; // candidai n t
(7) forall candidai c C
t
do
(8) c.count ++;
(9) end;
(10) L
k
= {c C
k
| c.count s
min
};
(11) k ++;
(12) end;
(13) L =
k
L
k
; // rezultat
62













Fig. 3.3-2. Funcia AprioriGen
Exemplu:
Fie L
3
= {{1 2 3}, {1 2 4}, {1 3 4}, {1 3 5}, {2 3 4}}. Dup prima faz de reuniune,
C
4
= {{1 2 3 4}, {1 3 4 5}}. A doua faz, cea de curare, va terge articolset-ul {1 3 4 5}
deoarece articolset-ul {1 4 5} nu este n L
3
. Aadar, n C
4
va rmne doar {1 2 3 4}.
3.3.2.2. Funcia Subset

Seturile de articole (itemi) candidat C
k
sunt pstrate ntr-un arbore hash (hash-tree).
Un nod al acestui arbore conine fie o list de articolset-uri (un nod frunz), fie o tabel
hash (un nod interior).
ntr-un nod interior, fiecare intrare n tabel pointeaz ctre un alt nod. Rdcina
arborelui este definit a avea adncimea 1. Un nod interior la adncimea d pointeaz spre
noduri cu adncime d+1.
Articolset-urile sunt stocate n noduri frunz. Cnd adugm un articolset c, pornim
de la rdcin i parcurgem n jos arborele pn cnd atingem un nod frunz. La un nod
interior la adncimea d, pentru alegerea ramurii de parcurs, se aplic o funcie hash asupra
articolului d a articolset-ului.
Toate nodurile sunt create iniial ca i noduri frunz [AS94]. Cnd numrul de
articolset-uri dintr-un nod frunz depete un anumit prag specificat, nodul frunz
respectiv este convertit ntr-un nod interior.
Intrare: setul L
k
- al tuturor (k-1) itemset-uri frecvente.
Ieire: superset-ul C
k
al setului tuturor k-itemset-urilor frecvente.
Funcia:
(1) function AprioriGen( L
k-1
: setul celor (k-1)-itemset-uri frecvente): setul
celor k-itemset-uri frecvente
(2) // faza reuniune:
(3) insert into C
k

(4) select p.item
1
, p.item
2
, , p.item
k-1
, q.item
k-1
(5) from L
k-1
p, L
k-1
q
(6) where p.item
1
= q.item
1
, , p.item
k-2
= q.item
k-2
, p.item
k-1
< q.item
k-1
;
(7) // faza de curare:
(8) forall itemset-urile c C
k
do
(9) forall (k-1) subset-uri s al lui c do
(10) if (s L
k-1
) then
(11) C
k
C
k
\ c; // terge c din C
k

(12) return C
k
;
(13) end;

63
ncepnd de la nodul rdcin, funcia Subset gsete toi candidaii coninui ntr-o
anumit tranzacie t dup cum urmeaz.
Dac suntem la un nod frunz, gsim care dintre articolset-uri din nodul frunz sunt
coninute n t i adugm referine la ele n setul de rspuns.
Dac suntem la un nod interior la care am ajuns prin aplicarea funciei hash pe
articolul i, aplicm funcia hash pe fiecare articol care urmeaz dup articolul i n
tranzacia t i n mod recursiv aplicm aceast procedur nodului corespunztor. Pentru
nodul rdcin aplicm funcia hash pe fiecare articol din t.
3.3.2.3. Avantaje i dezavantaje ale algoritmului APRIORI

a) Avantaje
- utilizeaz proprietile articolset-urilor frecvente
- poate fi uor paralelizat
- este uor de implementat

b) Dezavantaje
- presupune c baza de date tranzacional este ncrcat n memorie
- necesit mai mult de m scanri ale bazei de date

3.3.3. Algoritmul SAMPLING (de eantionare)


Pentru a facilita reducerea numrrii articolset-urilor din bazele de date de
dimensiuni mari se folosete de obicei eantionarea bazei de date. Algoritmul SAMPLING
original reduce numrul de parcurgeri ale bazei de date la una n cazul cel mai favorabil i
la dou n cazul cel mai nefavorabil [Dun03]. Eantionul din baza de date este ales astfel
nct s poat fi ncrcat n memorie. Dup aceasta, orice algoritm, cum ar fi Apriori, poate
fi utilizat la gsirea seturilor frecvente din eantion. Acestea sunt vzute ca i seturi de
articole potenial frecvente (potentially large PL) i sunt utilizate ca i seturi candidat
care sunt numrate folosind ntreaga baz de date. n plus, seturile candidat sunt
determinate prin aplicarea unei funcii de grani negativ (negative border function BD
-
)
asupra setului de articole frecvente din eantion. Setul total de candidai C este calculat cu
relaia urmtoare: C = BD
-
(PL) PL. Funcia de grani negativ este o generalizare a
64
algoritmului Apriori-Gen, descris n figura 3.3-2. Aceast funcie este definit ca un set
minimal de seturi de articole care nu sunt n PL, dar ale cror subset-uri sunt toate n PL.
Pentru a ilustra aceast idee folosim urmtorul exemplu: Presupunem c setul de
articole este {A, B, C, D}. Setul de articole frecvente gsit n eantionul din baza de date
este PL = {A, C, D, CD}. La primul pas scanm ntreaga baz de date, apoi generm
seturile de candidai dup cum urmeaz:

C = BD
-
(PL) PL = { B, AC, AD} {A, C, D, CD}.

Se adaug AC, deoarece att A ct i C sunt n PL. Din acelai motiv se adaug AD.
n schimb, nu se poate aduga ACD deoarece nici AC i nici AD nu sunt n PL. n laticea
din figura 3.3-3 se observ c pot fi adugate doar acele seturi n care toate subset-urile
sunt deja n PL.

Fig. 3.3-3. Grania negativ

Algoritmul SAMPLING este prezentat n limbaj pseudocod n figura 3.3-4. n acest
caz, se utilizeaz algoritmul APRIORI pentru a gsi seturile de articole frecvente dintr-un
eantion, dar, n aceeai manier, se poate utiliza orice algoritm pentru descoperirea de
seturi de articole frecvente.

A B C D
CD AC AD BC BD
ABC ABD ACD BCD
ABCD
AB

A B C D
CD AC AD BC BD
ABC ABD ACD BCD
ABCD
AB
(a) PL (b) PL BD
-
(PL)

65
Setul de articole frecvente este utilizat ca i set de candidai pe durata scanrii bazei
de date. Dac un set de articole este frecvent ntr-un eantion al bazei de date, atunci el este
privit ca i potenial frecvent n ntreaga baz de date. Astfel, setul de articole frecvente
dintr-un eantion este notat PL. ntr-o ncercare de a obine toate seturile de articole
frecvente pe durata unei scanri a bazei de date, PL este expandat prin grania sa negativ.
Deci, setul total de candidai este C = PL BD
-
(PL).
Pe parcursul primei scanri a bazei de date toi candidaii din C sunt numrai. Dac
toi candidaii care sunt frecveni sunt n PL i nici unul n BD
-
(PL), atunci toate seturile
de articole frecvente sunt gsite. n cazul n care cteva seturi de articole frecvente sunt pe
grania negativ, atunci este necesar o a doua scanare a bazei de date. Considerm BD
-

(PL) ca fiind o zon tampon pe grania articolset-urilor frecvente.
Setul articolset-urilor este divizat n patru zone: cele care sunt frecvente, cele care
nu sunt frecvente, cele care sunt pe grania negativ a seturilor frecvente i altele. Grania
negativ este o zon tampon dintre cele frecvente i altele. Ea reprezint cel mai mic set
posibil de articolset-uri care ar putea fi potenial frecvent. Datorit proprietilor seturilor
frecvente, tim c dac nu exist n aceast zon articolset-uri frecvente, atunci nu pot fi
nici n restul seturilor.
Cea de-a doua scanare a bazei de date, adaug articolset-urile candidat care au fost
generate i numrate. Acest lucru este fcut pentru a asigura c toate articolset-urile
frecvente sunt gsite. Notm cu ML acele articolset-uri frecvente care lipsesc, adic cele
care sunt n L dar nu sunt n PL. Pentru a gsi toate articolset-urile rmase dup cea de-a
doua scanare a bazei de date, algoritmul SAMPLING repet aplicarea funciei de grani
negativ pn cnd setul de candidai posibili nu mai crete.
Se observ n figura 3.3-4, c n algoritmul SAMPLING, aplicarea algoritmului
APRIORI pe eantionul de date este fcut utiliznd un factor suport, notat cu small, mai
mic dect S. Utiliznd un factor suport mai mic vom descoperi articolset-uri frecvente din
ntreaga baz de date.







66

























Fig. 3.3-4. Algoritmul SAMPLING

3.3.3.1. Exemplu de aplicare

Pentru a exemplifica aplicarea algoritmului SAMPLING, vom considera o baz de
date tranzacional cu suportul s = 20%.Presupunem c eantionul bazei de date sunt
primele dou tranzacii:
D
S
= {t
1
= {Pine, Gem, Unt}, t
2
= {Pine, Unt}}
Intrri:
I // seturi de articole (itemi)
D // baza de date de tranzacii
S // suportul
Ieiri:
L // seturi de articole frecvente
Algoritmul Sampling:
(1) D
S
= eantion din baza de date;
(2) PL = Apriori ( I, D
S
; smalls);
(3) C = PL BD
-
(PL);
(4) L = ;

(5) for each I
i
C do
(6) c
i
= 0; // contorul iniial este 0 pentru fiecare itemset
(7) for each t
j
D do // prima scanare a bazei de date
(8) for each I
i
C do
(9) if I
i
t
j
then
(10) c
i
= c
i
+ 1;
(11) for each I
i
C do
(12) if c
i
( S x | D | ) then
(13) L = L I
i
;
(14) ML = {x | x BD
-
(PL) x L}; // absena seturilor de articole frecvente
(15) if ML then
(16) C = L; //seteaz candidai ca i seturi de articole frecvente
(17) repeat
(18) C = C BD
-
(C); // mrete seturile de candidai
(19) until nu mai sunt adugate seturi de articole noi la C;
(20) for each I
i
C do
(21) c
i
= 0; // contorul iniial este 0 pentru fiecare itemset
(22) for each t
j
D do // a doua scanare a bazei de date
(23) for each I
i
C do
(24) if I
i
t
j
then
(25) c
i
= c
i
+ 1;
(26) if c
i
( S x | D | ) then
(27) L = L I
i
;

67
Dac reducem suportul s astfel nct s fie smalls = 10%, atunci pentru ca un
articolset s fie frecvent n eantion el trebuie s apar n cel puin 0.1 x 2 tranzacii.
Aadar, el trebuie s apar n una sau dou tranzacii.
La aplicarea algoritmului APRIORI la D
S
vom obine:
PL = {{Pine}, {Gem}, {Unt}, {Pine, Gem}, {Pine , Unt}, {Gem, Unt},
{Pine, Gem, Unt}}

La aplicarea graniei negative vom obine:
BD
-
(PL) = {{Bere}, {Lapte}}

Aadar se vor folosi acest set de candidai pentru a numra pe parcursul primei
scanri:
PL = {{Pine}, {Gem}, {Unt}, {Pine, Gem}, {Pine , Unt}, {Gem, Unt},
{Pine, Gem, Unt},{Bere}, {Lapte}}

Amintim c pe parcursul acestei scanri am utilizat s = 20% i l-am aplicat tuturor
celor cinci tranzacii din ntreaga baz de date. Aadar, pentru ca un articolset s fie
frecvent, el trebuie s apar n cel puin una sau n 20% x 5 tranzacii. Aflm astfel c att
{Bere} ct i {Lapte} sunt frecvente. Urmrind algoritmul mai nti se consider C = L,
care n acest caz este i PL. Aplicnd grania negativ vom obine:
C = BD
-
(C) = {{Bere, Pine}, {Bere, Unt}, {Bere, Lapte}, {Bere, Unt},
{Bere, Lapte}, {Gem, Lapte},{Lapte, Unt}, {Gem, Lapte}}

3.3.3.2. Avantaje i dezavantaje ale algoritmului SAMPLING

a) Avantaje
- reduce numrul de scanri ale bazei de date la una n cel mai bun caz i la dou n
cel mai ru caz
- msoar mai bine

b) Dezavantaje
- la a doua trecere exist un numr mai mare de poteniali candidai
68
3.3.4. Algoritmul PARTITIONING ( de partiionare)

Diferite abordri ale generrii articolset-urilor frecvente a fost propuse pe baza
partiionrii seturilor de tranzacii.
Algoritmul PARTITIONING abordeaz problema generrii seturilor de articole
frecvente bazndu-se pe o partiionare a setului de tranzacii din baza de date [SON95].
Astfel, baza de date D este divizat n p partiii: D
1
, D
2
, ..., D
p
. Partiionarea poate
mbunti performana gsirii seturilor de articole frecvente prin cteva metode:
Prin luarea n considerare a proprietii unui articolset frecvent, tim c un
articolset frecvent trebuie s fie frecvent n cel puin una din partiii. Aceast
idee poate ajuta ca algoritmul proiectat s fie mai eficient dect cei bazai pe
cutarea n ntreaga baz de date.

Algoritmul de partiionare poate fi adaptat mai bine la limitrile memoriei
principale. Fiecare partiie poate fi creat astfel ca ea s se ncarce n memorie.
n plus, se presupune c numrul de articolset-uri pe partiie s fie mai mic
dect cele din ntreaga baz de date.

Prin utilizarea partiionrii pot fi uor creai algoritmi paraleli i/sau distribuii,
iar fiecare partiie poate fi gestionat pe o main separat.

Generarea incremental a regulilor de asociere poate fi uor fcut prin tratarea
strii curente a bazei de date ca i o partiie i tratnd noua stare a bazei de date
ca a doua partiie.

Algoritmul PARTITIONING reduce numrul de scanri a bazei de date la dou i
mparte baza de date n partiii astfel ca fiecare partiie s poat fi ncrcat n memorie.
La scanarea bazei de date, algoritmul aduce acea partiie a bazei de date n memoria
principal i numr numai articolele din acea partiie.
La prima scanare a bazei de date, algoritmul gsete toate articolele frecvente din
fiecare partiie. Cu toate c, orice algoritm ar putea fi utilizat n acest scop, propunerea
original presupune c se adopt o abordare pe nivele, asemntoare algoritmului
APRIORI. Aici L
i
reprezint articolset-urile frecvente din partiia D
i
.
69
Pe parcursul celei de-a doua scanri, numai acele articolset-uri care sunt frecvente
n cel puin una din partiii sunt folosite ca i candidate i sunt numrate pentru a determina
dac ele sunt frecvente n ntreaga baz de date.
Algoritmul PARTITIONING este prezentat n figura 3.3-5.

















Fig. 3.3-5. Algoritmul PARTITIONING
3.3.4.1. Exemplu de aplicare

n figura urmtoare 3.3-6, este prezentat un exemplu de aplicare a algoritmului de
partiionare aplicat pe o baz de date cu 5 tranzacii:
t
1
Pine, Gem, Unt
D
1

t
2
Pine, Unt
t
3
Pine, Lapte, Unt
t
4
Bere, Pine

D
2

t
5
Bere, Lapte

Fig. 3.3-6. Exemplu de aplicare a algoritmului PARTITIONING
Intrri:
I // seturi de articole (itemi)
D= {D
1
, D
2
, , D
p
} // baza de date divizat n p partiii
S // suportul
Ieiri:
L // seturi de articole frecvente
Algoritmul Partitioning:
(1) C = ;
(2) for each i = 1 to p do //gsete itemset-urile frecvente n fiecare
partiie

(3) L
i
= Apriori ( I, D
i
; s);
(4) C = C L
i
;
(5) L = ;
(6) for each I
i
C do
(7) c
i
= 0; // contorul iniial este 0 pentru fiecare itemset
(8) for each t
j
D do // numr candidaii la a doua scanare a bazei de date
(9) for each I
i
C do
(10) if I
i
t
j
then
(11) c
i
= c
i
+ 1;
(12) for each I
i
C do
(13) if c
i
( S x | D | ) then
(14) L = L I
i
;

L
1
= {{Pine}, {Gem}, {Unt}, {Pine, Gem},
{Pine , Unt}, {Gem, Unt}, {Pine, Gem, Unt}}

L
2
= {{Bere}, {Pine}, {Lapte}, {Unt}, {Bere,
Pine}, {Bere, Lapte}, {Pine, Lapte}, {Pine,
Unt}, {Lapte, Unt}, {Pine, Lapte, Unt} }
70
n acest exemplu, baza de date este divizat n dou pri, prima partiie (D
1
)
conine dou tranzacii (t
1
, t
2
) iar cea de-a doua (D
2
) trei tranzacii (t
3
, t
4
, t
5
).
Utiliznd un suport s = 10%, rezult seturile de articolset-uri frecvente L
1
i L
2
.
Dac articolele sunt uniform distribuite ntre partiii, atunci o mare parte din
articole vor fi frecvente.
Dac datele nu sunt uniform distribuite atunci poate exista un procentaj mare de
candidai fali.
3.3.4.2. Avantaje i dezavantaje ale algoritmului PARTITIONING

a) Avantaje
- se adapteaz memoriei principale disponibile
- poate fi uor paralelizat
- numrul maxim de scanri a bazei de date este 2

b) Dezavantaje
- poate avea o mulime de candidai pe parcursul celei de-a doua scanri

3.4. Studiu comparativ de performan

n vederea evalurii performanelor am implementat n Java 1.4 algoritmii:
APRIORI [AS94], PARTITIONING [SON95] i SAMPLING [Dun03] i am studiat
performanele acestora pe diverse baze de date. Spre deosebire de raportrile efectuate n
alte lucrri, unde s-au folosit baze de date binare, pentru o evaluare ct mai realist am
optat pentru baze de date stocate pe servere SQL (Microsoft SQL 2000), accesul fiind
realizat prin interfeele ODBC standard.
Studiul s-a efectuat n cadrul colectivului de cercetare al Catedrei de Calculatoare
din cadrul Universitii din Oradea, fiind publicat n [Gyo03]. Calculatorul pe care am
realizat testele a fost un Pentium 4 la 1.7 GHz, cu 256 MBRAM sub sistemul Windows
2000.
Pentru studierea performanelor algoritmilor i pentru studierea scalabilitii am
generat seturi de date de la 10 000 pn la 500 000 de tranzacii, i am folosit factori
suport ncepnd de la 5% pn la 40%.
71
Modelul din lumea real este acela c oamenii tind s cumpere diverse articole
mpreun, care formeaz un set. Fiecare astfel de set este un potenial articolset maximal
frecvent. O tranzacie poate conine mai mult dect un articolset frecvent. Tranzaciile pot
avea un numr diferit de articole, de asemenea i dimensiunea unui articolset frecvent
difer. Unele articolset-uri pot avea mai puine articole altele pot avea mai multe articole.
Avnd n vedere aceste observaii vom genera seturi de date innd cont de numrul de
articole dintr-o tranzacie, de numrul de articolset-uri frecvente, etc. Parametri necesari
pentru generarea setului de date de test sunt definii n tabelul Tabel 3.4-1:

|D| Numrul de tranzacii
|T| Media aritmetic a dimensiunii unei tranzacii
|L| Numrul maxim de articolset-uri frecvente
N Numrul de articole
Tabel 3.4-1. Parametri utilizai pentru generarea setului de date

Seturile de date de test sunt generate prin setarea numrului de articole la N = 100
i a numrului maxim de articolset-uri frecvente la |L| = 3000. De asemenea se alege media
aritmetic a dimensiunii unei tranzacii |T| = 10. Aceste tranzacii generate imit
tranzaciile din comerul cu amnuntul a produselor.

Minsuport(%) Timp(secunde)
D1 = 40 000 tranzacii
Apriori Partitioning Sampling
25 20.90 69.20 40.10
30 11.50 64.80 28.60
35 12.10 62.10 29.10
40 11.60 57.10 26.40
Tabel 3.4-2. Rezultate pentru baza de date D1 40K

Rezultatele din tabelul Tabel 3.4-2 arat c algoritmul APRIORI are performan
mult mai bun dect PARTITIONING i SAMPLING pe o baz de date cu un numr relativ
mic de tranzacii, (40 000 tranzacii) pentru un suport mai mare de 25%.
72
0
10
20
30
40
50
60
70
80
25 30 35 40
Suport (%)
T
i
m
p

(
s
)
Apriori Partitioning Sampling

Fig. 3.4-1. Scalabilitatea raportat la suport pentru o baza de date D1 40K

Din figura 3.4-1 se observ c algoritmii APRIORI, PARTITIONING i SAMPLING
au o valoare aproape constant a timpului de execuie pentru un factor suport mai mare de
30%, pe o baz de date cu un numr relativ mic de tranzacii (D1= 40 000), dar
performana cea mai bun o are algoritmul APRIORI. Pentru un suport mai mic de 30% se
observ c timpul de execuie al algoritmilor crete semnificativ.
Rezultatele din tabelul Tabel 3.4-3. arat c algoritmul APRIORI are o performan
bun pe o baz de date relativ mare, 150 000 tranzacii, numai pentru o valoare mare a
suportului (minsuport > 30%). Pentru o valoare mai mic sau egal cu 30% a suportului,
timpul de execuie al APRIORI crete semnificativ, n timp ce algoritmii PARTITIONING
i SAMPLING au un timp de execuie mai mic dect APRIORI pentru un suport mai mic de
30%. Deci, algoritmii SAMPLING i PARTITIONING sunt mult mai performani pe o baz
de date mare i pentru un factor suport mic (< 30%).

Minsuport(%) Timp(secunde)
D2= 150 000 Tranzacii
Apriori Partitioning Sampling
25 870.50 583.90 478.40
30 875.00 565.20 477.30
35 440.00 550.30 476.80
40 441.60 542.10 463.60
Tabel 3.4-3. Rezultate pentru baza de date D2 150K
73
Figura Fig. 3.4-2. prezint scalabilitatea algoritmilor raportat la numr de
tranzacii, pentru un suport de 25%. Att APRIORI, PARTITIONING ct i SAMPLING
prezint o scalabilitate liniar cu numrul de tranzacii pe baz de date cu un numr mai
mare de 80 000 de tranzacii. Dar algoritmul SAMPLING este mult mai scalabil dect
APRIORI, cu ct numrul de tranzacii crete diferena dintre APRIORI i SAMPLING
devine din ce n ce mai mare.
0
200
400
600
800
1000
1200
1400
1600
40 50 80 110 150 190
Numr tranzacii (n mii)
T
i
m
p

(
s
)
Apriori Partitioning Sampling
Fig. 3.4-2. Scalabilitatea raportat la numr de tranzacii (25% suport)

n continuare am studiat comportarea algoritmului APRIORI pe baze de date cu un
numr variat de tranzacii ncepnd de la 10 000 pn la 520 000 de tranzacii i pentru un
factor suport cuprins ntre 5% i 40%, rezultatele fiind raportate n tabela Tabel 3.4-4. Se
observ ca algoritmul APRIORI are o performan slab pentru un factor suport mic, de
exemplu mai mic de 10% chiar i pentru o baz de date de dimensiuni mici (50 000
tranzacii). Pentru o baz de date de dimensiuni mari i cu un factor suport mare
performana este satisfctoare. Cu ct cretem dimensiunea bazei de date performana
algoritmului APRIORI scade chiar i pentru un factor suport mare.





74
Timp
(Secunde) Suport(%)
Tranzacii
(n mii) 5 10 15 20 25 30 35 40
10 13.94 10.46 8.58 6.92 6.12 6.16 6.14 4.38
20 21.98 15.90 13.05 11.10 11.00 10.00 9.48 8.38
30 48.37 30.07 25.80 21.57 19.57 18.17 14.27 12.07
40 66.50 40.10 29.60 20.90 20.90 11.50 12.10 11.60
50 107.65 63.40 45.85 31.05 31.30 25.55 17.60 17.05
80 198.30 117.00 83.50 81.80 54.90 56.00 29.60 29.70
110 1471.40 818.90 613.00 614.10 410.30 410.90 207.00 207.60
150 3097.20 2186.10 1308.90 1305.60 870.50 875.00 440.00 441.60
190 5320.60 3764.60 2264.60 2258.50 1501.70 1503.90 1498.90 755.80
300 9904.80 6557.60 4910.30 4908.10 3272.40 3275.80 1641.70 1637.90
400 17259.20 11421.20 8561.80 8547.00 5706.80 5708.90 2854.50 2851.70
520 20262.60 12095.10 12082.00 8053.80 8056.50 8065.20 4031.00 4032.70
Tabel 3.4-4. Rezultate APRIORI raportate la tranzacii/suport.
Figura Fig. 3.4-3. prezint scalabilitatea algoritmului APRIORI raportat la o baz
de date cu un numr variat de tranzacii ncepnd de la 10 000 pn la 150 000, pentru un
factor suport cuprins ntre: 5% i 40%.
0,00
500,00
1000,00
1500,00
2000,00
2500,00
3000,00
3500,00
5 10 15 20 25 30 35 40
Numr tranzacii (n mii)
T
i
m
p

(
s
)
10 20 30 40 50 80 110 150

Fig. 3.4-3. Scalabilitatea APRIORI raportat la tranzacii/suport.
75
n urma testelor efectuate a rezultat o performan bun a algoritmului APRIORI
atunci cnd este aplicat pe baze de date cu numr mare de tranzacii dar pentru un factor
suport mare (>20%). Pentru baze de date mari i suport mic (<5%) performana
algoritmului APRIORI scade dramatic, n timp ce algoritmii SAMPLING i
PARTITIONING au o performan mai bun. De exemplu, pentru o baz de date cu un
numr de 150 000 de tranzacii la un factor suport de 40% timpul de execuie a fost de 442
secunde iar pentru un suport de 5% timpul a crescut pn la 3098 secunde.

3.5. Concluzii

n urma studiilor de performan i a rezultatelor experimentale obinute au rezultat
urmtoarele concluzii:
Algoritmul APRIORI are performan slab cnd se execut pe baze de date mari
care conin un numr mare de articole pe tranzacie. Aceast performan sczut se
datoreaz faptului c dimensiunea unui articolset frecvent este mare. De exemplu pentru un
articol set frecvent de dimensiunea N > 4, algoritmul APRIORI necesit N parcurgeri ale
bazei de date pentru a descoperi acel articol, ceea ce este costisitor din punct de vedere al
timpului consumat.
Pe baze de date mari i pentru un factor suport mare (> 20%) algoritmul APRIORI
are o performan mai bun dect algoritmii PARTITIONING i SAMPLING, dar pentru un
factor suport mic (< 5%) performana algoritmului APRIORI scade dramatic.
Algoritmul SAMPLING eantioneaz baza de date, caut apoi seturile de articole
frecvente ntr-un eantion, reducnd numrul de scanri ale bazei de date la una n cel mai
bun caz i la dou n cel mai ru caz.
Algoritmul PARTITIONING reduce numrul de scanri ale bazei de date la dou i
mparte baza de date n partiii astfel ca fiecare partiie s poat fi ncrcat n memorie. n
timpul celei de-a doua scanri, numai acele articolset-uri care sunt frecvente n cel puin
una din partiii sunt folosite ca i candidate i sunt numrate pentru a determina dac ele
sunt frecvente n ntreaga baza de date, reducnd astfel setul de candidai, iar timpul de
execuie fiind mai mic dect a algoritmului APRIORI.
Algoritmii SAMPLING i PARTITIONING reduc numrul de scanri ale bazei de
date la dou i au o performan mai bun dect APRIORI atunci cnd sunt aplicai pe baze
de date mari i pentru un factor suport mic (< 5%).
76
4. DESCOPERIREA REGULILOR DE ASOCIERE
FOLOSIND EXTRAGEREA TIPARELOR
FRECVENTE

4.1. 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 [HPY00] i a multor altor
activiti importante din domeniul extragerii datelor.
Problema se pune astfel :

Fie o mulime de articole I = {i
1
, ..., i
n
}, o baz de date D = {t
1
, ..., t
n
}, unde t
i
(i
[1, N]) este o tranzacie i t
i
I. Fiecare subset al lui I se numete articolset (itemset). Dac
un articolset conine k articole (itemi), el se numete k-articolset (k-itemset). Suportul unui
articolset l este definit ca fiind procentul de tranzacii ale bazei de date D care conin
articolset-ul l (suport(l) = {tt 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 ntr-o baz de date tranzacional dat cu un prag al suportului minim dat.
Seturile de date obinute fcnd aceasta n anumite domenii (ex. biologic) 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 k- articolset, toate subseturile sale sunt
frecvente, numrul lor fiind 2
k
-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:
77
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, tiind 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 innd cont de dimensiunea mare a bazelor de date i de
numrul mare de itemset-uri posibil frecvente.

n ultimii ani au fost dezvoltai mai muli algoritmi destul de eficieni pentru
extragerea tiparelor frecvente. Cei mai muli dintre acetia au curat spaiul de cutare
avnd la baz proprietatea APRIORI [AS94]: dac un articolset nu este frecvent, nici unul
dintre superset-urile sale nu poate fi frecvent. Multe dintre studiile anterioare, prezentate n
[AS95], [PCY95], [PHM00], 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 (1-itemsets). La fiecare pas al
iteraiei se formeaz perechi de k-itemset-uri pentru a forma seturi de dimensiune k+1
((k+1)-itemset-uri). Apoi este parcurs baza de date pentru a verifica suportul candidatului
(k+1)-itemset iar setul frecvent rezultat (k+1)-itemset va fi folosit ca i intrare pentru
urmtoarea iteraie.
Spre deosebire de aceast abordare, a doua, creterea tiparului evit generarea i
testarea candidailor crescnd articolset-ul frecvent folosind prefix-ul su. Se construiete o
baz de date condiional pentru fiecare itemset frecvent l, notat D
l
. Toate tiparele care au
prefixul l pot fi examinate folosind 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 k (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 [AS94] formulat astfel: Dac orice tipar de
lungime k nu este frecvent n baza de date, atunci super-tiparul su de lungime
(k+1) nu poate fi niciodat frecvent.
78
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 situaii costisitoare:

o Manipularea unui numr mare de seturi de candidai este foarte costisitoare.
Astfel, dac exist 10
4
seturi de articole frecvente de lungime 1, (1- articolset-
uri), algoritmul APRIORI va trebui s genereze mai mult de 10
7
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 (a
1
, a
2
, ...,
a
100
), trebuie s genereze n total mai mult de 2
100
10
3
candidai.

o 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, s-a 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 mbunti substanial
performana acestei metode. Aceast problem a fost abordat de ctre Han [HPY00] 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 1, nodurile fiind aranjate astfel nct nodurile cu apariii mai frecvente vor avea o
probabilitate mai ridicat n a partaja noduri dect cele mai puin frecvente.
n al doilea rnd, este dezvoltat o metod de cretere a unui fragment de tipar,
bazat pe FP-Tree, 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), construiete 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
79
condiional. Deoarece setul de articole frecvente din oricare tranzacie este ntotdeauna
codat n calea corespunztoare 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 cucerete (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 condiionale generate la fiecare nivel de
cutare ca i de altfel dimensiunea arborelui condiional corespunztor. Mai mult,
transform problema gsirii unor tipare frecvente lungi, n cutarea unora mai scurte i
apoi a concatenrii sufixurilor. Se folosesc cele mai puin frecvente articole ca i sufixuri,
ceea ce ofer o selectivitate bun. Toate aceste tehnici contribuie la reducerea substanial
a costurilor de cutare.

4.2. Proiectarea i construirea arborelui tiparelor frecvente (FP-
Tree)

4.2.1. Definirea problemei


Fie I = {i
1
, i
2
, , i
m
} un set de articole (itemi), i D = {T
1
, T
2
, ..., T
n
} o baz de date
tranzacional, unde T
i
(i [1..n]) este o tranzacie care conine un set de articole din I.
Suportul (sau frecvena de apariie) a unui tipar A, care este un set de articole, se definete
ca fiind numrul de tranzacii din baza de date D care l conine pe A. A este un tipar
frecvent dac suportul su nu este mai mic dect un prag suport minim predefinit minsup.
Fiind dat o baz de date tranzacional D i un prag suport minim, problema
gsirii setului complet de tipare frecvente este denumit problema extragerii tiparelor
frecvente.
80
Cercettorii au cutat soluii eficiente pentru rezolvarea acestei probleme. Astfel, au
fost propuse diverse metode n [AS94], [AS95], [SON95], [HPY00], [HP00].
Dintre acestea, prezentm algoritmul propus de J. Han, J. Pei i Y. Yin n [HPY00],
numit algoritmul FP-Growth care folosete pentru construirea arborelui tiparelor frecvente
o structur de date de tip arbore numit FP-Tree.
Pentru a proiecta o structur de date compact pentru extragerea eficient a
tiparelor frecvente vom analiza un exemplu.

Exemplul 1: Fie o baz de date D, reprezentat de primele dou coloane din tabelul 4.2-1.
Se consider pragul suportului minim egal cu 3.

TID Articole cumprate Articole frecvente (ordonate)
100 f, a ,c ,d ,g ,i ,m ,p f, c, a, m, p
200 a, b, c, f, l, m, o f, c, a, b, m
300 b, f, h, j, o f, b
400 b, c, k, s, p c, b, p
500 a, f, c, e, l, p, m, n f, c, a, m, p

Tabel 4.2-1. Baza de date D cu tranzacii

La proiectarea unei structuri compacte se ine cont de urmtoarele observaii:

1. Datorit faptului c articolele frecvente vor juca un rol n extragerea tiparelor
frecvente, este necesar s se efectueze o scanare a bazei de date D pentru
identificarea setului de articole frecvente.

2. Dac se stocheaz setul de articole frecvente ale fiecrei tranzacii ntr-o structur
compact, se poate evita scanarea repetat a bazei de date D.

3. n cazul n care mai multe tranzacii au n comun un set de articole frecvente, acestea
ar putea fi reunite ntr-un singur set, cu numrul de apariii nregistrate ntr-o singur
variabil count. Este uor de verificat dac dou seturi sunt identice dac articolele
frecvente n toate tranzaciile sunt sortate dup o anumit ordine dat.
81
4. Dac dou tranzacii au n comun un anumit prefix, corespunztor unei ordonri a
seturilor frecvente, prile comune pot fi reunite folosind o structur prefix att timp
ct numrul de apariii count este nregistrat n mod corect. Dac articolele frecvente
sunt sortate descendent dup frecvena lor de apariie, exist anse mai mari ca s
avem mai multe iruri prefix n comun.

4.2.2. Construirea arborelui FP-Tree


innd cont de aceste observaii se poate construi arborele tiparelor frecvente dup
cum urmeaz.

a) n primul rnd, derivm lista articolelor frecvente printr-o scanare a bazei de date D,
(f:4), (c:4), (a:3), (b:3), (m:3), (p:3), (numrul ce apare dup: reprezint suportul), n
care articolele sunt ordonate n ordine descresctoare a frecvenei lor de apariie.
Aceast ordonare este important deoarece fiecare cale din arbore va urma aceast
ordonare. Pentru o mai uoar nelegere a algoritmului, n tabelul 4.2-1, coloana din
dreapta arat aceast ordonare pentru fiecare tranzacie.

b) n al doilea rnd, se creeaz rdcina arborelui, etichetat root, dup care se scaneaz
baza de date a doua oar.
Scanarea primei tranzacii duce la construcia primei ci prin arbore: (f:1), (c:1), (a:1),
(m:1), (p:1). Se observ c articolele frecvente din tranzacie sunt ordonate innd cont
de ordinea din lista articolelor frecvente.
Pentru a doua tranzacie, deoarece lista corespunztoare de articole frecvente (n
ordinea respectiv) f, c, a, b, m partajeaz un prefix comun f, c, a cu calea deja
existent f, c, a, m, p, contorul fiecrui nod de-a lungul prefixului este incrementat cu
1. Este creat un nou nod (b:1) i legat ca i fiu al nodului (a:2). Apoi este creat din nou
un nod nou (m:1) care este legat ca i fiu al nodului (b:1).
Pentru a treia tranzacie, deoarece lista sa de articole frecvente f, b partajeaz doar cu
nodul f cu subarborele de prefix f, contorul lui f este incrementat cu 1 i este creat un
nou nod (b:1) care este legat cu nodul (f:3) ca i fiu al acestuia.
82
Scanarea celei de a patra tranzacii conduce la crearea celei de a doua ramuri (c:1),
(b:1), (p:1).
Pentru ultima tranzacie, deoarece lista sa de articole frecvente f, c, a, m, p este
identic cu prima, calea este partajat i contorul fiecrui nod de-a lungul cii este
incrementat cu 1.

Pentru a facilita traversarea arborelui, se construiete un tabel antet al articolelor, n
care fiecare intrare arat spre apariia acestuia n arbore printr-un pointer la un nod al
arborelui (cap de list). Nodurile cu acelai articol sunt nlnuite prin astfel de pointeri.
Arborele rezultat dup scanarea tuturor tranzaciilor este prezentat n figura 4.2-1. Acest
exemplu conduce la proiectarea i construcia arborelui tiparelor frecvente.

Fig. 4.2-1. Construirea arborelui FP-Tree pentru Exemplul 1

Un arbore de tipare frecvente (FP-Tree) este un arbore cu structura definit astfel:

1. Arborele are un nod rdcin etichetat root, un set de subarbori prefix de articole
ca i fii ai rdcinii i o tabel antet pentru articolele frecvente.

2. fiecare nod din subarborele prefix de articole const din trei cmpuri: nume-articol,
contor i nlnuire-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,
Articol Cap list
f

c

a

b

m

p

Tabela antet
f : 4
c : 3
a : 3
m : 2
p : 2
root
b : 1
b : 1
m : 1
c : 1
b : 1
p : 1
83
c. nlnuire-nod face legtura la urmtorul 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)
nume-articol i (2) capul listei care pointeaz spre primul nod din FP-Tree care se
refer la nume-articol.
Pe baza acestei definiii, a fost propus, n [HPY00], algoritmul de construcie a
arborelui FP-Tree prezentat n figura 4.2-2.

Fig. 4.2-2. 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
din Trans.
Intrare: Baza de date tranzacional D i suportul minim s;
Ieire: Arborele tiparelor frecvente corespunztor (FP-Tree);
Metoda:
Arborele FP-Tree este construit n urmtorii pai:
1. Se scaneaz baza de date D.
Se colecteaz setul de articole frecvente F i suportul
corespunztor acestora.
Se sorteaz F n ordinea descresctoare a suportului n
lista articolelor frecvente L
2. Se creeaz nodul rdcin al arborelui FP-Tree, T, i se
eticheteaz cu root. Pentru fiecare tranzacie Trans din
D se efectueaz urmtoarele operaii:
a. Se selecteaz i se ordoneaz articolele din Trans
conform ordonrii lui L, adic n ordine
descresctoare 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 execut astfel: dac T are un fiu N,
astfel nct N.nume-articol = p.nume-articol, atunci
se incrementeaz contorul lui N cu 1; altfel se
creeaz un nou nod, cu contorul iniializat pe 1,
printele T i nlnuire-nod va fi nlnuit cu
nodurile avnd acelai nume-articol. Dac P nu
este goal, se apeleaz n mod recursiv
insert_tree(P, T).
84
Din procesul de construcie a arborelui FP-Tree se pot sublinia cteva proprieti
importante.

Lema 4.1. Fiind dat o baz de date tranzacional D i un suport minim s,
arborele FP-Tree corespunztor conine informaia complet din D care este relevant
pentru extragerea tiparelor frecvente.

Raionament: Pe baza procesului de construcie a arborelui FP-Tree, fiecare
tranzacie din D este mapat pe o cale din arbore, iar informaia despre tiparele frecvente
din fiecare tranzacie este stocat 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 tranzacie trebuie s porneasc de la nodul rdcin a fiecrui
subarbore prefix. Astfel, rezult lema de mai sus.

Lema 4.2. Fr a se considera rdcina, dimensiunea unui FP-Tree este limitat
de numrul total de apariii ale tiparelor frecvente n baza de date, iar nlimea arborelui
este limitat la numrul maxim de articole frecvente din orice tranzacie din baza de date.

Raionament: 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 legtur i un contor, de aici avem limita asupra
dimensiunii arborelui aa cum a fost afirmat n lem. nlimea oricrui subarbore p-prefix
este numrul maxim de articole frecvente. Astfel, nlimea unui arbore este limitat de
numrul maxim de articole frecvente din oricare tranzacie in baza de date, asta cu condiia
s nu considerm nivelul suplimentar adugat de rdcin.

Lema 4.2, arat 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.
85
Deoarece exist de multe ori mai multe partajri ale articolelor frecvente ntre
tranzacii, 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 ru caz, n nici un caz, nu va fi generat un arbore FP-Tree cu un
numr exponenial de noduri.
FP-Tree este o structur foarte compact, care stocheaz informaia pentru
extragerea tiparelor frecvente. Deoarece o cale a
1
a
2
... a
k
pentru orice 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.

4.3. Metoda FP-Growth de extragere a tiparelor frecvente
folosind arborele FP-Tree

Metoda numit FP-Growth (Frequent Pattern Growth) propus de J. Han, J. Pei
i Y. Yin n [HPY00], extrage tipare frecvente fr 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 candidai 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
86
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.
Aadar, 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 c 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 FP-Tree 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 4.1. (Proprietatea legturii nodului) Pentru orice articol frecvent a
i
,
toate tiparele frecvente posibile care l conin pe a
i
pot fi obinute prin urmrirea
legturilor nodurilor care conin pe a
i
, ncepnd de la intrarea corespunztoare a
i
din
tabela antet.

Aceast proprietate se bazeaz direct pe procesul de construcie al arborelui FP-
Tree. Acesta faciliteaz accesul tuturor informaiilor tiparelor legate de a
i
, prin traversarea
arborelui FP-tree, urmrind legturile nodurilor a
i
.

Exemplul 2. Pentru exemplificare, vom examina procesul de extragere a tiparelor
frecvente bazat pe arborele FP-Tree construit n fig. 4.2-1, pentru exemplul 1. Pe baza
proprietii 4.1, se colecteaz toate tiparele la care particip un anumit nod a
i
, ncepnd de
la capul listei lui a
i
(din tabela antet) i se urmeaz legturile nodurilor a
i
. Procesul de
extragere este examinat pornind de la nceputul tabelei antet.
Pentru nodul p, se deriveaz un tipar frecvent (p:3) i dou ci n FP-Tree: f:4, c:3,
a:3, m:2, p:2 i c:1, b:1, p:1. Prima cale indic faptul c irul f, c, a, m, p apare de dou
ori n baza de date. De notat c, dei irul f, c, a apare de trei ori i f chiar de patru ori,
87
acestea apar mpreun doar de dou ori cu p. Astfel, pentru a vedea care iruri apar
mpreun cu p, conteaz doar calea prefix a lui p i anume f:2, c:2, a:2, m:2.
n mod similar, cea de-a doua cale indic irul c, b, p care apare o singur dat n
tranzaciile din D, respectiv calea prefix a lui p este c:1, b:1. Aceste dou ci prefix ale p,
{f:2, c:2, a:2, m:2} i {c:1, b:1} formeaz baza de sub-tipare ale lui p, care se numete
baza condiional de tipare ale lui p (cu condiia ca p s existe).
Construcia unui arbore FP-Tree pe aceast baz condiional de tipare (numit FP-
Tree condiional) conduce la o singur ramur (c:3). De aici este derivat doar un singur
tipar frecvent (cp:3). Un tipar este un set de articole (itemset) i aici este notat ca un ir. n
acest moment se termin cutarea de tipare frecvente asociate cu p.
Pentru nodul m, se deriveaz tiparul frecvent (m:3) i dou ci f:4, c:3, a:3, m:2 i
f:4, c:3, a:3, b:1, m:1. Se observ c p apare mpreun cu m, dar cu toate acestea nu este
nevoie s l includem pe p n analiz deoarece oricare dintre tiparele frecvente care l
conin pe p au fost deja analizate n etapa precedent de analiz a lui p. n mod similar
analizei de mai sus, baza condiional de tipare a lui m este {f:2, c:2, a:2, f:2, c:1, a:1,
b:1}. Construind un arbore FP-Tree asupra acestei baze condiionale, se deriveaz
arborele FP-Tree condiional al lui m, f:3, c:3, a:3, o singur cale de tipare. Dup aceea
se apeleaz n mod recursiv funcia de explorare bazat pe FP-Tree, astfel mine(f:3, c:3,
a:3m).
n figura 4.3-1.(b), este prezentat construirea bazei condiionale de tipare i a
arborelui condiional pentru m, pornind de la exemplul 1 a crui arbore FP-Tree global a
fost prezentat n figura 4.3-1 i reprezentat n figura 4.3-1.(a). Apelarea funciei mine(f:3,
c:3, a:3m) implic explorarea a trei articole n secven.
Primul, reprezentat n figura 5.3-1.(c), produce un tipar frecvent (am:3) i un apel
al funciei mine(f:3, c:3am).
Al doilea, reprezentat n figura 4.3-1.(d), produce un tipar frecvent (cm:3) i un
apel al funciei mine(f:3cm).
Al treilea, reprezentat n figura 4.3-1.(e), produce doar un singur tipar frecvent
(fm:3). Mai departe, apelul recursiv al funciei mine(f:3, c:3am) produce:
I. Tiparul frecvent (cam:3)
II. Un apel recursiv al funciei mine(f:3am) care produce tiparul frecvent (fam:3)
88
III. Un alt apel recursiv al funciei mine(f:3cam) care produce tiparul frecvent
(fcam:3).














(a) FP-Tree global (b) FP-Tree condiional a lui m








(c) FP-Tree condiional (d) FP-Tree condiional (e) FP-Tree condiional
a lui am a lui cm a lui cam

Fig. 4.3-1. Arborele FP-Tree condiional construit pentru m

n mod similar, apelul recursiv al funciei mine(f:3cm) va produce tiparul
frecvent (fcm:3). Astfel, ntregul set de tipare frecvente implicnd m este {(m:3), (am:3),
(cm:3), (fm:3), (cam:3), (fam:3), (fcam:3), (fcm:3)}.
f : 4
c : 3
a : 3
m : 2
p : 2
root
b : 1
b : 1
m : 1
c : 1
b : 1
p : 1
Baza condiional de tipare a lui m:

(f:2, c:2, a:2)
(f:1, c:1, a:1, b:1)

Baza condiional de
tipare a lui cm:

(f:3)

root
f : 3
Baza condiional de
tipare a lui am:

(f:3, c:3)

root
f : 3
c : 3
Baza condiional de
tipare a lui cam:

(f:3)

root
f : 3
Articol Cap list
f

c

a


Tabela antet

c : 3
a : 3
root
89
Aceasta indic faptul c un arbore FP-Tree cu o singur cale poate fi explorat prin
producerea tuturor combinaiilor de articole din cale.
Dac se procedeaz la fel pentru nodul b, se deriv (b:3) i trei ci {f:4, c:3, a:3,
b:1, f:4, b:1 i c:1, b:1}. Deoarece baza condiional de tipare frecvente a lui b este:
{f:1, c:1, a:1, f:1, c:1}, ea nu genereaz nici un articol frecvent, aadar explorarea se
termin.
Nodul a produce doar un singur tipar frecvent {(a:3)} i o baz de sub-tipare, {(f:3,
c:3)}, deci un FP-Tree condiional cu o singur cale. Astfel, setul su de tipare frecvente
poate fi generat prin generarea combinaiilor lor. Concatenndu-le cu (a:3), rezult { (fa:3),
(ca:3), (fca:3)}.
Nodul c produce (c:4) i o baz de sub-tipare {(f:3)}, aadar setul de tipare
frecvente asociate cu (c:3) este {(fc:3)}.
Nodul f produce doar (f:4) fr o baz condiionl de tipare.
n tabelul 4.3-1, sunt sintetizai bazele condiionale de tipare i arborii FP-Tree
condiionali pentru exemplul prezentat mai sus.

Articol Baza condiional de tipare FP-tree condiional
p {f:2, c:2, a:2, m:2, c:1, b:1} {(c:3)}p
m {f:4, c:3, a:3, m:2, f:4, c:3, a:3, b:1, m:1} {(f:3, c:3, a:3)}m
b {f:4, c:3, a:3, b:1, f:4, b:1, c:1, b:1}
a {(f:3, c:3)} {(f:3, c:3)}a
c {(f:3)} {(f:3)}c
f


Tabel 4.3-1. Extragerea tuturor tiparelor prin crearea bazelor condiionale
de (sub) - tipare

Proprietatea 4.2. (Proprietatea cii prefix) Pentru a calcula tiparele frecvente
pentru un nod a
i
din calea P, trebuie s se cumuleze doar sub-calea prefix a nodului a
i
din
O, fiecare nod din aceast sub-cale ar trebui s poarte aceeai frecven ca i nodul a
i
.
Raionament: Fie nodurile de-a lungul cii P etichetate cu a
1
, a
2
, ..., a
n
ntr-o
ordine astfel nct a
1
este rdcina sub-arborelui prefix, a
n
este frunz a sub-arborelui P i
a
i
(1 i n) este nodul referit. Bazndu-ne pe procesul de construcie a arborelui prezentat
90
n algoritmul FP-Tree, pentru fiecare nod prefix a
k
(1 k i), sub-calea prefix a nodului a
i

din P apare mpreun cu a
k
exact de a
i
. count ori. Aadar, orice astfel de nod prefix ar
trebui s aib aceeai valoare a contorului ca i nodul a
i
. De notat faptul c un nod postfix
a
m
(1 m n) de-a lungul aceleai ci apare de asemenea mpreun cu nodul a
i
. Cu toate
acestea tiparele cu a
m
vor fi generate la examinarea nodului postfix a
m
, incluzndu-le aici
ar conduce la generarea redundant de tipare care ar fi generate pentru a
m
. Aadar, trebuie
s examinm doar sub-calea prefix a lui a
i
din P.
Astfel, n exemplul 2, nodul m este implicat n calea f:4, c:3, a:3, m:2, p:2, pentru
calcularea frecvenei tiparelor pentru nodul m din aceast cale, doar sub-calea prefix a
nodului m, care este f:4, c:3, a:3, este necesar pentru a fi extras i frecvena fiecrui nod
din calea prefix ar trebui s fie aceeai ca i a nodului m. Asta nseamn c frecvena
nodurilor din calea prefix ar trebui s fie ajustat la f:2, c:2, a:2.
Pe baza acestei proprieti, sub-calea prefix a nodului a
i
din calea P poate fi copiat
i transformat ntr-o sub-cale prefix a frecvenelor ajustate, prin ajustarea frecvenelor
fiecrui nod din calea sub-prefix la aceeai frecven ca i a nodului a
i
. Astfel, aceast
transformare este numit transformarea cii prefix a lui a
i
pentru calea P.
Setul de transformri a cii prefix a lui a
i
formeaz o baz de date de tipare a lui a
i
.
Astfel, o baz de tipare a lui a
i
este numit baz condiional de tipare a lui a
i
i este
notat astfel pattern base a
i
. Dup asta se pot calcula toate tiparele frecvente asociate
cu a
i
n aceast baz condiional de tipare a lui a
i
prin crearea unui arbore mic FP-Tree,
numit FP-Tree condiional a lui a
i
(vezi fig. 4.3-1.(b), (c), (d), (e)).
Explorarea ulterioar poate fi fcut pe acest arbore mic FP-Tree condiional.
Procesul de construire a bazei condiionale de tipare i a FP-Tree condiional a fost
demonstrat n exemplul 2.
Acest proces executat recursiv i tiparele frecvente pot fi obinute prin metoda de
cretere a tiparelor (FP-Growth), bazat pe urmtoarea lem i corolar.

Lema 4.3. (Creterea fragmentului) Fie un itemset din baza de date D, B fiind
baza condiional de tipare a lui i un itemset din B. n acest caz, suportul lui
din D este echivalent cu suportul lui din B.
Raionament: n conformitate cu definiia bazei condiionale de tipare, fiecare sub-
tranzacie din B apare dac apare n baza original de tranzacii D. Dac un itemset
91
apare n B de ori, el apare cu n D de ori. Deoarece toate itemset-urile sunt
colectate n baza condiional de tipare a lui , apare exact de ori n D.

Din aceast lem se poate deriva uor un corolar.

Corolar 4.3. (Creterea tiparelor) Fie un itemset din baza de date D, B fiind baza
condiional de tipare a lui i un itemset din B. n acest caz, este frecvent n D
dac i numai dac este frecvent n B.

Pe baza corolarului 4.3, explorarea poate fi executat prin identificarea mai nti a
seturilor de articole frecvente de lungime 1 (1-itemset-uri), , din baza de date D,
construirea bazei condiionale de tipare a acestora i apoi explornd 1-itemset-uri, , n
bazele condiionale de tipare, i aa mai departe. Aceasta nseamn c procesul de
extragere a tiparelor frecvente poate fi privit i ca extragerea mai nti a seturilor de
articole frecvente de lungime 1 (1-itemset-uri) i apoi progresiv cretem fiecare itemset
prin explorarea bazei condiionale de tipare a acesteia, care poate fi executat similar.
Astfel, reuim s transformm problema extragerii k-itemset-urilor frecvente ntr-o
secven de k probleme de explorare a 1-itemset-urilor frecvente prin intermediul unor
baze condiionale de tipare. Nu este necesar s generm nici o combinaie de seturi de
candidai n ntreg procesul de explorare.

Lema 4.4. (Generarea tiparelor ntr-un FP-Tree cu o singur cale) Presupunem un
FP-Tree T care are o singur cale P. Setul complet de tipare frecvente a lui T poate fi
generat prin enumerarea tuturor combinaiilor de sub-ci ale lui P cu suportul minim al
articolelor coninute n sub-cale.

Raionament: Fie o singur cale P n arborele FP-Tree a
1
:s
1
a
2
:s
2
...
a
k
:s
k
. Suportul s
i
al fiecrui articol a
i
(1 i k) este frecvena de apariie a lui a
i
mpreun
cu irul su prefix. Astfel, orice combinaie de articole din cale, cum ar fi a
i
,..., a
j
(1 i, j
k) este un tipar frecvent, cu frecvena lor de apariie avnd suportul minim a acestor
articole. Deoarece fiecare articol n fiecare cale P este unic, nu exist tipare redundante cu
o astfel de generare combinatoric. Mai mult, nici un tipar frecvent nu poate fi generat n
afara arborelui FP-Tree.
92

Pe baza celor artate mai sus, n figura 4.3-2, este prezentat algoritmul FP-Growth
[HPY00] pentru extragerea tiparelor frecvente utiliznd arborele FP-Tree prin creterea
fragmentelor de tipare.















Fig. 4.3-2. Algoritmul FP-Growth

Cu ajutorul proprietilor i lemelor prezentate anterior, 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, n conformitate cu lema 4.4, tiparele generate sunt
combinaii ale nodurilor din cale, iar suportul este suportul minim al nodurilor din sub-ci.
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 a
i
. n conformitate cu proprietatea de cretere a fragmentelor, suportul
fragmentelor se ia ca fiind suportul itemset-urilor frecvente generate din baza condiional
de tipare.
Intrare: Arborele tiparelor frecvente construit pe baza algoritmului FP-Tree
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 P
(2) then for each combinaie (notat cu ) a nodurilor din calea P do
(3) genereaz tiparele cu support = suportul minim al
nodurilor din
(4) else for each a
i
din tabela antet Tree do {
(5) genereaz tiparele = a
i
cu support = a
i
.support;
(6) construiete baza condiional de tipare a lui i apoi
(7) arboreal FP-Tree condiional a lui , notat Tree

;
(8) if Tree

=
(9) then call FP-Growth ( Tree

, )
}
}
93
Procesul de explorare bazat pe algoritmul FP-Growth scaneaz arborele FP-Tree al
bazei de date D o dat i genereaz o baz de tipare mic B
ai
pentru fiecare articol frecvent
a
i
, fiecare constnd din seturi de ci prefix transformate ale lui a
i
. Extragerea tiparelor
frecvente este apoi executat recursiv pe baza de tipare mic B
ai
cu construirea unui arbore
FP-Tree condiional pentru B
ai
.
Aa cum a reieit din analiza algoritmului FP-Tree, un astfel de arbore al unei baze
de date este n general mult mai mic dect dimensiunea bazei de date. Similar, deoarece
arborele FP-Tree condiional, FP-Tree a
i
, este construit pe baza tiparelor B
ai
, el ar
trebui s fie mult mai mic i niciodat mai mare dect B
ai
. Mai mult, o baz de tipare B
ai
,
este n general mult mai mic dect arborele su FP-Tree original, deoarece ea const din
cile prefix transformate, referitor doar la unul din articolele frecvente, a
i
.
Astfel, procesul de extragere urmtor lucreaz pe un set de baze de tipare i arbori
FP-Tree condiionali mult mai mici n general. Din acest motiv, procesul este n general
mult mai puin costisitor dect generarea i testarea unui numr foarte mare de tipare
candidat. Aceasta face ca algoritmul FP-Growth s fie mult mai eficient.
Se observ totodat, c procesul de extragere este un proces de tip mparte i
stpnete (divide et impera) iar scala de micorare este impresionant. n general
factorul de micorare este n jur de 20 100 pentru construirea unui arbore FP-Tree dintr-o
baz de date.
Se poate meniona faptul c, chiar dac o baz de date poate genera un numr
exponenial de tipare frecvente, dimensiunea arborelui FP-Tree este n general destul de
mic i niciodat nu va crete exponenial.
De exemplu, pentru un tipar frecvent de lungimea 100, a
1
,..., a
100
, prin
construcia arborelui FP-Tree rezult numai o cale de lungimea 100 pentru tipar, cum ar fi
a
1
... a
100
. Algoritmul FP-Growth va genera ns n jur de 10
30
tipare frecvente.
Deoarece arborele FP-Tree conine numai o cale a tiparului frecvent de 100 de noduri, i n
conformitate cu lema 4.4, nu este necesar s construim ali arbori FP-Tree pentru a gsi
toate tiparele.


94
4.4. Algoritmul AFOPT (Ascending Frequency Ordered Prefix-
Tree)

Problemele principale ntmpinate n procesul de extragere a tiparelor frecvente
folosind creterea tiparelor este reducerea numrului de baze de date condiionale
construite pe parcursul ntregului proces de extragere i reducerea costurilor de traversare
i construcie a fiecrei baze de date condiionale. Prima depinde de modul n care sunt
sortate articolele frecvente i de spaiul de cutare explorat. A doua depinde de modul de
reprezentare a bazelor de date condiionale i de strategia de traversare a acestora.
Cu toate acestea, este foarte greu s reduci n acelai timp att costurile de
construcie ct i cele de traversare a bazelor de date condiionale deoarece scopul nsi de
construire a unei baze condiionale noi este acela de a evita o nou traversare (deci
reducerea costului de traversare). Reducerea unuia dintre costuri implic de obicei mrirea
celuilalt i invers.
Algoritmul AFOPT (Ascending Frequency Ordered Prefix-Tree) a fost propus de
Liu G., Lu H. i Lou W. n [LLX+03]. Ei au propus o structur de date compact
arborele prefixat ordonat cresctor dup frecven (ascending frequency ordered prefix-
tree - AFOPT) pentru a reprezenta bazele de date condiionale, arbore parcurs de sus n jos
(top-down). Au demonstrat c aceast combinaie de strategii, parcurgerea arborelui de sus
n jos i ordonarea frecvenelor ascendent minimizeaz att numrul total de baze de date
condiionale create ct i costurile de traversare a acestora.
Spaiul de cutare pentru extragerea tiparelor frecvente poate fi reprezentat folosind
arborele de enumerare introdus de Raymon [Ray92] i utilizat mai trziu de Bayard
[Bay98], Agarwal [AAP00a], Burdick [BCG01] i Gouda i Zaki [GZ01] n cercetrile
lor.
4.4.1. Prezentarea problemei

Se d un set de articole (itemi) I = {i
1
, i
2
, , i
n
} ordonate cresctor. Spunem c un
articolset l = {i
a1
, i
a2
, ..., i
an
} este sortat dac j [1, m-1], i
aj
i
aj+1
. Avnd dou
articolset-uri sortate t
1
= {i
a1
, i
a2
, ..., i
an
} i t
2
= {i
b1
, i
b2
, ..., i
bk
} (m k), dac j [1, m], i
aj

= i
bj
, atunci t
1
se numete prefix-ul lui t
2
. Dac k = m+1, atunci spunem c t
1
este prefix-ul
imediat a lui t
2
.
95
Orice subset a lui I poate fi frecvent n D. Acestea formeaz spaiul de cutare
extragerea tiparelor frecvente. Se poate construi un arbore pentru a reprezenta spaiul de
cutare pe baza relaiilor prefixate. Fiecare nod din arbore reprezint un articolset. ntre
articolset i prefix-ul su imediat exist o muchie. Acest arbore este denumit arborele
spaiului de cutare sau arborele spaiului tiparelor.
De exemplu, fiind dat un set de articole I = {a, b, c, d, e}, sortate n ordine
lexicografic, arborele spaiului de cutare este prezentat n figura 4.4-1. Rdcina
arborelui (nivelul 0) reprezint setul vid i fiecare nod de pe un anumit nivel k reprezint
un articolset de dimensiune k (k-itemset) ordonat lexicografic.
Pentru a mri orice articolset l din arbore, acestuia i se pot aduga doar acele
articole care se gsesc dup ultimul articol a lui l. Aceste seturi de articole se numesc
extensii candidat a lui l i sunt notate cand_exts(l).
n cazul n care avem un nod p, care este frecvent, dac putem aduga un articol x
la p, pentru a forma un articolset frecvent mai lung, atunci x se numete o extensie
frecvent a lui p. Dac q = p {x}este fiul lui p i este frecvent, atunci orice extensie
frecvent a lui p care se gsete dup x poate fi o extensie frecvent a lui q. Acestea se
numesc extensiile candidat ale lui q.
De exemplu, articolele d i e sunt extensii candidat pentru ac, n timp ce b nu este
extensie candidat pentru ac deoarece b se gsete naintea lui c. De asemenea, dac c, d, e
sunt extensii candidat pentru a, atunci d i e sunt extensii candidat pentru ac, dar c nu este
extensie candidat pentru ad sau ae.


Fig. 4.4-1. Arborele spaiului de cutare
96
Prin extinderea unui articolset frecvent l cu una dintre extensiile sale candidat,
obinem un articolset frecvent care se va numi extensie frecvent a lui l, notat cu
freq_exts(l).

4.4.2. Algoritmul AFOPT


Algoritmul AFOPT ncepe prin traversarea bazei originale de date pentru a gsi
itemi frecveni pe care i sorteaz n ordine cresctoare dup frecvena lor de apariie. Apoi,
baza de date este parcurs a doua oar pentru a construi o structur AFOPT (arborele
prefixat prefix-tree) care s reprezinte baza de date condiional a articolelor frecvente.
Baza de date condiional a unui articlo i include toate tranzaciile care conin articolul i,
iar articolele care nu sunt frecvente i cele care se gsesc naintea lui i sunt ndeprtate din
fiecare tranzacie. La stocarea ramurilor simple din arborele prefixat se folosesc tablouri
(array) pentru a salva spaiu i a micora costurile de construcie a arborelui. Fiecare nod
din arborele AFOPT conine trei tipuri de informaii: identificatorul articolului (ID),
numrul articolset-urilor corespunztoare cii de la rdcin pn la acel nod i pointerii
care indic fii nodului respectiv. Fiecare element din tablou pstreaz dou primele dou
informaii. n continuare vom nota p.item identificatorul nodului p din arborele AFOPT.
Pentru a ilustra construirea structurii AFOPT a unei baze de date vom folosi un
exemplu. Se d o baz de date tranzacional D, n tabelul 4.4-1., i un prag al suportului
minim s = 40%, articolele frecvente sunt F = {c:3, e:3, f:4, d:4, m:5, a:7} ele fiind sortate
n ordinea cresctoare a frecvenelor lor.

TID Tranzacii Tranzaciile proiectate
1 a, c, e, f, h, m, p c, e, f, m, a
2 a, b, c, f, g, m c, f, m, a
3 a, d, e, f, q, s, t e, f, d, a
4 a, b, d, k, m, o, r d, m, a
5 a, e, f, h, m, q, y e, f, m, a
6 a, c, d, j, m, t, w c, d, m, a
7 a, d, u, x, z d, a
Tabel 4.4-1. Tranzaciile bazei de date D
97
La a doua parcurgere a bazei de date, tranzacia 1 devine T
1
= {c, e, f, m, a},
deoarece articolele h i p au fost ndeprtate pentru c nu sunt frecvente iar cele rmsei au
fost sortate. Se creeaz astfel o ramur cu fiecare intrare cu numrul 1. Tranzacia 2, devine
T
2
= {c, f, m, a} n mod analog, dup ndeprtarea articolelor nefrecvente i sortarea celor
rmase. Aceasta are n comun cu tranzacia 1 un prefix c, deci contorul suport al nodului c
este incrementat la 2, el avnd 2 fii e i f. n acest mod sunt inserate toate tranzaciile,
arborele AFOPT final fiind prezentat n figura 4.4-2.










Fig. 4.4-2. Arborele AFOPT
Dac T este arborele prefixat construit din baza de date original, i p
1
, ..., p
m
este
mulimea nodurilor din T a cror identificator este i, atunci baza de date condiional a
articolului i este reuniunea subarborilor a cror rdcin este i.
De exemplu, n arborele din figura 4.4-2., baza de date condiional a articolului c
este reprezentat de primul subarbore al rdcinii deoarece, doar rdcina acestuia este
articolul c. Baza de date condiional a articolului e conine 2 subarbori: unul este primul
subarbore al nodului c iar cellalt este al doilea subarbore al rdcinii.
Arborele AFOPT este o reprezentare compact a bazei de date condiionale. El
conine informaii complete pentru a putea extrage articolset-urile frecvente din baza de
date original. Dimensiunea arborelui AFOPT depinde de numrul total de articole
frecvente care apar n baza de date, dar de obicei este mult mai mic dect acesta. Dup
construirea arborelui AFOPT, restul operaiei de extragere a tiparelor frecvente se va
efectua doar asupra arborelui, fr a mai fi nevoie s parcurgem baza de date.
Algoritmul traverseaz arborele (spaiul de cutare) n adncime. Mai nti verific
prima baz de date condiional D
c
(primul subarbore al rdcinii), apoi verific bazele de
date condiionale descendente lui c, pn cnd vor fi extrase toate tiparele care au prefixul
NULL
c:3 e:2 d:2
f:1 e:1 d:1 f:2 m:1 a:1
3
f:1
m:1
a:1
m:1
a:1 a:1
m:1
d:1 m:1
a:1
a:1 a:1
98
c. Dup terminarea examinrii lui D
c
, acesta nu va mai fi necesar n procesul de extragere.
Toi subarborii si vor fi reunii cu nodurile frai. Noduri frai sunt acele noduri care sunt
pe acelai nivel i au acelai printe. Acest pas se numete de ndeprtare (push-right step).
n continuare, al doilea subarbore al rdcinii devine primul subarbore al acesteia,
fiind reprezentarea complet a bazei de date condiionale a celui de-al doilea item. Procesul
de extragere va continua asupra lui.
n procesul de extragere asupra unei baze de date condiionale T
l
al articolset-ului l,
se execut trei pai:
pasul de numrare T
l
este traversat n adncime de sus n jos, fiecare nod al su fiind
vizitat exact o dat, fiind adunate suporturile tuturor articolelor din T
l
. Ieirea acestui
pas este setul de extensii frecvente ale articolset-ului l.
pasul de construire - T
l
este traversat a doua oar pentru a construi o a doua structur
AFOPT (T
l

) care va stoca baza de date condiional a extensiilor frecvente ale lui l.


pasul de ndeprtare este executat imediat ce sunt extrase toate tiparele care au
prefixul l. Subarborii lui T
l
sunt unii cei ai cu nodurilor frai. Operaia de unire implic
corectarea pointerilor i actualizarea suportului, prin traversarea celor doi arbori
deodat. Pe parcursul traversrii arborilor se adun suportul aceluiai nod i se
corecteaz pointerii n cazul n care dou noduri cu acelai identificator nu au acelai
set de fii. Durata acestei operaii depinde de dimensiunea celui mai mic arbore, n cazul
cel mai nefavorabil, i este mult mai mic dect dimensiunea celui mai mic arbore n
cazul mediu. Pe parcursul operaiei de unire nu vor fi create noduri noi, ci vor fi doar
ndeprtate nodurile duplicat.

Considernd n continuare exemplu nostru, n figura 4.4-3. este ilustrat procesul de
extragere pe subarborele c.







Fig. 4.4-3. Parcurgerea subarborelui c
c:3 c:3
f:1 e:1 d:1
f:1
m:1
a:1
m:1
a:1 a:1
m:1
m:3
a:3
99
n primul rnd, vor fi extrase din primul subarbore al rdcinii toate tiparele care
conin articolul c. Extensia frecvent a lui c este {a, m}. Astfel, se va construi o nou
structur AFOPT din D
c
, care reprezint baza de date condiional a lui ca i cm, aa cum
s-a prezentat n figura 4.4-3. n continuare, procesul de extragere este aplicat pe noua
structur AFOPT. Aceasta este un arbore cu o singur ramur, astfel nct putem s
scoatem direct toate subseturile lui cam care conin c, finaliznd procesul de extragere
asupra lui D
c
.























Fig. 4.4-4. Reunirea fiilor nodului c cu nodurile frai ale lui c

La pasul urmtor, se reunesc toi subarborii nodului c cu nodurile frai din dreapta
ale acestuia, proces ilustrat n figura 4.4-4. Subarborele care are rdcina ce este reunit cu
NULL
c:3
e:1 d:1
f:1
m:1
a:1
a:1
m:1
f:1
m:1
a:1
e:2
f:2
d:1 m:1
a:1 a:1
d:2
m:1 a:1
a:1
e:3
f:3
d:1 m:2
a:1 a:2
d:3
m:2 a:1
3
a:2
f:1
m:1
a:1
NULL
merge
merge
100
subarborele e, subarborele cf devine al doilea fiu al rdcinii, i subarborele cd este reunit
cu subarborele d. Dup aceast operaie, subarborele care are rdcina e devine primul
subarbore al rdcinii i reprezint baza condiional a lui e. Procesul de extragere continu
din acest moment asupra acestui subarbore, i aa mai departe.
Corectitudinea algoritmului AFOPT este garantat de faptul c, de cte ori un
subarbore devine primul subarbore al rdcinii, el reprezint urmtoarea baz condiional
care va fi explorat n totalitate. Cu alte cuvinte, ntr-o structur AFOPT, baza condiional
a unui articol (item) i include toi subarborii care au ca i rdcin nodul aferent articolului
i. Presupunnd c p este un astfel de subarbore i p este de asemenea un fiu al rdcinii,
atunci toi ceilali subarbori trebuie s apar ca i noduri frai stngi ai lui p n conformitate
cu proprietatea structurii AFOPT. n algoritmul AFOPT toi aceti subarbori sunt reunii
progresiv cu subarborele p. Aadar, primul subarbore al rdcinii conine ntotdeauna
informaiile complete ale bazei condiionale care trebuie explorat.

Algoritmul AFOPT este prezentat n limbaj pseudocod n figura 4.4-5.

















Fig. 4.4-5. Algoritmul AFOPT

Intrare:
l este un itemset frecvent;
root este rdcina arborelui AFOPT reprezentnd toate bazele
condiionale ale extensiilor frecvente ale nodului l;
min_sup este pragul suportului minim;
Descriere:
1: if exist doar o singur ramur n arbore care are rdcina root then
2: extrage tiparele i return;
3: for all fii pchild ale rdcinii root do
4: extrage tiparul s = l {pchild.item};
5: traverseaz subarborele care are rdcina pchild, notat F, pentru a
gsi itemi frecveni i i sorteaz n ordine cresctoare a
frecvenelor;
6: if ||F|| > 1 then
7: traverseaz subarborele cu rdcina pchild pentru a construi o nou
structur AFOPT cu rdcina newroot;
8: AFOPT (s, newroot, min_sup);
9: else
10: extrage tiparul s F;
11: for all fii subroot a lui pchild do
12: sibroot = nodul frate drept al lui pchild care are item-ul egal cu
subroot.item;
13: Merge (sibroot, subroot); // reunete cei doi subarbori
101
4.5. Studiu comparativ de performan

n ciuda tuturor eforturilor depuse de cercettori n ultimii ani, algoritmii care
genereaz i testeaz candidai au dou dezavantaje:
Toate necesit generarea unui numr foarte mare de articolset-uri candidat,
multe dintre ele dovedindu-se a fi puin frecvente dup parcurgerea bazei de
date
Toate necesit parcurgerea bazei de date de mai multe ori, n cel mai
defavorabil caz, numrul de parcurgeri a bazei de date fiind egal cu
lungimea maxim a tiparelor frecvente.

Abordarea prin creterea tiparelor ncearc s evite aceste dou dezavantaje
construind o baz de date condiional pentru tiparele frecvente. Algoritmii propui pentru
aceasta difer n principal prin maniera prin care este reprezentat baza condiional. Han
[HPY00] folosete o structur de date compact FP-Tree pentru a reprezenta baza de date
condiional care este o combinaie a structurilor arbore prefixat (prefix-tree) i legtura
nodurilor (node-link). Liu [HPY00] folosete o structur de date compact AFOPT pentru a
reprezenta baza de date condiional.
Aa cum am artat anterior, fiind dat o baz de date condiional, aceasta poate fi
reprezentat folosind dou structuri i cte o strategie de parcurgere aplicat fiecreia din
acestea:
1. structura FP-Tree, n care articolele sunt sortate n ordine descresctoare a
frecvenei lor de apariie, i strategia de parcurgere a arborelui de jos n sus
2. structura AFOPT, n care articolele sunt sortate n ordine cresctoare a
frecvenei lor de apariie, i strategia de parcurgere a arborelui de sus n jos

La prima vedere, se pare c algoritmul AFOPT necesit mai multe traversri ale
bazei de date dect algoritmul FP-Growth. Dar folosirea structurii AFOPT pentru a
reprezenta bazele de date condiionale duce la obinerea unor costuri de traversare minime
iar utilizarea ordonrii cresctoare dup frecven ne conduce la construirea unui numr
minim de baze de date condiionale. Costurile de traversare ale algoritmului FP-Tree sunt
ntotdeauna mai mari dect n cazul algoritmului AFOPT. Numrul total de noduri vizitate
de algoritmul FP-Growth este egal cu lungimea total a ramurilor arborelui prefixat.
102
Numrul total de noduri vizitate de algoritmul AFOPT este egal cu dimensiunea structurii
AFOPT, care este mai mic dect lungimea total a ramurilor arborelui prefixat. Aadar,
algoritmul AFOPT are nevoie de un numr mai mic de traversri dect algoritmul FP-
Growth.
Numrul total de baze de date condiionale construite pe parcursul procesului de
extragere a tiparelor frecvente depinde ordinea n care sunt sortate articolele i n care este
explorat spaiul de cutare. Ordonarea cresctoare dup frecven minimizeaz numrul
total de baze condiionale. n cazul structurii FP-Tree articolele sunt sortate n ordine
descresctoare a frecvenei lor, motiv pentru care arborele trebuie traversat de jos n sus, de
la nodurile frunze spre rdcin.
n cazul n care baza de date condiional a unui articolset poate fi reprezentat
printr-o singur ramur, se pot enumera toate tiparele frecvente coninute direct n acesta i
nu este necesar construirea unei noi baze condiionale chiar dac articolset-ul respectiv
are mai mult de o extensie frecvent. Structura AFOPT, aadar, ne ajut s reducem
numrul de baze de date condiionale construite, deoarece bazele condiionale sunt de
obicei reprezentate printr-o singur ramur n structura AFOPT.
Folosind structura AFOPT, numrul de noduri vizitate este minim. Dac baza de
date condiional poate fi reprezentat printr-o singur ramur folosind structura FP-Tree,
atunci ea trebuie s poat fi reprezentat printr-o singur ramur i folosind structura
AFOPT. Pe de alt parte, dac baza de date condiional poate fi reprezentat printr-o
singur ramur n structura AFOPT, ea poate conine mai multe ramuri n arborele FP-
Tree. n structura FP-Tree articolele sunt sortate n ordinea descresctoare a frecvenelor
lor ceea ce permite distribuirea prefixat. Aadar, FP-Tree este o structur mai compact
dect AFOPT. Structura AFOPT, pe de alt parte poate conine mai multe noduri dect
FP-Tree deoarece ordonarea cresctoare a frecvenelor reduce posibilitatea distribuirii
prefixate.
Algoritmul FP-Growth pstreaz legtura spre nodul printe i legturi spre fiecare
nod, ceea ce implic costuri suplimentare la construcia arborelui i mrete spaiul
necesar. Pentru a micora spaiul de stocare, algoritmul AFOPT utilizeaz structura tablou
(array) pentru a stoca o ramur a arborelui, ceea ce duce i la micorarea costurilor de
construcie.
Costurile suplimentare de traversare aprute n algoritmul AFOPT sunt cauzate de
etapa de reunire spre dreapta. Numrul de subarbori care constituie baza de date
condiional, n cazul cel mai defavorabil, depinde exponenial de numrul de articole
103
precedente celui considerat. Numrul de operaii de reunire necesare este egal, n cazul cel
mai defavorabil, cu numrul de articole precedente celui considerat.
Dac aplicm att algoritmul AFOPT ct i algoritmul FP-Growth direct pe nivelul
3 a arborelui bazei de date luate ca exemplu, vom obine arborele tiparelor frecvente, iar
dup scanarea bazei de date vom obine rezultatele din figura 6.3-6.
Algoritmii au fost implementai cu ajutorul limbajului de programare Java i
compilai cu ajutorul platformei Eclipse. S-a folosit pentru testri un calculator Athlon XP
la 1.6 GHz, cu memorie de 256 MBRAM, sub sistemul Microsoft Windows XP
Professional i aceleai condiii de testare ca i n cazurile precedente.

Fig. 4.4-6. Studiu comparativ ntre algoritmul FP-Growth i algoritmul AFOPT

4.6. Concluzii

Algoritmul AFOPT utilizeaz o abordare a creterii tiparului i folosete o structur
de arbore prefixat (prefix-tree) pentru a reprezenta baza de date condiional. El folosete o
strategie diferit de traversare a arborelui i o alt metod de ordonare a articolelor.
Algoritmul AFOPT traverseaz arborele prefixat de sus n jos, n adncime iar
articolele sunt sortate n ordine cresctoare a frecvenei lor de apariie. Analiza i
rezultatele studiilor efectuate arat c prin combinarea acestor dou metode rezultatul
obinut este mai eficient dect combinarea traversrii de jos n sus a arborelui i sortarea n
ordine descresctoare a frecvenelor folosite de algoritmul FP-Growth.
104
5. DESCOPERIREA REGULILOR DE ASOCIERE
GENERALIZATE (MULTI-NIVEL)

5.1. Definiii i terminologie


Extragerea regulilor de asociere din seturi mari de date a fost i este n continuare
subiectul multor cercetri [AIS93], [AS94], [AS95], [FMMT96], [KMR
+
94], [HK00],
[DXGH00], [WHH00], [PJ02], [Bod03], etc.
Cele mai multe studii efectuate asupra extragerii de date s-au concentrat mai mult
pe extragerea regulilor de asociere de pe un singur nivel conceptual, fie la nivelul primitiv,
fie la cel mai nalt nivel. De multe ori ns este necesar s descoperim cunotine de pe mai
multe nivele conceptuale.
Pe parcursul studierii procesului de extragere de cunotine (KD), cercettorii au
ncercat prin diverse metode s ndeprteze dintre regulile generate pe cele neinteresante,
propunnd cteva msuri de cuantificare a utilitii sau gradului de interes pe care regula
respectiv o prezint [HF95].
Acest fapt, a condus cercetrile spre cutarea unor metode de extragere a regulilor
de asociere pe mai multe nivele conceptuale, ceea ce duce la descoperirea nu doar a unor
reguli de asociere la fiecare nivel, dar i extragerea unor reguli de asociere utile i
informative, datorit flexibilitii concentrrii ateniei asupra seturilor diferite de date i a
posibilitii aplicrii unor praguri diferite ale suportului sau confidenei pentru nivele
diferite.
Metodele de extragere de cunotine de pe mai multe nivele conceptuale au fost, n
general, dezvoltate prin extinderea tehnicilor existente pentru un singur nivel.

Aadar, sistemele de extragere de date pot oferi metode eficiente pentru a extrage
reguli de asociere la nivel multiplu (multi-level).
Pentru a extrage reguli de asociere multi-nivel, avem nevoie de:
Date reprezentate pe mai multe nivele de abstractizare
Metode eficiente pentru a extrage reguli multi-nivel

105
Prima cerin poate fi satisfcut oferind concepte taxonomice (clasificabile pe
baza relaiilor naturale dintre ele) de la nivelul primitiv la nivelele superioare. n cele mai
multe aplicaii aceste date sunt stocate n baze de date.
Taxonomia presupune organizarea datelor sub form de ierarhie care permite
descoperirea unor relaii de dependen ntre nivelele acesteia. n figura 4.1-1 este
prezentat un exemplu de ierarhie organizat taxonomic sub forma unui graf direct aciclic.


Fig. 5.1-1. Exemplu de ierarhie taxonomic simpl

n exemplul prezentat, observm c jachetele sunt de strad i c acestea sunt
mbrcminte.
Regulile de asociere de baz restricioneaz ca, pentru apariia unui articol (item) n
acea regul s fie pe nivelul frunz al ierarhiei taxonomice. Regulile obinute la nivelele
inferioare pot s nu aib suportul minim. n multe domenii de aplicare, numrul de articole
este foarte mare, de exemplu produsele unui supermarket.
Dac articolele sunt organizate n categorii se pot extrage mult mai multe reguli
care altfel nu ar fi putut fi gsite. Clasificarea taxonomic ne ajut de asemenea la
curarea regulilor neinteresante sau redundante.
n fig. 5.1-2 este prezentat graful unei ierarhii taxonomice multiple, care clasific
produsele i n funcie de perioada din an de vnzare al acestora (de sezon, fr sezon).
Pe baza conceptului de ierarhie i a ctorva algoritmi existeni pentru extragerea
regulilor de asociere simplu-nivel, Han [HF95], [HF97], Rajkumar [RKS03] i alii au
propus un set de algoritmi pentru extragerea regulilor de asociere multi-nivel. Astfel, datele
clasificate pe categorii sau ierarhii sunt stocate n baze de date ierarhice (multi-nivel).

mbrcminte
jachete sandale
haine de strad nclminte
pantaloni de
ski
izmene pantofi saboi
106

Fig. 5.1-2. Exemplu de ierarhie taxonomic multipl

n timp, s-au conturat mai multe direcii posibile de explorare i extragere a
regulilor de asociere multi-nivel.
O posibilitate este aplicarea direct a metodelor existente de extragere a regulilor de
asociere simplu-nivel pentru a extrage reguli de asociere multi-nivel. De exemplu, putem
aplica algoritmul APRIORI [AS94], pentru a analiza itemi de date la nivele multiple de
abstractizare folosind acelai prag pentru suportul minim i aceeai confiden minim.
Metoda este simpl dar poate oferi rezultate nedorite, n primul rnd deoarece
suportul mare apare de obicei la nivele mari de abstractizare. Dac dorim s obinem
asocieri puternice la nivele relativ sczute de abstractizare, pragul suportului minim trebuie
redus substanial. Aceasta duce n final la obinerea multor asocieri neinteresante la nivele
nalte sau intermediare. n al doilea rnd, aa cum se arat n cele mai multe dintre studiile
realizate n domeniu [AIS93], [AS94], este greu de obinut reguli puternice la nivelul
conceptual primitiv, fiind mai uor la nivele nalte conceptuale.
Aceste dezavantaje prezentate au dus la o alt cale de rezolvare a problemei. S-a
ncercat varianta aplicrii unor praguri diferite pentru suportul minim i pentru confidena
minim la diferite nivele de abstractizare. n special, s-a explorat cazul cel mai comun,
scderea pragului pentru suportul minim odat cu nivelele mai sczute de abstractizare.
Aceasta a condus la obinerea unor reguli de asociere interesante la nivele conceptuale
multiple, care, pe lng faptul c sunt diferite pentru nivele diferite, au i un potenial
mbrcminte
haine de strad nclminte
pantaloni de
ski
jachete izmene pantofi saboi sandale
iarn
var
de sezon fr sezon
107
ridicat de a fi nsemnate deoarece sunt flexibile i pot fi orientate spre diferite seturi de date
i aplicate pentru diferite praguri ale suportului i confidenei la diferite nivele.
Rajkumar a artat n lucrarea sa [RKS03] c bazele de date multi-nivel folosesc
tabele de tranzacii codificate ierarhic n locul tabele de tranzacii originale. Acest lucru ne
ajut n cazul aplicailor care utilizeaz doar o parte din categoriile de articole din baza de
date (de exemplu alimente). Astfel, se pot colecta mai nti seturile de date relevante i
abia apoi se poate lucra doar cu articolset-urile relevante.
Se pornete de la presupunerea c o baz de date conine:
1. un set de date format din articol (item) i descrierea sa, de forma A
i
,
descriere
i
, unde A
i
I
2. un set de tranzacii T, ce conine tranzaciile de forma T
i
, {A
p
, .., A
q
}, unde
T
i
este identificatorul tranzaciei i A
i
I (pentru i = p, ..., q)

Putem spune c un tipar sau un articolset (itemset), A este unul din articolele
(itemii) A
i
sau un set de articole (itemi) conjunctivi A
i
... A
j
, unde A
i
, ... , A
j
, I.
Suportul tiparului A dintr-un set T, notat s (A/T) este numrul de tranzacii (din T)
care conine pe A mprit la numrul total de tranzacii din T.
Confidena relaiei A B din T, notat (A B/T), este raportul dintre s (A
B/T) i s (A/T), de exemplu, probabilitatea ca tiparul B s apar n T cnd tiparul A apare n
T.
(A B/T) = s (A B/T) / s (A/T) (5.1.1)

Se tie c pentru a gsi tiparele care apar relativ frecvent n reguli puternice,
utilizatorul trebuie s specifice suportul minim s
min
i confidena minim
min
.
n cazul extragerii regulilor de asociere multi-nivel pot fi specificate valori diferite
pentru suportul minim i/sau pentru confidena minim pentru diferite nivele. Suportul
unui articol dintr-o ierarhie taxonomic nu este egal cu suma suporturilor fiilor si, atta
timp ct unii dintre fii acestuia pot apare ntr-o singur tranzacie.
Pentru a nelege algoritmii de extragere a regulilor de asociere generalizate (multi-
nivel), se folosesc urmtoarele notaii. Un articolset (itemset) Z
)
este numit un strmo
(predecesor) a lui Z dac Z, Z
)
I i Z Z
)
= i dac se poate obine Z
)
din Z prin
108
nlocuirea unuia sau mai multor itemi din Z cu strmoii lor. Nu este important s calculm
suportul ateptat al lui Z din Z
)
, doar dac au acelai numr de articole.
De exemplu, suportul pentru {mbrcminte} nu ne ofer nici un indiciu despre
suportul pentru {haine de strad, izmene}.
Regulile Y X
)
, Y X
)
sau Y X
) )
se numesc strmoii regulei Y X .
Fiind dat un set de reguli, regula Y X
) )
este numit strmo apropiat a regulei
Y X , dac nu exist nici o regul Y
~
X
~
astfel nct Y X
) )
s fie un strmo a
regulei Y
~
X
~
i Y
~
X
~
s fie un strmo a regulei Y X . Analog se aplic
definiia i pentru regulile Y X
)
i Y X
)
.

Exemplu:

Baza de date D Tipare frecvente





Reguli







Fig. 5.1-3. Exemplu de extragere de reguli de asociere multi-nivel
Tranzacii Articole (Itemi)
1 Izmene
2 Jachete, saboi
3 Pantaloni de ski, saboi
4 Pantofi
5 Pantofi
6 Jachete
Articolset (Itemset) Suport
{jachete} 2
{haine de strad} 3
{mbrcminte} 4
{pantofi} 2
{saboi} 2
{nclminte } 4
{haine de strad, saboi} 2
{mbrcminte, saboi} 2
{haine de strad, nclminte} 2
{mbrcminte, nclminte} 2
Regula Suport Confidena
{haine de strad} {saboi} 0.33 0.67
{haine de strad} {nclminte} 0.33 0.67
{saboi} {haine de strad} 0.33 1.00
{saboi} {mbrcminte} 0.33 1.00
109
Fiind dat un articolset I ={mbrcminte, haine de strad, jachete, pantaloni de
ski, izmene, nclminte, pantofi, saboi, sandale} ierarhia taxonomic din figura 5.1-1. Se
consider s
min
= 0.3 (de ex. 2 tranzacii) i
min
= 0.6. Articolset-urile frecvente rezultate i
regulile corespunztoare acestor articolset-uri sunt prezentate n figura 5.1-3.
Observm c regulile {pantaloni de ski} {saboi} i {jachete} {saboi} nu
au suport minim, n schimb regula {haine de strad} {saboi} are.

5.2. Algoritmi de extragere a regulilor de asociere multi-nivel


Pe baza conceptului de ierarhie i a ctorva algoritmi de extragere a regulilor de
asociere simplu-nivel, Han [HF95], [HF99], Strikant [SA95], Rantzau [Ran97], Wang
[WHH00] i Rajkumar [RKS03], au propus o serie de algoritmi pentru extragerea regulilor
de asociere multi-nivel.
5.2.1. Algoritmul ADAPTIVE APRIORI

Problema extragerii regulilor de asociere multi-nivel poate fi descompus n trei
pai:
1. gsirea articolset-urilor frecvente
2. utilizarea articolset-urilor frecvente pentru a genera setul de reguli dorite
3. curarea acestui set de toate regulile neinteresante.
Tiparele interesante apar de multe ori pentru nivele diferite ale pragului suport.
Metodele clasice de extragere a regulilor de asociere, cum este APRIORI, se bazeaz pe
utilizarea unui prag suport uniform. Din acest motiv pot fi pierdute unele tipare interesante
cu un suport sczut sau pot aprea dificulti la generarea articolset-urilor.
Pentru rezolvarea acestor problema, Wang K., He Y. i Han J. [WHH00], au propus
o nou abordare, i anume utilizarea unor constrngeri pentru pragul suport care s
specifice care suport minim este solicitat pentru fiecare articol-set, astfel nct s fie
generate doar articol-seturile necesare.
Cea mai cunoscut strategie de generare a articol-seturilor frecvente, APRIORI
[AIS93, AS94], se bazeaz pe proprietatea c dac un articolset nu este frecvent, atunci
nici unul dintre subseturile sale nu este frecvent.
110
innd cont de faptul c algoritmii existeni presupun un suport minim uniform,
cea mai bun soluie este de a aplica un astfel de algoritm pentru suportul minim cel mai
sczut specificat i apoi s filtrm rezultatele folosind un suport minim mai ridicat. Aceast
metod va genera o mulime de candidai care apoi vor fi ndeprtai. Pe baza experienei
acumulate, s-a demonstrat c aceast cretere a candidailor genereaz automat o cretere
non-liniar a timpului de execuie i o deteriorare drastic a performanelor, datorit
transferurilor dintre memoria principal i disc n timpul calculrii suportului, cnd
candidaii sunt citii de pe disc la fiecare tranzacie.
Din acest motiv, Wang propune noiunea de constrngere suport (support
constraint) definit astfel:
O constrngere suport (SC) are forma SC
i
(B
1
,..., B
s
)
i
(sau simplu SC
i

i
),
unde s 0.
Fiecare B
i
, denumit bin, este un set de articole care trebuie s fie distincte prin
respectarea suportului minim specificat.
i
este suportul minim cuprins n intervalul [0..1].
Ordinea n care apar B
i
nu are importan, acestea putndu-se chiar repeta. O SC este
ntemeiat dac nu conine nici o variabil, altfel este nentemeiat. n acest caz, SC poate
fi instaniat prin nlocuirea fiecrei variabile cu un bin.
Definiia de mai sus specific faptul c orice set de articole care conine cel puin
un articol din B
i
are suportul minim
i
.
Constrngerile suport pot fi interpretate n dou moduri:
- interpretare deschis specificnd cteva articole din articolset
- interpretare nchis specificnd toate articolele din articolset
Un articolset I se identific cu o SC ntemeiat SC
i

i
n interpretarea deschis
dac I conine cel puin un articol din fiecare bin n SC
i
i aceste articole sunt distincte. Un
articolset I se identific cu o SC ntemeiat SC
i

i
n interpretarea nchis dac I conine
exact un articol din fiecare bin n SC
i
i aceste articole sunt distincte.
Suportul minim al articolului I, notat minsup(I), este cel mai sczut
i
dintre toate
SC
i

i
identificat cu I. Dac I nu se identific cu nici o SC, atunci minsup(I) nu este
definit. Un articolset este frecvent, dac are definit un minsup(I) i sup(I) minsup(I)
Utilizatorul final determin B
i
i suportul minim dintr-o SC n funcie de aplicaie
pe baza suporturilor (min, max, sau avg), pe baza ierarhiei conceptuale, pe baza specificrii
atributelor articolelor, sau uneori, pe baza enumerrii tuturor articolelor dintr-un bin.
Scopul acestui nou algoritm propus de Wang este de a fora astfel de constrngeri
suport la generarea articolset-urilor pentru a cura ct mai devreme candidaii nefolositori.
111
Ideea de baz a algoritmului este de a fora constrngeri suport urmrind
nlnuirea dependenelor din generarea APRIORI a articolset-urilor (funcia APRIORI-
Gen). Aceste dependene sunt descrise cel mai bine prin arborele schemei de enumerare.
Aici, fiecare nod (exceptnd nodul rdcin) este etichetat printr-un bin B
i
. Un nod v
reprezint schema dat prin etichetele B
1
...B
k
urmrind calea de la rdcin pn la nodul v.

Exemplu: Considerm o baz de date avnd 5 tranzacii i constrngerile suport specificate
n figura 5.2-1.









Fig. 5.2-1. Baza de date exemplu

Fiecare articol este reprezentat printr-un ntreg de la 0 la 8. Pentru orice articolset I
care conine un articol din B
1
, i un articol din B
3
, se identific att cu constrngerea
SC
1
(B
1
, B
3
) 0.2 ct i cu SC
2
(B
3
) 0.4. Cu toate astea, minsup(I) = 0.2 deoarece este cel
mai sczut suport minim folosit.
Urmrind exemplul considerat, dintre articolset-urile {0,2}, {0,2,3} i {2,3,4} doar
primul este frecvent, urmtoarele dou nu sunt frecvente. Suportul minim pentru articolset-
urile {2,4,7}, {2,4,8}, {4,7,8} i {2,4,7,8} este 0.6 deoarece ele se identific doar cu
SC
3
(B
2
) 0.6. Toate aceste articolset-uri sunt frecvente. Dintre {2,7} i {2,8}, doar primul
este frecvent, cel de-al doilea nu, iar suportul minim este SC
0
() 0.8.
Dac arborele schemei de enumerare conine dou noduri nlnuite reprezentnd
schemele s
1
=B
1
...B
k-2
B
k-1
i s
2
=B
1
...B
k-2
B
k
, unde s
1
se gsete la stnga lui s
2
, atunci arborele
schemei de enumerare conine de asemenea nodul care reprezint schema s=B
1
...B
k-2
B
k-1
B
k
,
care este fiul nodului s
1.
s
1
i s
2
se numesc n acest caz schemele generatoare ale lui s. De
exemplu, n figura 5.2-2. B
2
B
1
depinde de B
2
i B
1
, dar nu depinde de B
1
B
0
sau de B
3
.

Baza de date
TID Articole
100 0,2,7
200 0,4,7,8
300 2,4,5,7,8
400 1,2,4,7,8
500 2,4,6,7,8
bin
B
0
1,7,8
B
1
2,6
B
2
4,5
B
3
0,3
SC specificate
SC
0
() 0.8
SC
1
(B
1
, B
3
) 0.2
SC
2
(B
3
) 0.4
SC
3
(B
2
) 0.6
112


0.2/0.2 0.6/0.2 0.8/0.2 0.8/0.2



0.2/0.2 0.4/0.2 0.4/0.2 0.4/0.2 0.6/0.6 0.6/0.6 0.6/0.6 0.8/0.8 0.8/0.8 0.8/0.8

Fig. 5.2-2. Arborele schemei de enumerare T marcat cu Sminsup/Pminsup

Pentru orice funcie f din scheme cu valori n [0..1], putem spune c un articolset I
al schemei s estefrecvent i este notat frequent(f) dac sup(I) f(s). Se noteaz F(f) setul de
articolset-uri frecvente - frequent(f).
Se definete suportul minim impus - Pminsup care este o funcie din arborele
schemei de enumerare T, cu valori n intervalul [0..1] i care satisface urmtoarele:
- Completitudine: pentru fiecare schem s din T, se difinete Pminsup(s) minsup(s)
aceasta asigur c
- Proprietatea Apriori: pentru fiecare schem s i schemele sale generatoare s
1
i s
2
,
oricnd articolset-ul {i
1
,...,i
k-2
, i
k-1
, i
k
}lui s este frecvent, la fel sunt i articolset-urile
{i
1
,...,i
k-2
, i
k-1
} a lui s
1
i {i
1
,...,i
k-2
, i
k
}a lui s
2
.
- Maximalitate: Pminsup este maximal respectnd cele dou cerine de mai sus

Algoritmul extinde arborele schemei de enumerare iterativ, cu un nivel la fiecare
iteraie. n fiecare iteraie k exist dou faze.
Faza 1. Se genereaz noi noduri s
i
la nivelul k i se determin Pminsup(s
i
). Aceast faz
examineaz doar suporturile specificate n schem nu i baza de date sau articolseturile.
Fiecare nod p de pe nivelul k-1 este asociat unui set de constrngeri suport SC
s
pentru acel
nod. Extinderea arborelui la nivelul k, se realizea n trei pai:
Pasul 1. Creaz nodurile fii s
i
de pe nivelul k
Pasul 2. Ordoneaz aceste noduri fie selectnd eticheta care specific cel mai
sczut suport minim ca urmtoare nlnuire, fie selectnd eticheta care specific cele mai
multe constrngeri suport ca i urmtoarea nlnuire.
Pasul 3. Calculeaz Pminsup(s
i
) aa cum am artat mai sus.
Faza 2. Se genereaz frequent(Pminsup) la nodurile s
i
la fel ca i n algoritmul APRIORI.

B0 B1 B0 B1
B3 B0 B2 B1 B2
B0
B3
B2 B1
B0
113
5.2.1.1. Avantajele algoritmului

n general, n lumea real, suportul minim nu este uniform. Excepiile i deviaiile
au adesea un suport minim mai sczut dect tendina general. Suportul solicitat variaz
odat cu suportul articolelor care alctuiesc articolset-ul respectiv i totodat variaz la
diferite nivele conceptuale ale bazei de date. n acelai timp, clasificrile ierarhice ale
bazelor de date necesit descoperirea unor reguli de asociere de pe diferite nivele
conceptuale, aadar, necesit un suport minim neuniform.
Folosind constrngeri pentru suportul minim, aa cum face algoritmul ADAPTIVE
APRIORI, se obine un timp de execuie mult mai bun la generarea articolset-urilor.
De asemenea, prin forarea constrngerilor suport la generarea articolset-urilor se
obine curarea ct mai devreme candidaii nefolositori.

5.2.2. Algoritmul ML_T2L1

O alt metod de extragere a regulilor de asociere multi-nivel este prezentat n
paragraful urmtor. Aceasta folosete tabele de tranzacii cu informaia codificat ierarhic
n locul tabelelor originale din bazele de date relaionale. Acest lucru se bazeaz pe
urmtoarele consideraii. n primul rnd, o interogare de extragere de date este de obicei
relevant doar unora dintre tranzaciile bazei de date i nu tuturor. n acest caz este util s
colectm mai nti setul de date relevante i n continuare s lucrm doar pe acesta. n al
doilea rnd, codificarea poate fi fcut n acelai timp cu colectarea setului de date
relevante, astfel se evit parcurgerea bazei de date doar pentru codificarea datelor. n al
treilea rnd, un ir de date codificat, care reprezint o poziie n ierarhie, necesit mai
puini bii dect identificatorul obiectului corespunztor sau un cod de bare. Mai mult,
codificarea realizeaz unirea sau eliminarea mai multor articole datorit codurilor lor
identice, rezultnd astfel un tabel de tranzacii de dimensiuni reduse.
Algoritmul ML_T2L1 propus de Han J. i Fu Y. n lucrarea [HF95], gsete seturi
mari de articole pentru extragerea unor reguli de asociere multi-nivel puternice n baze de
date tranzacionale. Algoritmul este prezentat n figura 5.2-3.
Algoritmul ML_T2L1 descoper articole suport frecvente la fiecare nivel l. Aceasta
se face n mai multe etape.

114
1. La nivelul 1, 1-itemset-ul L[l,1] (1-articolset-ul) este obinut din T[1] de ctre funcia
get_large_itemsets (T [1], l). La orice alt nivel l, L[l,1] este obinut din T[2] de
ctre funcia get_large_itemsets (T [2], l). n cazul n care l > 2, se vor lua n
considerare doar articolele L[l-1,1] la examinarea lui T[2] pentru a determina 1-
itemset L[l,1]. Acest lucru este implementat prin parcurgerea articolelor fiecrei
tranzacii t n T[1] (sau T[2]), incrementnd contorul suport al articolului i din
articolset, dac contorul acestuia nu a fost incrementat cu t. Dup parcurgerea tabelei
de tranzacii, se filtreaz (elimin) acele articole a cror suport este mai mic dect
minsup[l].
2. Tabelul de tranzacii filtrat T[2] este obinut de funcia get_filtered_t_table (T[1],
L[1,1]), care folosete L[1,1] ca un filtru pentru a elimina: (1) orice articol care nu
este frecvent de la nivelul 1 i (2) tranzaciile care nu conin articole frecvente.
3. Tabelul setului de articole frecvente k (pentru k > 1) este obinut n doi pai:
a. Se calculeaz mulimea de candidai din L[l, k-1], aa cum s-a fcut n
algoritmul APRIORI cu ajutorul funciei Apriori-gen. Mai nti se genereaz
un set C
k
n care fiecare articolset conine k articole, obinui prin reuniunea
a dou articole (k-1) n L[l, k] care conine (k-2) articole. Apoi se terge k-
articolset-ul c din C
k
dac exist un subset k-articol care nu se gsete.
b. Pentru fiecare tranzacie t din T[2], pentru fiecare subset c al k-articolset-
ului t, se incrementeaz contorul suport a lui c, dac acesta se gsete n
setul de candidai C
k
. Apoi se adaug n L[l, k] fiecare c (mpreun cu
suportul su) dac suportul su este mai mare dect minsup[l].

4. Mulimea de articole frecvente la nivelul l, LL[l] este reuniunea tuturor L[l, k]
pentru toi k.

Dup gsirea articolset-urilor frecvente, se poate obine mulimea regulilor de
asociere pentru fiecare nivel l din mulimea LL[l] pe baza confidenei minime la acest
nivel, minconf[l]. Pentru fiecare articolset frecvent r, dac avem un subset a nevid, sau
115
regula r este inserat n rule_set[l], a r - a dac support (r) / support (a) minconf
[l], unde minconf[l] este confidena minim la nivelul l.
Algoritmul ML_T2L1 motenete cteva tehnici de optimizare importante din
cercetrile anterioare pentru extragerea regulilor de asociere [AIS93], [AS94]. De
exemplu, funcia get_candidate_set urmrete funcia Apriori-gen din algoritmul APRIORI
[AS94]. Funcia get_subsets (C
k
, t) este implementat folosind tehnica hash tot din [AS94]





















Fig. 5.2-3 Algoritmul ML_T2L1
5.2.2.1. Exemplu de utilizare

Presupunem o baz de date tranzacional coninnd 2 relaii: articole (vezi tabelul
5.2-1) i vnzri (vezi tabelul 5.2-2).

Intrare: (1) T[1]o ierarhie codificat de date i un set tranzacii relevante ale
bazei de date, de forma TID, itemset,
(2) pragul suportului minim (minsup[l]) pentru fiecare nivel l.
Ieire: L setul multi-nivel al item-ilor
Metoda: un proces progresiv de sus n jos (top-down) care colecteaz
itemset-uri mari de la nivele conceptuale diferite.
ncepnd de la nivelul 1, se obine pentru fiecare nivel l, setul k de itemi,
L [l, k], pentru fiecare k i setul LL [l] pentru toi k.
Funcia:
(1) for (l:=1; L [l,1] 0 and l < max_level; l++) do
(2) { if l = 1 then
(3) {L [l,1] := get_large_1_itemsets (T [1], l);
(4) T [2] := get_filtered_t_table (T [1], L [1,1]);
(5) }
(6) else L [l,1] := get_large_1_itemsets (T [2], l);
(7) for (k:=2; L[l, k-1] 0; k++) do
(8) {C
k
:= get_candidate_set (L[l, k-1]);
(9) foreach transacie t T[2] do
(10) { C
t
:= get_subsets ( C
k
, t);
(11) foreach candidat c C
t
do c.support ++;
(12) }
(13) L[l, k] := { c C
k
c.support minsup[l]}
(14) }
(15) LL [l] :=
k
L [l, k];
(16) }
116
alimente
lapte pine carne
graham alb 3,5% 1,8%
Dorna Milli
Cod_bare categorie firm coninut dimensiune valabilitate pre
17325 lapte Dorna 1,8% 1 l 14 (zile) 2.4
. . . . . . . . . . . . . . . . . . . . .

Tabel 5.2-1. Articole (descriere)

Id_tranzacie Set_cod_bare
531428 {17325, 92108, 55349, 8857, }
982510 {92458, 77451, 66395, . . .}
. . . {. . . , . . .}

Tabel 5.2-2. Tranzacii

Ierarhia conceptual a bazei de date va fi de forma arborelui din figura 5.2-4.






......


... ... ......


... ......
Fig. 5.2-4. Arborele ierarhiei conceptuale

Tabelul 5.2-3., prezentat n continuare, conine codificarea tranzaciilor.



117
TID Articole (Itemi)
T
1
{111, 121, 211, 221}
T
2
{111, 211, 222, 323}
T
3
{112, 122, 221, 411}
T
4
{111, 121}
T
5
{111, 122, 211, 221, 413}
T
6
{211, 323, 524}
T
7
{323, 411, 524, 713}

Tabel 5.2-3. Codificarea tranzaciilor T TT T[1]
Nivelul 1
Considerm suportul minim egal cu 4 (minsup[1]=4). La nivelul 1, tabelul L[1,1]
poate fi obinut prin parcurgerea tabelului T[1], verificnd suporturile fiecrui articol (1**,
..., 4**), verificnd dac tranzacia conine un astfel de articol i filtrnd acele articole a
cror contor suport este mai mic dect suportul minim. L[1,1] este folosit pentru a filtra
orice articol care mu este suficient de frecvent n tranzacie i tranzaciile din T[1] care
conin doar articole puin frecvente.
Rezultatul este prezentat n tabelul T[2] de mai jos (tabel 5.2-6). Deoarece exist
doar 2 intrri, n tabelul 5.2-4, L[1,1] tabelul pentru 2-itemset la nivelul 1 este prezentat n
tabelul 5.2-5, L[1,2], i poate conine doar 1 articol candidat {1**, 2**} care apare n 4
tranzacii din T[2].






Tabel 5.2-4. 1-itemset-ul L LL L[1,1] Tabel 5.2-5. 2-itemset-ul L LL L[1,2]


Articolset
(Itemset)
Suport
{1**} 5
{2**} 5
Articolset
(Itemset)
Suport
{1**, 2**} 4
118








Tabel 5.2-6. Tranzaciile filtrate T TT T[2]

Nivelul 2
Considerm suportul minim egal cu 3, minsup[2]=3. La nivelul 2, itemset-urile
frecvente, 1-itemset L[2,1], pot fi obinute prin filtrarea tabelului tranzaciilor T[2], prin
incrementarea contorului suport i prin nlturarea acelor itemi care au suportul mai mic
dect suportul minim. Obinem astfel L[2,1] prezentat n tabelul 5.2-7.









Tabel 5.2-7. 1-itemset-ul L LL L[2,1] Tabel 5.2-8. 2-itemset-ul L LL L[2,2]





Tabel 5.2-9. 3-itemset-ul L LL L[2,3]

TID Articole( Itemi)
T
1
{111, 121, 211, 221}
T
2
{111, 211, 222}
T
3
{112, 122, 221}
T
4
{111, 121}
T
5
{111, 122, 211, 221}
T
6
{211}
Articolset
(Itemset)
Suport
{11*, 12*} 4
{11*, 12*} 3
{11*, 12*} 4
{11*, 12*} 3
{11*, 12*} 3
Articolset
(Itemset)
Suport
{11*} 5
{12*} 4
{21*} 4
{22*} 4
Articolset
(Itemset)
Suport
{11*, 12*, 22*} 3
119
Nivelul 3
minsup[3]=3






Tabel 5.2-10. 1-itemset-ul L LL L[3,1] Tabel 5.2-11. 2-itemset-ul L LL L[3,2]

Calculul se oprete atunci cnd nu mai exist un nou nivel i cnd se genereaz un
tabel gol pentru 1-itemset la orice nivel.

5.2.2.2. Avantajele algoritmului

Realizeaz extinderea extragerii de reguli de asociere la un singur nivel
pentru mai multe nivele conceptuale din baze de date tranzacionale prin
dezvoltarea unei tehnici de parcurgere top-down progresiv n adncime
a arborelui conceptual.
Exploreaz tehnici de distribuire a structurii datelor i a rezultatelor
intermediare ntre nivele.

5.2.2.3. Dezavantajele algoritmului

Algoritmul folosete abordarea APRIORI. Aa cum am mai artat,
algoritmul FP-Growth este mai rapid dect APRIORI. Eficiena
algoritmului ML_T2L1 poate aadar fi mbuntit aplicnd algoritmul
FP-Growth la fiecare nivel.
Algoritmul nu poate genera tipare multi-dimensionale.


Articolset
(Itemset)
Suport
{111, 211} 3
Articolset
(Itemset)
Suport
{111} 4
{211} 4
{221} 3
120
5.2.3. Algoritmul ADA-FP

Metoda APRIORI a fost studiat prima dat de Agrawal R. i Srikant R. n 1994
[AS94]. Liu B, Hsu W. i Ma Y. au abordat pentru prima dat problema unui suport minim
non-uniform [LHM99]. n lucrarea lor, fiecrui articol i s-a asociat un suport minim
(minimum item support MIS) iar suportul minim al articolset-ului este definit ca fiind cel
mai mic MIS asociat articolelor din mulime.
Mai trziu, folosind abordarea APRIORI, Wang K., He Z. i Han J. [WHH00] au
elaborat o metod nou care permite utilizarea unor suporturi diferite pentru articolset-uri
diferite. Ei i-au numit algoritmul lor ADAPTIVE-APRIORI. n abordarea lor, folosesc
predefinirea schemelor pentru articolset-uri. Articolset-urile care au trsturi comune au o
schem identic. Noutatea acestui algoritm este aceea c sparge bariera suportului minim
uniform, definind cel mai bun suport minim (Pminsup) separat pentru fiecare schem,
folosind n acelai timp esena algoritmului APRIORI. Ei propun o constrngere asupra
suportului minim la generarea articolset-urilor pentru a cura candidaii ct mai curnd
posibil.
Cel mai bun suport minim (Pminsup) a fost definit astfel:

Fie Pminsup o funcie a arborelui schemei T la [0..1] care satisface:

o Cerinele: pentru fiecare schem s din T, se definete Pminsup(s) minsup(s);
o Abordarea Apriori: pentru orice schem s i schemele generate din aceasta s
1
i
s
2
, oricnd {i
1
, , i
k-2
, i
k-1
, i
k
} a lui s este suport minim frecvent
frequent(Pminsup), la fel sunt i {i
1
, , i
k-2
, i
k-1
} pentru s
1
i {i
1
, , i
k-2
, i
k
}
pentru s
2
;
o Maximalitatea: Pminsup este maximal respectnd ambele cerine de mai sus

Algoritmul parcurge arborele iterativ, un nivel pe iteraie k, n dou faze. Prima
faz genereaz noduri noi s
i
la nivelul k i determin Pminsup(s
i
). Aceast faz examineaz
doar suporturile i schema fr a examina baza de date sau articolset-urile. A doua faz
genereaz suportul minim frecvent frequent(Pminsup) n nodurile s
i
, n mod similar cu
algoritmul APRIORI.
121
Cea mai mare parte a algoritmilor existeni n prezent utilizeaz abordarea
APRIORI. Una din slbiciunile cele mai mari ale acestei abordri este, ns, parcurgerea n
mod repetat a bazei de date, ceea ce micoreaz eficiena acestor algoritmi.
Algoritmul FP-Growth [HP00] este mai eficient deoarece are nevoie doar de dou
parcurgeri ale bazei de date. Acesta genereaz tipare frecvente n mod recursiv traversnd
un arbore prefixat, n care a fost comprimat baza de date anterior. Orict de mare va fi
dimensiunea tiparului frecvent, algoritmul parcurge doar de dou ori baza de date pentru a
genera setul complet de tipare frecvente. Din acest motiv algoritmul FP-Growth este mai
rapid dect APRIORI.
Mao R. propune n lucrarea sa [Mao01] o combinaie a algoritmilor ADAPTIVE
APRIORI i FP-Growth, sub denumirea de algoritmul ADA-FP. Algoritmul este o
mbuntire a algoritmului FP-Growth, folosind arborele FP-Tree al tiparelor frecvente,
ct i metoda divide et impera bazat pe partiionare. De asemenea, atunci cnd e necesar
de luat n considerare dimensiunea ca i informaie, aceasta este tratat la fel ca un item
(articol) informaie. La citirea bazei de date tranzacionale, se ine cont i de dimensiune.
Aceasta este considerat frecvent dac apariia sa satisface un anumit prag specificat.
Algoritmul ADA-FP propune o constrngere flexibil pentru suport. Pornind de la
faptul c n viaa real bazele de date tranzacionale includ informaie taxonomic,
articolele apar la diferite nivele de abstractizare. La fiecare nivel, itemii individuali sunt
clasificai n dou categorii: un grup de itemi normali care au o frecven rezonabil de
apariie i un alt grup format din itemii speciali . Un exemplu n acest sens sunt itemii lapte
sau diamante. Ambele pot fi considerate articole speciale. Laptele, deoarece este un articol
care apare n cumprturile zilnice. Aadar, este justificabil s-l considerm infrecvent
dac apare de mai puin de 700 de ori n 1000 de tranzacii. Pe de alt parte, diamantele
sunt produse de lux, aadar le vom considera frecvente dac apar mcar de 10 ori n 1000
de tranzacii.
Cerinele suportului variaz ntre nivele conceptuale diferite. La fiecare nivel, s-au
folosit dou tipuri de praguri suport, att pentru articolele normale, ct i pentru articolele
excepionale. Cele dou tipuri de praguri se numesc pragul de trecere al articolului (item
passage threshold) i pragul tipar al articolului (item printing threshold). De obicei,
pragul tipar este mai mare dect pragul de trecere. Un articol (item) este tratat ca frecvent
1-item dac apariiile sale depesc pragul tipar. Altfel, ct timp suportul su depete
pragul de trecere, articolul va putea avea ansa s rmn n baza de date pentru a genere
122
un set frecvent de 2 articole (2-itemsets). Aceasta se explic datorit faptului c tiparele
mai lungi sunt de obicei asociate unor praguri mai mici dect sub-tiparele lor.
5.2.3.1. Descrierea algoritmului

Algoritmul ADA-FP extrage tipare frecvente multi-nivel i multi-dimensionale prin
extinderea algoritmului FP-Growth. Algoritmul poate fi mprit n trei pai.

5.2.3.1.1. Pasul 1- Gsirea articolelor frecvente (1-item)

Pornindu-se de la o baz de date tranzacional D, cu o mulime de dimensiuni i cu
o mulime de itemi (articole), se consider pragul suport minim minsup.
n acest pas, baza de date tranzacional D este parcurs o dat. n timpul acestei
parcurgeri, se contorizeaz fiecare dimensiune i articol. n acelai timp, se compar
contoarele lor cu cele dou tipuri de praguri corespunztoare pragul de trecere i pragul
tipar.
Pentru fiecare dimensiune se compar contorul su cu pragul de trecere al
dimensiunii i cu pragul tipar al acesteia. Dimensiunile a cror suport nu trece pragul
suport sunt eliminate.
Pentru fiecare articol, se detecteaz mai nti nivelul de abstractizare (conceptual)
pe care se gsete acesta; apoi se verific dac este un articol normal sau unul excepional.
Dac este un articol normal, se compar suportul su cu pragul de trecere corespunztor i
cu pragul tipar. Altfel, vom restrnge posibilitile urmtoare i vom eticheta articolul fie
ca unul foarte comun fie ca unul foarte rar, i vom compara apoi suportul su cu suportul
de trecere i cu suportul tipar. n orice caz, articolul va fi considerat ca i 1-item frecvent
doar dac suportul su depete pragul tipar corespunztor. Totodat, trebuie s fim
contieni c toate articolele a cror suport depete pragul de trecere e posibil s apar n
tipare frecvente de dimensiune 2 sau mai mare. Articolele a cror suport nu depete
pragul de trecere nu vor mai fi considerate n continuare.

5.2.3.1.2. Pasul 2- Construirea arborelui FP-Tree

Algoritmul adopt acelai arbore prefixat ca i FP-Growth, definit astfel:
123
O rdcin etichetat NULL, un set de subarbori prefixai de articole ca i fii ai
rdcinii i un tabel header al articolelor frecvente.
Fiecare nod din subarborele prefix al articolelor conine trei cmpuri: nume, contor i
nodul de legtur. Numele arat articolul pe care nodul n reprezint. Contorul arat
numrul de tranzacii reprezentate de poriunea de cale care duce la acel nod. Nodul de
legtur pointeaz (face legtura) spre nodul urmtor din arborele FP-Tree ce poart
acelai nume. Nodul de legtur este NULL dac nu exist n continuare alt nod.
Fiecare intrare n tabelul header al articolelor frecvente conine dou cmpuri: nume i
capul nodului de legtur. Numele reprezint numele articolului sau al dimensiunii.
Capul nodului de legtur pointeaz spre primul nod din arborele FP-Tree care conine
numele articolului.

Procedura de construire a arborelui FP-Tree este descris n continuare printr-un
proces n doi pai:

Se parcurge baza de date tranzacional D o dat. Se colecteaz un set de articole
frecvente (sau dimensiuni) F i suporturile acestora. Se ordoneaz F n ordinea
descresctoare a suporturilor formndu-se lista L, a articolelor frecvente.
Se creeaz rdcina unui arbore FP-Tree, T, etichetat NULL. Pentru fiecare
tranzacie Trans din baza de date se fac urmtoarele:

Se selecteaz i sorteaz articolele frecvente din Trans n ordinea din L. Fie
lista articolelor frecvente sortate din Trans, notat [pP], unde p este primul
element i P este lista rmas. Se apeleaz funcia insert_tree([pP], T).
Aceast funcie verific dac T are un fiu N astfel nct N.nume=p.nume, i
atunci incrementeaz contorul lui N cu 1; altfel creeaz un nod nou N.
Cmpurile de date ale acestui nou nod N vor fi atribuite astfel: contorul lui N
va fi 1, nodul de legtur va pointa spre T i va fi legat de noduri prin acelai
nume ca i nodul de legtur. Analog, se poate spune c nodul de legtur a
lui N pointeaz spre intrarea corespunztoare p din tabelul antet (header) al
articolelor frecvente. Dac P nu este vid, se apeleaz recursiv funcia
insert_tree(P, N).

124
5.2.3.1.3. Pasul 3 Parcurgerea recursiv a arborelui FP-Tree pentru a genera tipare
frecvente multi-nivel i multi-dimensionale

n pasul 1 i 2, s-au colectat contoarele pentru fiecare articol n parte. Informaia
complet din baza de date a fost comprimat sub forma unui arbore FP-Tree. Aceste
lucruri au fost realizate pe parcursul a dou parcurgeri a bazei de date. n continuare se
pornete procesul de generare a tiparelor prin traversarea recursiv a arborelui FP-Tree,
fr a mai implica vreo operaie cu baza de date. Algoritmul de generare a tiparelor este
prezentat n figura 5.2-9.
Procedura pornete de la cel mai puin frecvent articol i genereaz baza tiparelor
condiionale conform creia se construiete arborele FP-Tree pentru fiecare membru al
tabelului antet (header). Baza tiparelor condiionale ale unui articol i, conine articolele
care sunt n relaie cu articolul i.
Procedura realizeaz creterea fragmentat a tiparelor. Se consider c suportul
unui articol item
i
din baza tiparelor condiionale a unui tipar k este egal cu suportul
tiparului k+1 corespunztor. Aadar, dac un item
i
este frecvent n baza tiparelor
condiionale a tiparului k, P
k
, vom obine tiparul k+1 frecvent, P
k+1
, prin concatenarea
acestuia la P
k
.
S nu uitm trstura structurii prefix-tree (arbore prefixat) conform creia, cu ct
un articol este mai frecvent, cu att exist mai multe anse s se gseasc ntre ramurile
arborelui.
De asemenea, articolele frecvente, indiferent pe ce nivel se gsesc n ierarhia
conceptual, sunt tratate n mod egal i vor apare n arborele FP-Tree.
Particularitatea algoritmului ADA-FP este faptul c poate genera tipare frecvente de
pe nivele diferite folosind procedura ADA-FP-Growth, prezentat n figura 5.2-5., la
reparcurgerea arborelui Fp-Tree. A alt noutate adus de acest algoritm este faptul c spre
deosebire de clasicul FP-Growth care utilizeaz praguri uniforme, acesta este mai puin
rigid utiliznd constrngeri diferite ale suporturilor. Se introduce un nou concept nou
pragul de trecere. Astfel, pentru un tipar de lungime k, acesta se evalueaz att fa de
pragul clasic al suportului ct i fa de pragul de trecere al suportului.
Pragul de trecere al suportului are rolul unei bariere mpotriva creterii imposibile a
tiparelor frecvente. Fixarea acestui prag de trecere are o mare influen asupra
performanei. Un prag de trecere prea jos va genera un set mare de candidai din care doar
civa vor supravieui.
125




























Fig. 5.2-5. Procedura ADA-FP-Growth

n concluzie, algoritmul ADA-FP este un proces n trei etape.
n prima etap, se parcurge baza de date o dat pentru a contoriza fiecare articol.
Articolele frecvente de dimensiune 1 sunt acelea a cror contor depete pragul tipar al
suportului.
Intrare: (1) arborele FP-Tree construit la pasul 2;
(2) pragul de trecere al nivelului k (k 2);
(3) pragul tipar al nivelului k (k 2);
(4) pragul de trecere pentru articole speciale;
(5) pragul tipar pentru articole speciale;
Ieire: L setul multi-nivel al item-ilor (item
1
, ..., item
n
)
Procedura:
(1) if (arborele conine o singur cale P) then
(2) { foreach( combinaie rezultat ca a nodurilor din calea P) do {
(3) genereaz tiparul cu suportul = minsup al nodurilor din
(4) if (tiparul conine itemi speciali) then {
(5) if (suportul tiparului pragul de trecere ) then {
(6) if (suportul tiparului pragul tipar ) then
(7) add la L;
(8) add la C;
(9) }
(10) }
(11) else {
(12) len = lungimea tiparului ;
(13) if (suportul tiparului lungimea len a pragului de
trecere) then
(14) { if (suportul tiparului lungimea len a pragul tipar)
then
(15) add la L;
(16) add la C;
(17) }
(18) }
(19) }
(20) }
(21) else foreach ( a
i
din header-ul arborelui) do {
(22) genereaz tiparul = cu suportul = a
i
.support;
(23) construiete baza condiional a lui i apoi arborele
condiional a lui FP-Tree

(24) }
(25) if (Tree

) then
(26) call ADA-FP-Growth (Tree

, )
(27) }
126
n etapa a doua, se parcurge baza de date din nou pentru a construi arborele FP-
Tree. Articolele pot s apar n arbore dac contorul lor depete pragul lor de trecere
corespunztor. Un articol sau unii dintre descendenii si pot s apar pe aceeai ramur. n
acest caz, relaia dintre articolele de pe nivele abstracte diferite nu va fi o relaie unu-la-
unu. Un articol poate avea mai muli ascendeni diferii. Astfel, un tipar frecvent care
conine toat informaia taxonomic despre un articol este foarte util pentru utilizator.
n a treia etap, se parcurge recursiv arborele FP-Tree pentru a genera toate tiparele
frecvente. Algoritmul ADA-FP poate genera seturi de articole frecvente inter-nivel, seturi
de articole frecvente intra-nivel i seturi de articole frecvente orientate pe dimensiune.
Constrngerile asupra suportului apar de obicei n cuplu (pragul de trecere, pragul
tipar). Primul filtreaz membrii imposibili pentru mrirea tiparelor iar al doilea este o
msur de evaluare a dimensiunii curente a tiparului frecvent. Pe lng aceste praguri,
exist pragurile individuale pentru fiecare articol n parte. Articolele vor fi clasificate ntr-o
clas normal i una special. La mrirea tiparului se va aplica pragul de lungime
corespunztor. Valoarea pragului de trecere i cea a pragului tipar au un impact mare
asupra rezultatelor extrase.

5.2.4. Studiu comparativ de performan

5.2.4.1. Avantajele ADA-FP fa de ML_T2L1

Algoritmul ADA-FP prezint unele avantaje ntr-un studiu de performan
comparativ cu algoritmul ML_T2L1. Acestea sunt:

a) Este mult mai eficient deoarece are nevoie doar de dou parcurgeri a bazei de date n
timp ce numrul de parcurgeri ale bazei de la n cazul algoritmului ML_T2L1 depinde
de lungimea tiparelor frecvente (dac lungimea maxim a tiparelor frecvente este n,
algoritmul are nevoie de n parcurgeri a bazei de date).
b) Poate descoperi tipare frecvente de pe niveluri diferite, deoarece articolele, indiferent
de pe ce nivel abstract sunt, apar n arborele FP-Tree. n timp ce ML_T2L1 adopt o
metod progresiv n adncime, de sus n jos, pn ce nu mai poate fi generat nici un
tipar frecvent. La fiecare nivel este aplicat algoritmul APRIORI pentru a descoperi
127
tipare frecvente. Tiparele generate de ML_T2L1 sunt alctuite din articole de pe acelai
nivel abstract.
c) Pentru a crete flexibilitatea, n procesul de extragere a tiparelor frecvente, s-au
introdus constrngeri diferite pentru suport. Astfel, algoritmul ADA-FP este mult mai
eficient dect ML_T2L1.
5.2.4.2. Avantajele ADA-FP fa de ADAPTIVE APRIORI

n anul 2000, la a 26
a
conferin internaional (VLDB 2000), Wang K., He Y. i
Han J., [WHH00], au propus pentru prima dat utilizarea unor constrngeri diferite pentru
suport la extragerea tiparelor frecvente. Ei au observat c algoritmul clasic APRIORI se
bazeaz pe folosirea unui prag minim pentru suport uniform. Aceasta duce fie la omiterea
unor tipare interesante cu suport sczut, fie la apariia unor ncurcturi la generarea setului
de itemi. Aceasta i-a determinat s foloseasc constrngeri diferite pentru suport la
generarea articolelor.
Acesta este punctul de pornire att la algoritmul ADAPTIVE APRIORI ct i la
algoritmul ADA-FP. Deosebirea dintre cei doi algoritmi este faptul c ADAPTIVE
APRIORI are la baz metoda APRIORI n timp ce ADA-FP are la baz metoda FP-Growth
care s-a demonstrat c este mai rapid dect prima. O alt deosebire dintre cei doi
algoritmi este definirea i implementarea constrngerilor pentru suport.

Comparnd cei doi algoritmi, putem concluziona:
a) Este posibil ca, ntr-un set de articole, mai multe dintre acestea s aib mai multe
constrngeri pentru suport. n algoritmul ADAPTIVE APRIORI se alege cel cu suportul
minim cel mai mic. n algoritmul ADA-FP se impune un prag tipar de lungime k ca un
criteriu pentru a decide dac tiparul de lungime k este frecvent sau nu. Astfel este luat
n considerare lungimea caracteristic a unui tipar.
b) n algoritmul ADAPTIVE APRIORI se nlocuiete suportul minim clasic cu o funcie
notat Pminsup, care definete un superset de articolset-uri frecvente definite prin
minsup generat prin metoda APRIORI. Algoritmul ADA-FP folosete pragul de
trecere al suportului pentru a ndeprta seturile de dimensiune 2 care nu sunt frecvente
(2-itemsets) la fiecare ncercare de generare a seturilor de dimensiune 3 a articolset-
urilor frecvente (3-itemsets). Astfel crete claritatea rezultatelor procesului de extragere
a tiparelor frecvente.
128
5.3. Concluzii

Ideea de baz a unui proces eficient de extragere de reguli de asociere din baze
mari de date tranzacionale este, n primul rnd, de a gsi seturi de articole de lungime k (k-
itemsets) (pentru k pornind de la 1), n baza de date, care apar ntr-un numr suficient de
mare de tranzacii a cror suport este mai mare dect un prag suport predefinit. n al doilea
rnd, asocierea acestor seturi de articole (itemi) de lungime k (k-itemset-uri)n reguli de
asociere cu o confiden calculat i testat pentru a corespunde pragului impus.
Articolele din tranzacii se presupune c sunt organizate n ierarhii taxonomice (pe
nivele conceptuale) n funcie de proprietile ce le sunt asociate. Fiecare articol poate fi
codificat implicit sau explicit ntr-un ir de caractere de forma {3***} n funcie de poziia
sa n ierarhie.
Algoritmii de extragere de date de pe mai multe nivele conceptuale au fost, n
general, dezvoltai prin extinderea tehnicilor existente pentru un singur nivel.
Aa cum am artat la prezentarea unora dintre algoritmi, avem posibilitatea de a
adopta praguri diferite ale suportului sau confidenei pentru diferite nivele conceptuale. n
special, s-a explorat cazul cel mai comun, scderea pragului pentru suportul minim odat
cu nivelele mai sczute de abstractizare. Aceasta a condus la obinerea unor reguli de
asociere interesante la nivele conceptuale multiple, care, pe lng faptul c sunt diferite
pentru nivele diferite, au i un potenial ridicat de a fi nsemnate deoarece sunt flexibile i
pot fi orientate spre diferite seturi de date i aplicate pentru diferite praguri ale suportului i
confidenei la diferite nivele.
Regulile de asociere de baz restricioneaz ca, pentru apariia unui articol n acea
regul s fie pe nivelul frunz al ierarhiei taxonomice. Dac articolele sunt organizate n
categorii se pot extrage mult mai multe reguli care altfel nu ar fi putut fi gsite.
Clasificarea taxonomic ne ajut de asemenea la curarea regulilor neinteresante sau
redundante.









129
6. ALGORITMI DE EXTRAGERE A DATELOR DIN
BAZE DE DATE MULTI-NIVEL


n ultimii ani asistm la o cretere exploziv a capacitii noastre de a genera i
colecta date. Progresele realizate n colectarea datelor, rspndirea utilizrii codurilor bar
pentru majoritatea produselor comerciale i computerizarea majoritii tranzaciilor de
afaceri i guvernamentale ne-au inundat cu informaii.
Aceste cantiti mari de date se memoreaz n depozite sau antrepozite de date,
numite i data warehouse, utiliznd tehnici speciale, denumite OLTP, OLAP etc. Pentru
astfel de volume de date amorfe, sunt necesare instrumente speciale pentru extragerea
cunotinelor. Nu este de mirare c s-a nscut o nou disciplin pe care cei mai muli o
denumesc Data Mining (DM), alii o denumesc Knowledge Discovery (KD), alii
Knowledge Discovery in Databases (KDD), alii Information Discovery (ID), alii
Information Archeology (IA), etc. Fiecare denumire poate fi justificat n felul ei. Trebuie
subliniat ns c unii autori fac deosebire ntre unele dintre acestea, de exemplu ntre DM si
KDD sau KD.
Cele mai multe studii efectuate asupra extragerii de date s-au concentrat mai mult
pe extragerea regulilor de asociere de pe un singur nivel conceptual, fie la nivelul primitiv,
fie la cel mai nalt nivel, ceea ce mpiedic uneori gsirea cunotinelor dorite n bazele de
date. n primul rnd, datorit faptului c, de obicei, seturile de date cu o valoare important
a suportului nu se gsesc la nivele conceptuale foarte joase, deoarece tiparele de la nivelele
conceptuale joase tind s fie mprtiate i greu au un suport important. n al doilea rnd,
regularitile vor fi gsite mai degrab la nivele conceptuale nalte, aadar pot fi deja bine
cunoscute.
Aceste observaii motiveaz necesitatea propunerii unor metode de extragere de
cunotine de pe mai multe nivele conceptuale [HF95], [SA95a], [HF97], [Mao01],
[RKS03]. Prin extragerea cunotinelor de pe nivele conceptuale diferite putem obine date
att de la nivele nalte ct i de la cele joase. Procesul de extragere de date de pe nivele
multiple poate fi realizat n mai multe moduri:

130
Adncirea progresiv pornete n cele mai multe cazuri de la nivele nalte
conceptuale, gsete reguli puternice la acel nivel i apoi parcurge selectiv
i progresiv n adncime nivelele inferioare acestuia pentru a gsi reguli la
aceste nivele.
Generalizarea progresiv pornete n cele mai multe cazuri de la nivele
conceptuale inferioare, gsete reguli puternice la aceste nivele i apoi,
generalizeaz progresiv rezultatele pentru nivelele superioare.
Parcurgerea interactiv n sus i n jos procesul de descoperire de
cunotine poate urca sau cobor pe diferite nivele conceptuale interactiv, la
instruciunile utilizatorului, folosind chiar factori suport diferii.

Pe parcursul studierii procesului de extragere de cunotine (KD), cercettorii au
ncercat prin diverse metode s ndeprteze dintre regulile generate pe cele neinteresante,
propunnd cteva msuri de cuantificare a utilitii sau gradului de interes pe care regula
respectiv o prezint [HF95]. Acest fapt, a condus cercetrile spre cutarea unor metode de
extragere a regulilor de asociere la mai multe nivele conceptuale, ceea ce duce la
descoperirea nu doar a unor reguli de asociere la fiecare nivel, dar i extragerea unor reguli
de asociere utile i informative, datorit flexibilitii concentrrii ateniei asupra seturilor
diferite de date i a posibilitii aplicrii unor praguri diferite ale suportului sau confidenei
pentru nivele diferite.
Folosind ierarhiile conceptuale, datele din bazele de date pot fi exprimate la diferite
nivele de abstractizare care conduc la baze de date multi-nivel i astfel la generarea unor
reguli multi-nivel. ntr-o baz de date pot fi descoperite o multitudine de tipuri de reguli:

Reguli caracteristice [HCC93] care totalizeaz caracteristicile generale
ale unui set de date specificate de utilizator n baza de date.
Reguli de asociere [HF95] descoperite dintr-un set relevant de date din
baza de date de forma A
1
A
m
B
1
B
n
, unde A
i
(pentru i
{1, ..., m}) i B
i
(pentru j {1, ..., n}) sunt mulimi de perechi atribut-
valoare.
Reguli discriminante [HCC93] care deosebesc trsturile generale ale
unui set de date, numit clasa int, de alte seturi de date, numite clase
contrastante.
131
Reguli de clasificare [Qui93] folosite pentru a clasifica un set de date pe
baza valorilor atributelor acestora.
Reguli de grupare [Fis95] folosite pentru a grupa un set de date pe baza
principiului de grupare conceptual: maximizarea asemnrilor din interiorul
clasei i minimizarea asemnrilor dintre clase.
Reguli de evoluie a datelor [SA95a] care sunt un set de reguli ce reflect
evoluia comportamentului general al setului de date.

Majoritatea studiilor asupra extragerii regulilor de asociere ([AIS93], [AS94],
[KMR
+
94], [HF97], [DXGH00], [HGN00], [PJ02], [RKS03]) au folosit bazele de date
tranzacionale ca i model tipic de investigare, deoarece procesul de gsire a relaiilor
dintre articolele bazelor mari de date este solicitat n multe aplicaii care au nevoie de
performan.
Ideea general a extragerii regulilor de asociere din bazele mari de date
tranzacionale este urmtoarea: gsirea tuturor mulimilor mari de articole (k-itemsets,
cu k pornind de la 1) din baza de date, unde un k-itemset este o mulime de k
articole (itemi) care apar mpreun (n aceeai tranzacie) ntr-un numr ct mai
mare de tranzacii i a cror factor suport nu este mai mic dect un prag suport
specificat sau pre-definit. Apoi, se grupeaz seturile de k articole n reguli de
asociere cu o confien calculat, testat n comparaie cu un prag impus.
Regulile de asociere multi-nivel pot fi descoperite prin extinderea algoritmilor
existeni de extragere a regulilor de asociere ale unui singur nivel.
Pornind de la algoritmii propui de Han [HF95], [HF99], Strikant [SA95], Rantzau
[Ran97], Wang [WHH00] i Rajkumar [RKS03] pentru extragerea regulilor de asociere
multi-nivel, am propus n continuare cteva metode originale pentru mbuntirea i
optimizarea acestora.








132
6.1. Algoritmul Depth First Multi-Level APRIORI (DFMLA)


Primul algoritm propus n acest paragraf, denumit DFMLA, pe care l-am publicat
la Conferina microCAD 2005, din Miskolcs, [PGG+05a], are la baz algoritmul APRIORI
[AS94], adaptat de Han pentru extragerea regulilor de asociere multi-nivel ML_T2L1
[HF99], mbuntind performanele acestuia, prin reducerea numrului de tranzacii
verificate inutil la generarea regulilor de asociere ntre articole, nlturnd astfel risipa de
memorie generat de algoritmul APRIORI.

Dup cum se tie, algoritmul APRIORI se bazeaz pe urmtoarea observaie:

Dac avem un set de articole {item
1
, item
2
,} cu suportul S
1
, n
cazul n care dorim s adugm un articol (item
3
) la aceast
mulime, suportul noului set format va fi mai mic sau egal cu S
1
.
Altfel spus, dac un articol (item
1
) se gsete n N tranzacii,
acelai articol (item
1
) mpreun cu un alt articol (item
2
) nu pot s
fie gsite n mai multe tranzacii dect n cte s-a gsit item
1

singur. Aadar, dac S
1
va fi mai mic dect suportul minim, este
evident c suportul noului set format va fi i el mai mic dect
pragul minim al suportului, deci nu merit s fie luat n
considerare.

n elaborarea algoritmului DFMLA, am plecat de la aceast observaie extinznd-o
la cazul bazelor de date multi-nivel. Am prezentat n capitolul anterior avantajele utilizrii
bazelor de date multi-nivel.
6.1.1. Prezentarea algoritmului(DFMLA1)

Aa cum a artat Han [HF99] i Rajkumar [RKS03], o baz de date tranzacional
poate fi transformat ntr-o baz de date multi-nivel, folosind codificarea informaiei
ierarhic n locul tabelelor tranzacionale clasice. Pentru a crea ierarhia bazei de date se
folosesc relaiile existente ntre articolele bazei de date, numite taxonomia informaiei.
Astfel, n tabela tranzaciilor, fiecare articol va fi codificat ca o secven de cifre. Acest
133
lucru este foarte util atunci cnd ne intereseaz doar o parte din tranzaciile bazei de date
(de exemplu o categorie de produse). Astfel, vom putea colecta mai nti setul relevant de
date i apoi s lucrm doar asupra acestuia n loc s parcurgem de fiecare dat ntreaga
baz de date.
Pentru a prezenta algoritmul propus, am considerat un exemplu folosit i n testarea
acestuia. Am considerat o baz de date tranzacional, D = {T
1
, , T
n
} ca fiind o mulime
de tranzacii T
i
,(i{1, ..., n}), unde fiecare tranzacie este o mulime de articole (articolset-
itemset).
Baza de date este alctuit din:

1. un set de articole (itemset) care conine descrierea fiecrui articol (item) sub
forma A
i
, ce reprezint codul fiecrui produs
2. un set de tranzacii de forma (TID, A
i
), unde TID reprezint identificatorul
tranzaciei.

Fiecare articolset X are o importan statistic reprezentat prin suport i frecven.
Suportul unui articolset S(X) este a cea parte din tranzaciile bazei de date D care
conin acel articolset raportat la numrul total de tranzacii (vezi formula 3.1.2).

| |
| } | { |
) (
. ..
D
T X D T
X S

= (6.1.1)

Se tie de asemenea c o regul de asociere este o implicare de forma X Y.
Regula se menine cu o confiden (ncredere) care este raportul dintre numrul de
tranzacii care conin X Y i numrul de tranzacii care conin X (vezi formula 3.1.4).

) X ( S
) Y X ( S
) Y , X (
U
=
(6.1.2)

Confidena reflect puterea unei reguli. Pentru a exclude regulile care nu sunt
destul de puternice pentru a fi interesante am folosit un prag minim pentru confiden,
min
.
Ca atare, exist i un prag minim pentru suport S
min
care exclude toate regulile care au un
numr sub acest prag de tranzacii care conin reuniunea lui X i Y. Articolset-urile cu un
suport minim sunt denumite articolset-uri frecvente.
134
0
alimente
1
lapte
2
buturi
1
2%
0
1,8%
1
graham
0
alb
0
Coca
1
Pepsi
0
Cola
1
Prigat
0
pine
Cele dou praguri nu trebuie confundate. Pragul pentru suport este definit asupra
articolset-urilor. Cnd este aplicat asupra regulilor de asociere, el reprezint procentul
minim din tranzaciile care conin toi itemii ce apar n regul. Pragul confidenei specific
probabilitatea minim pentru ca Y s fie adevrat dac X este adevrat. O confiden
apropiat de 100%, este o caracteristic doar a regulilor foarte puternice.
Baza de date, considerat ca i exemplu, este prezentat sub forma unei ierarhii
conceptuale incluznd categorii i produse n figura 6.1-1.















Fig. 6.1-1. Baza de date ierarhic multi-nivel

Descrierea i codificarea articolelor (item-ilor, produselor) este prezentat n tabelul
6.1-1. Pentru a exemplifica, considerm articolul Pepsi-Cola care este codificat 0201
conform tabelului 6.1-1. Prima cifr 0 reprezint categoria alimente de pe primul
nivel, a doua cifr 2 reprezint categoria buturi de pe al doilea nivel, a treia cifr 0
reprezint categoria Cola de pe al treilea nivel i a patra cifr 1 reprezint produsul
Coca.
Tabelul 6.1-1. conine codurile categoriilor i descrierea fiecrui cod (de articol sau
categorie).



135
















Tabel 6.1-1. Codurile i descrierea articolelor

n cazul n care baza de date este alctuit din cinci tranzacii, prezentate n tabelul
6.1-2., acestea vor putea fi reprezentate cu ajutorul codurilor articolelor ca n tabelul 6.1-3.












Tabel 6.1-2. Tranzaciile bazei de date

Cod Descriere
0 Alimente
00 Pine
01 Lapte
02 Buturi
000 Alb (Pine)
001 Graham (Pine)
010 1,8% (Lapte)
011 2% (Lapte)
020 Cola
021 Prigat
0200 Coca (Cola)
0201 Pepsi (Cola)
Tranzacie Produs (Articol)
T1
Pine alb, Lapte 1.8%,
Coca Cola, Prigat
T2
Pine graham, Lapte 1.8%,
Lapte 2%, Prigat
T3 Lapte 2%, Coca Cola
T4 Lapte 2%, Pepsi Cola
T5
Pine graham, Coca Cola,
Lapte 2%, Prigat
136





















Tabel 6.1-3. Tranzaciile i codurile produselor

Am calculat cei doi factori suportul i confidena pentru exemplificare folosind
formulele (6.1.1) i (6.1.2):

suportul
% 20 100 *
5
1
100 *
al NrTranzTot
PaineAlba cu NrTranz
) Alba . Paine ( S = = =

% 40 100 *
3
2
100 *
Total NrTraz
igat Pr si a NrTranzCoc
) igat Pr Coca (( S = = =

confidena
% 66 100 *
3
2
100 *
Coca cu NrTranz
) igat Pr si Coca cu NrTranz
) igat Pr Coca ( = = =

Tranzacie
Cod Produs
(articol)
T1 000
T1 010
T1 0200
T1 021
T2 001
T2 010
T2 011
T2 021
T3 011
T3 0200
T4 011
T4 0201
T5 001
T5 0200
T5 011
T5 021
137
n bazele de date multi-nivel putem descoperi reguli care conin articole nu doar de
pe un nivel conceptual, ci de pe nivele conceptuale diferite. Aadar, putem s ne
concentrm atenia pe descoperirea unor reguli informative ntre diferite categorii de
produse, sau chiar ntre articole i categorii, nu doar reguli ntre produse (itemi).
n acest caz, factorii suport i confiden se refer att la articole ct i la categorii.
Astfel, suportul unei categorii reprezint procentul de tranzacii n care apare acea
categorie. Spre exemplu, suportul categoriei Lapte este calculat mai jos:

% 100 100 *
5
5
100 *
Total NrTranz
produs . Lapte cu NrTranz
) Lapte ( S = = =


Trebuie s inem cont de faptul c suportul unei categorii poate s fie diferit de
suma suporturilor descendenilor si, dar nu poate fi mai mic dect suportul oricruia dintre
acetia.
n acest caz, putem extinde observaia pe care se bazeaz algoritmul APRIORI la
nivelul categoriilor:

Dac avem o categorie sau un set de categorii cu suportul S
1
, un
element al acelei categorii va avea un suport mai mic sau egal cu S
1
.
Aadar, dac o categorie nu are suportul mai mare dect pragul
suportului minim, nici un element al su nu va putea avea suportul
mai mare dect pragul suportului minim.

De la aceast observaie pleac algoritmul DFMLA1 pe care l-am propus n acest
paragraf.
Aa cum a demonstrat Han i Fu [HF99], nu toate regulile generate trebuie luate n
considerare, ci doar acelea care sunt considerate ca i importante. n acest caz, importana
unei reguli este msurat prin factorul suport.
Astfel, presupunnd c avem 2 categorii, Cat1 i Cat2, atunci suport(Cat1) >
suport minim i suport(Cat2) > suport minim deci, suport(1.x) i suport(2.y) pot fi >
suport minim, adic descendenii acestor categorii pot avea suport mai mare dect
suportul minim.
Astfel, dac ntre Cat1 i Cat2 nu exist o regul, atunci nici ntre descendenii
celor dou categorii (1.x i 2.y) nu va exista nici o regul (vezi figura 6.1-2).
138

Fig. 6.1-2. Motenirea unei reguli

Algoritmul fiind proiectat pentru baze de date multi-nivel ne ofer avantajul
utilizrii metodei parcurgerii n adncime a arborelui ierarhiei conceptuale. Aceast
metod gsete articolele frecvente la cel mai nalt nivel i apoi, progresiv
adncete procesul de extragere la descendenii frecveni ai acestora de pe nivele
conceptuale mai joase.
De fiecare dat cnd gsete o nou regul ntre dou articolset-uri (f g), i se
testeaz acestei reguli importana (suportul). Dac nu depete pragul suport atunci tim
c nu vor exista reguli de asociere ntre descendenii acestor categorii.
Noutatea adus de algoritmul DFMLA1 este funcia CheckDescendants(),
prezentat n figura 6.1-3., care este apelat recursiv n cazul n care regula
descoperit trece testul de importan.









Fig. 6.1-3. Funcia recursiv pentru verificarea descendenilor

S-a notat:
- k numrul de articole din setul k-articolset
- f, g articolset-uri din regula f g
- lvl nivelul pe care se gsete f i g
function CheckDescendants (k, lvl, f, g)
{
for (f2=1; f2<nr.of.itemsets.descented.from.f.on.lvl+1; f2++)
for (g2=1; g2<nr.of.itemsets.descented.from.g.on.lvl+1; g2++)
if (f2 g2 rule is interesting)
{
Add.Itemset (f2,g2( to L[k, lvl+1];
CheckDescendants (k, lvl+1, f2, g2); //dac f2 i g2 exist
}
}
139
Funcia trebuie apelat nainte de a ncerca s gsim o nou regul la acelai nivel
(lvl) deoarece trebuie s tim exact care subset-uri (f i g) au fost folosite n aceast regul.
6.1.2. Versiune optimizat a algoritmului (DFMLA2)

Aa cum arat Han i Fu n [HF95], o interogare pentru extragere de date este
relevant doar pentru o parte din tranzaciile bazei de date (de exemplu, doar pentru cele
referitoare la lapte), nu pentru totalitatea lor. Din acest motiv, am introdus n algoritmul
DFMLA1, filtrarea tranzaciilor, ceea ce nseamn c fiecare tranzacie care nu mai este
folosit este ndeprtat. Am obinut astfel o versiune optimizat a acestui algoritm pe care
am numit-o DFMLA2.
Deoarece f2 i g2 sunt derivate din subset-urile f i g, tranzaciile
(T(k,lvl+1)) n care acestea au fost gsite sunt de fapt unele (sau toate) din
tranzaciile n care au fost gsite f i g (T(k,lvl)). Aadar, la apelul funciei
CheckDescendants() putem s-i transmitem o selecie (sau doar TID) a
tranzaciilor n care au fost gsite f i g (T(k,lvl)). Astfel, funcia nu va trebui s mai
scaneze ntreaga baz de date pentru a verifica importana unei reguli ci doar
tranzaciile selecionate. n acest mod, la trecerea n adncime de pe un nivel
conceptual (lvl) pe urmtorul nivel conceptual (lvl+1), numrul tranzaciilor va fi tot
mai mic, iar parcurgerea bazei de date va fi tot mai rapid.
n implementarea versiunii DFMLA2, am filtrat din selecia anterioar de tranzacii,
doar pe acelea care conin articole comune din f i g.
6.1.3. Studiu comparativ de performan

6.1.3.1. Avantaje

Aceti algoritmi (DFMLA1 i DFMLA2) nu caut s gseasc reguli ntre toate
subset-urile k-articolset ci doar ntre derivaiile unui subset din acele reguli care au fost
gsite anterior interesante (importante). Ei parcurg arborele ierarhiei conceptuale n
adncime i dac gsesc o regul la primul nivel conceptual ntre dou categorii caut apoi
care sunt subcategoriile la care se aplic regula. Dac regula nu trece testul de importan,
atunci nu vor exista reguli importante ntre subcategoriile de pe urmtorul nivel
conceptual.
140
Spre deosebire de algoritmii propui de mine, algoritmul lui Han folosete funcia
de generare a candidailor din algoritmul APRIORI la fiecare nivel conceptual. Cnd
termin de examinat un nivel n ntregime, trece la urmtorul nivel, parcurgnd aadar
arborele ierarhiei conceptuale n lime. Pentru a sublinia avantajul algoritmilor propui,
am comparat DFMLA1 i DFMLA2 cu algoritmul APRIORI multi-nivel (ML_T2L1) propus
de Han i Fu n [HF95].
Studiul comparativ al algoritmilor a fost publicat la conferina CSCS15, Bucureti
2005, [PGG+05b]. Algoritmii au fost implementai cu ajutorul limbajului de programare
Java i compilai cu ajutorul platformei Eclipse. Testrile s-au efectuat pe un calculator
Athlon XP la 1.6 GHz, cu memorie de 256 MBRAM, sub sistemul Microsoft Windows
XP Professional, folosind Microsoft SQL 2000 Server i interfaa standard ODBC.
Studiul s-a fcut pe baza de date prezentat ca i exemplu anterior. Baza de date are
50 000 de intrri, 750 de articole distincte codificate pe 10 nivele conceptuale, 7 500 de
tranzacii, fiecare tranzacie avnd cel mult 15 articole.
Ambii algoritmi au fost testai pentru regulile: 12, 1.12.1, 1.1.12.1.1, 13 i
23. Regulile 13 i 23 nu trec testul de importan, aadar algoritmul DFMLA1 nu va
verifica regulile 1.13.1, 1.13.2, 2.13.1, etc. Spre deosebire de cellalt algoritm care
va testa aceste reguli cnd va ajunge la nivelul respectiv. Se evit astfel multe teste inutile.


Fig. 6.1-4. Comparaie Multi-level APRIORI (ML_T2L1)cu DFMLA1
141
Versiunea optimizat a algoritmului, DFMLA2, folosete filtrarea
tranzaciilor. Acest lucru mrete viteza de lucru a algoritmului deoarece la fiecare
trecere la nivelul conceptual urmtor vom elimina unele tranzacii. Cu ct baza de
date are mai multe nivele conceptuale, algoritmul poate deveni mai rapid o dat cu
eliminarea unor categorii. Observm acesta n figura 6.1-5.

Fig. 6.1-5. Comparaie DFMLA1 cu DFMLA2

6.1.3.2. Dezavantaje

n cazul n care nu sunt eliminate tranzacii, algoritmul va fi mai lent datorit
timpului pierdut cu filtrarea tranzaciilor i celui alocat efecturii testelor de importan.
Un alt dezavantaj al acestui algoritm este cantitatea mare de memorie ocupat cu
reinerea TID-urilor tranzaciilor testate pentru a putea reveni la nivelul inferior.





142
6.2. Algoritmul Multi-Level FP-Growth (MLFP-Growth)

Bazele de date simplu-nivel conin de cele mai multe ori informaii prea complexe
care sunt uneori mai puin interesante pentru extragerea regulilor de asociere. Aceste
informaii se gsesc de obicei pe ultimul nivel al bazelor de date multi-nivel, unde se
gsesc informaii mai concrete, mai specifice dect la nivelele superioare. Astfel, n
practic, managerii unor magazine vor s tie, de exemplu, dac pot s aeze toate tipurile
de pine lng lapte sau nu, aa nct cumprtorii s aleag ce pine doresc. Ei vor s
cunoasc reguli mai generale. Pentru a obine acest gen de informaii este necesar putem
extrage date la orice nivel conceptual dorim.
Acest lucru este posibil folosind algoritmul APRIORI multi-nivel. Se parcurg astfel
progresiv nivelele de abstractizare ale bazei de date de sus n jos (top-down) reducnd n
acest mod setul de candidai i numrul de citiri din baza de date.
O alt metod este folosirea algoritmului de generare a arborelui FP-Tree care are
nevoie doar de dou parcurgeri a bazei de date i nu genereaz seturi de candidai.

Eficiena metodei FP-Tree este realizat cu ajutorul a trei tehnici:
1. Bazele de date de dimensiuni mari sunt comprimate n structuri de date
mult mai mici foarte condensate care evit numrul mare i costisitor de
parcurgeri a bazelor.
2. Extragerea datelor folosind FP-Tree folosete metoda creterii setului de
tipare frecvente pentru a evita costurile mari provocate de generarea
unui numr mare de seturi de candidai.
3. Folosete o metod de partiionare bazat pe tehnica divide et impera
pentru a descompune procesul de extragere de date n procese mai mici
fapt ce reduce simitor intervalul de cutare.

Baza de date este parcurs tot de sus n jos progresiv. Informaiile obinute de la
nivele conceptuale nalte sunt insuficiente pentru a trece la nivelele conceptuale urmtoare.
Deci este necesar o nou parcurgere a bazei de date pentru a obine informaiile care
lipsesc. n acest mod, pentru a obine informaii de pe cel mai jos nivel conceptual vom
avea nevoie de cel puin n+1 parcurgeri a bazei de date.
143
n concluzie, aceast metod de folosire a arborelui FP-Tree nu este n totalitate
eficient. Cu toate acestea, aplicarea algoritmului FP-Growth direct la ultimul nivel, pentru
a obine informaii de pe acesta, este o metod mai rapid dect aplicarea algoritmului
APRIORI multi-nivel. Am artat acest lucru comparnd timpul de execuie al celor doi
algoritmi, n figura 6.2-1, testele fiind efectuate n aceleai condiii ca i n paragraful
anterior.


Fig. 6.2-1. Comparaie ML_T2L1 cu FP-Growth

6.2.1. Prezentarea algoritmului MLFP-Growth

n continuare am propus un alt algoritm, numit MLFP-Growth, publicat la
Conferina CSCS15, Bucureti 2005, [GGP+05c]. Pentru a putea explica mai bine
realizarea algoritmului propus, am considerat un exemplu, o baz de date a crei ierarhie
conceptual de trei nivele este prezentat n figura 6.2-2.





144













Fig. 6.2-2. Baza de date ierarhic multi-nivel

Codurile i descrierea categoriilor extrase din figura 6.2-2. sunt prezentate n
tabelul 6.2-1.
Cod Descriere
0 Alimente
01 Fructe
02 Legume
03 Lapte
011 Mere
012 Pere
0111 Mere roii
0112 Mere verzi
021 Varz
022 Roii
031 Lapte 1,8%
032 Lapte 2%

Tabel 6.2-1. Codurile i descrierea categoriilor

0
Alimente
0.2
Legume
0.3
Lapte
0.2.2
Roii
0.2.1
Varz
0.1.2
Pere
0.1.1
Mere
0.1.1.1
Mere
roii
0.1.1.2
Mere
verzi
0.3.1
1,8%

0.3.2
2%

0.1
Fructe
0.4 0.5
0.4.1 0.5.1
145
Aa cum am artat la nceputul paragrafului 6.2., de multe ori este necesar s putem
extrage informaii direct de pe un anumit nivel conceptual k al ierarhiei bazei de date.

Pentru a realiza aceasta, exist o metod:

1. obinerea arborelui FP-Tree i apoi aplicarea algoritmului FP-Growth
direct pe nivelul conceptual dorit k

O alt metod, mai eficient, am propus n aceast lucrare:

2. dac avem disponibile informaiile de pe un nivel l, putem obine
informaiile de pe nivelul superior k (l >k) folosind nivelul l.

6.2.1.1. Metoda I: Obinerea arborelui FP-Tree i apoi aplicarea
algoritmului FP-Growth direct pe nivelul conceptual k. (MLFP-
Growth I)

Tranzaciile unei baze de date conin de obicei articole de pe cel mai jos nivel
conceptual. Pentru a putea obine informaii de pe un anumit nivel conceptual va trebui s
transformm tranzaciile (sau s le privim ntr-o alt manier). Acest lucru se poate realiza
folosind codurile fiecrui produs aa cum au fost prezentate n tabelul 6.2.1. n cazul n
care rdcina arborelui nu este considerat un nivel conceptual, fiecare articol este
codificat prin 3 cifre.
Dac suntem interesai de informaiile de pe al 2-lea nivel conceptual vom folosi
doar primele 2 cifre din identificatorul articolului respectiv. Considernd c suportul
minim este 3, atunci dup executarea primului pas al algoritmului de obinere a arborelui
FP-Tree vom obine rezultatele prezentate n ultima coloan a tabelului 6.2-2.





146
TID Articole cumprate Categoriile frecvente de
pe al 2-lea nivel
(ordonate)
1 3.1.1, 1.2.2, 2.2.3,
2.1.1, 1.1.4
1.1, 1.2, 2.1, 3.1
2 2.1.2, 4.1.1 2.1, 4.1
3 2.1.2, 4.1.2, 5.1.3 2.1, 4.1
4 1.2.3, 1.1.2, 3.1.1,
4.1.1
1.1, 1.2, 3.1, 4.1
5 1.1.2, 3.1.1, 1.2.3 1.1, 1.2, 3.1

Tabel 6.2-2. Baza de date tranzacional

Pe parcursul celui de-al doilea pas al algoritmului obinem arborele condiional din
figura 6.2-3. Se poate observa c au fost eliminate categoriile 2.2 i 5.1 deoarece nu
ndeplineau condiia de suport minim.
Metoda este mai rapid dect cazul n care aplicm algoritmul FP-Growth
pe baza de date vzut ca un singur nivel deoarece avem mai puine elemente pe
un nivel conceptual oarecare dect pe cel inferior lui.


Fig. 6.2-3. Arborele FP-Tree al celui de-al 2-lea nivel conceptual
Articol Cap list
1.1

1.2

2.1

3.1

4.1


Tabela
antet
1.1
1.2
2.1
3.1
rdcina
3.1
4.1
2.1
4.1
147
6.2.1.2. Metoda II: Obinerea arborelui FP-Tree pentru nivelul k din
arborele nivelului l (l>k) (MLFP-Growth II)

Aceast metod am propus-o pentru a putea extrage informaii direct de pe un
anumit nivel conceptual k, fr a accesa baza de date, folosind arborele FP-Tree al unui
nivel inferior l, obinut deja.
Deoarece arborele FP-Tree al nivelului conceptual despre care avem
informaii l, se afl deja n memorie, obinerea arborelui FP-Tree al nivelului k se
face mult mai rapid dect n cazul metodei I. Exist cazuri n care nu mai e
necesar o nou citire din baza de date sau sunt citite foarte puine tranzacii.
Arborele FP-Tree obinut pentru nivelul l conine aproape toate informaiile pentru
a construi arborele FP-Tree al nivelului k dorit. Informaiile care lipsesc sunt cele din
articolele care nu au ndeplinit pragul suportului minim.
Folosind exemplul prezentat anterior vom avea:

Pasul 1. Crearea antetului nivelului k

Se construiete antetul noului arbore FP-Tree pentru nivelul k (fig. 6.2-4). Acesta
se obine folosind informaiile codificate.








Fig. 6.2-4. Crearea tabelei antet pentru nivelul k

Se observ n exemplul considerat, c n antetul nivelului l avem articolele 1.1, 1.2,
2.1, 3.1 i 4.1, astfel rezult c la nivelul k sigur vom avea categoriile 1, 2, 3 i 4.


Nivelul l Nivelul k
Tabela antet Tabela antet



Articol Cap list
1

2

3

4


Articol Cap list
1.1

1.2

2.1

3.1

4.1


148
Pasul 2. Completarea antetului

Antetul nivelului k trebuie completat cu articolele care lipsesc. Pentru a face asta,
trebuie citite nodurile care lipsesc din antet, operaie uoar n cazul n care antetul a fost
salvat naintea pasului de curare sau dac articolele au fost doar ascunse n loc s fie
terse. Astfel se iau toate articolele de pe nivelul k al bazei de date (din figura 6.2-2.
observm c mai poate exista categoria 5) care nu au fost adugate i se verific dac
acestea ndeplinesc condiia de suport minim, fiind adugate n antet n caz afirmativ.
n exemplul meu, articolul 5 este luat n considerare, dar nu este adugat pentru c
nu ndeplinete condiia de suport minim.

Pasul 3. Completarea arborelui FP-Tree al nivelului l

nainte de a crea structura arborescent a nivelului k, trebuie completat cea a
nivelului l. Va trebui s adugm la arborele FP-Tree al nivelului l acele tranzacii care
conin nodurile adugate. Aceasta presupune accesarea bazei de date, ns doar a ctorva
tranzacii spre deosebire de cele dou parcurgeri necesare n metoda I.
n exemplul meu, (fig. 6.2-5), categoria 2, din antetul nivelului k are 2 fii n nivelul
l. Unul dintre ei, 2.2, nu apare n arborele nivelului l, aa nct l adugm (adugm toate
tranzaciile n care apare 2.2). De asemenea articolul 5.1, nu a fost adugat pentru c nu
ndeplinete pragul suportului minim.












Fig. 6.2-5. Completarea arborelui FP-Tree al nivelului l
Articol Cap list
1.1

1.2

2.1

3.1

4.1




2.2
5.1
Tabela antet
1.1
1.2
2.1
3.1
rdcina
3.1
4.1
2.1
4.1
2.2
2.2
149
Pasul 4. Reordonarea antetului nivelului k

Antetul nivelului k a fost completat la pasul 2 i conine n acest moment
identificatorii (ID) articolelor corespunztoare nivelului k. Elementele antetului nivelului k
vor fi reordonate n funcie de factorul suport. Putem afla suportul fiecrui element din
antet fr a citi baza de date din nou. Toate informaiile necesare se gsesc acum n
arborele obinut la pasul 3.
Pentru a calcula factorul suport al articolelor de pe nivelul k, vom folosi un
algoritm recursiv aplicat pe arborele nivelului l. Pornind de la rdcin parcurgem arborele
n jos i:

1. suportul categoriei 1 este suportul primului element din categorie gsit (ex. 1.1
sau 1.1.1, etc.)
2. dac ajungem la o intersecie nainte s gsim un astfel de element, atunci,
pentru fiecare ramur aplicm din nou regula 1. Suportul va fi egal cu suma
suporturilor gsite pe fiecare ramur.

De exemplu, suportul categoriei 3 va fi suma suporturilor articolelor 3.1 de pe cele
2 ramuri.
Antetul nivelului k este acum finalizat.

Pasul 5. Crearea arborelui FP-Tree pentru nivelul k

Pornim de la nodurile terminale spre rdcina arborelui nivelului l. Vom urma
tiparele lor condiionale (ramurile arborelui) i vom extrage toate articolele nivelului k care
apar. n cazul n care apar mai multe articole ale aceleai categorii (ex. 2.1 i 2.1) vom lua
categoria o singur dat iar suportul ei va fi egal cu suma suporturilor articolelor (ex.
suport 2.1 + suport 2.2). Se creeaz astfel o mulime (articolset-itemset) care este adugat
noului arbore al nivelului k (vezi tabelul 6.2-3).




150
NR Tiparele condiionale extrase Articolset-urile adugate n
arbore (ordonate)
1 1.1, 1.2, 2.1, 3.1, 2.2 1, 2, 3
2 2.1, 4.1, 5.1 2, 4
3 2.1, 4.1 2, 4
4 1.1, 1.2, 3.1, 4.1 1, 3, 4

Tabel 6.2-3. Crearea bazei condiionale de tipare pentru nivelul k

n exemplul considerat, extragem din arborele nivelului l (fig. 6.2-5), de jos n sus,
articolele: 2.2, 3.1, 2.1, 1.2, 1.1. obinem astfel categoriile: 2, 3, 2, 1, 1. Dup ce facem
reordonarea antetului k vom avea: 3, 2, 2, 1, 1. Lum articolele o singur dat: 3, 2, 1. Apoi
adugm aceast ramur la arborele nivelului k. Analog procedm cu fiecare ramur a
arborelui obinnd n final arborele FP-Tree al nivelului k (fig. 6.2-6). Aa cum tim,
categoria 5 a fost curat deoarece nu ndeplinea condiia suportului minim.
n cazul n care, rar n practic, nici un articol nu va fi curat din arborele nivelului
l, paii 2 i 3 nu sunt necesari iar baza de date nu va fi accesat deloc. Astfel, dac avem
arborele FP-Tree al celui mai jos nivel conceptual din care nu sunt ndeprtate articole,
putem obine informaii pentru orice alt nivel conceptual fr s accesm baza de date.
Acest lucru este util atunci cnd avem nevoie de informaii de pe mai multe nivele
conceptuale.










Fig. 6.2-6. Arborele FP-Tree al nivelului k

Articol Cap list
1

2

3

4


Tabela
antet
1
2
3
rdcina
3
4
2
4
151
6.2.2. Studiu comparativ de performan
6.2.2.1. Avantaje

Unul din principalii factori care micoreaz viteza de lucru a algoritmului de creare
a arborelui FP-Tree este numrul de accesri a bazei de date. Metoda II propus n
aceast lucrare (MLFP-Growth II) utilizeaz informaii anterioare pentru a evita
accesarea bazei de date lucrnd n special cu memoria calculatorului, ceea ce
este mult mai rapid. Baza de date este eventual accesat doar pentru a obine
informaiile care lipsesc (vezi pasul 2 i 3 al metodei).
Pentru a demonstra eficiena algoritmilor propui am fcut o serie de teste de
performan, publicate la Conferina CSCS15, Bucureti 2005, [GGP+05c]. Pentru
aceasta, algoritmii au fost implementai cu ajutorul limbajului de programare Java i
compilai cu ajutorul platformei Eclipse. Testrile s-au efectuat pe un calculator Athlon XP
la 1.6 GHz, cu memorie de 256 MBRAM, sub sistemul Microsoft Windows XP
Professional, folosind Microsoft SQL 2000 Server i interfaa standard ODBC.
Am studiat comparativ cele dou metode pe o baz de date real, cu 50 000 de
intrri, 750 de articole codificate pe 10 nivele conceptuale, 6 000 de tranzacii, fiecare
avnd cel mult 10 articole. n ambele cazuri factorul suport a variat de la 5% pn la 40%.
n tabelul 6.2-4. sunt prezentai timpii obinui de algoritmul MLFP-Growth I (Metoda I),
iar n tabelul 6.2-5. sunt prezentai timpii obinui prin executarea algoritmului MLFP-
Growth II (Metoda II).

Timp
(sec)
Suport (%)
Nr
tranz
(n mii)
5 10 15 20 25 30 35 40 60 80 90
5.000 0.75 0.72 0.66 0.64 0.61 0.60 0.58 0.54 0.42 0.35 0.13
5.000 0.52 0.63 0.61 0.57 0.46 0.43 0.42 0.39 5.000 0.52 0.63

Tabel 6.2-4. Rezultatele obinute de algoritmii MLFP-Growth I (Metoda I) i
MLFP-Growth II (Metoda II)

Cu ct distana dintre nivelele conceptuale k i l este mai mare, cu att pot exista
mai multe informaii lips, ceea ce foreaz accesarea bazei de date pentru obinerea lor. n
cazul n care nu exist informaii lips ntre cele dou nivele conceptuale, singurul motiv
152
de accesare a bazei de date rmne pentru verificarea factorului suport (vezi pasul 2 al
algoritmului) iar uneori nici aceasta nu este necesar.
Performana MLFP-Growth II fa de MLFP-Growth I depinde de asemenea
de pragul suportului minim. Dac acesta este foarte sczut, vom avea foarte
puine informaii ndeprtate la cel mai jos nivel conceptual, ceea ce face MLFP-
Growth II mai rapid.

Fig. 6.2-7. Comparaie MLFP-GrowthI( Metoda I) cu MLFP-GrowthII (Metoda II)

Algoritmul MLFP-Growth II cere ca algoritmul FP-Tree s fie rulat naintea
sa pentru a obine arborele iniial. n cazul n care MLFP-Growth II este folosit
pentru mai multe nivele conceptuale, arborele FP-Tree iniial este creat o singur
dat.
6.2.2.2. Dezavantaje

Cu ct distana dintre cele dou nivele conceptuale (k i l) este mai mare, cu att pot
exista mai multe informaii lips, ceea ce foreaz accesarea bazei de date. Cu ct avem
mai puine informaii lips ntre nivelele k i l, accesarea bazei de date va fi necesar doar
pentru verificarea i calcularea suportului, uneori nici aceasta nu este necesar.
Timpul de execuie al algoritmului MLFP-Growth pentru acelai nivel conceptual
difer n funcie de distana dintre cele dou nivele conceptuale.
153
6.3. Algoritmul Multi-Level AFOPT (ML-AFOPT)

n continuare, am propus un algoritm pentru extragerea tiparelor frecvente din baze
de date multi-nivel, ML-AFOPT, pornind de la algoritmul AFOPT prezentat de Liu G. n
[LLX+03]. Deoarece am artat anterior avantajele oferite de utilizarea bazelor de date
multi-nivel, am ncercat s adaptez algoritmul propus de Liu G. asupra acestora.
Algoritmul propus de mine, a fost publicat la Conferina SYNASC 2005, Timioara,
[GGP+05a].
Algoritmul AFOPT [LLX+03] utilizeaz o abordare a creterii tiparului i folosete
o structur de arbore prefixat (prefix-tree) pentru a reprezenta baza de date condiional. El
folosete o strategie diferit de traversare a arborelui i o alt metod de ordonare a item-
ilor.
Folosirea structurii AFOPT pentru a reprezenta bazele de date condiionale
duce la obinerea unor costuri de traversare minime iar utilizarea ordonrii
cresctoare dup frecven ne conduce la construirea unui numr minim de baze
de date condiionale, deoarece bazele condiionale sunt de obicei reprezentate
printr-o singur ramur n structura AFOPT.
Aa cum am artat n paragraful 6.2.1., pentru a obine o anumit informaie situat
pe nivelul conceptual K, exist dou posibiliti (am folosit de aceast dat structura
AFOPT n locul structurii FP-Tree):

1. folosirea direct a structurii AFOPT pe nivelul respectiv k
2. dac avem informaii obinute anterior pe un nivel inferior l (l>k), atunci putem
folosi aceste informaii pentru a obine informaiile dorite de pe nivelul k

n cazul algoritmilor de extragere a tiparelor frecvente, bazai pe abordarea
APRIORI (de exemplu algoritmul ML_T2L1), nu este indicat s folosim metoda parcurgerii
de sus n jos a arborilor, deoarece acetia au nevoie de k+1 parcurgeri a bazei de date
pentru obinerea unor informaii de pe nivelul conceptual k, n timp ce folosind aplicarea
algoritmului AFOPT (sau FP-Growth) direct pe nivelul k, sunt necesare doar dou
parcurgeri a bazei de date pentru a obine aceste informaii.


154
6.3.1. Prezentarea algoritmului

Vom considera n continuare, o baz de date tranzacional ale crei tranzacii sunt
prezentate n tabelul urmtor 6.3-1.

TID Articole
T1 3.1.1 1.2.2 2.2.3 2.1.1 1.1.4 1.1.2
T2 2.1.2 4.1.1 1.2.2 1.1.2 3.1.1
T3 2.1.2 4.1.2 5.1.3 1.1.2
T4 1.2.3 1.1.2 3.1.1 4.1.1
T5 1.1.2 3.1.1 1.2.3 1.2.2

Tabel 6.3-1. Tranzaciile bazei de date

Avnd n vedere faptul c metoda propus are la baz algoritmul AFOPT,
traversarea bazei de date originale pentru a gsi articole frecvente sau nivele abstracte
frecvente se face n acelai mod ca i n algoritmul original [LLX+03]. De asemenea,
ordonarea articolelor n ordinea cresctoare a frecvenei lor de apariie este aceeai.
n tabelul 6.2-2. sunt prezentate valorile factorului suport pentru articolele care apar
n aceste tranzacii, urmtorul tabel, 6.3-3., prezentnd sortarea acestora n ordine
cresctoare a frecvenei de apariie.











Tabel 6.3-2. Articolele bazei de date Tabel 6.3-3. Articolele sortate ascendent

Cod articol Sup
3.1.1 4
1.2.2 3
2.2.3 1
2.1.1 1
1.1.4 1
1.1.2 5
2.1.2 2
4.1.1 2
4.1.2 1
5.1.3 1
1.2.3 2
Cod articol Sup
4.1.1 2
2.1.2 2
1.2.3 2
1.2.2 3
3.1.1 4
1.1.2 5
------------------ --------
2.1.1 1
2.2.3 1
4.1.2 1
1.1.4 1
5.1.3 1
155
Dup prima parcurgere a bazei de date se obine ordonarea cresctoare a articolelor
dup frecvena lor de apariie, tabelul 6.3-3. Observm ca n partea superioar a acestui
tabel, pn la linia punctat, apar articolele frecvente, iar sub aceasta articolele care nu sunt
frecvente.
Apoi, baza de date original este parcurs a doua oar pentru a construi structura
arborescent AFOPT care reprezint baza condiional de articole frecvente. Mai nti este
construit tabela antet, folosind doar acele articole (categorii) a cror suport depete
pragul suportului minim, i care sunt sortate n ordinea cresctoare a frecvenei de apariie,
spre deosebire de sortarea n ordine descresctoare folosit n algoritmul FP-Growth.
Baza de date condiional a unui articol i include toate tranzaciile care conin
articolul i, iar articolele (itemii) care nu sunt frecvente i cele care se gsesc naintea lui i
sunt ndeprtate din fiecare tranzacie. La stocarea ramurilor simple din arborele prefixat se
folosesc tablouri (array) pentru a salva spaiu i a micora costurile de construcie a
arborelui. Fiecare nod din arborele AFOPT conine trei tipuri de informaii: identificatorul
articolului (ID), numrul articolset-urilor corespunztoare cii de la rdcin pn la acel
nod i pointerii care indic fii nodului respectiv. Fiecare element din tablou pstreaz
primele dou informaii. n continuare, vom nota p.item identificatorul nodului p din
arborele AFOPT.

Fig. 6.3-1. Arborele AFOPT

n aceti doi primi pai este numrat fiecare articol individual, iar informaiile
complete despre baza de date tranzacional este comprimat n structura
arborescent AFOPT. Aceste operaii sunt realizate cu costul a dou parcurgeri
ale bazei de date.
156
Din acest moment, procesul de generare a tiparelor frecvente este realizat
prin parcurgerea recursiv a structurii AFOPT fr a implica alte operaii
costisitoare asupra bazei de date.
Metoda ne permite s obinem informaii de pe un anumit nivel conceptual k, atunci
cnd avem deja informaiile de pe nivelul l, care este un nivel conceptual mai jos dect k.
Arborele AFOPT obinut pentru nivelul l conine deja aproape toate informaiile necesare
construirii arborelui AFOPT necesar nivelului k. Singurele informaii care lipsesc sunt cele
din articolele care au fost eliminate deoarece nu au ndeplinit suportul minim, dar care pot
afecta arborele nivelului k. O structur AFOPT este format dintr-o tabel antet i arborele
propriu-zis. Nodurile de legtur din tabela antet ne arat poziia elementelor respective n
arbore.
Pentru a obine structura arborescent AFOPT a nivelului k se parcurg urmtorii
pai:

Pasul 1. Crearea tabelei antet pentru nivelul k:

Arborele AFOPT al nivelului k are nevoie de o tabel antet care este obinut folosind
clasificarea informaiile pe categorii i subcategorii specific bazelor de date multi-nivel.
Astfel, din tabela antet a nivelului l se poate obine tabela antet parial a nivelului k, care
va fi completat la pasul 2.

Tabela antet al nivelului l Tabela antet al nivelului k

Articol Noduri de legtur
3.1.1
1.2.2
2.2.3
........

Articol Noduri de legtur
3.1
1.2
2.2
........

Fig. 6.3-2. Construirea tabelei antet a nivelului k

Pasul 2. Completarea tabelei antet

Tabela antet a nivelului l, pe care o avem, trebuie completat cu articolele care lipsesc,
acelea care au fost eliminate deoarece nu aveau suport minim. Pentru aceasta, se citesc
nodurile lips, ceea ce este foarte simplu dac tabela antet a fost salvat nainte de pasul de
curare sau dac articolele au fost doar ascunse n loc s fie terse. Pentru fiecare articol
adugat n tabela antet a nivelului l, trebuie s adugam categoria corespunztoare n tabela
antet a nodului k, i s obinem suportul acesteia. Dac n nivelul k aceste articole
(categorii) nu ndeplinesc suportul minim ele sunt curate (ndeprtate); articolele
corespunztoare din nivelul l sunt de asemenea curate, chiar dac ele tocmai au fost
adugate. Dup acest pas vom avea dou tabele antet pentru nivelele k i l (fig. 6.3-3).












Fig. 6.3-3. Completarea tabelei antet

Pasul 3. Completarea arborelui nivelului l

Pentru toate articolele adugate la pasul anterior trebuie s adugm din baza de date
tranzaciile care conin aceste articole (vezi tabelul 6.3-4). Aceasta presupune accesarea
bazei de date, dar numai pentru citirea tranzaciilor necesare, spre deosebire de cele dou
parcurgeri integrale necesare n cazul utilizrii metodei 1.
Completarea arborelui AFOPT cu articolele lips este prezentat n figura 6.3-4.
Observm ca articolele 5.1.3 i 2.2.2 nu au fost adugate (au fost adugate i apoi
ndeprtate) deoarece articolele (categoriile) corespunztoare lor de pe nivelul k (5.1 i 2.2)
Nivelul l Suport
2.1.1 1
2.2.3 1
4.1.2 1
1.1.4 1
5.1.3 1
----------- -------
4.1.1 2
2.1.2 2
1.2.3 2
1.2.2 3
3.1.1 4
1.1.2 5
Nivelul k Suport
2.1 3
2.2 1
4.1 3
1.1 5
5.1 1
------- -------
4.1
2.1
1.2
1.2
3.1
1.1
158
nu ndeplinesc suportul minim. De asemenea tranzaciile care conin aceste articole nu au
fost adugate n arborele AFOPT.

TID Articole
T1 2.1.1 1.1.4
1.2.2 3.1.1 1.1.2
T2 Nu se citete
T3 4.1.2
2.1.2 1.1.2
T4 Nu se citete
T5 Nu se citete

Tabel 6.3-4. Tranzaciile adugate

Fig. 6.3-4. Arborele AFOPT completat al nivelului l

Pasul 4. Reordonarea tabelei antet a nivelului k

Tabela antet a nivelului k a fost completat la pasul 2 i conine identificatorii articolelor
corespunztoare nivelului conceptual k. Pentru fiecare articole nou introdus n tabela antet
trebuie calculat suportul. Pentru aceasta folosim un algoritm recursiv aplicat pe arborele
AFOPT al nivelului l. Astfel, pornind de la rdcin n jos, vom avea:

- Suportul pentru categoria X (de exemplu) va fi suportul primului articol gsit
care face parte din categoria X. n cazul nostru concret, suportul pentru
categoria 2.1 va fi suportul primului articol gsit care face parte din categoria
2.1, adic 2.1.1
- Dac ajungem la o ramificaie (i nu am gsit articolul cutat) vom aplica aceti
pai pe fiecare ramur adunnd suporturile obinute. n exemplul nostru, exist
159
o ramificaie chiar sub rdcin. Astfel, pentru categoria 2.1, suportul se va
obine adunnd suportul obinut pe fiecare ramur:
Pe prima ramur, ntlnim 2.1.1 cu suportul 1 suportul parial pentru
2.1 va fi 1
Pe ramura a doua, ntlnim 2.1.2 cu suportul 1 suportul parial pentru
2.1 va fi 1
Pe ramura a treia, ntlnim 2.1.2 cu suportul 1 suportul parial pentru
2.1 va fi 1
Adunnd suporturile pariale obinem suportul total 1+1+1 = 3

Reordonm tabela antet a nivelului k i obinem (tabelul 6.3-5):






Tabel 6.3-5. Ordonarea tabelei antet a nivelului k

Pasul 5. Crearea arborelui AFOPT pentru nivelul k

Pornind de la fiecare nod terminal al arborelui nivelului l, vom urma tiparul lor condiional
i vom extrage toate articolele de pe nivelul k care apar i suportul corespunztor al
acestora. Dac articolele apar de mai multe ori, le vom considera o singur dat dar vom
aduna suporturile lor. Vom crea astfel un itemset care este adugat noului arbore al
nivelului k.
n exemplul nostru concret, extragem toate ramurile posibile din arbore:
2.1, 1.1, 1.2, 3.1
4.1, 2.1, 1.2, 3.1, 1.1
4.1, 2.1, 1.1
1.2, 4.1, 3.1, 1.1
1.2, 3.1, 1.1

Nivelul k Suport
2.1 3
4.1 3
3.1 4
1.2 4
1.1 5
160
Reordonm antetul i n final, se obine arborele AFOPT al nivelului k (fig. 6.3-5).
Aplicnd asupra acestuia algoritmul FP-Growth putem obine articolset-urile frecvente de
pe primul nivel conceptual.

Fig. 6.3-5. Arborele AFOPT al nivelului k

Exist cazuri, destul de rare n practic, n care nici un articol din arborele AFOPT
al nivelului l nu este ndeprtat. n acest caz, paii 1-3 nu sunt necesari, deci baza de date
nu va fi accesat deloc. Astfel, dac avem un arbore AFOPT pentru cel mai jos nivel
conceptual din care nu sunt ndeprtate articole, atunci vom putea obine informaii
de pe orice nivel conceptual fr a fi necesar o accesare a bazei de date. Acest
caz este util atunci cnd avem nevoie de informaii de pe mai multe nivele
conceptual.

6.3.2. Studiu comparativ de performan
6.3.2.1. Avantaje

Prin traversarea nodurilor structurii AFOPT n adncime, de sus n jos, fiecare nod
va fi vizitat exact o dat.
Numrul total de noduri vizitate n cazul algoritmului FP-Growth este egal cu
lungimea total a ramurilor arborelui FP-Tree.
Numrul total de noduri vizitate n cazul algoritmului ML-AFOPT este egal
cu dimensiunea structurii AFOPT, care este mai mic dect lungimea total a
ramurilor sale n
fp
. Aadar, algoritmul ML-AFOPT necesit costuri mai mici de
traversare dect algoritmul FP-Growth.
161
n cazul structurii FP-Tree articolele sunt sortate n ordine descresctoare, aa cum
am artat, ceea ce favorizeaz distribuirea prefixat. Astfel, structura FP-Tree este mai
compact dect structura AFOPT. Aplicarea algoritmului ML-AFOPT asupra structurii
AFOPT este aproximativ acelai lucru ca i transformarea arborelui FP-Tree, deoarece sunt
extrase aceleai tipare frecvente (maximale), singura diferen fiind ordinea (invers). Pe
de alt parte, aa cum am artat mai nainte, algoritmul ML-AFOPT necesit costuri de
traversare mai mici dect algoritmul FP-Growth.
Dac este disponibil informaia de pe cel mai jos nivel de abstractizare
(salvat pe disc sau n memorie), folosind algoritmul ML-AFOPT nu va mai fi
necesar nici o parcurgere a bazei de date (vezi fig. 6.3-7.).

Timp
(sec)
Suport (%)
Nr tranz
(n mii)
5 10 15 20 25 30 35 40 60 80 90
5.000 0.8 0.68 0.45 0.20 0.18 0.14 0.13 0.11 0.1 0.06 0.04

Tabel 6.3-6. Rezultatele obinute de algoritmul ML-AFOPT


Fig. 6.3-6. Timpii de execuie ai algoritmului ML-AFOPT
162
Studierea comparativ a acestor algoritmi a fcut subiectul lucrrii [GGP+05a]
publicate la Conferina SYNASC 2005, Timioara. Testrile s-au efectuat pe un calculator
Athlon XP la 1.6 GHz, cu memorie de 256 MBRAM, sub sistemul Microsoft Windows
XP Professional, folosind Microsoft SQL 2000 Server i interfaa standard ODBC.
Am folosit o baz de date real de 50 000 de intrri n 6 000 de tranzacii.
Implementarea algoritmilor s-a realizat n limbajul Java i au fost compilate folosind
platforma Eclipse.

6.3.2.2. Dezavantaje

Este posibil ca, n unele cazuri particulare, toate bazele de date condiionale ale
extensiilor frecvente ale seturilor de articole frecvente s poat fi reprezentate printr-o
singur ramur n arborele FP-Tree, n timp ce n structura AFOPT s fie necesare mai
multe ramuri.
n aceste cazuri, nici unul din cei doi algoritmi nu necesit construirea unei noi
baze de date condiionale, dar n acest caz, algoritmul AFOPT are nevoie de costuri mai
mari de traversare. Aceste costuri suplimentare de traversare sunt cauzate de pasul de
reunire spre dreapta.
n orice caz, posibilitatea s existe astfel de cazuri este mult mai mic dect
posibilitatea ca baza de date condiional s fie reprezentat printr-o singur ramur.
Numrul de subarbori care constituie baza de date condiional, n cazul cel mai
defavorabil, depinde exponenial de numrul de articole precedente celui considerat.
Numrul de operaii de reunire necesare este egal, n cazul cel mai defavorabil, cu numrul
de articole precedente celui considerat.









163
6.4. Algoritmul ML-ADA-AFOPT

Algoritmul pe care l-am propus n acest paragraf ML-ADA-AFOPT, este inspirat
din algoritmul ADA-FP [Mao01], care s-a dovedit a fi mai rapid dect algoritmii FP-
Growth [HPY00] i AFOPT [LLX+03], acesta din urm dovedindu-se a fi mai rapid dect
algoritmii FP-Growth i APRIORI [AS94]. Algoritmul propus a fost publicat la Conferina
SYNASC 2005, Timioara, [GGP+05b].
Am artat n capitolele anterioare c toi algoritmii bazai pe extragerea tiparelor
frecvente sunt superiori celor care au la baz ideea algoritmului APRIORI, n special n
cazul bazelor de date mai dense.
Am vzut c una dintre particularitile algoritmului AFOPT o reprezint structura
AFOPT (Ascending Frequency Ordered Prefix-Tree) care este creat, i care este o
structur arborescent ce reprezint baza de date condiional, traversat de algoritm de sus
n jos. Combinarea celor dou strategii de traversare a arborelui de sus n jos i cea de
sortare n ordine cresctoare a frecvenelor de apariie a articolelor are ca efect minimizarea
att a numrului total de baze condiionale ct i a costurilor de traversare a bazelor de date
individuale.
Structura AFOPT este o reprezentare compact a bazei de date condiionale. Ea
conine informaii complete pentru a putea extrage seturile frecvente de articole din baza
de date original. Dimensiunea structurii AFOPT este limitat de numrul total de articole
frecvente care apar n baza de date, fiind de obicei mult mai mic dect acesta.
O dat structura AFOPT construit, procesul de extragere va continua asupra
acesteia. Ca i n cazul algoritmului FP-Growth, care folosete structura arborescent FP-
Tree, nu este necesar parcurgerea din nou a bazei de date originale. Cu toate acestea,
exist destul de multe diferene ntre procesul de extragere aplicat pe o structur FP-Tree i
cel aplicat pe o structur AFOPT.

6.4.1. Prezentarea algoritmului

Algoritmul propus n continuare, ML-ADA-AFOPT, poate fi utilizat pentru
extragerea tiparelor frecvente multi-nivel. Acesta s-a obinut prin adaptarea algoritmului
AFOPT [LLX+03] la baze de date multi-nivel, pstrndu-se toate trsturile de baz ale
algoritmului original AFOPT.
164
n practic exist cazuri n care trebuie s se in cont, de multe ori, de informaia
dimensiune. Astfel, apare problema de adaptare a algoritmilor existeni de extragere a
tiparelor frecvente (AFOPT, FP-Growth) astfel nct acetia s in cont i de informaia
despre dimensiune la fel ca i de informaia despre articole (itemi) aa cum o face
algoritmul ADA-FP [Mao01].
Pentru a evita problemele cauzate de utilizarea unui prag suport uniform, cum ar fi
generarea unor tipare lipsite de importan la nivele de abstractizare superioare, sau
pierderea unor poteniale tipare interesante la nivele de abstractizare joase, algoritmul
ADA-FP folosete un prag suport flexibil.
La fiecare nivel de abstractizare, vom clasifica articolele individuale n dou
categorii: articole normale i articole speciale. Astfel, la fiecare nivel vor fi necesare dou
tipuri de prag suport, att pentru articolele normale ct i pentru cele speciale. Cele dou
tipuri de prag suport sunt pragul de trecere (item passage threshold) i pragul de afiare
(item printing threshold). De obicei, cel de-al doilea este mai mare dect primul.
Un articol este tratat ca un 1-itemset frecvent dac numrul su de apariii depete
pragul de afiare. Pe de alt parte, ct timp suportul su depete pragul de trecere, item-ul
va putea avea ansa s rmn n baza de date pentru a genera un set frecvent de 2 itemi (2-
itemsets). Aceasta se bazeaz pe observaia c tiparele de dimensiune mare au de obicei
asociate praguri suport mai mici dect sub-tiparele lor.

Exemplu: Pentru a ilustra cele afirmate mai sus, considerm 1 000 de tranzacii n care
ciocolata apare de 50 de ori, laptele apare de 500 de ori, diamantul apare 1 dat. Articolele
au fost mprite n dou categorii: normale i speciale. Cele speciale pot fi de asemenea de
dou tipuri: rare i frecvente. n acest caz, att laptele ct i diamantul sunt articole
speciale. Laptele este un articol special frecvent, iar diamantul este un articol special rar.
Ambele necesit ns un prag suport de trecere ct i un prag suport de afiare.
Folosirea unui prag suport uniform poate duce la pierderea unor informaii importante.
Astfel, este important orice set se articole care conine diamant, chiar dac s-a vndut unul
singur (avnd n vedere preul acestuia). Pe de alt parte, sunt mai puin importante seturile
de articole care conin lapte din care s-au vndut cteva sute de litri, acestea ar fi
importante dac s-ar vinde n cantiti mult mai mari (mii de litri).
Vom avea astfel trei tipuri de prag suport: prag suport minim pentru articolele speciale
rare (diamant), prag suport minim pentru articolele speciale frecvente (lapte, pine) i
prag suport minim pentru articolele normale (ciocolata).
165

Algoritmul ADA-FP ajut utilizatorii, prin utilizarea acestor tipuri variate de
praguri suport n tranzaciile bazei de date, mbuntind consistent generarea de tipare
frecvente. Acest avantaj va fi exploatat n algoritmul ML-ADA-AFOPT.
Fiind bazat pe algoritmul AFOPT, algoritmul propus n acest paragraf, ML-
ADA-AFOPT, parcurge baza de date original prima dat pentru a gsi articolele
frecvente sau nivelele de abstractizare i pentru a le sorta n ordine cresctoare a
apariiei lor. Apoi, baza de date original este parcurs a doua oar pentru a
construi structura arborescent AFOPT care reprezint baza de date condiional
a articolelor frecvente.
Baza de date condiional a unui articol i include toate tranzaciile care conin acest
articol i, articolele care nu sunt frecvente i cele care se gsesc naintea acestora fiind
ndeprtate din fiecare tranzacie.
Pentru a stoca ramurile simple ale arborelui AFOPT sunt utilizate structuri de date
tablou (array) deoarece acestea economisesc spaiu de memorie i micoreaz costurile de
construcie.
Fiecare nod din arborele AFOPT conine trei tipuri de informaii:
Identificatorul articolului (ID)
Numrul de articolset-uri corespunztoare cii de la rdcin la acel nod
Pointeri spre fii nodului respectiv

Dup primii doi pai prezentai mai sus se obine un contor (care va conine
numrul de apariii) pentru fiecare articol n parte iar informaiile complete despre
tranzaciile bazei de date sunt comprimate n structura arborescent AFOPT.
n continuare, procesul de generare a tiparelor frecvente este aplicat prin
vizitarea recursiv a structurii AFOPT. Aceast vizitare nu implic costuri
suplimentare asupra bazei de date.
Am prezentat mai jos cele dou funcii care realizeaz verificarea ndeplinirii de
ctre fiecare set de articole a condiiei de suport minim (fig. 6.4-1.) i a pragului suport de
afiare (fig. 6.4-2.).
Folosirea structurii AFOPT, care este un arbore prefixat, presupune sortarea n
ordine cresctoare a frecvenei de apariie a articolelor. Acest arbore este traversat n
adncime de sus n jos. Fiecare nod este vizitat o singur dat. n cazul algoritmului FP-
Growth, numrul total de noduri vizitate este egal cu lungimea total a ramurilor arborelui.
166
n cazul algoritmului AFOPT, numrul total de noduri vizitate este egal cu dimensiunea
structurii AFOPT, care este mai mic dect lungimea total a celor n
FP
ramuri. Aadar,
algoritmul AFOPT are nevoie de costuri mai mici de traversare dect algoritmul FP-
Growth.







Fig. 6.4-1. Funcia Meets_Min_Support






Fig. 6.4-2. Funcia Meets_Printing_Min_Support

n cazul algoritmului AFOPT, costurile suplimentare de traversare sunt cauzate de
pasul de reunificare spre dreapta a subarborilor. Dac nu am avea acest pas, am obine o
baz de date condiional format din mai muli subarbori. Numrul de subarbori care
constituie baza de date condiional crete exponenial, n cazul cel mai defavorabil, cu
numrul articolelor care se gsesc naintea celui considerat. n acelai timp, numrul de
operaii de unificare necesar, este egal, n cazul cel mai defavorabil, cu numrul de articole
care se gsesc naintea celui considerat. Aadar, pentru a micora costurile de traversare
este indicat s efectum ct mai multe operaii de unificare.






boolean meets_min_support ( pattern b)
{
return (pattern b is special item and support>special_min_support)
or
(pattern b support > support[pattern b length])
}

boolean meets_printing_min_support (pattern b)
{
return (pattern b is special item and
support>special_print_min_support) or
(pattern b support>print_support[pattern b length])
}
167
6.4.2. Studiu comparativ de performan

Evoluia timpilor de execuie ai algoritmului ML-ADA-AFOPT n funcie de
factorul suport este reprezentat n graficul din figura 6.4-3.

Fig. 6.4-3. Algoritmul ML-ADA-AFOPT

Experimentele au fost realizate pe un calculator ATHLON XP la 1,6 GHz, cu
memorie de 256 MB, sub sistemul Microsoft Windows XP Profesional, folosind o baz de
date real de 50 000 de intrri n 6 000 de tranzacii. Implementarea algoritmilor s-a
realizat n limbajul Java i au fost compilai folosind platforma Eclipse.
n primul test comparativ dintre algoritmii ML-AFOPT i ML-ADA-AFOPT, a crui
rezultate sunt prezentate n graficul din figura 6.4-4., unele articole au fost considerate
speciale rare. S-a considerat c nu exist articole speciale frecvente. Astfel, algoritmul ML-
ADA-AFOPT a trebuit s prelucreze mai multe informaii dect n mod normal innd
seama i de pragurile de suport de trecere i de afiare corespunztoare acestor articole
speciale. n mod normal, un articol rar (de exemplu diamant) ar fi fost eliminat pentru c
nu ar fi avut un suport suficient de mare, dar n acest caz el va fi inclus n calcule chiar
dac are un suport mic.


168
Timp
(sec)
Suport (%)
Nr tranz
(n mii)
5 10 15 20 25 30 35 40 60 80 90
5.000 1.02 0.93 0.7 0.36 0.32 0.29 0.27 0.24 0.23 0.19 0.11

Tabel 6.4-1. Rezultatele obinute de algoritmul ML-ADA-AFOPT (articole speciale
rare)

Fig. 6.4-4. Studiu comparativ - algoritmii ML-AFOPT vs. ML-ADA-AFOPT
(articole speciale rare)

n cel de-al doilea test, ale crui rezultate sunt reprezentate n graficul din figura
6.4-5., s-au aplicat aceleai condiii att pentru algoritmul AFOPT ct i pentru algoritmul
ML-ADA-AFOPT, considerndu-se c exist articole speciale comune frecvente care au
praguri suport de trecere i de afiare (mai mari dect pragul suportul obinuit).
Este nevoie de un suport mai mare dect n mod normal pentru ca aceste articole s
fie luate n considerare. Astfel, n final vor fi mai puine elemente luate n considerare,
astfel nct algoritmul ML-ADA-AFOPT va fi executat mai rapid dect ML-AFOPT.




169
Timp
(sec)
Suport (%)
Nr tranz
(n mii)
5 10 15 20 25 30 35 40 60 80 90
5.000 0.69 0.61 0.2 0.11 0.1 0.098 0.097 0.095 0.087 0.045 0.025

Tabel 6.4-2. Rezultatele obinute de algoritmul ML-ADA-AFOPT ( articole speciale
comune)


Fig. 6.4-5. Studiu comparativ - algoritmii ML-AFOPT vs. ML-ADA-AFOPT
(articole speciale comune)

n urmtorul test, prezentat n graficul din figura 6.4-6., au fost comparai algoritmii
FP-Growth standard, ADA-FP i ML-ADA-AFOPT. Aa cum am artat mai devreme,
algoritmul AFOPT clasic este mai rapid dect algoritmul FP-Growth. Aadar, ca o
consecin, algoritmul ML-ADA-AFOPT (care are la baz algoritmii ADAPTIVE i
AFOPT) este mai rapid dect ADA-FP (care are la baz algoritmii ADAPTIVE i FP-
Growth). Acest lucru este adevrat chiar i n cazul cel mai defavorabil n care algoritmul
AFOPT are de parcurs mai multe articole iar algoritmul FP-Growth folosete pragul
standard al suportului.

170

Fig. 6.4-6. Studiu comparativ - algoritmii ML-ADA-AFOPT vs. MLFP-Growth
i ML-ADA-FP
n final, am comparat toi algoritmii propui n aceleai condiii, pentru un factor
suport cuprins n intervalul 0.1% 0.9%, utiliznd n cadrul bazei da date reale 5 000 de
tranzacii, pentru a evidenia evoluia timpilor de execuie ai acestora.

Timp
(sec)
Tranzactii
5 000
Minsup
(%)
ML_T2L1 DFMLA1 DFMLA2 MLFP-
Growth1
MLFP-
Growth2
ML-
AFOPT
ML-
ADA-
AFOPT
10 587 552 520 181 126 96 103
30 523 493 434 136 94 85 92
60 394 375 268 97 76 59 60
90 308 286 112 88 64 52 58

Tabel 6.4-3. Rezultatele obinute pentru 5 000 de tranzacii
171

Fig. 6.4-7. Studiu comparativ pentru 5 000 de tranzacii

n cazul n care baza de date are 10 000 de tranzacii timpii de execuie obinui
sunt prezentai n continuare.

Timp
(sec)
Tranzactii
10 000
Minsup
(%)
ML_T2L1 DFMLA1 DFMLA2 MLFP-
Growth1
MLFP-
Growth2
ML-
AFOPT
ML-
ADA-
AFOPT
10 1357 1311 1269 465 402 231 250
30 1198 1058 945 344 285 170 176
60 852 688 592 187 146 93 121
90 324 248 176 81 64 59 66

Tabel 6.4-4. Rezultatele obinute pentru 10 000 de tranzacii
172

Fig. 6.4-8. Studiu comparative pentru 10 000 de tranzacii

Se poate observa clar din cele dou teste, pentru 5 000 i 10 000 de tanzacii, c
algoritmul ML-AFOPT a obinut cei mai buni timpi de execuie n ambele cazuri, urmat
ndeaproape de algoritmul ML-ADA-AFOPT. Urmtorii n clasamentul timpilor de
execuie se situeaz cele dou variante ale algoritmului MLFP-Growth I i II. Cei mai leni
algoritmi s-au dovedit algoritmii care au la baz algoritmul APRIORI, i anume DFMLA1
i DFMLA2.
6.5. Concluzii

n general, algoritmii de extragere a tiparelor frecvente sunt orientai pe un singur
nivel. n acest caz, pot fi descoperite doar asocierile puternice dintre articole. Din acest
motiv au fost extini aceti algoritmi pentru a realiza extragerea tiparelor frecvente multi-
nivel.
Algoritmul ML-AFOPT traverseaz aceste structuri arborescente n adncime de
sus n jos, iar articolele din arborii prefixai sunt sortai n ordine cresctoare a frecvenei
173
lor de apariie. Combinarea acestor dou metode este mult mai eficient dect combinnd
traversarea arborelui de jos n sus i sortarea articolelor n ordine descresctoare, folosit
de algoritmul FP-Growth.
Pe de alt parte, oricare din aceste dou combinaii este mult mai eficient dect
celelalte combinaii posibile: traversarea de sus n jos i sortarea descresctoare i
traversarea de jos n sus i sortarea n ordine cresctoare.










































174
7. CONCLUZII I CONTRIBUII PERSONALE


n aceast lucrare mi-am propus s prezint un domeniu relativ nou, i anume
extragerea de date (Data Mining), care reprezint una dintre etapele unui domeniu mai
larg, descoperirea de cunotine din bazele de date (KDD), punnd accent mai mult pe una
din subramurile acesteia i anume extragerea regulilor de asociere, aducnd i cteva
contribuii personale la dezvoltarea acesteia.
Descoperirea regulilor de asociere din bazele de date de dimensiuni mari este o
problem complex deoarece spaiul de cutare crete exponenial cu numrul de atribute
din baza de date i cu obiectele bazei de date. Extragerea regulilor de asociere a fost iniial
generat de analizarea coului de cumprturi. Mai trziu ea a fost aplicat n multe alte
domenii cum ar fi: afaceri, inginerie, medicin sau finane. Mai mult dect att, unul din
scopurile principale ale extragerii de reguli de asociere a fost utilizat pentru a atinge scopul
altor probleme de extragere de date cum ar fi modelarea datelor, prezicerea viitoarelor
ieiri sau suport de decizii. Descoperirea regulilor de asociere are ca scop descoperirea
unui set de atribute comune care aparin unui numr mare de obiecte dintr-o baz de date n
general.
Cea mai comun abordare a problemei descoperirii regulilor de asociere este de a
descompune aceast problem n dou etape:
3. Gsirea tuturor seturilor de articole (itemsets) care au suportul mai mare
dect suportul minim.
4. Folosirea seturilor de articole pentru generarea regulilor dorite.

De obicei, aa cum am mai artat, bazele de date implicate n astfel de aplicaii sunt
de dimensiuni foarte mari. Din acest motiv, este foarte important utilizarea unor algoritmi
ct mai rapizi pentru aceste aplicaii. Cele mai recente abordri sunt de natur iterativ
necesitnd scanri multiple ale bazei de date, ceea ce este foarte costisitor. Etapa cea mai
costisitoare din punct de vedere computaional este descoperirea tiparelor sau seturilor de
articole (itemset-uri) frecvente datorit cantitii enorm de mari de date ce trebuie
prelucrate.
Cele mai multe studii efectuate asupra extragerii de date s-au concentrat mai mult
pe extragerea regulilor de asociere de pe un singur nivel conceptual, fie la nivelul primitiv,
fie la cel mai nalt nivel. De multe ori ns este necesar s descoperim cunotine de pe mai
175
multe nivele conceptuale. Pe parcursul studierii procesului de extragere de cunotine
(KD), cercettorii au ncercat prin diverse metode s ndeprteze dintre regulile generate pe
cele neinteresante, propunnd cteva msuri de cuantificare a utilitii sau gradului de
interes pe care regula respectiv o prezint.
Acest fapt, a condus cercetrile spre cutarea unor metode de extragere a regulilor
de asociere pe mai multe nivele conceptuale, ceea ce duce la descoperirea nu doar a unor
reguli de asociere la fiecare nivel, dar i extragerea unor reguli de asociere utile i
informative, datorit flexibilitii concentrrii ateniei asupra seturilor diferite de date i a
posibilitii aplicrii unor praguri diferite ale suportului sau confidenei pentru nivele
diferite.
Metodele de extragere de cunotine de pe mai multe nivele conceptuale au fost, n
general, dezvoltate prin extinderea tehnicilor existente pentru un singur nivel.
Deoarece acesta este considerat domeniul de vrf n descoperirea regulilor de
asociere, contribuiile aduse n aceast lucrare sunt metode originale de
mbuntire a performanelor unor algoritmi de extragere a regulilor de asociere
din bazele de date multi-nivel.

7.1. Contribuii personale

Contribuiile personale aduse de aceast lucrare la domeniul abordat sunt
urmtoarele:

Prezentarea unui studiu de performan a algoritmilor clasici din
domeniu: APRIORI [AS94], PARTITIONING [SON95] i SAMPLING
[Dun03].

Abordarea unor algoritmi de extragere a regulilor de asociere
considerai noi i performani din punctul de vedere al bazelor de date
multi-nivel.

Prezentarea unui studiu de performan i compararea algoritmilor de
descoperire a regulilor de asociere multi-nivel ML-T2L1 [HF95],
Adaptive APRIORI [WHH00] i ADA-FP [Mao01].

176
Propunerea unei noi metode de parcurgere n adncime a arborelui
tiparelor frecvente pe care am denumit-o algoritmul DFMLA1, spre
deosebire de parcurgerea n lime a algoritmului ML_T2L1 propus de
Han [HF95], care reduce substanial numrul de verificri efectuate,
mrind astfel eficiena sa, algoritm prezentat la Conferina microCAD
2005, Miskolcs, [PGG+05a].

Optimizarea algoritmului DFMLA1 prin introducerea unei filtrri a
tranzaciilor ce trebuie testate ceea ce poate reduce foarte mult, n
cazurile favorabile, numrul acestora. Aceast variant optimizat a
algoritmului am numit-o DFMLA2, i a fost de asemenea prezentat la
Conferina microCAD 2005, Miskolcs, [PGG+05a].

Studierea performanelor i compararea algoritmilor propui n
aceast lucrare DFMLA1 i DFMLA2, att cu algoritmul original
ML_T2L1 propus de Han J. [HF95] ct i ntre ei, studiu prezentat la
Conferina CSCS15, Bucureti, 2005 [PGG+05b].

Propunerea unei metode noi de aplicare a unuia dintre cei mai
promitori algoritmi de extragere a tiparelor frecvente i anume
FP-Growth [HPY00] la prelucrarea bazelor de date multi-nivel.
Astfel, n cazul n care sunt necesare informaii de pe un anumit nivel
conceptual al bazei de date, dup construirea arborelui FP-Tree, am
propus dou metode de a obine aceste informaii:

o Aplicnd direct algoritmul FP-Growth direct pe nivelul de pe care
dorim informaii din baza de date multi-nivel
o Stocnd informaiile de pe cel mai jos nivel conceptual n
memorie sau pe disc, putem folosi aceste informaii pentru a
construi arborele FP-Tree al nivelului care ne intereseaz fr a
face o nou citire a bazei de date. Am numit acest algoritm
MLFP-Growth, fiind prezentat la Conferina CSCS15, Bucureti,
2005 [GGP+05c] .

177
Studierea performanelor i compararea algoritmului propus n
aceast lucrare MLFP-Growth, cu algoritmul original FP-Growth propus
de Han n [HPY00], studiu prezentat la Conferina CSCS15, Bucureti,
2005 [GGP+05c].

Adaptarea unui alt algoritm considerat i mai performant, i anume
AFOPT [LLX+03], la extragerea tiparelor frecvente din bazele de
date multi-nivel, variant pe care am numit-o ML-AFOPT i care
permite obinerea informailor de pe un anumit nivel conceptual al bazei
de date folosind informaiile stocate pe un nivel inferior al acesteia.
Acest algoritm a fost publicat la Conferina SYNASC 2005, Timioara,
[GGP+05a].

Studierea performanelor algoritmului propus n aceast lucrare ML-
AFOPT, studiu ce a fost prezentat la Conferina SYNASC 2005,
Timioara, [GGP+05a], i compararea utilizrii structurii arborescente
FP-Tree cu structura arborescent AFOPT care s-a dovedit a fi mai
eficient, studiu comparativ n curs de publicare la Conferina ICCC
2006, Oradea [PGGB06].

Propunerea unui algoritm ML-ADA-AFOPT pentru extragerea
tiparelor frecvente din bazele de date multi-nivel, folosind ca punct
de plecare algoritmii AFOPT [LLX+03] i Adaptive FP-Growth (ADA-FP)
[Mao01], care a fost prezentat la Conferina SYNASC 2005, Timioara,
[GGP+05b].

Studierea performanelor algoritmului propus n aceast lucrare ML-
ADA-AFOPT, i compararea acestuia cu algoritmii originali de la care s-
a plecat ct i cu algoritmul propus anterior ML-AFOPT, studiu care a
fost prezentat la Conferina SYNASC 2005, Timioara, [GGP+05b].

Studierea i compararea performanelor tuturor algoritmilor propui n
aceast lucrare
178
7.2. Concluzii finale


Extragerea de date (Data Mining - DM) denumit i descoperirea de cunotine din
bazele de date (Knowledge Discovery in Databases KDD) reprezint un proces nsemnat
de extragere a informaiilor implicite, previzibile i potenial folositoare din bazele de date
[PSF91].
La ora actual exist mai multe metode de Data Mining, aa cum au fost prezentate
n capitolul doi al acestei lucrri. Alegerea metodei potrivite unei aplicaii se face innd
cont de date, de situaie i de obiectivele acesteia.
Dintre metodele Data Mining existente, cel mai des sunt utilizate metodele de
descoperire a regulilor de asociere. Aceste metode sunt utilizate frecvent n analiza
vnzrilor cu amnuntul, dar ele pot fi aplicate cu acelai succes i n serviciile de
marketing (analiza coului de cumprturi) pentru determinarea caracteristicilor comune
ale clienilor. Industria serviciilor financiare utilizeaz, de asemenea, frecvent extragerea
de reguli de asociere. Analitii folosesc aceste tehnici pentru a analiza cantiti masive de
date pentru a construi afaceri i modele de risc pentru dezvoltarea strategiilor de investiii.
Multe companii din sectorul financiar au testat aceste tehnici care au produs rezultate
pozitive n analiza conturilor clienilor i la identificarea serviciilor financiare pe care
acetia le solicit mpreun.
Datorit importanei i aplicabilitii pe care o au, aa cum am artat, n diverse
domenii, descoperirea regulilor de asociere din baze de date de dimensiuni mari a fost i
este n continuare una din tehnicile Data Mining cel mai mult studiate.
Descoperirea i extragerea regulilor de asociere este probabil cea mai semnificativ
contribuie a colectivelor de cercettori din domeniul descoperirii de cunotine din baze de
date i este cercetat n continuare i la ora actual.

n capitolul trei sunt prezentai principalii algoritmi iterativi de descoperire a
regulilor de asociere din bazele de date, i anume algoritmul APRIORI [AS94], algoritmul
SAMPLING [Dun03] i algoritmul PARTITIONING [SON95]. Studiind performanele
acestor algoritmi pe diferite baze de date cu un numr de tranzacii ncepnd de la 10 000
pn la 520 00 de tranzacii i pentru factori suport de la 5% pn la 40%, am realizat un
studiu comparativ al acestora.
179
Astfel, din experimentele pe care le-am fcut, a rezultat c algoritmul APRIORI are
performan slab cnd se execut pe baze de date mari care conin un numr mare de
articole pe tranzacie. Aceast performan sczut se datoreaz faptului c dimensiunea
unui articol-set frecvent este mare. De exemplu, pentru un articol-set frecvent de
dimensiune N > 4, algoritmul APRIORI necesit N parcurgeri ale bazei de date pentru a
descoperi acel articol, ceea ce este costisitor din punct de vedere al timpului consumat.
Pentru baze de date mari i pentru un factor suport mare (> 20%) algoritmul
APRIORI are o performan mai bun dect algoritmii PARTITIONING i SAMPLING, dar
pentru un factor suport mic (< 5%) performana algoritmului APRIORI scade dramatic.
Algoritmii SAMPLING i PARTITIONING reduc numrul de scanri ale bazei de
date la dou i au o performan mai bun dect APRIORI atunci cnd sunt aplicai pe baze
de date mari i pentru un factor suport mic (< 5%).
Algoritmul PARTITIONING reduce numrul de scanri ale bazei de date la dou i
mparte baza de date n partiii astfel ca fiecare partiie s poat fi ncrcat n memorie. n
timpul celei de-a doua scanri, numai acele itemset-uri care sunt frecvente n cel puin una
din partiii sunt folosite ca i candidate i sunt numrate pentru a determina dac ele sunt
frecvente n ntreaga baza de date, reducnd astfel setul de candidai, iar timpul de execuie
fiind mai mic dect a algoritmului APRIORI.
n concluzie, algoritmul APRIORI are o performan mai bun dect ceilali
doi pentru baze de date mari i cu un factor suport mare. n cazul n care sunt
aplicai pe baze de date mari cu un factor suport mic, algoritmii SAMPLING i
PARTITIONING sunt mai performani dect algoritmul APRIORI.
n cazul algoritmilor iterativi, de tip APRIORI, sunt obinute performane mai bune
prin reducerea seturilor de candidai. Cu toate acestea, n cazurile n care se obine un
numr mare de tipare frecvente, de lungime mare, sau sunt aplicate praguri de suport
minim foarte joase, aceti algoritmi prezint dou dezavantaje majore: primul este
manipularea unui numr mare de seturi de candidai iar al doilea este generat de a doua
parcurgere a bazei de date i verificarea unui numr mare de candidai prin potrivire de
tipare, mai ales n cazul extragerii tiparelor lungi.

Metodele de extragere a tiparelor frecvente, prezentate n capitolul patru al lucrrii,
bazate pe o structur de arbore denumit arbore de tipare frecvente, FP-Tree, reduc doar la
dou numrul de parcurgeri a bazelor de date, micornd astfel semnificativ timpul de
descoperire i extragere a acestora.
180
n ultimii ani au fost dezvoltai mai muli algoritmi destul de eficieni pentru
extragerea tiparelor frecvente. 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.
n ciuda tuturor eforturilor depuse de cercettori n ultimii ani, algoritmii care
genereaz i testeaz candidai au dou dezavantaje:
Toate necesit generarea unui numr forte mare de itemset-uri candidat,
multe dintre ele dovedindu-se a fi puin frecvente dup parcurgerea bazei de
date
Toate necesit parcurgerea bazei de date de mai multe ori, n cel mai
defavorabil caz, numrul de parcurgeri a bazei de date fiind egal cu
lungimea maxim a tiparelor frecvente.

Abordarea prin creterea tiparelor ncearc s evite aceste dou dezavantaje
construind o baz de date condiional pentru tiparele frecvente. Algoritmii propui pentru
aceasta difer n principal prin maniera prin care este reprezentat baza condiional. Han
[HPY00] folosete o structur de date compact FP-Tree pentru a reprezenta baza de date
condiional care este o combinaie a structurilor arbore prefixat (prefix-tree) i legtura
nodurilor (node-link). Pe de alt parte, Liu [LLX+03] utilizeaz o alt structur compact
de date AFOPT pentru reprezentarea bazei de date condiionale.
Aa cum am artat anterior, fiind dat o baz de date condiional, aceasta poate fi
reprezentat folosind una din cele dou structuri i cte o strategie de parcurgere aplicat
fiecreia din acestea, utilizate de algoritmii FP-Growth i AFOPT:
1. structura FP-Tree [HPY00], n care articolele sunt sortate n ordine
descresctoare a frecvenei lor de apariie, i strategia de parcurgere a arborelui de
jos n sus
2. structura AFOPT [LLX+03], n care articolele sunt sortate n ordine cresctoare a
frecvenei lor de apariie, i strategia de parcurgere a arborelui de sus n jos

Folosirea structurii AFOPT pentru a reprezenta bazele de date condiionale duce la
obinerea unor costuri de traversare minime iar utilizarea ordonrii cresctoare dup
frecven ne conduce la construirea unui numr minim de baze de date condiionale.
Costurile de traversare ale algoritmului FP-Tree sunt ntotdeauna mai mari dect n cazul
181
algoritmului AFOPT. Numrul total de noduri vizitate de algoritmul FP-Growth este egal
cu lungimea total a ramurilor arborelui prefixat. Numrul total de noduri vizitate de
algoritmul AFOPT este egal cu dimensiunea structurii AFOPT, care este mai mic dect
lungimea total a ramurilor arborelui prefixat. Aadar, algoritmul AFOPT are nevoie de un
numr mai mic de traversri dect algoritmul FP-Growth.
Numrul total de baze de date condiionale construite pe parcursul procesului de
extragere a tiparelor frecvente depinde ordinea n care sunt sortai item-ii i n care este
explorat spaiul de cutare. Ordonarea cresctoare dup frecven minimizeaz numrul
total de baze condiionale. n cazul structurii FP-Tree item-ii sunt sortai n ordine
descresctoare a frecvenei lor, motiv pentru care arborele trebuie traversat de jos n sus, de
la nodurile frunze spre rdcin.
n cazul n care baza de date condiional a unui itemset poate fi reprezentat printr-
o singur ramur, se pot enumera toate tiparele frecvente coninute direct n acesta i nu
este necesar construirea unei noi baze condiionale chiar dac itemset-ul respectiv are mai
mult de o extensie frecvent. Structura AFOPT, aadar, ne ajut s reducem numrul de
baze de date condiionale construite, deoarece bazele condiionale sunt de obicei
reprezentate printr-o singur ramur n structura AFOPT.

Pe parcursul studierii procesului de extragere de cunotine (KD), cercettorii au
ncercat prin diverse metode s ndeprteze dintre regulile generate pe cele neinteresante,
propunnd cteva msuri de cuantificare a utilitii sau gradului de interes pe care regula
respectiv o prezint [HF95].
Acest fapt, a condus cercetrile spre cutarea unor metode de extragere a regulilor
de asociere pe mai multe nivele conceptuale, ceea ce duce la descoperirea nu doar a unor
reguli de asociere la fiecare nivel, dar i extragerea unor reguli de asociere utile i
informative, datorit flexibilitii concentrrii ateniei asupra seturilor diferite de date i a
posibilitii aplicrii unor praguri diferite ale suportului sau confidenei pentru nivele
diferite.
Metodele de extragere de cunotine de pe mai multe nivele conceptuale sunt
analizate n capitolul cinci, ele fiind, n general, dezvoltate prin extinderea tehnicilor
existente pentru un singur nivel.
Pentru a extrage reguli de asociere multi-nivel, avem nevoie de:
Date reprezentate pe mai multe nivele de abstractizare
Metode eficiente pentru a extrage reguli multi-nivel
182

Pe baza conceptului de ierarhie i a ctorva algoritmi de extragere a regulilor de
asociere simplu-nivel, Han [HF95], [HF99], Strikant [SA95], Rantzau [Ran97] i
Rajkumar [RKS03], au propus o serie de algoritmi pentru extragerea regulilor de asociere
multi-nivel.

Astfel, n capitolul ase al lucrrii sunt prezentai principalii algoritmi de extragere
a regulilor de asociere multi-nivel existeni la ora actual, i anume algoritmul ADAPTIVE
APRIORI [SA95b], algoritmul ML-T2L1 [HF95] i algoritmul ADA-FP [Mao01].
La fel ca i n cazul celorlali algoritmi prezentai am realizat un studiu comparativ
al performanelor acestor algoritmi.
Astfel, putem spune c algoritmul ADA-FP este mult mai eficient dect algoritmul
ML_T2L1 deoarece are nevoie doar de dou parcurgeri a bazei de date, n timp ce numrul
de parcurgeri ale bazei de date n cazul algoritmului ML_T2L1 depinde de lungimea
tiparelor frecvente (dac lungimea maxim a tiparelor frecvente este n, algoritmul are
nevoie de n parcurgeri a bazei de date).
Algoritmul ADA-FP poate descoperi tipare frecvente de pe niveluri diferite,
deoarece articolele, indiferent de pe ce nivel abstract sunt, apar n arborele FP-Tree, n
timp ce ML_T2L1 adopt o metod progresiv n adncime, de sus n jos, pn ce nu mai
poate fi generat nici un tipar frecvent. n cazul algoritmului ML-T2L1, la fiecare nivel este
aplicat algoritmul APRIORI pentru a descoperi tipare frecvente. Tiparele generate de
ML_T2L1 sunt alctuite din articole de pe acelai nivel abstract.
Pentru a crete flexibilitatea, n procesul de extragere a tiparelor frecvente, s-au
introdus constrngeri diferite pentru suport. Astfel, algoritmul ADA-FP este mult mai
eficient dect ML_T2L1.
Deoarece algoritmul clasic APRIORI se bazeaz pe folosirea unui prag minim
pentru suport uniform. Aceasta duce fie la omiterea unor tipare interesante cu suport
sczut, fie la apariia unor ncurcturi la generarea setului de itemi. Aceasta a determinat
folosirea unor constrngeri pentru suport la generarea item-ilor.
Acesta este punctul de pornire att la algoritmul ADAPTIVE APRIORI ct i la
algoritmul ADA-FP. Deosebirea dintre cei doi algoritmi este faptul c ADAPTIVE
APRIORI are la baz metoda APRIORI n timp ce ADA-FP are la baz metoda FP-Growth
care s-a demonstrat c este mai rapid dect prima. O alt deosebire dintre cei doi
algoritmi este definirea i implementarea constrngerilor pentru suport.
183
n algoritmul ADAPTIVE APRIORI se nlocuiete suportul minim clasic cu o
funcie notat Pminsup, care definete un superset de itemset-uri frecvente definite prin
minsup generat prin metoda APRIORI. Algoritmul ADA-FP folosete pragul de trecere al
suportului pentru a ndeprta seturile de dimensiune 2 care nu sunt frecvente (2-itemsets)
la fiecare ncercare de generare a seturilor de dimensiune 3 a itemset-urilor frecvente (3-
itemsets). Astfel crete claritatea rezultatelor procesului de extragere a tiparelor frecvente.
Cele mai multe studii efectuate asupra extragerii de date s-au concentrat mai mult
pe extragerea regulilor de asociere de pe un singur nivel conceptual, fie la nivelul primitiv,
fie la cel mai nalt nivel, ceea ce mpiedic uneori gsirea cunotinelor dorite n bazele de
date. n primul rnd, datorit faptului c, de obicei, seturile de date cu o valoare important
a suportului nu se gsesc la nivele conceptuale foarte joase, deoarece tiparele de la nivelele
conceptuale joase tind s fie mprtiate i greu au un suport important. n al doilea rnd,
regularitile vor fi gsite mai degrab la nivele conceptuale nalte, aadar pot fi deja bine
cunoscute.

Pornind de la algoritmii propui de Han [HF95], [HF99], Strikant [SA95], Rantzau
[Ran97], [WHH00] i Rajkumar [RKS03] pentru extragerea regulilor de asociere multi-
nivel, am ncercat mbuntirea i optimizarea acestora propunnd n capitolul ase al
acestei lucrri metode noi sau versiuni mai performante.
Primul algoritm propus n aceast lucrare, denumit DFMLA, cu cele dou
variante ale sale DFMLA1 i DFMLA2, are la baz algoritmul APRIORI multi-nivel
(ML_T2L1) propus de Han i Fu n [HF95], mbuntind performanele acestuia,
prin reducerea numrului de tranzacii verificate inutil la generarea regulilor de
asociere ntre articole, nlturnd astfel risipa de memorie generat de algoritmul
APRIORI.
Aceti algoritmi (DFMLA1 i DFMLA2) nu caut s gseasc reguli ntre toate
subset-urile k-itemset ci doar ntre derivaiile unui subset din acele reguli care au fost gsite
anterior interesante (importante). Ei parcurg arborele ierarhiei conceptuale n adncime i
dac gsesc o regul la primul nivel conceptual ntre dou categorii caut apoi care sunt
subcategoriile la care se aplic regula. Dac regula nu trece testul de importan, atunci nu
vor exista reguli importante ntre subcategoriile de pe urmtorul nivel conceptual.
Pentru a sublinia acest avantaj, am comparat DFMLA1 cu algoritmul APRIORI
multi-nivel (ML_T2L1). Algoritmul lui Han folosete funcia de generare a candidailor din
algoritmul APRIORI la fiecare nivel conceptual. Cnd termin de examinat un nivel n
184
ntregime, trece la urmtorul nivel, parcurgnd aadar arborele ierarhiei conceptuale n
lime. Cu ct baza de date are mai multe nivele conceptuale, algoritmul poate deveni mai
rapid o dat cu eliminarea unor categorii.
Bazele de date simplu-nivel conin de cele mai multe ori informaii prea complexe
care sunt uneori mai puin interesante pentru extragerea regulilor de asociere. Aceste
informaii se gsesc de obicei pe ultimul nivel al bazelor de date multi-nivel, unde se
gsesc informaii mai concrete, mai specifice dect la nivelele superioare. Pentru a obine
acest gen de informaii este necesar putem extrage date la orice nivel conceptual dorim.
Folosind algoritmul APRIORI multi-nivel se parcurg progresiv nivelele de abstractizare ale
bazei de date de sus n jos (top-down) reducnd n acest mod setul de candidai i numrul
de citiri din baza de date.
O alt metod este folosirea algoritmului de generare a arborelui FP-Tree care are
nevoie doar de dou parcurgeri a bazei de date i nu genereaz seturi de candidai.
Aplicarea algoritmului FP-Growth direct la ultimul nivel, pentru a obine informaii de pe
acesta, este o metod mai rapid dect aplicarea algoritmului APRIORI multi-nivel.
Unul din principalii factori care micoreaz viteza de lucru a algoritmului de creare
a arborelui FP-Tree este numrul de accesri a bazei de date. Metoda II propus n
aceast lucrare (MLFP-Growth II) utilizeaz informaii anterioare pentru a evita
accesarea bazei de date lucrnd n special cu memoria calculatorului, ceea ce
este mult mai rapid. Baza de date este eventual accesat doar pentru a obine
informaiile care lipsesc (vezi pasul 2 i 3 al metodei).
Am studiat comparativ cele dou metode pe o baz de date cu 50 000 de intrri,
750 de articole codificate pe 10 nivele conceptuale, 5 000 de tranzacii, fiecare avnd cel
mult 10 articole. n ambele cazuri factorul suport a variat de la 0.1% pn la 0.9%. Cu ct
distana dintre nivelele conceptuale k i l este mai mare, cu att pot exista mai multe
informaii lips, ceea ce foreaz accesarea bazei de date pentru obinerea lor. n cazul n
care nu exist informaii lips ntre cele dou nivele conceptuale, singurul motiv de
accesare a bazei de date rmne pentru verificarea factorului suport (vezi pasul 2 al
algoritmului) iar uneori nici aceasta nu este necesar.
Performana MLFP-Growth II fa de MLFP-Growth I depinde de
asemenea de pragul suportului minim. Dac acesta este foarte sczut, vom avea
foarte puine informaii ndeprtate la cel mai jos nivel conceptual, ceea ce face
MLFP-Growth II mai rapid.
185
n continuare este propus un algoritm pentru extragerea tiparelor frecvente din baze
de date multi-nivel pornind de la algoritmul AFOPT prezentat de Liu G. n [LLX+03].
Deoarece am mai artat anterior avantajele oferite de utilizarea bazelor de date multi-nivel,
am ncercat s adaptez algoritmul propus de Liu G. asupra acestora.
Algoritm propus ML-AFOPT, poate fi utilizat pentru extragerea tiparelor frecvente
multi-nivel. Acesta s-a obinut prin adaptarea algoritmului AFOPT [LLX+03] la baze de
date multi-nivel, pstrndu-se toate trsturile de baz ale algoritmului original AFOPT.
Algoritmul AFOPT utilizeaz o abordare a creterii tiparului i folosete o structur
de arbore prefixat (prefix-tree) pentru a reprezenta baza de date condiional. El folosete o
strategie diferit de traversare a arborelui i o alt metod de ordonare a item-ilor.
Folosirea structurii AFOPT pentru a reprezenta bazele de date condiionale duce la
obinerea unor costuri de traversare minime iar utilizarea ordonrii cresctoare dup
frecven ne conduce la construirea unui numr minim de baze de date condiionale,
deoarece bazele condiionale sunt de obicei reprezentate printr-o singur ramur n
structura AFOPT.
n urma testelor de performan pe care le-am realizat, am observat c n cazul
algoritmilor de extragere a tiparelor frecvente nu este indicat s folosim metoda parcurgerii
de sus n jos a arborilor ca i n cazul algoritmilor bazai pe abordarea APRIORI (de
exemplu algoritmul ML_T2L1) deoarece acetia au nevoie de k+1 parcurgeri a bazei de
date pentru obinerea unor informaii de pe nivelul conceptual k, n timp ce folosind
aplicarea structurii AFOPT (sau FP-Tree) direct pe nivelul k, sunt necesare doar dou
parcurgeri a bazei de date pentru a obine aceste informaii.
Prin traversarea nodurilor structurii AFOPT n adncime, de sus n jos, fiecare nod
va fi vizitat exact o dat.
Numrul total de noduri vizitate n cazul algoritmului FP-Growth este egal
cu lungimea total a ramurilor arborelui FP-Tree. Numrul total de noduri vizitate
n cazul algoritmului ML-AFOPT este egal cu dimensiunea structurii AFOPT, care
este mai mic dect lungimea total a ramurilor sale n
fp
. Aadar, algoritmul ML-
AFOPT necesit costuri mai mici de traversare dect algoritmul FP-Growth.
Am vzut c una dintre particularitile algoritmului AFOPT o reprezint structura
AFOPT (Ascending Frequency Ordered Prefix-Tree) care este creat, i care este o
structur arborescent ce reprezint baza de date condiional i care este traversat de
algoritm de sus n jos. Prin combinarea celor dou strategii de traversare a arborelui de sus
n jos i cea de sortare n ordine cresctoare a frecvenelor de apariie a articolelor are ca
186
efect minimizarea att a numrului total de baze condiionale ct i a costurilor de
traversare a bazelor de date individuale.
Structura AFOPT este o reprezentare compact a bazei de date condiionale. Ea
conine informaii complete pentru a putea extrage seturile frecvente de articole din baza
de date original. Dimensiunea structurii AFOPT este limitat de numrul total de articole
frecvente care apar n baza de date, fiind de obicei mult mai mic dect acesta.
O dat structura AFOPT construit, procesul de extragere va continua asupra
acesteia. Ca i n cazul algoritmului FP-Growth, care folosete structura arborescent FP-
Tree, nu este necesar parcurgerea din nou a bazei de date originale. Cu toate acestea,
exist destul de multe diferene ntre procesul de extragere aplicat pe o structur FP-Tree i
cel aplicat pe o structur AFOPT.
Pentru a evita problemele cauzate de utilizarea unui prag suport uniform, cum ar fi
generarea unor tipare lipsite de importan la nivele de abstractizare superioare, sau
pierderea unor poteniale tipare interesante la nivele de abstractizare joase, am propus n
continuare un algoritm care folosete un prag suport flexibil ML-ADA-AFOPT.
Fiind bazat tot pe algoritmul AFOPT, i acest algoritm parcurge baza de date
original prima dat pentru a articolele frecvente sau nivelele de abstractizare i pentru a le
sorta n ordine cresctoare a apariiei lor. Apoi, baza de date original este parcurs a doua
oar pentru a construi structura arborescent AFOPT care reprezint baza de date
condiional a articolelor frecvente.
Ca o consecin, algoritmul ML-ADA-AFOPT (care are la baz algoritmii
ADAPTIVE i AFOPT) este mai rapid dect ADA-FP (care are la baz algoritmii
ADAPTIVE i FP-Growth). Acest lucru este adevrat chiar i n cazul cel mai
defavorabil n care algoritmul AFOPT are de parcurs mai multe articole iar
algoritmul FP-Growth folosete pragul standard al suportului.
n concluzie, se poate spune c descoperirea de cunotine i n cadrul acesteia
descoperirea regulilor de asociere, iar mai nou descoperirea regulilor de asociere multi-
nivel, rmne n continuare un domeniu de cercetare care prezint un real interes pentru
cercettorii din ziua de azi. n contextul n care cantitatea de date acumulate devine din ce
n ce mai mare, iar nevoia de informaie i cunotine necesare unui suport decizional de
bun calitate i util n timp crete, cercetrile din domeniul abordat pot s duc la
mbuntiri semnificative n acest sens.


187
BIBLIOGRAFIE

[AAP00a] Agrawal R., Aggarwal C., and Prasad V., A tree projection algorithm for
generation of frequent itemsets, Parallel and distributed Computing,
2000.
[AAP00b] Agrawal R., Aggarwal C., and Prasad V., Depth first generation of long
patterns, In Proc. of ACM SIGKDD Conf., pages 108.118, 2000.
[AAP01] Agrawal R., Aggarwal C., and Prasad V., A tree projection algorithm for
finding frequent itemsets, Journal on Parallel and Distributed
Computing, 61(3):350.371, 2001.
[Agr94] Agrawal R., Tutorial database mining, Proceeding of ACM
International Conference on Management of Data, pg.75-76, 1994
[Agr95] Agrawal R., Data Mining: The quest perspective. Tutorial presented at
EDBT Summer School Advances in Database Technology, September
1995
[AIS93] Agrawal R., Imielinski T. And Swami A.N., Mining association rules
between sets of items in large databases, Proceeding of ACM
International Conference on Management of Data, pg.207-216, 1993
[AK93] Anand T. and Kahn G., Opportunity Explorer: Navigating Large
Databases Using Knowledge Discovery Templates, AAAI-93 Workshop
on Knowledge Discovery in Databases, Washington DC, USA, ACM
Press, Vol.22, pg.207-216, 1993
[AS94] Agrawal R. and Srikant R., Fast Algorithms for Mining Association
Rules, Proc. of 20th International Conference on VLDB pg.487-499,
1994
[AS95] Agrawal R. and Srikant R., Mining Sequential Patterns, Proceedings of.
1995 Int'l Conf. Data Eng., pg. 3-14, Taipei, Taiwan, Mar. 1995.
188
[Bay98] Bayardo, R.J. Jr., Efficiently mining long patterns from databases,
Proceedings of the 1998 ACM SIGMOD Conference, ACM Press, pp.
8593, 1998
[BCG01] Burdick D., Calimlim M., and Gehrke J., Mafia: A maximal frequent
itemset algorithm for transactional databases, Proceedings of ICDE
Conf., pages 443.452, 2001
[BFR98] Bradley P., Fayyad U. and Reina C., Scaling clustering algorithm to
large databases, Proceeding of the International Conference on
Knowledge Discovery and Data Mining, pg.9-15, 1998
[Bod03] Bodon F., A fast APRIORI implementation, Informatics Laboratory,
Computer and Automation Research, Proceedings of the IEEE ICDM
Workshop on Frequent Itemset Mining Implementations (FIMI'03), 2003
[BRR01] Bounsaythip C and Rinta-Runsala E., Overview of Data Mining for
Customer Behavior Modeling, VTT Information Technology, Finland,
2001
[BS97] Berson A. and Smith S.J., Data Warehousing, Data Mining and OLAP,
McGraw-Hill, 1997
[CHY96] Chen Ming-Syan, Han J. and Yu P.S., Data Mining: An Overview from
Database Perspective, IEEE Transaction on Knowledge and Data
Enginering, 8(6):866-883, December 1996
[Dun03] Dunham M.H., Data Mining Introductory and Advanced Topics,
Prentice Hall, Pearson Education Inc. Upper Saddle River, New Jersey,
2003
[DXGH00] Dunham M, Xiao Y, Gruenwald L. and Hossain Z., A survey of
association rules. Technical report, Southern Methodist University,
Department of Computer Science, TR 00-CSE-8, 2000
[EKX95] Ester M., Kriegel H.P. and Xu X., Knowledge discovery in large spatial
databases: Focusing techniques for efficient class identification,
189
Proceedings of 4
th
Int. Symp. On Large Spatial Databases (SSD95),
pg.67-82, Portland, Maine, 1995
[FAQ95] FAQ on Neural Networks,
http://fangorn.ci.tuwien.ac.at/docs/services/nnfaq/FAQ.html
[Fay
+
96] Fayyad U, et al., From Data Mining to Knowledge Discovery in
Databases , Ai Magazine, 1996
[Fis95] Fisher D., Optimization and simplification of hierarchical clustering,
Proceedings of 1
st
Int. Conf. on Knowledge Discovery and Data Mining
(KDD95), pg.118-123, Montreal, Canada, 1995
[FMMT96] Fukuda T., Morimoto Y., Morishita S. and Tokuyama T., Data Mining
Using Two-Dimensional Optimized Association Rules: Scheme,
Algorithms, and Visualization, Proceedings of. 1996 ACM SIGMOD
Int'l Conf. Management of Data, pg. 13-23, Montreal, June 1996.
[FPS
+
96] Fayyad U.M., Piatetski-Shapiro G., Smyth P. and Uthurusamy R.,
Advances in Knowledge Discovery and Data Mining, AAAI/MIT Press,
1996
[GGBP04] Gyrdi C., Gyrdi R., Bogan-Marta A., Pater M., The distributed
algorithms in mining associations rules, Revista Academiei Romne
FUZZY SYSTEMS & A.I. Reports & Letters Vol. 10, 2004
[GGP+05a] Gyrdi R., Gyrdi C., Pater M., Boc O., David Z., AFOPT Algorithm
for multi-level databases, SYNASC05, The 7
th
International
Symposium on Symbolic and Numeric Algorithms for Scientific
Computing, September 25 - 29, Timisoara, Romania , 2005
[GGP+05b] Gyrdi C., Gyrdi R., Pater M., Boc O., David Z., Adaptive AFOPT
Algorithm, SYNASC05, The 7
th
International Symposium on Symbolic
and Numeric Algorithms for Scientific Computing, September 25 - 29,
Timisoara, Romania , 2005
190
[GGP+05c] Gyrdi R., Gyrdi C., Pater M., Boc O., David Z., FP-Growth
algorithm for multi-level databases, CSCS-15 The 15
th
International
Conference on Control Systems and Computer Science, Bucuresti, Mai
2005
[GGP03] Gyrdi R., Gyrdi C., Pater M., Aplicarea tehnicilor de Data Mining
ntr-un sistem de gestiune a unei firme de distribuie, ALETHEIA 14,
Revist de tiin i dialog interdisciplinar, ISBN 973-8032-31-8, ISSN
973-8032-31-8, Oradea, Septembrie, 2003
[GHGP02] Gyrdi C., Holban S., Gyrdi R., Pater M., Mining Knowledge in
Relational Databases, CONTI2002, The 5
th
International Conference on
Technical Informatics, Timioara, Romania, Transactions on Automatic
Control and Computer Science, Scientific Bulletin of Politehnica
University of Timioara, Vol 47(61) nr. 2, October 18-19
th
2002
[GPG02] Gyrdi C., Pater M., Gyrdi R., Overview of Knowledge Discovery
and Data Mining in Databases, Proceedings of Arad, Sesiunea Jubiliar
de Comunicri tiinifice, Arad, Romania, November 28-30, 2002
[Gyo03] Gyrdi C., Contribuii la dezvoltarea sistemelor de descoperire a
cunotinelor, tez de doctorat, Timioara, 2003
[GZ01] Gouda K. and Zaki M. J.,Efficiently mining maximal frequent itemsets,
Proceedings of ICDM conf., pages 163.170, 2001.
[Has95] Hassoun M.H., Fundamentals of Artificial Neural Networks,
Cambridge, Mass: The MIT Press, 1995
[Hay99] Haykin S., Neural Networks a Comprehensive Foundation, 2
nd
ed.
Upper Saddle River, N.J.: Prentice Hall, 1999
[HCC93] Han J., Cai Y. and Cercone N., Data-driven discovery of quantitative
rules in relational databases, IEEE Trans. Knowledge and Data
Engineering, pg.29-40, 1993
191
[HF95] Han J. and Fu Y, Discovery of multiple-level association rules from large
databases Proceeding of the International Very Large Databases
Conference, pg. 420-431, 1995
[HF97] Han J. and Fu Y., Mining Multiple-Level Association Rules in Large
Databases, Technical report, Univ. of Missouri-Rolla, URL:
http://www.umr.edu/~yongjian/pub/ml.ps , 1997
[HF99] Han J. and Fu Y., Mining Multiple-level Association Rules in Large
Databases, IEEE Transactions on Knowledge and Data Engineering,
Vol.11, No.5, 1999
[HGN00] Hipp J., Guntzer U., and Nakaeizadeh G., Algorithms for association
rule mining - a general survey and comparison, ACM SIGKDD
Explorations, 2(1):5864, June 2000.
[HK00] Han J. and Kamber M., Data Mining: Concepts and Techniques, The
Morgan Kaufmann Series in Data Management Systems, Jim Gray, Series
Editor Morgan Kaufmann Publishers, August 2000. ISBN 1-55860-489-8
[HK99] Hineburg A. and Keim D.A., Clustering methods for large databases:
From the past to the future. Technical report, ACM SIGMOD Tutorial,
1999
[HKT01] Han J., Kamber M and Tung A.K.H., Spatial Clustering Methods in Data
Mining: A Survey, Philadelphia: Taylor&Francis, 2001
[HP00] Han J. and Pei J,Mining Frequent Patterns by Pattern-Growth:
Methodology and Implications '', ACM SIGKDD Explorations (Special
Issue on Scaleble Data Mining Algorithms), 2(2), December 2000.
[HPY00] Han J., Pei J. and Yin Z., Mining Frequent Patterns without Candidate
Generation, ACM SIGMOD Intl. Conference on Management of Data,
ACM Press, May 2000
192
[HS95] Houtsma M. and Swami A., Set-oriented mining for association rules in
relational databases, Proceedings of IEEE International Conference on
Data Engineering, pg.25-34, 1995
[IE00] Ian H.W. and Eibe F., Data Mining Practical Learning Tools and
Techniques with Java Implementations, Morgan Kaufmann Publishers,
San Francisco, USA, 2000
[JD88] Jain A.K. and Dubes R.C., Algorithms for Clustering Data, Englewood
Cliffs, N.J: Prentice Hall, 1988
[KMR
+
94] Klemettinen M., Mannila H., Ronkainen P., Toivonen H., and Verkamo
A.I, Finding Interesting Rules from Large Sets of Discovered Association
Rules, Proceedings of Third Int'l Conf. Information and Knowledge
Management, pg. 401-408, Gaithersburg, Md., Nov. 1994.
[Koh82] Kohonen T., Self-organized formation of topologically correct feature
maps Biological Cybernetics, 43:59-69, 1982
[KWG
+
97] Kamber M., Winstone L., Gong W., Cheng S., and Han J.,
Generalization and Decision Tree Induction: Efficient Classification in
Data Mining'', Proceedings of 1997 Int'l Workshop on Research Issues on
Data Engineering (RIDE'97), Birmingham, England, April 1997, pg. 111-
120.
[LHM99] Lu B., Hsu W. and Ma Z., Mining association rules with multiple
minimum supports, SIGKDD 1999, pg.125-134
[LLL04] Liu G., Lu H. and Lou W., Efficient Mining of Frequent Patterns Using
Ascending Frequency Ordered Prefix-Tree, Data Mining and Knowledge
Discovery, 9, 249274, 2004
[LLX+03] Liu, G., Lu, H., Lou, W., Xu, Y. and Xu Yu, J., Ascending Frequency
Ordered Prefix-tree: Efficient Mining of Frequent Patterns Proceedings
of KDD Conf., 2003.
193
[Mao01] Mao R., Adaptive-FP: An efficient method for multi-level and multi-
dimensional frequent pattern mining, Simon Fraser University, April
2001
[Mit99] Mitchell T.M., Machine learning and data mining, Communications of
the ACM, 42(11):31-36, November 1999
[MPC96] Meo R., Psaila G., and Ceri S., A New SQL-Like Operator for Mining
Association Rules, Proceedings of 1996 Int'l Conf. Very Large Data
Bases, pg. 122-133, Bombay, India, Sept. 1996.
[MTV94] Mannila H.,Toivonen H., and Verkamo A.I., Efficient Algorithms for
Discovering Association Rules, Proceedings of AAAI '94 Workshop
Knowledge Discovery in Databases (KDD '94), pg. 181-192, Seattle, July
1994.
[NH94] Ng R. and Han J., Efficient and effective clustering method for spatial
data mining, Proceeding of 1994 Int. Conf. Very large Data Bases,
pg.144-155, Santiago, Chile, 1994
[PCY95] Park J.S., Chen M.S., and Yu P.S., An Effective Hash-Based Algorithm
for Mining Association Rules, Proceedings of 1995 ACM SIGMOD Int'l
Conf. Management of Data, pg. 175-186, San Jose, Calif., May 1995.
[PGG+05a] Pater M., Gyrdi R., Gyrdi C., Boc O., David Z., Fast Apriori
algorithm for multilevel database, Proceedings of microCAD 2005,
International Scientific Conference, pg. 347-352, Miskolcs, Hungary, 10-
11 March 2005
[PGG+05b] Pater M., Gyrdi R., Gyrdi C., Boc O., David Z., Multi-level Apriori
Algorithms, CSCS-15 15
th
International Conference on Control Systems
and Computer Science, Bucuresti, 2005
[PGG05] Pater M., Gyrdi R., Gyrdi C., Comparison study of leading data
mining tools, Proceedings of EMES 05, May 26-28, Oradea, 2005
194
[PGGB06] Pater M., Gyrdi C., Gyrdi R and Bogan-Marta A., Mining Multi-
Level Association rules using FP-Tree and AFOPT, ICCC 2006,
International Conference on Computers and Communications, June 1-3,
2006, Bile Felix Spa-Oradea, INPRESS
[PJ06] Pater M, and Jian I., Multi-level frequent pattern mining from databases
using AFOPT data structure, CONTI 2006, The 7th International
Conference On Technical Informatics, 8-9 June 2006, Timioara,
INPRESS
PHM00] Pei J., Han J. and Mao R.,CLOSET: An Efficient Algorithm for Mining
Frequent Closed Itemsets'' Proceedings of 2000 ACM-SIGMOD Int.
Workshop on Data Mining and Knowledge Discovery (DMKD'00)},
Dallas, TX, May 2000.
[PJ02] Pudi V. and Jayant R., On the Efficiency of Association-rule Mining
Algorithms, Haritsa Database Systems Lab, SERC Indian Institute of
Science, Pacific-Asia Conference on Knowledge Discovery and Data
Mining, 2002
[PSF91] Piatetski-Shapiro G. and Frawley W.J., Knowledge Discovery in
Databases, AAAI/MIT Press, 1991
[Qui86] Quinlan J.R., Induction of decision trees. Machine Learning, 1: pg.81-
1006, 1986
[Qui93] Quinlan J.R., C4.5: Programs for Machine Learning, 1993
[Ran97] Rantzau R., Extended Concepts for Association Rule Discovery,
Universitat Stuttgart, D-70565, Stuttgart, 1997
[Ray92] Raymon, R., Search through systematic set enumeration, In
Proceedings of the Internation Conference on Principles of Knowledge
Representation and Reasoning, 1992
195
[RKS03] Rajkumar N., Karthik M.R. and Sivanandam S.N., Fast Algorithm for
Mining Multilevel Association Rules, IEEE Web Technology and Data
Mining, pg. 687-692, TENCON, 2003
[RR96] Rainsford C.P. and Roddick J.F., Temporal Data Mining in information
systems: a model, Seventh Australian Conference on Information
Systems, Horbart, Tasmania, vol.2, pg. 545-553, 1996
[SA95a] Srikant R. and Agrawal R., Mining Generalized Association Rules, In
Proceedings of the 21st International Conference on Very Large
Databases, Zurich, Switzerland, pg. 407419, September 1995.
[SA95b] Srikant R. and Agrawal R., Mining Generalized Association Rules, In
Research Report RJ 9963, IBM Almaden Research Center, San Jose,
California, USA, June 1995.
[SA96] Srikant R. and Agrawal R., Mining Quantitative Association Rules in
Large Relational Tables, Proceedings of the ACM SIGMOD Conference
on Management of Data, Montreal, Canada, June 1996.
[SM83] Salton G. and McGill M.J., Introduction to Modern Information
Retrieval, New York: McGraw-Hill, 1983
[SON95] Savasere A., Omiencinski E., and Navathe S., An Efficient Algorithm for
Mining Association Rules in Large Databases, Proceedings of the 21st
International Conference on Very Large Databases, Zurich, Switzerland,
pages 432444, September 1995.
[WHH00] Wang K., He Y. and Han J., Mining frequent itemsets using support
constrains, Proceedings of the 26
th
VLDB Conference, Cairo, Egypt,
2000
[ZKC
+
02] Zhang M., Kao B., Cheung D. and Yip C., Efficient Algorithms for
Incremental Update of Frequent Sequences, Pacific-Asia Conference on
Knowledge Discovery and Data Mining, Sept. 2002