TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea...

195
UNIVERSITATEA „POLITEHNICA” TIMIŞOARA FACULTATEA DE AUTOMATICĂ ŞI CALCULATOARE Ing. ALEXANDRINA MIRELA PATER TEZĂ DE DOCTORAT Conducător ştiinţific: Prof. Univ. Dr. Ing. IONEL JIAN TIMIŞOARA -2006-

Transcript of TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea...

Page 1: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

UNIVERSITATEA „POLITEHNICA” TIMIŞOARA

FACULTATEA DE AUTOMATICĂ ŞI CALCULATOARE

Ing. ALEXANDRINA MIRELA PATER

TEZĂ DE DOCTORAT

Conducător ştiinţific:

Prof. Univ. Dr. Ing. IONEL JIAN

TIMIŞOARA -2006-

Page 2: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

2

ING. ALEXANDRINA MIRELA PATER

CONTRIBUŢII LA DEZVOLTAREA ALGORTIMILOR DE EXTRAGERE A DATELOR DIN BAZELE DE

DATE MULTI-NIVEL

Conducător ştiinţific:

Prof. Univ. Dr. Ing. IONEL JIAN

Page 3: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

3

CUPRINS

1. INTRODUCERE ..................................................................................................... 13

1.2. Descoperirea cunoştinţelor şi Data Mining ........................................................... 13

1.3. Model Data Mining ................................................................................................. 17

1.4. Cerinţele şi provocările 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. Noţiuni de bază ........................................................................................................ 26

2.2. Clasificarea şi regresia ............................................................................................ 27

2.2.1. Clasificarea bazată pe arbori de decizie ............................................................... 28

2.2.1.1.Definiţie .................................................................................................................. 28

2.2.1.2.Inducţia 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. Reţele neuronale .................................................................................................... 36

2.2.2.1.Avantaje şi dezavantaje ale reţelelor neuronale .................................................... 38

2.2.3. Algoritmul celor mai apropiaţi 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 bazaţi pe măsuri de similaritate ............................................................ 43

2.3.2. Algoritmi cu reţele 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. Definiţii ş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.Funcţia AprioriGen ................................................................................................ 61

3.3.2.2.Funcţia Subset ........................................................................................................ 62

Page 4: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

4

3.3.2.3.Avantaje şi dezavantaje ale algoritmului APRIORI ............................................... 63

3.3.3. Algoritmul SAMPLING (de eşantionare) ............................................................. 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 partiţionare) .................................................... 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. Definiţii ş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

Page 5: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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: Obţinerea arborelui FP-Tree şi apoi aplicarea algoritmului

FP-Growth direct pe nivelul conceptual k (MLFP-Growth I) ............................. 145

6.2.1.2.Metoda II: Obţinerea 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 CONTRIBUŢII PERSONALE ................................................174

7.1. Contribuţii personale ............................................................................................ 175

7.2. Concluzii finale ...................................................................................................... 178

Bibliografie ...................................................................................................................... 187

Page 6: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

6

GLOSAR

DM - Extragerea datelor (Data Mining) KDD - Descoperirea de cunoştinţe 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 creşterea

fragmentelor de tipare AFOPT - Arborele tiparelor frecvente sortate în ordine crescătoare a

frecvenţei de apariţie (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)

Page 7: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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 „cumpărătorii de calculatoare” .............................. 31

Fig. 2.2-4. Exemplu de reţea neuronală cu 6 noduri .......................................................... 37

Fig. 2.2-5. Nod al reţelei 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. Funcţia AprioriGen ........................................................................................... 62

Fig. 3.3-3. Graniţa 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 număr de tranzacţii (25% suport) ............................ 73

Fig. 3.4-3. Scalabilitatea APRIORI raportată la tranzacţii/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 condiţional construit pentru m ............................................ 88

Fig. 4.3-2. Algoritmul FP-Growth ..................................................................................... 92

Fig. 4.4-1. Arborele spaţiului de căutare ............................................................................ 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 fraţi 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

Page 8: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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. Moştenirea unei reguli .................................................................................... 138

Fig. 6.1-3. Funcţia recursivă pentru verificarea descendenţilor ....................................... 138

Fig. 6.1-4. Comparaţie Multi-level APRIORI cu DFMLA1 .............................................. 140

Fig. 6.1-5. Comparaţie DFMLA1 cu DFMLA2 ................................................................ 141

Fig. 6.2-1. Comparaţie 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. Comparaţie 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 execuţie ai algoritmului ML-AFOPT ............................................. 161

Fig. 6.4-1. Funcţia Meets_Min_Support ........................................................................... 166

Fig. 6.4-2. Funcţia 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 tranzacţii ................................................. 171

Fig. 6.4-8. Studiu comparativ pentru 10 000 de tranzacţii ............................................... 172

Page 9: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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. Notaţii utilizate ............................................................................................... 57

Tabel 3.4-1. Parametri utilizaţi 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 tranzacţii/suport .......................................... 74

Tabel 4.2-1. Baza de date D cu tranzacţii ........................................................................... 80

Tabel 4.3-1. Extragerea tuturor tiparelor prin crearea bazelor condiţionale de

(sub)–tipare ................................................................................................. 89

Tabel 4.4-1. Tranzacţiile bazei de date D ........................................................................... 96

Tabel 5.2-1. Articole (descriere) ...................................................................................... 116

Tabel 5.2-2. Tranzacţii ..................................................................................................... 116

Tabel 5.2-3. Codificarea tranzacţiilor 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. Tranzacţiile 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. Tranzacţiile bazei de date ............................................................................. 135

Tabel 6.1-3. Tranzacţiile şi codurile produselor ............................................................... 136

Tabel 6.2-1. Codurile şi descrierea categoriilor ............................................................... 144

Tabel 6.2-2. Baza de date tranzacţională .......................................................................... 146

Page 10: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

10

Tabel 6.2-3. Crearea bazei condiţionale de tipare pentru nivelul k .................................. 150

Tabel 6.2-4. Rezultatele obţinute de algoritmii MLFP-GrowthI( Metoda I)

şi MLFP-GrowthII (Metoda II) ......................................................................... 151

Tabel 6.3-1. Tranzacţiile 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. Tranzacţiile adăugate ................................................................................... 158

Tabel 6.3-5. Ordonarea tabelei antet a nivelului k ........................................................... 159

Tabel 6.3-6. Rezultatele obţinute de algoritmul ML-AFOPT ........................................... 161

Tabel 6.4-1. Rezultatele obţinute de algoritmul ML-ADA-AFOPT

(articole speciale rare) ......................................................................................... 168

Tabel 6.4-2. Rezultatele obţinute de algoritmul ML-ADA-AFOPT

(articole speciale comune) .................................................................................... 169

Tabel 6.4-3. Rezultatele obţinute pentru 5 000 de tranzacţii ............................................ 170

Tabel 6.4-4. Rezultatele obţinute pentru 10 000 de tranzacţii .......................................... 171

Page 11: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

11

Prefaţă

Datorită creşterii foarte mari din ultimi ani a dimensiunii bazelor de date, cât şi a

aplicaţiilor de baze de date în domeniul comercial, industrial, administrativ şi altele, a

crescut în egală măsură şi interesul utilizatorilor în extragerea automată a cunoştinţelor din

acestea. Din acest motiv, mulţi cercetători au considerat descoperirea şi extragerea de

cunoştinţe din bazele de date un domeniu provocator şi semnificativ de investigat.

Sistemul de descoperire a cunoştinţelor (Knowledge Discovery System) care este

capabil să opereze pe o bază de date de dimensiune mare este numit siatem de descoperire

a cunoştinţelor 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), recunoaşterea formelor, învăţare 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 căutare şi manipulare a datelor din bazele

de date. KDD/Data Mining este un domeniu inter-disciplinar care dezvoltă algoritmi şi

procese pentru descoperirea cunoştinţelor construind modele şi făcând preziceri din date

structurate, semi-structurate sau ne-structurate.

Progresul în tehnologia codurilor de bare a făcut posibil ca firmele de

comercializare a produselor să colecteze şi să stocheze cantităţi imense de date despre

produse şi vânzări, referite ca şi basket data (date despre coşul de cumpărături). Firmele

mari , de succes, privesc aceste baze de date ca şi părţi esenţiale ale infrastructurii de

marketing. Ele sunt interesate în introducerea unor procese de marketing conduse de

informaţii, coordonate prin folosirea tehnologiilor de baze de date, care să permită

agenţilor de marketing să dezvolte şi să implementeze programe şi strategii de marketing

adaptate diverselor categorii de clienţi [DSA90].

Ţinând cont pe de o parte de domeniul vast al sistemelor de descoperire de

cunoştinţe, precum şi de posibilele aplicaţii practice pe care le are descoperirea de reguli de

asociere, în această lucrare s-au luat în considerare tehnicile de extragere a datelor cât ş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 esenţial în descoperirea regulilor de

asociere [HPY00]. Descoperirea regulilor frecvente de asociere dintr-o bază de date de

Page 12: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

12

dimensiuni mari este o problemă complexă, deoarece spaţiul de căutare creşte exponenţial

cu numărul de atribute din baza de date şi cu obiectele bazei de date. Se ştie că, în general,

bazele de date implicate în astfel de aplicaţii sunt de dimensiuni foarte mari. Din acest

motiv este foarte important ca algoritmii utilizaţi în aplicaţii pentru extragerea de date din

aceste baze de date să fie cât mai rapizi.

Primii algoritmi propuşi pentru acest gen de aplicaţii au fost de natură iterativă, gen

algoritmul APRIORI [AS94], care însă prezentau dezavantajul unor parcurgeri multiple ale

bazei de date, operaţie foarte costisitoare din punct de vedere al timpului de execuţie.

Pe parcursul studierii procesului de extragere de cunoştinţe (KD), cercetătorii au

încercat prin diverse metode să îndepărteze dintre regulile generate pe cele neinteresante,

propunând câteva măsuri de cuantificare a utilităţii sau gradului de interes pe care regula

respectivă o prezintă [HF95].

Acest fapt, a condus cercetările spre căutarea 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ă flexibilităţii concentrării atenţiei asupra seturilor diferite de date şi a

posibilităţii aplicării unor praguri diferite ale suportului sau confidenţei pentru nivele

diferite. Metodele de extragere de cunoştinţe 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 îmbunătăţirea metodelor existente,

optimizarea algoritmilor apăruţi până la această oră prin variante noi adaptate la extragerea

regulilor de asociere multi-nivel. Au fost adaptaţi o serie de algoritmi consideraţi

performanţi la această oră, la bazele de date multi-nivel, deoarece acestea şi-au dovedit

superioritatea în optimizarea exploatării şi au şi un potenţial 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ă toţi algoritmii propuşi în

această lucrare sunt mai eficienţi decât cei de la care s-a plecat, minimizând timpul de

extragere a datelor şi regulilor de asociere dorite, prin micşorarea 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 cât mai eficient, micşorând sau chiar evitând noi parcurgeri

ale bazei de date.

Page 13: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

13

1. INTRODUCERE

1.1. Descoperirea cunoştinţelor şi Data Mining

Odată cu creşterea rapidă a numărului şi dimensiunii bazelor de date cât şi a

aplicaţiilor de baze de date în domeniul comercial, industrial, administrativ şi altele, este

necesar şi interesant să examinăm extragerea automată a cunoştinţelor din bazele de date

de mari dimensiuni. Mulţi cercetători au considerat acest domeniu unul provocator şi

semnificativ de investigat.

Descoperirea de cunoştinţe din bazele de date (Knowledge Discovery in

Databases– KDD) sau extragerea de date (Data Mining – DM) reprezintă efortul de a

înţelege, 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, recunoaşterea formelor, învăţare automată şi tehnici de baze de

date în contextul bazelor de date de dimensiuni mari. Prima conferinţă internaţională pe

Knowledge Discovery şi Data Mining a avut loc în 1995 (KDD’95), în zilele de azi

reprezentând un domeniu de vârf, în plin avânt.

Descoperirea de cunoştinţe în bazele de date este considerat un proces însemnat de

identificare a unor tipare de date valide, noi, potenţial folositoare, care pot fi înţelese, aşa

cum este arătat de către Fayyad în [FPS+96]. În opinia sa, există mai multe etape în

procesul de descoperire de cunoştinţe: selectarea, preprocesarea, transformarea, extragerea

datelor, interpretarea sau evaluarea rezultatelor, aşa cum este arătat în figura 1.1-1.

Datorită extragerii de cunoştinţe din bazele de date, acestea au devenit surse bogate

şi sigure pentru generarea şi verificarea cunoştinţelor, iar cunoştinţele descoperite pot fi

aplicate în managementul informatic, procesul de interogare, luarea deciziilor, controlul

proceselor şi multe alte domenii de larg interes. Aşadar, extragerea de cunoştinţe este

considerat unul dintre cele mai actuale şi importante domenii de cercetare în baze de date,

conform multor cercetători din domeniul bazelor de date [Sil95,Sil96]. Data Mining poate

fi definit în primă instanţă ca fiind totalitatea proceselor de căutare şi manipulare a datelor

din bazele de date. Această exploatare a "zăcămintelor" de date are ca scop descoperirea

unor corelaţii necunoscute sau puţin evidente între date. Marketingul modern foloseşte din

ce în ce mai mult rezultate obţinute prin data mining.

Page 14: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

14

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

Funcţia principală a DM este, deci, de a extrage modele de cunoştinţe din date.

Pentru aceasta, DM utilizează o varietate de algoritmi din statistică, recunoaşterea

formelor, clasificare, logică fuzzy, învăţare automată (machine learning), algoritmi

genetici, reţele neuronale, vizualizarea datelor, etc. Varietatea de algoritmi poate fi grupată

în principalele componente ale DM. Numărul acestor componente diferă de la un autor la

altul, ele fiind în principal:

• modelul - care, ca orice model informatic, se reprezintă printr-o funcţie într-un

spaţiu unidimensional sau multidimensional (un ansamblu de funcţii), depinzând de

parametri. El poate fi reprezentat fie ca o funcţie liniară de parametri, fie ca o

funcţie de probabilitate (de exemplu normală), fie ca o funcţie fuzzy, etc. Obţinerea

modelului se realizează prin diferiţi algoritmi, cum ar fi cei de clasificare şi grupare

(clusterizare);

• criteriile de preferinţă - care pot fi de natură diferită, unele dintre acestea bazându-

se pe ordonare, altele pe interpolare sau cea mai bună aproximare;

• algoritmi de selecţie - 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 preferinţe, care se selectează din baza de criterii;

Date Date ţintă

Date preprocesate

Date transformate

Tipare

Cunoştinţe

Selectare

Preprocesare

Transformare

Extragere de date

Interpretare/Evaluare

Page 15: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

15

• stabilirea abaterilor - care constă în general în algoritmi de determinare a deviaţiei

şi stabilităţii; o categorie specifică de astfel de algoritmi sunt cei statistici, prin care

se stabilesc abaterile modelului faţă de ideal.

Bineînţeles că fiecare produs comercial utilizează mai mulţi algoritmi şi în fiecare

dintre ei se regăsesc o parte sau toate componentele de mai sus în diferite proporţii.

Deoarece extragerea de date (Data Mining) este partea centrală a procesului de

descoperire de cunoştinţe din bazele de date (KDD), termenii data mining şi descoperirea

de cunoştinţe din baze de date au fost utilizaţi alternativ de mulţi cercetători din domeniu.

În ultimul timp însă, se face o distincţie clară între cei doi termeni. Distincţia care se face

este referitoare la faptul că descoperirea de cunoştinţe din bazele de date (KDD) poate fi

considerată ca procesul de extragere a informaţiilor folositoare şi interesante din baza de

date. Aşa cum am arătat şi mai sus, (fig.1.1-1) acest proces include selectarea, pregătirea

datelor, manipularea şi analiza rezultatelor. Pe de altă parte, extragerea datelor (Data

Mining) este considerat procesul de aplicare a algoritmilor de descoperire a cunoştinţelor ş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 cunoştinţelor se realizează în următorii paşi (fig.1.1-1):

• învăţarea domeniului aplicaţiei - care constă în achiziţia unor cunoştinţe despre

starea iniţială, precum şi despre scopul aplicaţiei;

• stabilirea setului de date - căruia i se va aplica procesul de extragere a

cunoştinţelor; majoritatea autorilor atrag atenţia asupra acestei faze, numite şi

faza de preprocesare;

• curăţirea şi selectarea datelor - care este un proces complex, specific

depozitelor de date, în cadrul căruia se înlătură zgomotele, se reduc

dimensiunile, se stabileşte 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 mulţumit de rezultat, poate relua oricare dintre

fazele precedente;

Page 16: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

16

• utilizarea cunoştinţelor descoperite - care este faza finală; această utilizare se

realizează fie prin includerea lor în sisteme integrate de cunoştinţe fie, pur şi

simplu, prin rapoarte simple adresate celor interesaţi.

Aşadar, KDD/Data Mining este un domeniu inter-disciplinar care dezvoltă

algoritmi şi procese pentru descoperirea cunoştinţelor (categorii, tipare, concepte, relaţii şi

tendinţe), ne-structurate. Deoarece cercetătorii din domeniul KDD vin din cele mai diverse

domenii, aşa cum era de aşteptat, KDD a împrumutat multe de la teoriile tradiţionale ale

învăţării automate cât şi de la bazele de date.

Învăţarea poate fi definită ca şi achiziţionarea de cunoştinţe fără o programare

explicită. Învăţarea automată are ca scop automatizarea procesului de învăţare, aşa încât

cunoştinţele să poată fi obţinute cu minim de efort din partea experţilor umani. Învăţarea

automată, în mod tradiţional, este orientată pe învăţarea din seturi specificate şi în multe

cazuri din date generate artificial. Extragerea de date (Data Mining) are ca scop să

adapteze aceste paradigme ale învăţării automate la învăţarea din baze de date care conţin

date din lumea reală. Învăţarea din baze de date are câteva avantaje:

• Datele sunt depozitate într-o manieră mai mult sau mai puţin structurată. De

exemplu, într-o bază de date relaţională, datele sunt normalizate în relaţii,

eliminând astfel redundanţa iar relaţiile pot fi combinate prin diferite căi pentru

a regăsi seturile de date cerute din baza de date.

• Unele cunoştinţe din domeniu sunt deja codate în interiorul bazei de date. De

exemplu, existenţa unei constrângeri de not null. De asemenea, cardinalitatea

dintre legături (relaţii) este explicit specificată în interiorul structurii bazei de

date, la fel şi constrângerile.

• Interogarea bazei de date la performanţe ridicate, precum şi existenţa unor

unelte de manipulare a datelor şi a tranzacţiilor

• Numărul de baze de date pe care se aplică tehnici de minare este mare şi în

creştere. 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

Page 17: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

17

vedere a cerului. Din acest motiv, orice unealtă de extragere de date trebuie să

se execute satisfăcător pe un volum mare de date

• Datele pot conţine zgomot. Uneltele de extragere de date trebuie să ofere un

mecanism adecvat pentru găsirea rezultatelor suficient de corecte din date

zgomotoase.

• Datele pot conţine informaţii incomplete. Nu toate informaţiile folositoare

pentru descoperirea de cunoştinţe pot fi realmente depozitate în baza de date.

De asemenea, pot fi prezente multe date redundante sau inutile. Aşadar uneltele

de extragere de date trebuie să faciliteze atât selectarea datelor relevante cât şi

învăţarea cu cunoştinţe incomplete.

• Datele nu au fost, în general, colectate cu scopul de descoperire a cunoştinţelor.

Uneltele de descoperire a cunoştinţelor trebuie aşadar să acceseze date

depozitate în forme variate.

Un scop general al cercetării în domeniul descoperirii de cunoştinţa şi al extragerii

de date este acela al utilizării avantajelor învăţării din baze de date ţinând cont de

constrângerile 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, numărul

de reguli posibile ce pot fi extrase este mult mai mare decât numărul de tupluri din baza de

date. Din acest motiv, descoperirea de cunoştinţe poate fi privit ca un proces cu multiple

faze de selectare a regulilor interesante din totalul regulilor existente în interiorul bazei de

date. Este aşadar un proces de reducere progresivă a totalului de reguli la un subset de

reguli folositoare.

Page 18: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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 obţinută cu multe din

uneltele de cercetare curente, adică aceea a unui proces de reducere efectuat folosind o

selecţie de filtre care reduc spaţiul de reguli pe baza datelor sursă, tiparelor de reguli,

statisticilor şi semanticii. Există multe cazuri speciale când 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 spaţiul de reguli să treacă ne-redus.

Fiecare din fazele de filtrare poate consta din zero sau mai multe filtrări specificate

de utilizator sau de sistemul de descoperire. Un controler central coordonează operaţia de

filtrare. Aşa cum este arătat şi în figură, setul final de reguli poate fi interogat în baza de

cunoştinţe existentă. Baza de cunoştinţe şi utilizatorul pot interacţiona la fiecare pas al

Aplicaţii

Tipare, Unelte de vizualizare şi selectare

Creşte

Domeniu/Cunoştinţe apriori

Sisteme expert

Optimizarea interogărilor semantice

Sisteme suport de decizie

Inteligenţe artificiale

Proiectarea bazei de date

Asigurarea integrităţii

Baza de date

Baza de cunoştinţe

Set final de reguli

Filtre date

Filtre tipare

Filtre statistice

Filtre semantice

Specificarea regulilor şi tiparelor

Parametri şi praguri Filtre şi Browseri

Intrări utilizator

Control Control Control Control

Reguli Reguli Reguli

Page 19: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

19

procesului de reducere a spaţiului de reguli. Filtrările au efect serios asupra ieşirilor în

procesul de extragere de date.

Filtrarea datelor este faza iniţială care implică selectarea datelor de interes pentru

descoperirea cunoştinţelor. Utilizatorul poate direcţiona sistemul KDD la zone de interes

folosind şabloane, unelte de vizualizare sau prin specificare unor strategii de eşantionare.

Rezultatul acestei faze este reducerea setului de date de test şi reducerea corespunzătoare a

spaţiului de reguli.

Filtrarea tiparelor este a doua fază a procesului unde este specificat un tip de

regulă specială de căutat. Acest tip poate fi specificat de limitări ale sistemului sau prin

folosirea unor selecţii de modele sau tipuri de reguli. Tipul de tipar descoperit este limitat

de sistemul KDD însuşi deoarece cele mai multe sisteme pot descoperi un număr limitat de

tipuri de reguli. Tiparul poate fi în continuare limitat prin specificarea de către utilizator a

existenţei unui atribut particular pe o parte sau pe cealaltă a regulii descoperite sau prin

limitarea numărului de conjuncţii pe care o regulă le poate conţine. Efectul filtrului de

tipare este aşadar de a reduce spaţiul de reguli la reguli de un anumit tip, de exemplu reguli

de asociere care au un anumit termen ca şi componentă. Specificarea căutării unui tipar

poate fi realizată intuitiv în forma unei cereri bazate pe şablon astfel:

Găseşte toate regulile de asociere cu consecinţa LAPTE.

În acest exemplu simplu de şablon, cuvintele scrise pot fi înlocuite în diferite forme

cerute. Acesta poate fi implementat într-o interfaţă utilizând unelte cum ar fi liste, care

simplifică interacţiunea utilizatorului cu sistemul. Cele mai multe sisteme KDD

implementează câteva forme de şabloane pentru specificare tiparelor. Un exemplu este

Nielsen Opportunity Explorer, o unealtă de descoperire de cunoştinţe care utilizează

şabloane şi care a fost descris de Anand şi Kahn în [AK93]. În acest sistem şabloanele de

descoperire a cunoştinţelor permit utilizatorului de asemenea să specifice atât tehnicile

analitice care să fie aplicate (filtre statistice) cât şi datele pe care ele vor fi aplicate (filtre

de date).

Page 20: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

20

1.3. Cerinţele şi provocările extragerii de date

În dezvoltarea tehnicilor de extragere de date se prefigurează o serie de trăsături şi

cerinţe de bază ale unui sistem aplicat de extragere de cunoştinţe din bazele de date.

1. Tratarea diferitelor tipuri de date – deoarece există o multitudine de date şi de baze de

date, se aşteaptă de la un sistem de descoperire de cunoştinţe să poată trata cât mai

multe tipuri diferite de date. Deoarece cele mai multe baze de date disponibile sunt

relaţionale este crucial ca un sistem de descoperire de cunoştinţe să poată explora

eficient datele relaţionale. Mai mult, multe sisteme de baze de date conţin tipuri de

date complexe, cum ar fi date structurate şi obiecte complexe de date, date de tip

hypertext şi multimedia, date spaţiale şi temporale, tranzacţii, ş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 ţinând 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 funcţie de

destinaţia aplicaţiei respective, cum ar fi sisteme dedicate pentru extragerea de

cunoştinţe din bazele de date relaţionale, din bazele de date tranzacţionale, din bazele

de date spaţiale, din bazele de date multimedia, etc.

2. Eficienţa algoritmilor de extragere de date – pentru a extrage informaţii din cantităţi

enorme de date din bazele de date, algoritmii de descoperire de cunoştinţe trebuie să

fie eficienţi şi să poată fi dezvoltaţi şi îmbunătăţiţi pentru bazele de date de

dimensiuni mari. Astfel, timpul de execuţie 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 – cunoştinţele

descoperite trebuie să reflecte exact conţinutul bazei de date şi sa fie utile unor

aplicaţii concrete. Imperfecţiunile trebuie să poată fi exprimate prin măsuri de

incertitudine, sub formă de reguli de aproximare sau reguli cantitative. Aceasta, stă la

baza unui studiu sistematic de măsurare a calităţii cunoştinţelor descoperite, inclusiv

a interesului şi încrederii, prin construirea unor modele şi instrumente statistice,

analitice şi simulative.

Page 21: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

21

4. Exprimarea rezultatelor extragerii unor tipuri variate de date – din cantităţi mari de

date pot fi extrase diferite tipuri de cunoştinţe. Aceste cunoştinţe 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 interfeţe grafice pentru utilizator,

astfel încât să poată fi înţelese şi interpretate de nespecialişti, iar cunoştinţele

descoperite să poată fi utilizate de utilizatori. Din acest motiv sistemele de

descoperire de cunoştinţe trebuie să adopte tehnici de reprezentare cât mai expresivă

a cunoştinţelor descoperite.

5. Extragerea de cunoştinţe 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 explorări 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ă adâncească 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 informaţii din diferite surse de date – diversitatea reţelelor locale şi de

largă răspândire, incluzând internetul, conectează o mulţime 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 provocări domeniului.

Pe de altă parte, extragerea de date poate dezvălui regularităţi 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 distribuţie a datelor şi

complexitatea calculelor unor metode de extragere de date, au dus la dezvoltarea unor

algoritmi de extragere de date paraleli şi distribuiţi.

7. Asigurarea confidenţialităţii şi securitatea datelor – în situaţia în care datele pot fi

privite din diferite puncte de vedere şi la diferite nivele de abstractizare, apare

necesitatea asigurării securităţii datelor şi protejarea împotriva violării

confidenţialităţii datelor. Este important de studiat cazurile în care descoperirea de

cunoştinţe poate duce la invadarea confidenţialităţii, şi ce măsuri de securitate pot fi

luate pentru a preveni dezvăluirea de informaţii sensibile.

Page 22: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

22

Unele dintre aceste cerinţe pot duce la rezultate conflictuale. De exemplu

asigurarea securităţii datelor poate intra în conflict cu asigurarea extragerii interactive a

cunoştinţelor 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.

Răspândirea pe scară tot mai largă a utilizării codurilor de bare pentru cele mai multe

produse comerciale şi informatizarea multor tranzacţii comerciale şi guvernamentale, cât şi

progresul în domeniul apariţiei uneltelor de lucru avansate în colectarea de date, ne obligă

să avem de-a face cu cantităţi tot mai imense de date de prelucrat. Milioane de baze de date

sunt utilizate la ora actuală în aplicaţii de managementul afacerilor, administrare

guvernamentală, gestionarea datelor ştiinţifice şi inginereşti, cât şi în multe alte tipuri de

aplicaţii.

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 cunoştinţe şi informaţii utile. Aşadar, 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 cunoştinţe din

bazele de date (Knowledge Discovery in Databases – KDD) reprezintă un proces însemnat

de extragere a informaţiilor implicite, previzibile şi potenţial folositoare din bazele de date

[PSF91]. În lucrările de specialitate apărute de-a lungul anilor, au fost folosiţi şi alţi

termeni pentru a defini acest domeniu, cum ar fi: extragere de cunoştinţe din bazele de

date, extragere de date, arheologia datelor, analiza datelor, etc. Prin descoperirea de

cunoştinţe din bazele de date, se extrag informaţii şi cunoştinţe interesante, regulate, din

mulţimi 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 cunoştinţa fiabile.

Extragerea de cunoştinţe şi informaţii din bazele mari de date a fost recunoscut de

mulţi cercetători ca fiind un domeniu de cercetare cheie care oferă multe si variate

oportunităţi de investigare. Un interes foarte mare l-au arătat pentru acest domeniu de

cercetare mulţi specialişti din diferite arii: sisteme de baze de date, statistică, inteligenţa

Page 23: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

23

artificială, sisteme bazate pe cunoştinţe, învăţare automată, achiziţie de date, baze de date

spaţiale, vizualizarea datelor, servicii on-line şi WWW, şi altele.

Deoarece extragerea de date oferă multe posibilităţi de cercetare, aplicarea directă a

metodelor şi tehnicilor dezvoltate în studierea învăţării automate, a statisticii şi a bazelor de

date nu poate rezolva toate problemele apărute. 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 stătător.

Aşadar, în ultimii ani au fost dezvoltate o mulţime 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, aşa cum urmează:

� În funcţie de tipul datelor cu care lucrează.

Un sistem de extragere de date poate fi clasificat în funcţie de tipul de baze de date din care

extrage datele. De exemplu, avem un sistem relaţional de extragere de date dacă descoperă

cunoştinţe dintr-o bază de date relaţională, sau avem un sistem orientat pe obiect dacă

extrage cunoştinţe dintr-o bază de date obiectuală. În general, un sistem de extragere de

date poate descoperi cunoştinţe din mai multe tipuri de baze de date:

o relaţionale,

o tranzacţionale,

o obiectuale,

o deductive,

o spaţiale,

o temporale,

o multimedia,

o eterogene,

o active,

o moştenite,

o Web.

� În funcţie de tipul cunoştinţelor extrase

Există o serie de cunoştinţe tipice care pot fi extrase din bazele de bate:

o Reguli de asociere

o Reguli caracteristice

Page 24: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

24

o Reguli de clasificare

o Reguli discriminante

o Grupări

o Evoluţii

Mai mult decât atât, datele extrase pot fi categorisite şi în funcţie de nivelul de

abstractizare al cunoştinţelor descoperite, ce poate fi:

o Cunoştinţe generalizate

o Cunoştinţe de nivel primitiv

o Cunoştinţe multi-nivel

� În funcţie de tehnicile utilizate.

Sistemele de extragere de date pot utiliza mai multe tehnici pentru a-şi atinge scopul. De

exemplu, în funcţie de metoda coordonatoare avem:

o extragere determinată de date,

o extragere determinată de interogări,

o extragere determinată de date interactive

� În funcţie de abordarea fundamentală a extragerii de date avem:

o extragere bazată pe generalizări

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 aplicaţie,

aşadar, diferite tipuri de aplicaţii vor necesita diferite tehnici de extragere de date.

Extragerea de date din baze de date relaţionale sau tranzacţionale a atras recent

foarte mult atenţia comunităţii cercetătorilor în domeniul bazelor de date. Problema este de

a obţine un set puternic de reguli de asociere de forma „X1 ∧∧∧∧ ... ∧∧∧∧ Xm ⇒⇒⇒⇒ Y1 ∧∧∧∧ ... ∧∧∧∧ YBn „,

unde Xi (pentru i ∈ {1, …, m}) şi Yj (pentru j ∈ {1, …, n}) sunt seturi de perechi atribut-

valoare, din seturi relevante de date din baza de date. De exemplu, putem găsi o regulă de

asociere de forma – un client care cumpără un anumit sortiment de lapte cumpără de

asemenea şi un anumit sortiment de pâine la aceeaşi tranzacţie.

Page 25: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

25

Deoarece extragerea de reguli de asociere de acest fel poate necesita parcurgerea

unei baze de date tranzacţionale în mod repetat de nenumărate ori, pentru a găsi diferite

tipare de asociere, timpul de procesare poate creşte enorm aşadar, îmbunătăţirea

performanţei trebuie să fie o preocupare esenţială la extragerea acestor tipuri de reguli. În

capitolul 3 sunt prezentaţi o serie algoritmi pentru extragerea regulilor de asociere şi câteva

metode pentru îmbunătăţirea performanţelor 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 clasificări în

cantităţi 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

maşini are nevoie de o clasificare a clienţilor în funcţie de preferinţele lor pentru maşini,

astfel încât vânzătorul să ştie pe cine să abordeze, iar cataloagele cu noile modele de

maşini să fie expediate direct spre acei clienţi care pot deveni potenţialii cumpărători.

Page 26: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

26

2. TEHNICI DE EXTRAGERE DE DATE

(DATA MINING)

2.1 Noţiuni de bază

Datorită faptului că acest domeniu de cercetare este foarte provocator, aplicarea

directă a metodelor şi tehnicilor dezvoltate în domeniile învăţării 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

relaţionale, baze de date deductive, depozite de date (data warehouses), baze de date

tranzacţionale, baze de date avansate şi depozite de informaţii cum ar fi: baze de date

orientate pe obiect şi relaţional-obiectuale, baze de date spaţiale, baze de date text şi

multimedia, etc.

Folosind tehnicile de extragere de date pot fi descoperite diferite tipuri de

informaţii cum ar fi: reguli de asociere, reguli caracteristice, reguli de clasificare, reguli

discriminante sau analiza grupării, evoluţiei şi derivării datelor.

Tehnicile Data Mining utilizează metode din domenii cum ar fi: baze de date,

statistică, învăţare automată, recunoaşterea 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. Învăţarea automată oferă algoritmi folositori în extragerea datelor cum ar fi:

inducţia arborilor decizionali, reţele neuronale, gruparea conceptuală, algoritmi genetici.

Recunoaşterea formelor oferă metodologii şi tehnici pentru: clasificare, grupare, selectarea

de caracteristici şi validarea rezultatelor.

Page 27: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

27

Extragerea de date este o problemă dependentă de aplicaţie, astfel încât în funcţie

de cerinţele 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 aplicaţii se face ţinând cont de date, de situaţie ş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 căutăm proprietăţi comune în seturi de

obiecte din bazele de date şi le clasificăm în clase diferite în conformitate cu un model de

clasificare. Clasificarea permite crearea modelelor pentru prezicerea membrilor unei clase.

Estimarea şi predicţia pot fi considerate ca şi tipuri de clasificare. Obiectivul clasificării

este în primul rând analiza datelor antrenate şi dezvoltarea unei descrieri exacte sau a unui

model pentru fiecare clasă, folosind trăsăturile 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: aprobări de credite,

găsirea cumpărătorilor ţintă, diagnosticare medicală, analiza tratamentelor ineficiente,

clasificarea tendinţelor financiare, detectarea erorilor în aplicaţiile industriale, etc.

Regresia este utilizată la prezicerea unei valori a unei variabile continue pe baza

valorilor altor variabile, presupunând 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 cumpărător sau nu”, de asemenea este utilizată la prezicerea

variabilelor continue, de exemplu: „probabilitatea ca o persoană să facă cumpărături sau

nu”.

Datele utilizate la construcţia unui model de clasificare sunt:

� Un set de înregistrări

� Toate înregistrările au acelaşi număr de câmpuri

� Un câmp conţine indicatorul clasei căreia aparţine înregistrarea

Page 28: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

28

� Restul câmpurilor sunt numite câmpuri 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

cumpărătorilor de calculatoare.

Vârsta 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ă, învăţarea automată, reţele

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 importanţi pentru clasificare şi

regresie, bazaţi pe: arbori de decizie, reţele neuronale, algoritmi genetici, algoritmul celor

mai apropiaţi k vecini (k-nearest neighbors), modelul regulilor de asociere, etc.

2.2.1. Clasificarea bazată pe arbori de decizie

2.2.1.1. Definiţie

Un arbore de decizie (arbore de clasificare) este o structură folosită pentru a divide

o colecţie mare de articole în seturi mai mici succesive aplicând o secvenţă de reguli

simple de decizie. Această tehnică construieşte un arbore pentru a modela un proces de

clasificare. O dată arborele construit, el este aplicat fiecărui articol (tuplu) al bazei de date

Page 29: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

29

şi rezultatelor clasificării acelui articol. Tehnica are doi paşi 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 învăţării automate [Qui86]. Este o metodă de supervizare a învăţării care

construieşte arbori de decizie dintr-un set de exemple. Clasificarea bazată pe arbori de

decizie este o metodă pentru aproximarea funcţiilor ţintă cu valori discrete, în care funcţia

de învăţare este reprezentată printr-un arbore de decizie. Calitatea arborelui depinde atât de

acurateţea clasificării cât şi de dimensiunea arborelui.

Metoda alege în primul rând un subset din exemplele antrenate pentru a forma un

arbore de decizie. Dacă arborele creat nu oferă răspunsul corect pentru toate obiectele, se

adaugă o selecţie a excepţiilor la arbore şi procesul continuă până când setul corect de

decizie este găsit. 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 testări, până când testarea se termină într-un nod frunză (Fig. 2.2-2).

Arborii de decizie pot fi construiţi fie de sus în jos fie de la stânga la dreapta. Nodul

de sus (marginea stângă) este nodul rădăcină. Nodurile descendente sunt noduri fii, iar

nodurile de jos (marginea dreaptă) sunt noduri frunză. Calea unică de la nodul rădăcină 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

Page 30: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

30

Calea de la nodul rădăcină 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. Inducţia arborelui de decizie

Inducţia este procesul care creează arborele de decizie folosind un set de date

antrenate. Ea cere un număr mic de treceri prin setul e antrenare [Qui86]. Crearea arborilor

de decizie este de cele mai multe ori alcătuită din două faze: faza de construcţie (creştere) a

arborelui (prin divizare – „splitting”) urmată de faza de tăiere (pruning).

Faza de construire a arborelui este un proces iterativ care implică divizarea

progresivă a datelor în subseturi. Prima iteraţie consideră că nodul rădăcină conţine toate

datele. Următoarea iteraţie lucrează pe noduri derivate care vor conţine subseturi de date.

La fiecare divizare, sunt analizate variabilele şi este aleasă cea mai bună divizare. O

caracteristică importantă a divizării 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 tăiere identifică şi mută ramurile care reflectă zgomote

sau excepţii.

Arborii de decizie sunt utilizaţi 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 adâncimea maximă a arborelui, numărul minim de

elemente dintr-un nod care este considerat pentru divizare sau numărul minim de elemente

care trebuie să fie într-un nod nou. Utilizatorul poate modifica parametri asociaţi acestor

reguli. Unii algoritmi încep prin construirea arborilor de decizie la adâncimea lor maximă.

Un astfel de arbore poate preciza exact toate exemplele din setul de date de antrenare

(exceptând înregistrările conflictuale).

Folosind exemplul din fig. 2.2-1. al cumpărătorilor de calculatoare, se poate

construi arborele de decizie astfel:

Page 31: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

31

Fig. 2.2-3. Arborele de decizie pentru „cumpărătorii de calculatoare”

Algoritmul de inducţie al arborelui de decizie este alcătuit din algoritmul de bază

(algoritm „Greedy”) şi din condiţiile de oprire a partiţionării.

� Algoritmul de bază numit şi algoritm „Greedy” constă din următorii paşi:

• Arborele este construit folosind metoda divide şi cucereşte („divide et impera”)

recursiv de sus în jos

• La început, toate exemplele de învăţare sunt în nodul rădăcină

• Atributele sunt de tip enumerare (dacă valorile sunt continue, mai întâi sunt

discretizate)

• Exemplele unt partiţionate recursiv pe baza atributelor selectate

• Atributele de test sunt selectate pe baza unei măsuri euristice sau statistice

� Condiţiile de oprire a partiţionării sunt:

• Toate exemplele pentru un anumit nod aparţin unei aceleiaşi clase

• Nu mai există nici un atribut pentru partiţionări ulterioare

• Nu rămâne nici un exemplu

Vârsta?

31…40

Student? Nivel_creditare? DA

DA NU DA NU

DA NU normal excelent

<=30 >40

Page 32: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

32

În momentul în care arborele este complet, se poate explora modelul pentru a găsi

nodurile de ieşire, subarborii care sunt de nedorit, sau regulile care sunt apreciate ca

neadecvate.

Tăierea este o tehnică obişnuită pentru a face un arbore mai general. Algoritmii

care construiesc arborii la adâncimea maximă vor invoca automat tăierea. În unele aplicaţii

utilizatorii au posibilitatea de a tăia arborele interactiv.

2.2.1.3. Extragerea regulilor din arbore

Un sistem tipic de învăţare bazat pe arbore de decizie adoptă o strategie top-down

care caută doar într-o parte a spaţiului de căutare. Acesta garantează găsirea unui arbore

simplu, fără a fi neapărat cel mai simplu.

Un arbore de decizie, după ce a fost antrenat, poate prezice o instanţă nouă de date

pornind de la nodul rădăcină şi parcurgând ramurile până se ajunge la un nod frunză. Calea

este determinată prin evaluarea regulilor de tăiere pe baza valorilor variabilelor

independente din noua instanţă.

Arborii de decizie pot fi folosiţi atât pentru modele predictive cât şi descriptive.

Predicţia poate fi făcută caz cu caz prin parcurgerea arborelui. De cele mai multe ori,

predicţia poate fi făcută prin procesarea cazurilor noi prin arbore sau prin setul de reguli

automat şi generând un fişier de ieşire cu valorile precizate sau adăugând clase. O serie de

implementări oferă opţiunea de exportare a regulilor pentru a fi utilizate extern sau

înglobate în alte aplicaţii.

Extragerea de reguli de clasificare din arbore poate fi realizată în modul următor:

• Reprezentarea cunoştinţelor sub formă de reguli if-then

• O regulă este creată pentru fiecare cale de la nodul rădăcină la un nod

frunză (vezi fig. 2.2-2.)

• Fiecare pereche de valori de atribute de-a lungul căii formează o conjuncţie

• Un nod frunză conţine clasa predicţiei

• Regulile sunt uşor de înţeles de către oameni

Page 33: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

33

2.2.1.4. Algoritmi de decizie

Cei mai cunoscuţi şi des utilizaţi 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]. Toţi aceşti algoritmi sunt

potriviţi pentru clasificare. Unii dintre ei sunt adaptaţi şi pentru regresie.

Algoritmul CART se bazează pe divizare binară folosind GINI (diversitatea

populaţiei) - partiţionare recursivă motivată printr-o predicţie statistică. Arborele construit

are 2 ramuri de la oricare nod neterminal (care nu e nod frunză). Tăierea este bazată pe

măsurarea complexităţii arborelui. Algoritmul suportă atât clasificarea cât şi regresia,

tratând variabile continue şi necesitând pregătirea datelor.

Algoritmul CHAID utilizează pentru divizare teste „chi-square” - detectarea

relaţiilor statistice complexe. În construirea arborelui, numărul de ramuri variază de la

două la numărul de categorii de preziceri.

Algoritmii ID3/C4.5 şi C5.0 includ metode de generalizare a regulilor asociate unui

arbore, acesta îndepărtând redundanţele. Aceşti doi algoritmi produc arbori cu ramuri

multiple pentru un nod. Numărul de ramuri este egal cu numărul de categorii de preziceri.

Ei combină arbori decizionali multipli într-un singur clasificator utilizând informaţia

câştigată pentru divizare. Tăierea este bazată pe o rată de eroare la fiecare frunză.

Algoritmul SLIQ este un clasificator scalabil rapid, fiind un algoritm de tăiere

rapid.

Algoritmul SPRINT este utilizat pentru seturi mari de date, divizarea fiind bazată

pe valoarea unui singur atribut. Acest algoritm înlătură toate restricţiile de memorie prin

utilizarea structurii de date de tip listă de atribute.

Trăsăturile de bază care fac distincţie între toţi aceşti algoritmi sunt:

� Cei mai mulţi algoritmi de decizie necesită variabile ţintă de tip enumerare, ei

solicită ca variabilele continue să fie grupate pentru a folosi regresia

� Mulţi algoritmi suportă doar divizarea binară (fiecare nod părinte se poate

diviza în cel mult două noduri fii). Alţii generează mai mult de două divizări şi

produc o ramură pentru fiecare valoare a unei categorii de variabilă

� Măsurarea divizării ne ajută să selectăm care variabilă va fi folosită pentru a

diviza un anumit nod. Cele mai obişnuite măsurări includ criterii bazate pe

GINI, chi-square, rata de câştig şi entropie.

Page 34: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

34

� Generarea regulii se face folosind metode de generare asociate arborilor (în

cazul algoritmilor C4.5 şi C5.0). Aceasta elimină redundanţa. Alţi algoritmi pur

şi simplu cumulează toate testele dintre nodul rădăcină şi nodul frunză pentru a

produce o regulă.

Dintre toţi aceşti algoritmi, cel mai des utilizat este algoritmul ID3/C4.5. ID3

[Qui86] este un sistem de învăţare 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 spaţiului de căutare.

Acesta garantează găsirea unui arbore simplu, fără a fi neapărat cel mai simplu. C4.5 este o

extensie la ID3 care extinde domeniul clasificării de la atribute de tip enumerare la unele

numerice. Paşii algoritmului sunt prezentaţi în continuare:

1) selectează atributele care au cea mai mare informaţie câştigată

2) presupunând că există două clase P şi N:

a) fie un set de exemple S care conţin p elemente din clasa P şi n elemente din clasa N

b) cantitatea de informaţie necesară pentru a decide dacă un exemplu arbitrar din S

aparţine clasei P sau clasei N este definită astfel:

( )np

nlog

np

n

np

plog

np

pn,pI

++−

++−=

22 (2.2.1)

3) presupunem că utilizând atributul A, un set S va fi partiţionat în seturile {S1, S2, ..., Sv}

a) dacă Si conţine pi exemple din P şi ni exemple din N, atunci entropia sau informaţia

necesară clasificării tuturor obiectelor din toţi subarborii Si este:

∑= +

+=

n

i

iiii )n,p(Inp

np)A(E

1

(2.2.2)

4) informaţia de codificare care ar fi câştigată pe ramura A este dată de:

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

Selecţia atributelor pe baza informaţiei câştigate pentru problema „cumpărătorilor

de calculatoare” prezentată în figura 2.2-3 este următoarea:

Page 35: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

35

o clasa P: cumpărător_calculator = ”DA”

o clasa N: cumpărător_calculator = „NU”

o 0.940 = (9,5) = ),( ΙΙ np

o Entropia pentru atributul vârsta este:

69402314

504

14

432

14

5.),(I),(I),(I)sta(varE =++=

aşadar

)sta(varE)n,p(I)sta(varGain −=

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,

uşor de înţeles, uşor de utilizat şi că nu sunt afectaţi de lipsa valorilor unor date [BRR01].

De asemenea ei sunt perfect aplicabili unor probleme reale cum ar fi regulile comerciale.

Aceşti 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 restricţii

asupra datelor care sunt analizate [KWG+97]. În primul rând, 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 mulţi algoritmi pentru arbori

de decizie pretind ca datele continue să fie grupate sau convertite la date de tip enumerare,

mulţi algoritmi bazaţi pe arbori de decizie fiind instabili.

Varsta pi ni I(pi,ni)

<=30 2 3 0.971 30…40 4 0 0 >40 3 2 0.971

Page 36: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

36

2.2.2. Reţele neuronale

Reţelele neuronale (neuronal networks NN) au fost utilizate în domeniul

calculatoarelor pentru prima dată în anii 1980 [SM83]. Ele au fost adesea denumite reţele

neuronale artificiale (artificial neuronal networks ANN) [Has95] pentru a le deosebi de

reţelele neuronale biologice după modelul cărora au fost construite, folosind modelul de

lucru al minţii umane.

La ora actuală ele reprezintă un sistem de procesare a informaţiei reprezentat printr-

un graf, cât şi o serie de algoritmi care accesează acel graf. Ca şi mintea umană, reţelele

neuronale constau din mai multe elemente de procesare interconectate. Aşadar, o reţea

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 aceştia.

Reţelele neuronale reprezintă unii dintre cei mai complecşi algoritmi de clasificare

şi regresie, fiind adesea considerate adevărate cutii negre [Hay99]. Deşi o reţea neuronală

are o mulţime de date pentru antrenare, consumând astfel timp, ea poate face predicţii

pentru noi cazuri foarte repede, chiar în timp real. Mai mult, o reţea neuronală poate oferi

ieşiri multiple reprezentând predicţii simultane multiple. O trăsătură cheie a reţelelor

neuronale este aceea că ele operează direct numai pe numere. Astfel, orice dată aflată în

coloane independente sau dependente (ieşiri) care nu este de tip numeric trebuie convertită

în număr (de exemplu, valorile de tip „yes/no”, „high/low” ale unei variabile trebuie

înlocuite cu „0/1”).

Cele mai comune arhitecturi de reţelele neuronale conţin trei nivele: nivelul

unităţilor de intrare (surse), nivelul unităţilor ascunse (interne) şi nivelul unităţilor de ieşire

(rezultate) .

O reţea neuronală (NN) este un graf direct F=‹V,A›, care are mulţimea nodurilor

V={1,2,…n} şi mulţimea arcelor A={‹i,j› | 1≤i, j≤n }, cu următoarele restricţii [Dun03]:

1. mulţimea V este împărţită în submulţimile VI (noduri de intrarea), VH (noduri

ascunse) şi VO (noduri de ieşire)

2. mulţimea arcelor {1,2,…k} este împărţită în nivele

a. nodurile de intrarea pe nivelul 1,

b. nodurile ascunse pe nivelele 2, ..., k-1

c. nodurile de ieşire pe nivelul k

Page 37: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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› primeşte o etichetă - valoarea numerică wij

5. nodul i primeşte o etichetă – funcţia fi

Un exemplu de reţea 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 ieşire (O1).

Fig. 2.2-4. Exemplu de reţea neuronală cu 6 noduri

Arcele care leagă nodurile (w1, ...,w8) determină ponderea (gradul de importanţă)

a acelui nod.

Nodurile de intrare preiau informaţia de intrare şi o introduc în reţea. Activarea

fiecărei unităţi din nivelul ascuns este determinată de activarea nodurilor de intrare şi de

ponderile legăturilor dintre nodurile de intrarea şi nodurile ascunse. Ieşirea unui nod i

dintr-o reţea neuronală este dată de funcţia de activare a acelui nod, F(I) asociată lui.

Funcţia de activare a unui nod în reţea este calculată astfel:

( ) kk2211 wx...wxwxIF ⋅++⋅+⋅= (2.2.4)

O reţea neuronală execută o transformare neliniară a intrărilor. Funcţia de transfer,

transformata neliniară a funcţiei de activare F(I) este F’(I). În figura 2.2-5. se poate

observa ce se întâmplă în interiorul fiecărui nod din reţea.

X1

Predicţia (rezultatul)

w8

w7

w6

w5

w4

w3

w2

w1 I1

I2

I3

H1

O1

H2

X2

X3

Nivelul de intrare Nivelul ascuns Nivelul de ieşire

Page 38: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

38

Fig. 2.2-5. Nod al reţelei neuronale

Comportamentul unităţilor de ieşire depinde de activarea unităţilor ascunse şi de

ponderile legăturilor dintre unităţile ascunse şi unităţile de ieşire. Nivelul ascuns face ca

reţeaua să recunoască mai multe tipare, astfel numărul nodurilor ascunse creşte deseori cu

numărul de intrări şi cu complexitatea problemei. Folosirea a prea multor noduri ascunse

poate duce la o potrivire excesivă (overfitting), iar a prea puţine noduri poate duce la

obţinerea de modele cu o acurateţe (precizie) scăzută. Găsirea unui număr potrivit de

noduri ascunse este o parte importantă a oricărei tehnici Data Mining ce foloseşte reţele

neuronale [Mit99].

Multe produse care folosesc reţele neuronale includ algoritmi de căutare pentru

găsirea numărului optim de noduri ascunse (algoritmi genetici). Ponderile dintre unităţile

de intrare şi unităţile 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 reţelelor neuronale

O reţea neuronală poate fi privită adesea ca o cutie neagră fiind incapabilă să

explice găsirea dependenţelor (relaţiilor) dintre noduri. Ea lucrează doar cu date numerice,

cele nenumerice fiind convertite. Mai mult, intrările trebuie normalizate între 0 şi 1.

O reţea 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 făcut cu ajutorul altor unelte Data Mining (de exemplu

algoritmi genetici). Dezavantajul este acela că o reţea neuronală nu poate fi niciodată

exactă, chiar dacă ea este antrenată la infinit.

w1 X1

F’(I)

wk

w2

.

.

.

F(I) X2

Xk

Page 39: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

39

2.2.3. Algoritmul celor mai apropiaţi k vecini (k-nearest neighbors)

Algoritmul celor mai apropiaţi 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 atât datele cât şi clasificările dorite pentru fiecare item. Ca urmare a

aplicării tehnicii datele de antrenare devin modelul. K reprezintă numărul de cazuri

similare sau numărul de articole din grup.

La apariţia unui caz sau exemplu nou în model algoritmul verifică toate datele

pentru a găsi un subset care este cel mai apropiat de cel nou şi oferă acest subset ca şi

rezultat, plasându-l în clasa care conţine cei mai mulţi itemi din acest set al celor mai

apropiaţi k itemi.

Algoritmul k-NN are doi parametri principali:

• numărul celor mai apropiate (similare) cazuri – k

• o metrică pentru măsurarea similarităţii

La fiecare utilizare a algoritmului k-NN este necesar să se specifice o valoare

întreagă pozitivă pentru k. Această valoare reprezintă numărul 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

număr k de cazuri (vecini) cu un grad mare de asemănare. Algoritmul calculează distanţa

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

Page 40: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

40

clasei căreia îi aparţin majoritatea cazurilor din cele k cazuri, considerate cele mai

apropiate din setul de antrenare. Astfel, noul caz este asignat acelei clase căreia îi aparţin

cele mai multe cazuri similare, respectiv clasei X, deoarece în interiorul elipsei sunt mai

multe elemente X decât 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 distanţelor. Presupunând că avem n vectori de caracteristici x1, x2, ...,

xn şi că aceştia fac parte din grupări compacte, cu c<n. Fie mi media vectorilor din

gruparea i. Dacă grupările sunt bine separate putem utiliza un clasificator de distanţă

minimă pentru a le separa. Adică putem spune că x este în gruparea i dacă distanţa ║x-mi║

este minimul dintre toate cele k distanţe.

Pentru atributele continue putem folosi distanţa Euclidiană iar pentru variabilele de

tip enumerat trebuie să găsim un mod potrivit pentru calcularea distanţelor dintre atributele

din setul de date. Alegerea unei metrici potrivite este o problemă dificilă deoarece diferite

metrici folosite pe acelaşi 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 foloseşte întregul set de antrenare ca

şi model. Numărul de clase este dat, în general, ca şi variabilă de intrare, ceea ce, în

anumite probleme, nu este întotdeauna uşor de presupus. Timpul de calcul a algoritmului

k-NN este de ordinul factorialului numărului total de puncte, deoarece se realizează

recalcularea pentru fiecare caz nou.

X X X Y

Y X X X N Y X X

Page 41: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

41

Măsurile de similaritate bazate pe distanţe nu pot să facă faţă unor date de

dimensiune mare deoarece noţiunea de vecini devine fără sens. În astfel de cazuri se

foloseşte o metodă mai sofisticată (de exemplu, SOM-self organizing map).

Un alt dezavantaj îl reprezintă tratarea unor inexactităţi în date şi a suprapunerii

grupărilor, cu alte cuvinte de a decide de care grupă aparţin datele care sunt în regiunea

frontierelor. În astfel de cazuri se foloseşte o abordare fuzzy. O tehnică fuzzy k-NN este de

fapt o tehnică k-NN în care tehnica de măsurare este fuzzy.

2.3. Gruparea

Gruparea (clustering) este o tehnică similară clasificării deoarece face o grupare a

datelor. Spre deosebire însă de clasificare, grupurile nu sunt predefinite. Gruparea este

realizată prin găsirea similarităţilor dintre date în conformitate cu caracteristicile găsite î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. Alţii [Dun03] cred că cele două tehnici sunt diferite. Clusterii au fost definiţi în

multe moduri, de exemplu:

� Seturi de elemente asemănătoare (similare). Elementele din diferite grupări nu sunt

asemănătoare.

� Distanţa dintre punctele aparţinând unei grupări este mai mică decât distanţa dintre un

punct din interiorul grupării şi altul din afara grupării.

Analiza bazată pe grupare ne ajută să realizăm parţionarea unui mare set de obiecte

folosind tehnica „divide et impera” („divide and conquer”, „împarte şi stăpâneşte”) 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 ţinând cont de măsuri de distanţă, în seturi mari sau

multidimensionale de date.

Gruparea este o metodă studiată în mai multe domenii cum ar fi statistica [JD88],

învăţarea automată [Fis95], baze de date spaţiale [EKX95], extragerea de date [NH94],

Page 42: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

42

medicina, biologia, antropologia, economia sau marketing. Aplicaţiile bazate pe grupare

includ clasificarea de animale, plante, diagnostice, imagini procesate, recunoaştere de

tipare şi regăsirea de documente. În aplicaţiile de extragere de date bazate pe grupare, acest

concept de asociere trebuie văzut ca un fel de măsură numerică a gradului de similaritate.

R. Ng [NH94] afirmă că o grupare este bună dacă:

• Un grup (cluster) conţine membrii care au un grad mare de similaritate

• Metoda standard de măsurare a similarităţii în interiorul unui grup este

varianţa (suma pătratelor diferenţelor dintre elementul principal şi

fiecare element în parte). Sunt considerate cele mai bune grupurile cu

varianţa cea mai mică.

• Deoarece dimensiunea grupului este de asemenea importantă, o altă

abordare este folosirea variaţiei medii (variaţia totală împărţită la

dimensiunea grupului).

M. Dunham [Dun03] foloseşte pentru grupare un termen similar – segmentarea

bazei de date (database segmentation). În acest caz, articolele (tuplurile) unei baze de date

sunt grupate împreună prin partiţionarea sau segmentarea datelor în componente care apoi

dau utilizatorului o vedere mai generală asupra datelor. Putem evidenţia câteva trăsături de

bază ale grupării (ca fiind opusă clasificării):

� Numărul de clusteri nu este cunoscut

� Clusterii rezultaţi sunt dinamici

Gruparea poate fi definită astfel:

Fiind dată o bază de date de articole (tupluri) D = {t1, t2, ..., tn} şi o valoare întreagă

k, problema grupării este definirea unei mapări f : D → {1,2,...,n}, unde fiecare articol

(tuplu) ti este asociat unui grup (cluster) Kj, 1 ≤ j ≤ k. Un grup Kj, conţine acele

articole (tuplur)i care au fost mapate în el; adică Kj = {ti | f(ti ) = Kj, 1 ≤ i ≤ n şi ti ∈

D}.

Page 43: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

43

Fig. 2.3-1. Clasificarea algoritmilor de grupare

În timp au apărut o serie de algoritmi folosiţi în grupare care pot fi clasificaţi ca în

figura 2.3-1.

Algoritmii folosiţi în grupare pot fi de asemenea clasificaţi şi pe baza tehnicilor de

implementare folosite.

Dintre cei mai des folosiţi algoritmi în grupare amintim: algoritmi cu măsuri de

similaritate şi distanţă, algoritmi cu reţele neuronale (SOM – Self Organizing Map).

2.3.1. Algoritmi bazaţi pe măsuri de similaritate

Pentru a rezolva o problemă specifică de grupare au fost create multe proprietăţi de

dorit. Cea mai importantă dintre ele este aceea că un articol dintr-o grupare este mult mai

asemănător cu celelalte articole din interiorul grupului decât cu cele din afara lui. Ca şi în

cazul clasificării, aşadar, putem defini între oricare două articole (tupluri) ti şi tk, o măsură

a similarităţii sim(ti,tk), astfel:

Fiind dată o bază de date de articole (tupluri) D = {t1, t2, ..., tn}, o măsură de

similaritate sim(ti, tj) definită între oricare două articole (tupluri) ti, tj ∈ D şi o

valoare întreagă k, problema grupării este definirea unei mapări f : D → {1,2,...,k},

unde fiecare articol (tuplu) ti este asociat unui grup (cluster) Kj, 1 ≤ j ≤ k. Aşadar,

având un grup Kj , ∀ tjl, tjm ∈ Kj şi ti ∉ Kj , sim(tjl, tjm) ≥ sim(tjl, ti).

Gruparea

Ierarhică

Partiţionată

Categorică

BD mari

Aglomerativă

Divizivă

Eşantionare

Compresie

Page 44: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

44

În cazul în care avem o mulţime X de obiecte de grupat, putem defini o măsură de

similaritate peste X = (x1, x2, ..., xd) ca fiind o funcţie 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 submulţime a spaţiului Rd, atunci ca o măsură a similarităţii

vectorilor x şi y din X, putem considera ca fiind cosinusul unghiului dintre cei doi vectori.

Aşadar măsura de similaritate este:

(2.3.1)

unde:

(x*y) – este produsul scalar a doi vectori, pentru cazul dat avem x1y1+x2y2+...+xdyd

[x]T – transpusa matricei componentelor formei x

║x║- normala lui x : 2d

22

21 x...xxx +++=

Această măsură de similaritate este utilă atunci când mulţimea X a datelor este

formată din grupuri liniare. O distanţă poate induce o măsură de similaritate. Dacă d este o

distanţă peste X, atunci putem defini distanţa normalizată d/dmax, unde:

)y,x(dd maxXy,x

max

∈= (2.3.2)

Măsura de similaritate indusă de distanţa d se defineşte prin:

max

2d

)y,x(d1)y,x(S −= (2.3.3)

În cazul în care avem o mulţime de obiecte de grupat, cea mai generală măsură de

similaritate pe care o putem defini peste X este o funcţie D : X*X → R, care satisface

axiomele:

a) D(x,y) ≥ 0 ∀ x,y ∈ X

[ ] [ ]yx

yx

yx

)y*x()y,x(S

T

1 ⋅=

⋅=

Page 45: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

45

b) D(x,x) = 0 ∀ x ∈ X

c) D(x,y) = D(y,x) ∀ x,y ∈ X

Admitem că X este o mulţime de instruire (în care se cunoaşte pentru fiecare obiect,

clasa căreia el aparţine), iar D este o măsură de disimilaritate adecvată. În aceste condiţii,

este de aşteptat ca disimilaritatea dintre obiectele aceluiaşi grup să fie sensibil mai mică

decât disimilaritatea dintre obiecte aflate în grupuri diferite. În cazul în care datele sunt

obiecte dintr-un spaţiu euclidian vom considera metrica spaţiului ca o măsură a

disimilarităţii.

Dacă X şi Y sunt puncte dintr-un spaţiu euclidian d-dimensional

X=(x1, x2, ..., xd)

Y=(y1, y2, ..., yd)

atunci, pentru orice număr real p ≥ 1, se poate defini metrica:

p

1

d

1i

p

ii yx)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 obţine:

∑−

−=d

1i

ii yx)Y,X(d (2.3.5)

numită metrica absolută sau distanţa City Block.

Dacă p=2, se obţine distanţa euclidiană:

2

1

d

1i

2

ii yx)Y,X(d

−= ∑

− (2.3.6)

iar pentru p → ∞, se obţine metrica valorii maxime:

ii

i

yx)Y,X(d max −= (2.3.7)

În cazul în care valorile posibile ale caracteristicilor de clasificat sunt un număr

finit d, se pot utiliza ca măsuri de disimilaritate distanţele Hamming şi Lee.

Distanţa Hamming dintre vectorii X şi Y este dată de numărul componentelor

(poziţiilor) în care cei doi vectori diferă. Ponderea Hamming a vectorului X, notată cu

WH(X), se defineşte ca fiind numărul de componente nenule ale lui X. Rezultă că distanţa

Hamming dintre X şi Y este egală cu ponderea Hamming a diferenţei lor:

Page 46: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

46

)YX(W)Y,X(d HH −= (2.3.8)

Distanţa Lee dintre vectorii X şi Y se defineşte astfel:

Fie vectorul X=(x1, x2, ..., xd), cu xi ∈ {0,1, …, q-1}, unde q este un număr pozitiv , q ≥ 2.

Ponderea Lee a vectorului X, notată cu WL(X), se defineşte ca fiind:

∑=

=d

1i

iL x)X(W (2.3.9)

unde:

−≤<−

≤≤=

1qx2

qdacaxq

2

qx0dacax

x

ii

ii

i (2.3.10)

Distanţa Lee a vectorilor X şi Y este ponderea Lee a diferenţei lor:

)YX(W)Y,X(d LL −= (2.3.11)

Pentru q=2, distanţa Hamming este:

∑−

−=d

1i

iiH yx)Y,X(d

Pentru q=2 şi q=3, distanţele Hamming şi Lee coincid. Pentru q> 3, avem:

Y,X)Y,X(d)Y,X(d HL ∀≥

2.3.2. Algoritmi cu reţele neuronale

Reţelele neuronale care folosesc învăţarea ne asistată încearcă să găsească trăsături

ale datelor care să caracterizeze ieşirile dorite. Aceste tipuri de reţele 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 reţea neuronală care foloseşte învăţarea

competitivă neasistată. SOM este un tip special de arhitectură de reţea neuronală care oferă

o mapare din spaţiul multidimensional de intrare într-o latice de celule regulate de ordin

redus. Dacă setul de intrări este multidimensional, algoritmii tradiţionali de grupare nu

oferă un mod uşor de vizualizare a „apropierii” de alte grupări.

O astfel de grupare este folosită pentru identificarea grupărilor de elemente care

sunt similare în spaţiul original. Probabil cel mai obişnuit exemplu de SOM este reţeaua

Page 47: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

47

Kohonen [Koh82], care este folosită foarte des în produsele de extragere de date

comerciale pentru a realiza gruparea.

Într-o SOM, grupările sunt de obicei organizate într-o latice, de obicei o matrice

bidimensională, dar se folosesc şi unidimensionale sau multidimensionale [FAQ95].

Matricea există într-un spaţiu care este separat de spaţiul de intrare. În schimb, reciproca

nu este adevărată: centrele de grupări care sunt apropiate unele de altele în spaţiul de

intrare nu corespund în mod necesar unor grupări apropiate în matrice.

Spre deosebire de alte abordări bazate pe reţele neuronale, SOM efectuează o

antrenare neasistată. O abordare mai des întâlnită a reţelelor neuronale necesită o antrenare

asistată a reţelei, cu alte cuvinte, reţeaua este alimentată cu un set de cazuri de antrenare iar

ieşirea generală este comparată cu ieşirea corectă cunoscută. Nodurile din reţeaua SOM

converg în formarea unor grupări pentru a reprezenta grupuri de entităţi cu proprietăţi

similare. Numărul şi compoziţia grupurilor pot fi determinate vizual pe baza distribuţiei de

ieşire generată de procesul de antrenare.

SOM este o reţea de propagare înainte (feed-forward) fără nivele ascunse. Ea are

două nivele de noduri: nivelul de intrare şi nivelul Kohonen. SOM foloseşte măsura

euclidiană pentru măsurarea distanţei.

Algoritmul bazat pe SOM asignează centrelor de grupări o locaţie într-o matrice

organizată spaţial. Datele sunt procesate urmând următorii paşi:

1. asignează o funcţie de „vecinătate” care, pentru un centru dat, identifică centrele

grupărilor învecinate.

2. pentru fiecare punct:

a. găseşte centrul grupări care este cel mai „apropiat” punctului considerat

(„câştigător”)

b. mută centrul câştigător spre punctul considerat

c. foloseşte funcţia de „vecinătate” pentru a identifica centrele învecinate şi

pentru a le muta spre punctul considerat

3. descreşte dimensiunea vecinătăţii şi repetă procesul până când vecinătatea include

doar centrul câştigător.

Astfel, gruparea începe ca şi un proces foarte general şi continuă devenind din ce în

ce mai localizat pe măsură ce vecinătatea descreşte.

Page 48: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

48

2.3.2.1. Avantaje şi dezavantaje ale metodei SOM

Unul dintre principalele avantaje ale SOM este faptul că poate învăţa din date

complexe multidimensionale şi le poate transforma într-o reţea (map) de dimensiuni mai

reduse, de exemplu bidimensionale. Reprezentarea bidimensională oferă o interfaţă grafică

utilizator uşor de folosit pentru a ajuta factorul de decizie să vizualizeze, de exemplu,

similarităţile dintre tiparele preferinţelor clienţilor. Metoda este foarte puternică pentru

vizualizarea unor interacţiuni multiple dintre caracteristici astfel oferind o mai bună

înţelegere 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 uşor.

2.4. Alte tehnici Data Mining

Pe lângă tehnicile prezentate în acest capitol, în literatura de specialitate, mai sunt

întâlnite şi altele, cum ar fi: analiza discriminantă, algoritmi genetici, logica fuzzy şi BBN

(Bayesian Belief Networks).

Analiza discriminantă are rolul de a găsi hiperplane de separare a claselor.

Rezultatul modelului este foarte uşor de interpretat deoarece utilizatorii trebuie doar să

determine pe care latură se află un punct.

Algoritmii genetici sunt cei mai folosiţi în probleme de optimizări şi foarte puţin în

Data Mining. În general, ei sunt încorporaţi într-o reţea neuronală pentru a mări

performanţa reţelei.

Logica fuzzy este o tehnică utilizată pentru grupare şi clasificare. Tehnica este

folosită în extragerea de date din paginile Web, deoarece grupările şi asocierile nu au

graniţe pronunţate, astfel suprapunerile sunt cel mai bine descrise prin seturi fuzzy.

BBN este un model pentru reprezentarea incertitudinii în domeniul cunoştinţelor.

Pentru tratarea incertitudinii este utilizată teoria probabilităţii pentru reprezentarea

explicită a dependenţelor condiţionale dintre diferite componente. Aceasta oferă o

vizualizare grafică intuitivă a cunoştinţelor incluzând interacţiuni între diferite surse de

incertitudine. BBN poate fi utilizată la gruparea clienţilor (cumpărătorilor).

Page 49: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

49

2.5. Concluzii

În acest capitol au fost prezentate principalele tehnici utilizate în extragerea de date

şi rolul acestora în descoperirea de cunoştinţe.

Dintre metodele Data Mining existente, cel mai des sunt utilizate metodele de

descoperire a regulilor de asociere. Aceste metode sunt utilizate frecvent în analiza

vânzărilor cu amănuntul, dar ele pot fi aplicate cu acelaşi succes şi în serviciile de

marketing (analiza coşului de cumpărături) pentru determinarea caracteristicilor comune

ale clienţilor. Industria serviciilor financiare utilizează, de asemenea, frecvent extragerea

de reguli de asociere. Analiştii folosesc aceste tehnici pentru a analiza cantităţi masive de

date pentru a construi afaceri şi modele de risc pentru dezvoltarea strategiilor de investiţii.

Multe companii din sectorul financiar au testat aceste tehnici care au produs rezultate

pozitive în analiza conturilor clienţilor şi la identificarea serviciilor financiare pe care

aceştia le solicită împreună.

KDD/DM este un domeniu interdisciplinar care dezvoltă algoritmi şi procese

pentru descoperirea de cunoştinţe (categorii, tipare, concepte, relaţii şi tendinţe), construind

modele şi făcând preziceri din date structurate, semi-structurate sau nestructurate. De

asemenea, extrage informaţii de interes sau tipare din baze de date de dimensiuni mari.

Datorită importanţei ţi aplicabilităţii pe care o au, aşa cum am arătat, î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ă contribuţie a

colectivelor de cercetători din domeniul descoperirii de cunoştinţe din baze de date.

Page 50: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

50

3. DESCOPERIREA REGULILOR DE ASOCIERE

3.1. Definiţii şi terminologie

Descoperirea de reguli de asociere înseamnă să găsim asocieri interesante sau

relaţii de legătură (corelaţii) în seturi mari de date, de exemplu, să identificăm seturi de

valori ale atributelor (predicate sau itemi) care apar frecvent împreună, şi apoi să formulăm

reguli care să caracterizeze aceste relaţii. Descoperirea acestor reguli poate identifica tipare

sau comportamente care sunt apoi utilizate în diferite scopuri.

O definiţie formală a unei reguli de asociere poate fi formulată astfel [Zhu98]:

O regulă de asociere este o regulă de forma

A1, A2, ..., Am → B1, B2, ..., Bn

unde Ai şi Bj sunt predicate sau articole (itemi) şi care poate fi interpretată astfel:

„Când într-o tranzacţie apar articolele A1, A2, ..., Am, în cele mai multe cazuri apar şi

articolele B1, B2, ..., Bn în aceeaşi tranzacţie”.

Primele dezvoltări ale regulilor de asociere au fost făcute în anul 1993 de către

Agrawal, care a propus atunci un algoritm [AIS93] pentru descoperirea lor.

De atunci, foarte mulţi cercetători 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, cercetările au dus la diferite moduri de formulare a acestor tehnici:

� Extragerea de reguli de asociere booleene uni-dimensionale din baze de

date tranzacţionale

� Extragerea de reguli de asociere multi-nivel din baze de date

tranzacţionale

� Extragerea de reguli de asociere multi-dimensionale din baze de date

tranzacţionale şi depozite de date (warehouse)

� Extragerea de asocieri bazate pe constrângeri

Page 51: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

51

Extragerea regulilor de asociere a fost iniţial generată de analizarea coşului de

cumpărături. Mai târziu ea a fost aplicată în multe alte domenii cum ar fi: afaceri, inginerie,

medicină sau finanţe [FPS+96]. Mai mult decât atât, 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 ieşiri sau suport de

decizii:

� Analiza coşului de cumpărături - Pentru a înţelege obiceiurile şi preferinţele

cumpărătorilor este important să luăm diferite decizii cum ar fi: ce punem în vânzare,

cum să proiectăm ambalajul, cum să plasăm marfa în rafturi astfel încât să mărim la

maximum profitul, etc. Regulile de asociere pot oferi aceste informaţii. O aplicaţie

eficientă de extragere de date analizează obiceiurile clienţilor de a asocia produsele

cumpărate si poate extrage reguli de asociere între produse. Aceste tehnici pot fi

aplicate cu succes la dezvoltarea campaniilor de marketing, în vânzările cu amănuntul,

la crearea pachetului unei campanii promoţionale.

� Cross-marketing – În prezent, în puternicul mediu competitiv din interiorul serviciilor,

păstrarea clienţilor şi folosirea mai eficient a bazei de date a cumpărătorilor a devenit o

treabă la fel, dacă nu mai importantă decât atragerea de noi clienţi. Tot mai multe

companii oferă mai mult de un serviciu sau produs. Din moment ce ei ştiu tot mai

multe despre clienţii lor obişnuiţi 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

vânzare prin care se oferă un produs vechilor clienţi ai companiei, care nu sunt încă

cumpărători ai acestui produs se numeşte – vânzare încrucişată (cross-sale). O aplicaţie

de extragere de reguli de asociere poate descoperi cunoştinţe utile pentru acest domeniu

pentru a ajuta rezolvarea acestui tip de vânzare.

� Clasificarea parţială – Multe aplicaţii din viaţa reală necesită clasificări parţiale 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 convenţional clasificarea nu este eficientă atunci când 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ă direcţie ar fi testele

medicale la care este supus un pacient. Aşa cum se ştie există mii de teste medicale,

însă doar unele dintre acestea sunt făcute unui anumit pacient. Medicii pot folosi reguli

şi modele descoperite prin analiza asocierilor pentru a vedea care teste pot fi combinate

Page 52: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

52

cu altele. Astfel, ei pot evita supunerea pacienţilor 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. Analiştii folosesc aceste tehnici pentru a analiza cantităţi masive de

date pentru a construi afaceri şi modele de risc pentru dezvoltarea strategiilor de

investiţii. Multe companii din sectorul financiar au testat aceste tehnici care au produs

rezultate pozitive în analiza conturilor clienţilor şi la identificarea serviciilor financiare

pe care aceştia le solicită împreună.

Formularea clasică a unei probleme de extragere de reguli de asociere este

următoarea:

Fie I = {I1, I2, .., Im} un set de articole, şi D = {t1, t2, ..., tn} o bază de date

tranzacţională, unde fiecare tranzacţie are un identificator unic (tid) şi conţine un set de

articole ti = {Ii1, Ii2, ..., Iik} şi Iij ∈ 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 mulţime de articole se numeşte articolset (itemset).

Altfel, putem spune: găseşte toate regulile care asociază prezenţa unui articolset în

coşul de cumpărături cu alt articolset. De exemplu:

40% din cei care cumpără o berebereberebere cumpără de asemenea şi alunealunealunealune.

Regula extrasă nu trebuie să fie restricţionată de numărul de obiecte cumpărate în

acel moment, înainte sau după. Există însă şi posibilitatea de a specifica anumite

constrângeri pe reguli (de exemplu doar reguli care invoca anumite obiecte, cum ar fi:

bere). Tiparele secvenţiale maximale găsite trebuie să fie susţinute de mai mult decât un

procentaj specificat de clienţi. Fiecare regulă are două măsuri suportul şi confidenţa.

Pornind de la aceste formulări iniţiale, se definesc conceptele de bază utilizate

[Dun03].

a) Frecvenţa unui articolset este numărul total de tranzacţii care conţine acel articolset.

b) Suportul (preponderenţa) unei reguli X ⇒ Y este procentul de tranzacţii din baza de

date care conţine X ∪ Y. Pentru calculare suportului folosim formula:

)YX(P)YX(S ∪=⇒ (3.1.1.)

Page 53: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

53

sau

tranzactiidetotalNumarul

YsiXpecontincaretranzactiideseturideNumarulSuportul ≅ (3.1.2.)

Interpretare: Regula de asociere este validă în s% din totalul tranzacţiilor.

c) Confidenţa (încrederea în regulă) (α) unei reguli de asociere X ⇒ Y este raportul

dintre numărul de tranzacţii care conţin X ∪ Y şi numărul de tranzacţii care conţin X.

)X(P)YX(P)XY(P)YX( ∪==⇒α (3.1.3.)

sau

XpecontincaretranzactiideseturideNumarul

YsiXpecontincaretranzactiideseturideNumarulConfidenta ≅ (3.1.4.)

Interpretare: Dacă X şi Y sunt în acelaşi coş (sunt cumpărate de aceeaşi 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 intrări ale problemei, fiind

stabilite de utilizatori sau de specialişti în domeniu.

Selecţia unei reguli de asociere se bazează pe cele două măsuri: confidenţa care

măsoară puterea unei reguli şi suportul care măsoară frecvenţa cu care ea apare în baza de

date. Ea se face de obicei în două etape:

� pasul 1: găsirea tuturor tiparelor frecvente. Prin definiţie, fiecare din

aceste tipare va apare cu o frecvenţă cel puţin egală cu o valoare

predefinită denumită suport minim.

� pasul 2: generarea unor reguli puternice din aceste tipare frecvente.

Prin definiţie, aceste reguli trebuie să satisfacă suportul minim şi

confidenţa minimă.

Datele utilizate de algoritmii de asociere sunt formate din entităţi şi atribute şi pot

exista în unul din cele două formate vertical sau orizontal.

Page 54: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

54

Formatul orizontal presupune existenţa unui rând pentru fiecare entitate şi de

asemenea coloane pentru fiecare atribut, de exemplu, un rând pentru fiecare coş de

cumpărături (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ă numărul de coloane poate creşte foarte mult

(numărul de produse poate fi peste 100 000). În acest caz, este nevoie ca produsele similare

să fie grupate împreună pentru a ajunge la un număr rezonabil de coloane.

Formatul vertical presupune folosirea mai multor rânduri pentru memorarea unei

entităţi, utilizând un rând pentru fiecare atribut. Rândurile care corespund unei singure

entităţi au un număr de identificare comun (Tranz ID) (vezi tabelul 3.1-2.). Acest tip de

reprezentare este normalizat în sens relaţional şi permite ca o entitate să aibă o variabilitate

mai mare referitor la numărul 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ă operaţia 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) transformând fiecare interval într-un atribut.

Page 55: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

55

Descoperirea regulilor de asociere este probabil cea mai semnificativă contribuţie a

cercetătorilor din domeniul descoperirii de cunoştinţe din baze de date. Descoperirea

eficientă a unor astfel de reguli este încă o problemă intens cercetată de specialişti.

Unele dintre principalele domenii în care găsim aplicaţii 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 decât suportul minim s şi o confidenţă mai mare decât confidenţa

minimă α.

Cea mai comună abordare a problemei descoperirii regulilor de asociere este de a

descompune această problemă în două etape:

1. Găsirea tuturor seturilor de articole (articolset, itemsets) care au suportul

mai mare decât suportul minim. Suportul pentru un articolset este numărul

de tranzacţii care conţin 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 găsirea, pentru fiecare set frecvent de articole l, a tuturor

subseturilor nevide ale lui l. Pentru fiecare astfel de subset x, se tipăreşte o

regulă de forma x ⇒ (l-x), dacă raportul suport(l) / suport (x) este cel puţin

minconf (confidenţa minimă). Se iau în considerare toate subseturile lui l în

generarea regulilor.

Page 56: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

56

Odată ce s-a găsit 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, deşi găsirea

seturilor frecvente se face relativ uşor, datorită dimensiunii lor această operaţie este destul

de costisitoare.

Fiind dat un set de articolset-uri de dimensiune m, acesta are 2m subseturi. Deoarece

nu ne interesează să obţinem seturi vide, numărul potenţial de seturi frecvente este aşadar

2m -1. Datorită creşterii explozive a acestui număr, provocarea extragerii regulilor de

asociere se rezumă adesea la eficientizarea determinării numărului 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

următoarele treceri, se porneşte cu seturile de articole găsite a fi frecvente. Acestea sunt

folosite pentru generarea de noi seturi de articole potenţial frecvente, denumite seturi de

articole candidat (C), şi se calculează suportul actual pentru aceşti candidaţi. La sfârşitul

trecerii, se determină care dintre candidaţi sunt într-adevăr frecvenţi şi aceştia sunt folosiţi

în următoarea trecere. Procesul continuă până când nu mai sunt găsite seturi frecvente de

articole.

Dimensiunea lui C este adesea folosită ca o măsură 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

numărul de combinaţii la o dimensiune rezonabilă prin gruparea articolelor similare

împreună. Utilizarea ierarhiei de articole duce la reducerea numărului de combinaţii şi

totodată ajută la o mai mare generalizare şi la o mai bună folosire a relaţiilor.

În descrierea algoritmilor de descoperire de reguli de asociere se utilizează, în

general, un set de notaţii prezentate mai jos, în tabelul 3.2-1.

Presupunem că articolele din fiecare tranzacţie sunt păstrate într-o ordine

lexicografică. În acest caz, adaptarea algoritmilor de extragere de reguli de asociere la

bazele de date normalizate este o operaţie relativ simplă deoarece în acest tip de baze de

date fiecare înregistrare constă din perechi <TID, articol>, unde TID este identificatorul de

tranzacţie.

Page 57: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

57

Numărul de articole (itemi) dintr-un set reprezintă dimensiunea acestuia, iar un set

de articole de dimensiune k, se numeşte k-articolset (k-itemset). Articolele din cadrul unui

set sunt menţinute î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 câmp contor care stochează suportul pentru acel

articolset. Câmpul contor este iniţializat cu 0, atunci când setul este creat.

Notaţie Descriere

D Baza de date de tranzacţii

ti O tranzacţie 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)

Lk

Set de k-articolset-uri (k-itemset-uri) frecvente (cele care au suport

minim) Fiecare membru al acestui set are două câmpuri:

o Articolset (Itemset)

o Contor suport

C Set de itemset-uri candidaţi

Ck

Set k-articolset-uri (k-itemset-uri) candidaţi (seturi de articole

potenţial frecvente) Fiecare membru al acestui set are două câmpuri:

o Articolset (Itemset)

o Contor suport

kC Set de k-articolset-uri (k-itemset-uri) candidat care au TID-urile

tranzacţiilor generatoare asociate cu seturile candidat

p Număr de partiţii

Tabel 3.2-1. Notaţii utilizate

Page 58: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

58

3.3. Algoritmi pentru descoperirea regulilor de asociere

Descoperirea regulilor de asociere are ca scop descoperirea unui set de atribute

comune care aparţin unui număr mare de obiecte dintr-o bază de date în general.

Pentru descoperirea asocierilor, se presupune că există un set de tranzacţii, fiecare

tranzacţie fiind o listă de articole (listă de cărţi, listă de alimente). Un utilizator ar putea fi

interesat de găsirea tuturor asocierilor care au s% suport (preponderenţă) cu α% confidenţă

(încredere), aşadar:

• trebuie găsite toate asocierile care satisfac constrângerile utilizatorului

• asocierile trebui găsite 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 cantităţi imense de date despre produse, despre vânzări

referite ca şi date despre coşul de cumpărături (basket data). În cazul acestor tipuri de date,

o înregistrare (articol, item) constă în mod tipic dintr-un identificator de tranzacţie, data

tranzacţiei şi produsele cumpărate la acea tranzacţie.

Firmele de succes privesc aceste baze de date ca şi părţi esenţiale ale infrastructurii

de marketing. Ele sunt interesate în introducerea unor procese de marketing conduse de

informaţii, coordonate prin folosirea tehnologiilor de baze de date care să permită agenţilor

de marketing să dezvolte şi să implementeze programe şi strategii de marketing adaptate

diverselor categorii de clienţi.

Primele abordări ale problemei le-a făcut 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, rămânând şi la ora actuală tehnica majoră utilizată

de producătorii comerciali pentru a detecta seturile frecvente de item-uri.

Găsirea acestor tipuri de reguli sunt folosite adesea atât în analizarea coşului de

cumpărături, cât şi pentru design-ul de cataloage, pentru aşezarea mărfurilor în rafturi,

pentru categorisirea clienţilor pe baza tiparelor de cumpărături pe care aceştia le fac, etc.

De obicei, aşa cum am mai arătat, bazele de date implicate în astfel de aplicaţii sunt

de dimensiuni foarte mari. Din acest motiv, este foarte importantă utilizarea unor algoritmi

cât mai rapizi pentru aceste aplicaţii.

Page 59: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

59

Descoperirea regulilor frecvente de asociere dintr-o bază de date de dimensiuni

mari este o problemă complexă deoarece spaţiul de căutare creşte exponenţial cu numărul

de atribute din baza de date şi cu obiectele bazei de date. Cele mai recente abordări sunt de

natură iterativă necesitând scanări multiple ale bazei de date, ceea ce este foarte costisitor.

Cei mai importanţi algoritmi utilizaţi la această oră pe piaţă pentru descoperirea

regulilor de asociere sunt prezentaţi în continuare. La final am făcut şi un studiu

comparativ al acestora.

3.3.1. Definirea problemei

Formularea clasică a unei probleme de extragere de reguli de asociere este

următoarea:

Fie I = {I1, I2, .., Im} un set de articole, şi D = {t1, t2, ..., tn} o bază de date

tranzacţională, unde fiecare tranzacţie are un identificator unic (TID) şi conţine un set de

articole ti = {Ii1, Ii2, ..., Iik} şi Iij ∈ I:

O regulă de asociere este o implicare de forma X ⇒ Y unde X,Y ⊂ I sunt seturi

(mulţimi) de articole (itemi) numite articolset-uri (itemseturi) şi X ∩ Y = ∅.

Regula de asociere trebuie să aibă două măsuri: un suport (preponderenţă) minim

(s) şi o confidenţă (încredere) minimă (α). Aceste valori (s, α) sunt date ca şi parametri de

intrare.

Suportul indică frecvenţa de apariţie a unui tipar, de exemplu cât de des apar

articolele împreună. Măsura suport este calculată cu formulele:

)YX(P)YX(S ∪=⇒ (3.1.1.)

sau

tranzactiidetotalNumarul

YsiXpecontincaretranzactiideseturideNumarulSuportul ≅ (3.1.2.)

A doua măsură, confidenţa, indică puterea unei asocieri, de exemplu cât de mult un

anumit articol este dependent de altul (de exemplu, dacă produsul X este cumpărat de o

persoană, atunci în α% din cazuri este cumpărat şi produsul Y). Ea se calculează cu

formulele:

Page 60: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

60

)X(P)YX(P)XY(P)YX( ∪==⇒α (3.1.3.)

sau

XpecontincaretranzactiideseturideNumarul

YsiXpecontincaretranzactiideseturideNumarulConfidenta ≅ (3.1.4.)

Problema descoperirii regulilor de asociere constă în generarea unor reguli care să

aibă un suport mai mare decât suportul minim s şi o confidenţă mai mare decât confidenţa

minimă α.

Abordarea este independentă de reprezentarea bazei de date D, care poate fi un

fişier cu date, o tabelă relaţională sau rezultatul unei interogări.

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 candidaţilor. Algoritmul foloseşte proprietatea itemset-urilor frecvente:

Orice subset al unui articolset frecvent trebuie să fie la rândul său frecvent.

Algoritmul porneşte de la presupunerea că un articolset este format din două

câmpuri: unul care păstrează numărul de tranzacţii suportate de articolset-ul respectiv (un

contor) şi altul un set de articole.

În prima parte a algoritmului, se numără, pentru fiecare articol i ∈ L în câte

tranzacţii apare i. Dacă rezultatul depăşeşte suportul minim smin 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.

Page 61: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

61

Fig. 3.3-1. Algoritmul APRIORI

În prima fază, articolset-urile frecvente găsite la pasul (k -1) sunt folosite pentru

generarea articolset-urilor candidat Ck, folosind funcţia AprioriGen, descrisă în figura 3.3-

2.

În faza a doua se scanează baza de date D şi se calculează, pentru fiecare tranzacţie

t, care dintre candidaţi se găsesc în t. Dacă un candidat se găseşte în t, contorul său este

mărit cu 1. Pentru un calcul rapid, se determină într-un mod eficient candidaţii din Ck care

sunt conţinuţi într-o anumită tranzacţie t cu ajutorul funcţiei Subset prezentată în secţiunea

3.3.2.2.

3.3.2.1. Funcţia AprioriGen

Funcţia AprioriGen constă la rândul ei din două faze. Ea primeşte ca şi argument

Lk-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 reuneşte Lk-1 cu el însuşi. Se presupune că

articolele unui articolset sunt sortate în ordine lexicografică. Această primă fază generează

mai multe articolset-uri decât este necesar.

În faza a două se şterg toate itemset-urile c ∈ Ck a căror oricare (k-1) subset nu se

regăseşte în Lk-1.

Intrare: baza de date de tranzacţii D şi suportul minim smin Ieşire: setul L care conţine toate itemset-urile frecvente ale lui D. Funcţia: (1) L1 = {1 – itemset frecvent}; (2) k ← 2; (3) while (Lk-1 ≠ 0) do begin (4) Ck = AprioriGen (Lk-1); // generare noi candidaţi (5) forall tranzacţii t ∈ D do begin (6) Ct ← Subset (Ck, t) ; // candidaţi în t (7) forall candidaţi c ∈ Ct do (8) c.count ++; (9) end; (10) Lk = {c ∈ Ck c.count ≥ smin }; (11) k ++; (12) end; (13) L = ∪kLk; // rezultat

Page 62: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

62

Fig. 3.3-2. Funcţia AprioriGen

Exemplu:

Fie L3 = {{1 2 3}, {1 2 4}, {1 3 4}, {1 3 5}, {2 3 4}}. După prima fază de reuniune,

C4 = {{1 2 3 4}, {1 3 4 5}}. A doua fază, cea de curăţare, va şterge articolset-ul {1 3 4 5}

deoarece articolset-ul {1 4 5} nu este în L3. Aşadar, în C4 va rămâne doar {1 2 3 4}.

3.3.2.2. Funcţia Subset

Seturile de articole (itemi) candidat Ck sunt păstrate într-un arbore hash (hash-tree).

Un nod al acestui arbore conţine 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ă către un alt nod. Rădăcina

arborelui este definită a avea adâncimea 1. Un nod interior la adâncimea d pointează spre

noduri cu adâncime d+1.

Articolset-urile sunt stocate în noduri frunză. Când adăugăm un articolset c, pornim

de la rădăcină şi parcurgem în jos arborele până când atingem un nod frunză. La un nod

interior la adâncimea d, pentru alegerea ramurii de parcurs, se aplică o funcţie hash asupra

articolului d a articolset-ului.

Toate nodurile sunt create iniţial ca şi noduri frunză [AS94]. Când numărul de

articolset-uri dintr-un nod frunză depăşeşte un anumit prag specificat, nodul frunză

respectiv este convertit într-un nod interior.

Intrare: setul Lk - al tuturor (k-1) itemset-uri frecvente. Ieşire: superset-ul Ck al setului tuturor k-itemset-urilor frecvente. Funcţia: (1) function AprioriGen( Lk-1 : setul celor (k-1)-itemset-uri frecvente): setul

celor k-itemset-uri frecvente (2) // faza reuniune: (3) insert into Ck (4) select p.item1, p.item2, …, p.itemk-1, q.itemk-1

(5) from Lk-1p, Lk-1q (6) where p.item1 = q.item1, …, p.itemk-2 = q.itemk-2, p.itemk-1 < q.itemk-1; (7) // faza de curăţare: (8) forall itemset-urile c ∈ Ck do (9) forall (k-1) subset-uri s al lui c do

(10) if (s ∉ Lk-1) then (11) Ck ← Ck \ c; // şterge c din Ck (12) return Ck ; (13) end;

Page 63: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

63

Începând de la nodul rădăcină, funcţia Subset găseşte toţi candidaţii conţinuţi într-o

anumită tranzacţie t după cum urmează.

Dacă suntem la un nod frunză, găsim care dintre articolset-uri din nodul frunză sunt

conţinute în t şi adăugăm referinţe la ele în setul de răspuns.

Dacă suntem la un nod interior la care am ajuns prin aplicarea funcţiei hash pe

articolul i, aplicăm funcţia hash pe fiecare articol care urmează după articolul i în

tranzacţia t şi în mod recursiv aplicăm această procedură nodului corespunzător. Pentru

nodul rădăcină aplicăm funcţia hash pe fiecare articol din t.

3.3.2.3. Avantaje şi dezavantaje ale algoritmului APRIORI

a) Avantaje

- utilizează proprietăţile articolset-urilor frecvente

- poate fi uşor paralelizat

- este uşor de implementat

b) Dezavantaje

- presupune că baza de date tranzacţională este încărcată în memorie

- necesită mai mult de m scanări ale bazei de date

3.3.3. Algoritmul SAMPLING (de eşantionare)

Pentru a facilita reducerea numărării articolset-urilor din bazele de date de

dimensiuni mari se foloseşte de obicei eşantionarea bazei de date. Algoritmul SAMPLING

original reduce numărul de parcurgeri ale bazei de date la una în cazul cel mai favorabil şi

la două în cazul cel mai nefavorabil [Dun03]. Eşantionul din baza de date este ales astfel

încât să poată fi încărcat în memorie. După aceasta, orice algoritm, cum ar fi Apriori, poate

fi utilizat la găsirea seturilor frecvente din eşantion. Acestea sunt văzute ca şi seturi de

articole potenţial frecvente (potentially large – PL) şi sunt utilizate ca şi seturi candidat

care sunt numărate folosind întreaga bază de date. În plus, seturile candidat sunt

determinate prin aplicarea unei funcţii de graniţă negativă (negative border function – BD-)

asupra setului de articole frecvente din eşantion. Setul total de candidaţi C este calculat cu

relaţia următoare: C = BD- (PL) ∪ PL. Funcţia de graniţă negativă este o generalizare a

Page 64: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

64

algoritmului Apriori-Gen, descris în figura 3.3-2. Această funcţie este definită ca un set

minimal de seturi de articole care nu sunt în PL, dar ale căror subset-uri sunt toate în PL.

Pentru a ilustra această idee folosim următorul exemplu: Presupunem că setul de

articole este {A, B, C, D}. Setul de articole frecvente găsit în eşantionul din baza de date

este PL = {A, C, D, CD}. La primul pas scanăm întreaga bază de date, apoi generăm

seturile de candidaţi după cum urmează:

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

Se adaugă AC, deoarece atât A cât şi C sunt în PL. Din acelaşi motiv se adaugă AD.

În schimb, nu se poate adăuga ACD deoarece nici AC şi nici AD nu sunt în PL. În laticea

din figura 3.3-3 se observă că pot fi adăugate doar acele seturi în care toate subset-urile

sunt deja în PL.

Fig. 3.3-3. Graniţa negativă

Algoritmul SAMPLING este prezentat în limbaj pseudocod în figura 3.3-4. În acest

caz, se utilizează algoritmul APRIORI pentru a găsi seturile de articole frecvente dintr-un

eşantion, dar, în aceeaşi 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)

Page 65: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

65

Setul de articole frecvente este utilizat ca şi set de candidaţi pe durata scanării bazei

de date. Dacă un set de articole este frecvent într-un eşantion al bazei de date, atunci el este

privit ca şi potenţial frecvent în întreaga bază de date. Astfel, setul de articole frecvente

dintr-un eşantion este notat PL. Într-o încercare de a obţine toate seturile de articole

frecvente pe durata unei scanări a bazei de date, PL este expandat prin graniţa sa negativă.

Deci, setul total de candidaţi este C = PL ∪ BD- (PL).

Pe parcursul primei scanări a bazei de date toţi candidaţii din C sunt număraţi. Dacă

toţi candidaţii care sunt frecvenţi sunt în PL şi nici unul în BD- (PL), atunci toate seturile

de articole frecvente sunt găsite. În cazul în care câteva seturi de articole frecvente sunt pe

graniţa negativă, atunci este necesară o a doua scanare a bazei de date. Considerăm BD-

(PL) ca fiind o zonă tampon pe graniţa articolset-urilor frecvente.

Setul articolset-urilor este divizat în patru zone: cele care sunt frecvente, cele care

nu sunt frecvente, cele care sunt pe graniţa negativă a seturilor frecvente şi altele. Graniţa

negativă este o zonă tampon dintre cele frecvente şi altele. Ea reprezintă cel mai mic set

posibil de articolset-uri care ar putea fi potenţial frecvent. Datorită proprietăţilor 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 numărate. Acest lucru este făcut pentru a asigura că toate articolset-urile

frecvente sunt găsite. Notăm cu ML acele articolset-uri frecvente care lipsesc, adică cele

care sunt în L dar nu sunt în PL. Pentru a găsi toate articolset-urile rămase după cea de-a

doua scanare a bazei de date, algoritmul SAMPLING repetă aplicarea funcţiei de graniţă

negativă până când setul de candidaţi posibili nu mai creşte.

Se observă în figura 3.3-4, că în algoritmul SAMPLING, aplicarea algoritmului

APRIORI pe eşantionul de date este făcută utilizând un factor suport, notat cu small, mai

mic decât S. Utilizând un factor suport mai mic vom descoperi articolset-uri frecvente din

întreaga bază de date.

Page 66: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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 tranzacţională cu suportul s = 20%.Presupunem că eşantionul bazei de date sunt

primele două tranzacţii:

DS = {t1 = {Pâine, Gem, Unt}, t2 = {Pâine, Unt}}

Intrări: I // seturi de articole (itemi) D // baza de date de tranzacţii S // suportul Ieşiri: L // seturi de articole frecvente Algoritmul Sampling: (1) DS = eşantion din baza de date; (2) PL = Apriori ( I, DS; smalls); (3) C = PL ∪ BD- (PL); (4) L = ∅; (5) for each Ii ∈ C do (6) ci = 0; // contorul iniţial este 0 pentru fiecare itemset (7) for each tj ∈ D do // prima scanare a bazei de date (8) for each Ii ∈ C do

(9) if Ii ∈ tj then (10) ci = ci + 1; (11) for each Ii ∈ C do (12) if ci ≥ ( S x | D | ) then (13) L = L ∪ Ii; (14) ML = {x | x ∈ BD- (PL) ∧ x ∈ L}; // absenţa seturilor de articole frecvente (15) if ML ≠ ∅ then (16) C = L; //setează candidaţi ca şi seturi de articole frecvente (17) repeat (18) C = C ∪ BD- (C); // măreşte seturile de candidaţi (19) until nu mai sunt adăugate seturi de articole noi la C; (20) for each Ii ∈ C do (21) ci = 0; // contorul iniţial este 0 pentru fiecare itemset (22) for each tj ∈ D do // a doua scanare a bazei de date (23) for each Ii ∈ C do

(24) if Ii ∈ tj then (25) ci = ci + 1; (26) if ci ≥ ( S x | D | ) then (27) L = L ∪ Ii;

Page 67: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

67

Dacă reducem suportul s astfel încât să fie smalls = 10%, atunci pentru ca un

articolset să fie frecvent în eşantion el trebuie să apară în cel puţin 0.1 x 2 tranzacţii.

Aşadar, el trebuie să apară în una sau două tranzacţii.

La aplicarea algoritmului APRIORI la DS vom obţine:

PL = {{Pâine}, {Gem}, {Unt}, {Pâine, Gem}, {Pâine , Unt}, {Gem, Unt},

{Pâine, Gem, Unt}}

La aplicarea graniţei negative vom obţine:

BD- (PL) = {{Bere}, {Lapte}}

Aşadar se vor folosi acest set de candidaţi pentru a număra pe parcursul primei

scanări:

PL = {{Pâine}, {Gem}, {Unt}, {Pâine, Gem}, {Pâine , Unt}, {Gem, Unt},

{Pâine, Gem, Unt},{Bere}, {Lapte}}

Amintim că pe parcursul acestei scanări am utilizat s = 20% şi l-am aplicat tuturor

celor cinci tranzacţii din întreaga bază de date. Aşadar, pentru ca un articolset să fie

frecvent, el trebuie să apară în cel puţin una sau în 20% x 5 tranzacţii. Aflăm astfel că atât

{Bere} cât şi {Lapte} sunt frecvente. Urmărind algoritmul mai întâi se consideră C = L,

care în acest caz este şi PL. Aplicând graniţa negativă vom obţine:

C = BD- (C) = {{Bere, Pâine}, {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 numărul de scanări ale bazei de date la una în cel mai bun caz şi la două în

cel mai rău caz

- măsoară mai bine

b) Dezavantaje

- la a doua trecere există un număr mai mare de potenţiali candidaţi

Page 68: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

68

3.3.4. Algoritmul PARTITIONING ( de partiţionare)

Diferite abordări ale generării articolset-urilor frecvente a fost propuse pe baza

partiţionării seturilor de tranzacţii.

Algoritmul PARTITIONING abordează problema generării seturilor de articole

frecvente bazându-se pe o partiţionare a setului de tranzacţii din baza de date [SON95].

Astfel, baza de date D este divizată în p partiţii: D1, D2, ..., Dp. Partiţionarea poate

îmbunătăţi performanţa găsirii seturilor de articole frecvente prin câteva metode:

� Prin luarea în considerare a proprietăţii unui articolset frecvent, ştim că un

articolset frecvent trebuie să fie frecvent în cel puţin una din partiţii. Această

idee poate ajuta ca algoritmul proiectat să fie mai eficient decât cei bazaţi pe

căutarea în întreaga bază de date.

� Algoritmul de partiţionare poate fi adaptat mai bine la limitările memoriei

principale. Fiecare partiţie poate fi creată astfel ca ea să se încarce în memorie.

În plus, se presupune că numărul de articolset-uri pe partiţie să fie mai mic

decât cele din întreaga bază de date.

� Prin utilizarea partiţionării pot fi uşor creaţi algoritmi paraleli şi/sau distribuiţi,

iar fiecare partiţie poate fi gestionată pe o maşină separată.

� Generarea incrementală a regulilor de asociere poate fi uşor făcută prin tratarea

stării curente a bazei de date ca şi o partiţie şi tratând noua stare a bazei de date

ca a doua partiţie.

Algoritmul PARTITIONING reduce numărul de scanări a bazei de date la două şi

împarte baza de date în partiţii astfel ca fiecare partiţie să poată fi încărcată în memorie.

La scanarea bazei de date, algoritmul aduce acea partiţie a bazei de date în memoria

principală şi numără numai articolele din acea partiţie.

La prima scanare a bazei de date, algoritmul găseşte toate articolele frecvente din

fiecare partiţie. Cu toate că, orice algoritm ar putea fi utilizat în acest scop, propunerea

originală presupune că se adoptă o abordare pe nivele, asemănătoare algoritmului

APRIORI. Aici Li reprezintă articolset-urile frecvente din partiţia Di.

Page 69: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

69

Pe parcursul celei de-a doua scanări, numai acele articolset-uri care sunt frecvente

în cel puţin una din partiţii sunt folosite ca şi candidate şi sunt numărate 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 următoare 3.3-6, este prezentat un exemplu de aplicare a algoritmului de

partiţionare aplicat pe o bază de date cu 5 tranzacţii:

t1 Pâine, Gem, Unt

D1 t2 Pâine, Unt

t3 Pâine, Lapte, Unt

t4 Bere, Pâine

D2

t5 Bere, Lapte

Fig. 3.3-6. Exemplu de aplicare a algoritmului PARTITIONING

Intrări: I // seturi de articole (itemi) D= {D1, D2, …, Dp} // baza de date divizată în p partiţii S // suportul Ieşiri: L // seturi de articole frecvente Algoritmul Partitioning:

(1) C = ∅; (2) for each i = 1 to p do //găseşte itemset-urile frecvente în fiecare partiţie

(3) Li = Apriori ( I, Di; s); (4) C = C ∪ Li; (5) L = ∅; (6) for each Ii ∈ C do (7) ci = 0; // contorul iniţial este 0 pentru fiecare itemset (8) for each tj ∈ D do // numără candidaţii la a doua scanare a bazei de date (9) for each Ii ∈ C do

(10) if Ii ∈ tj then (11) ci = ci + 1; (12) for each Ii ∈ C do (13) if ci ≥ ( S x | D | ) then (14) L = L ∪ Ii;

L1 = {{Pâine}, {Gem}, {Unt}, {Pâine, Gem}, {Pâine , Unt}, {Gem, Unt}, {Pâine, Gem, Unt}}

L2 = {{Bere}, {Pâine}, {Lapte}, {Unt}, {Bere, Pâine}, {Bere, Lapte}, {Pâine, Lapte}, {Pâine, Unt}, {Lapte, Unt}, {Pâine, Lapte, Unt} }

Page 70: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

70

În acest exemplu, baza de date este divizată în două părţi, prima partiţie (D1)

conţine două tranzacţii (t1, t2) iar cea de-a doua (D2) trei tranzacţii (t3, t4, t5).

Utilizând un suport s = 10%, rezultă seturile de articolset-uri frecvente L1 şi L2.

Dacă articolele sunt uniform distribuite între partiţii, atunci o mare parte din

articole vor fi frecvente.

Dacă datele nu sunt uniform distribuite atunci poate exista un procentaj mare de

candidaţi falşi.

3.3.4.2. Avantaje şi dezavantaje ale algoritmului PARTITIONING

a) Avantaje

- se adaptează memoriei principale disponibile

- poate fi uşor paralelizat

- numărul maxim de scanări a bazei de date este 2

b) Dezavantaje

- poate avea o mulţime de candidaţi pe parcursul celei de-a doua scanări

3.4. Studiu comparativ de performanţă

În vederea evaluării performanţelor am implementat în Java 1.4 algoritmii:

APRIORI [AS94], PARTITIONING [SON95] şi SAMPLING [Dun03] şi am studiat

performanţele acestora pe diverse baze de date. Spre deosebire de raportările efectuate în

alte lucrări, unde s-au folosit baze de date binare, pentru o evaluare cât mai realistă am

optat pentru baze de date stocate pe servere SQL (Microsoft SQL 2000), accesul fiind

realizat prin interfeţele ODBC standard.

Studiul s-a efectuat în cadrul colectivului de cercetare al Catedrei de Calculatoare

din cadrul Universităţii 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 performanţelor algoritmilor şi pentru studierea scalabilităţii am

generat seturi de date de la 10 000 până la 500 000 de tranzacţii, şi am folosit factori

suport începând de la 5% până la 40%.

Page 71: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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 potenţial articolset maximal

frecvent. O tranzacţie poate conţine mai mult decât un articolset frecvent. Tranzacţiile pot

avea un număr diferit de articole, de asemenea şi dimensiunea unui articolset frecvent

diferă. Unele articolset-uri pot avea mai puţine articole altele pot avea mai multe articole.

Având în vedere aceste observaţii vom genera seturi de date ţinând cont de numărul de

articole dintr-o tranzacţie, de numărul de articolset-uri frecvente, etc. Parametri necesari

pentru generarea setului de date de test sunt definiţi în tabelul Tabel 3.4-1:

|D| Numărul de tranzacţii

|T| Media aritmetică a dimensiunii unei tranzacţii

|L| Numărul maxim de articolset-uri frecvente

N Numărul de articole

Tabel 3.4-1. Parametri utilizaţi pentru generarea setului de date

Seturile de date de test sunt generate prin setarea numărului de articole la N = 100

şi a numărului maxim de articolset-uri frecvente la |L| = 3000. De asemenea se alege media

aritmetică a dimensiunii unei tranzacţii |T| = 10. Aceste tranzacţii generate imită

tranzacţiile din comerţul cu amănuntul a produselor.

Minsuport(%) Timp(secunde)

D1 = 40 000 tranzacţii

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ă decât PARTITIONING şi SAMPLING pe o bază de date cu un număr relativ

mic de tranzacţii, (40 000 tranzacţii) pentru un suport mai mare de 25%.

Page 72: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

72

0

10

20

30

40

50

60

70

80

25 30 35 40

Suport (%)

Tim

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 execuţie pentru un factor suport mai mare de

30%, pe o bază de date cu un număr relativ mic de tranzacţii (D1= 40 000), dar

performanţa cea mai bună o are algoritmul APRIORI. Pentru un suport mai mic de 30% se

observă că timpul de execuţie al algoritmilor creşte 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 tranzacţii, numai pentru o valoare mare a

suportului (minsuport > 30%). Pentru o valoare mai mică sau egală cu 30% a suportului,

timpul de execuţie al APRIORI creşte semnificativ, în timp ce algoritmii PARTITIONING

şi SAMPLING au un timp de execuţie mai mic decât APRIORI pentru un suport mai mic de

30%. Deci, algoritmii SAMPLING şi PARTITIONING sunt mult mai performanţi pe o bază

de date mare şi pentru un factor suport mic (< 30%).

Minsuport(%) Timp(secunde)

D2= 150 000 Tranzacţii

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

Page 73: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

73

Figura Fig. 3.4-2. prezintă scalabilitatea algoritmilor raportată la număr de

tranzacţii, pentru un suport de 25%. Atât APRIORI, PARTITIONING cât şi SAMPLING

prezintă o scalabilitate liniară cu numărul de tranzacţii pe bază de date cu un număr mai

mare de 80 000 de tranzacţii. Dar algoritmul SAMPLING este mult mai scalabil decât

APRIORI, cu cât numărul de tranzacţii creşte diferenţa 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

Număr tranzacţii (în mii)

Tim

p (

s)

Apriori Partitioning Sampling

Fig. 3.4-2. Scalabilitatea raportată la număr de tranzacţii (25% suport)

În continuare am studiat comportarea algoritmului APRIORI pe baze de date cu un

număr variat de tranzacţii începând de la 10 000 până la 520 000 de tranzacţii ş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

tranzacţii). Pentru o bază de date de dimensiuni mari şi cu un factor suport mare

performanţa este satisfăcătoare. Cu cât creştem dimensiunea bazei de date performanţa

algoritmului APRIORI scade chiar şi pentru un factor suport mare.

Page 74: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

74

Timp

(Secunde) Suport(%)

Tranzacţii

(î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 tranzacţii/suport.

Figura Fig. 3.4-3. prezintă scalabilitatea algoritmului APRIORI raportată la o bază

de date cu un număr variat de tranzacţii începând de la 10 000 până 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

Număr tranzacţii (în mii)

Tim

p (

s)

10 20 30 40 50 80 110 150

Fig. 3.4-3. Scalabilitatea APRIORI raportată la tranzacţii/suport.

Page 75: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

75

În urma testelor efectuate a rezultat o performanţă bună a algoritmului APRIORI

atunci când este aplicat pe baze de date cu număr mare de tranzacţii dar pentru un factor

suport mare (>20%). Pentru baze de date mari şi suport mic (<5%) performanţa

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

număr de 150 000 de tranzacţii la un factor suport de 40% timpul de execuţie a fost de 442

secunde iar pentru un suport de 5% timpul a crescut până la 3098 secunde.

3.5. Concluzii

În urma studiilor de performanţă şi a rezultatelor experimentale obţinute au rezultat

următoarele concluzii:

Algoritmul APRIORI are performanţă slabă când se execută pe baze de date mari

care conţin un număr mare de articole pe tranzacţie. Această performanţă scăzută 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ă decât algoritmii PARTITIONING şi SAMPLING, dar pentru un

factor suport mic (< 5%) performanţa algoritmului APRIORI scade dramatic.

Algoritmul SAMPLING eşantionează baza de date, caută apoi seturile de articole

frecvente într-un eşantion, reducând numărul de scanări ale bazei de date la una în cel mai

bun caz şi la două în cel mai rău caz.

Algoritmul PARTITIONING reduce numărul de scanări ale bazei de date la două şi

împarte baza de date în partiţii astfel ca fiecare partiţie să poată fi încărcată în memorie. În

timpul celei de-a doua scanări, numai acele articolset-uri care sunt frecvente în cel puţin

una din partiţii sunt folosite ca şi candidate şi sunt numărate pentru a determina dacă ele

sunt frecvente în întreaga baza de date, reducând astfel setul de candidaţi, iar timpul de

execuţie fiind mai mic decât a algoritmului APRIORI.

Algoritmii SAMPLING şi PARTITIONING reduc numărul de scanări ale bazei de

date la două şi au o performanţă mai bună decât APRIORI atunci când sunt aplicaţi pe baze

de date mari şi pentru un factor suport mic (< 5%).

Page 76: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

76

4. DESCOPERIREA REGULILOR DE ASOCIERE

FOLOSIND EXTRAGEREA TIPARELOR

FRECVENTE

4.1. Introducere

Extragerea tiparelor frecvente din bazele de date tranzacţionale, şi multe alte tipuri

de baze de date, este un domeniu larg studiat de cercetătorii data mining deoarece aceasta

joacă un rol important în extragerea regulilor de asociere [HPY00] şi a multor altor

activităţi importante din domeniul extragerii datelor.

Problema se pune astfel :

Fie o mulţime de articole I = {i1, ..., in}, o bază de date D = {t1, ..., tn}, unde ti (i ∈

[1, N]) este o tranzacţie şi ti ⊆ I. Fiecare subset al lui I se numeşte articolset (itemset). Dacă

un articolset conţine k articole (itemi), el se numeşte k-articolset (k-itemset). Suportul unui

articolset l este definit ca fiind procentul de tranzacţii ale bazei de date D care conţin

articolset-ul l (suport(l) = {tt∈ D ∧ l ⊆ t} / D). Dacă suportul unui articolset depăşeşte 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 găsi toate tiparele

frecvente într-o bază de date tranzacţională dată cu un prag al suportului minim dat.

Seturile de date obţinute făcând aceasta în anumite domenii (ex. biologic) pot fi

foarte mari şi pot conţine tipare foarte lungi, ceea ce duce la un număr enorm de tipare.

Motivul este acela că fiind dat un set frecvent k- articolset, toate subseturile sale sunt

frecvente, numărul lor fiind 2k-1. Orice algoritm care generează setul complet de tipare

frecvente prezintă dezavantajul că generează o mulţime de tipare scurte, în majoritate

nefolositoare pentru utilizatori.

Ţelurile principale ale procesului de extragere a tiparelor frecvente sunt:

Page 77: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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 spaţiului de căutate, ştiind că fiecare subset a lui I poate fi

frecvent, iar numărul acestora creşte exponenţial cu numărul de itemset-uri

din I

c) Calcularea eficientă a suportului, parcurgerea tuturor subset-urilor este

destul de costisitor ţinând cont de dimensiunea mare a bazelor de date şi de

numărul mare de itemset-uri posibil frecvente.

În ultimii ani au fost dezvoltaţi mai mulţi algoritmi destul de eficienţi pentru

extragerea tiparelor frecvente. Cei mai mulţi dintre aceştia au curăţat spaţiul de căutare

având 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ă abordări: generarea şi testarea candidaţilor şi creşterea

tiparelor. Ultima s-a dovedit a fi mult superioară celei dintâi, mai ales în cazul seturilor de

date mari. Ambele abordări au fost implementate într-o manieră iterativă.

Prima, generează toate seturile de dimensiune 1 (1-itemsets). La fiecare pas al

iteraţiei 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

următoarea iteraţie.

Spre deosebire de această abordare, a doua, creşterea tiparului evită generarea şi

testarea candidaţilor crescând articolset-ul frecvent folosind prefix-ul său. Se construieşte o

bază de date condiţională pentru fiecare itemset frecvent l, notată Dl. Toate tiparele care au

prefixul l pot fi examinate folosind Dl fără a accesa alte informaţii.

Ideea esenţială 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 frecvenţei de apariţie 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 său de lungime

(k+1) nu poate fi niciodată frecvent.

Page 78: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

78

Performanţele atinse de „euristica APRIORI” sunt destul de bune datorită reducerii

semnificative a dimensiunii seturilor de candidaţi. Cu toate acestea, în cazul în care există

multe tipare frecvente, tipare lungi sau praguri de suport minim foarte joase, algoritmii

bazaţi pe APRIORI pot întâmpina două situaţii costisitoare:

o Manipularea unui număr mare de seturi de candidaţi este foarte costisitoare.

Astfel, dacă există 104 seturi de articole frecvente de lungime 1, (1- articolset-

uri), algoritmul APRIORI va trebui să genereze mai mult de 107 candidaţi de

lungime 2 şi să acumuleze şi să verifice frecvenţele de apariţie ale acestora. Mai

mult, pentru a extrage un tipar frecvent de lungime 100, cum ar fi (a1, a2, ...,

a100), trebuie să genereze în total mai mult de 2100 ≈ 103 candidaţi.

o Scanarea repetată a bazei de date este destul de greoaie, ca şi verificarea unui

număr mare de candidaţi 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 candidaţi şi la testarea acestuia. Astfel,

evitând generarea unui set mare de tipare candidat, s-ar putea îmbunătăţi substanţial

performanţa acestei metode. Această problemă a fost abordată de către Han [HPY00] prin

trei aspecte.

În primul rând 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ă, conţinând informaţii 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 încât nodurile cu apariţii mai frecvente vor avea o

probabilitate mai ridicată în a partaja noduri decât cele mai puţin frecvente.

În al doilea rând, este dezvoltată o metodă de creştere a unui fragment de tipar,

bazat pe FP-Tree, care porneşte de la un tipar frecvent de lungime 1 (ca şi un tipar sufix

iniţial), examinează doar baza sa condiţională de tipare (o sub-bază de date care constă din

setul de articole frecvente care apar împreună cu tiparul sufix), construieşte FP-Tree-ul său

condiţional şi efectuează extragerea în mod recursiv pe acesta. Creşterea tiparului este

realizată prin concatenarea tiparului sufix cu noile tipare generate din FP-Tree-ul

Page 79: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

79

condiţional. Deoarece setul de articole frecvente din oricare tranzacţie este întotdeauna

codat în calea corespunzătoare arborilor FP, creşterea tiparelor asigură complexitatea

rezultatului. În acest context, metoda nu este gen APRIORI, adică nu se realizează o

generare şi verificare restricţionată ci doar o verificare restricţionată. Operaţiile importante

ale extragerii sunt acumularea de frecvenţe şi ajustarea contoarelor pe căile prefix, care

sunt în general mult mai economice decât operaţiile de generare de candidaţi şi cele de

potrivire de tipare efectuate în majoritatea algoritmilor de tip APRIORI.

În al treilea rând, tehnica de căutare folosită în extragere este bazată pe

partiţionare, o metodă mai degrabă tip divide şi cucereşte („divide et impera”) decât tip

APRIORI, generare de jos în sus a combinaţiilor de seturi de articole frecvente. Aceasta

reduce în mod drastic dimensiunea bazei de date condiţionale generate la fiecare nivel de

căutare ca şi de altfel dimensiunea arborelui condiţional corespunzător. Mai mult,

transformă problema găsirii unor tipare frecvente lungi, în căutarea unora mai scurte şi

apoi a concatenării sufixurilor. Se folosesc cele mai puţin frecvente articole ca şi sufixuri,

ceea ce oferă o selectivitate bună. Toate aceste tehnici contribuie la reducerea substanţială

a costurilor de căutare.

4.2. Proiectarea şi construirea arborelui tiparelor frecvente (FP-

Tree)

4.2.1. Definirea problemei

Fie I = {i1, i2, …, im} un set de articole (itemi), şi D = {T1, T2, ..., Tn} o bază de date

tranzacţională, unde Ti (i ∈ [1..n]) este o tranzacţie care conţine un set de articole din I.

Suportul (sau frecvenţa de apariţie) a unui tipar A, care este un set de articole, se defineşte

ca fiind numărul de tranzacţii din baza de date D care îl conţine pe A. A este un tipar

frecvent dacă suportul său nu este mai mic decât un prag suport minim predefinit – minsup.

Fiind dată o bază de date tranzacţională D şi un prag suport minim, problema

găsirii setului complet de tipare frecvente este denumită problema extragerii tiparelor

frecvente.

Page 80: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

80

Cercetătorii au căutat soluţii eficiente pentru rezolvarea acestei probleme. Astfel, au

fost propuse diverse metode în [AS94], [AS95], [SON95], [HPY00], [HP00].

Dintre acestea, prezentăm algoritmul propus de J. Han, J. Pei şi Y. Yin în [HPY00],

numit algoritmul FP-Growth care foloseşte 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 cumpărate 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 tranzacţii

La proiectarea unei structuri compacte se ţine cont de următoarele observaţii:

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 fiecărei tranzacţii într-o structură

compactă, se poate evita scanarea repetată a bazei de date D.

3. În cazul în care mai multe tranzacţii au în comun un set de articole frecvente, acestea

ar putea fi reunite într-un singur set, cu numărul de apariţii înregistrate într-o singură

variabilă count. Este uşor de verificat dacă două seturi sunt identice dacă articolele

frecvente în toate tranzacţiile sunt sortate după o anumită ordine dată.

Page 81: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

81

4. Dacă două tranzacţii au în comun un anumit prefix, corespunzător unei ordonări a

seturilor frecvente, părţile comune pot fi reunite folosind o structură prefix atât timp

cât numărul de apariţii count este înregistrat în mod corect. Dacă articolele frecvente

sunt sortate descendent după frecvenţa lor de apariţie, există şanse mai mari ca să

avem mai multe şiruri prefix în comun.

4.2.2. Construirea arborelui FP-Tree

Ţinând cont de aceste observaţii se poate construi arborele tiparelor frecvente după

cum urmează.

a) În primul rând, derivăm lista articolelor frecvente printr-o scanare a bazei de date D,

⟨(f:4), (c:4), (a:3), (b:3), (m:3), (p:3)⟩, (numărul ce apare după: reprezintă suportul), în

care articolele sunt ordonate în ordine descrescătoare a frecvenţei lor de apariţie.

Această ordonare este importantă deoarece fiecare cale din arbore va urma această

ordonare. Pentru o mai uşoară înţelegere a algoritmului, în tabelul 4.2-1, coloana din

dreapta arată această ordonare pentru fiecare tranzacţie.

b) În al doilea rând, se creează rădăcina arborelui, etichetată „root”, după care se scanează

baza de date a doua oară.

Scanarea primei tranzacţii duce la construcţia primei căi prin arbore: ⟨(f:1), (c:1), (a:1),

(m:1), (p:1)⟩. Se observă că articolele frecvente din tranzacţie sunt ordonate ţinând cont

de ordinea din lista articolelor frecvente.

Pentru a doua tranzacţie, deoarece lista corespunzătoare 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 fiecărui 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 tranzacţie, 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.

Page 82: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

82

Scanarea celei de a patra tranzacţii conduce la crearea celei de a doua ramuri ⟨(c:1),

(b:1), (p:1)⟩.

Pentru ultima tranzacţie, deoarece lista sa de articole frecvente ⟨f, c, a, m, p⟩ este

identică cu prima, calea este partajată şi contorul fiecărui nod de-a lungul căii este

incrementat cu 1.

Pentru a facilita traversarea arborelui, se construieşte un tabel antet al articolelor, în

care fiecare intrare arată spre apariţia acestuia în arbore printr-un pointer la un nod al

arborelui (cap de listă). Nodurile cu acelaşi articol sunt înlănţuite prin astfel de pointeri.

Arborele rezultat după scanarea tuturor tranzacţiilor este prezentat în figura 4.2-1. Acest

exemplu conduce la proiectarea şi construcţia 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 rădăcină etichetat „root”, un set de subarbori prefix de articole

ca şi fii ai rădăcinii şi o tabelă antet pentru articolele frecvente.

2. fiecare nod din subarborele prefix de articole constă din trei câmpuri: nume-articol,

contor şi înlănţuire-nod, unde:

a. nume-articol se referă la articolul pe care acest nod îl reprezintă,

b. contor înregistrează numărul de tranzacţii reprezentate de porţiunea căii

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

Page 83: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

83

c. înlănţuire-nod face legătura la următorul nod din FP-Tree care se referă la

acelaşi articol sau conţine NULL dacă nu mai există un alt astfel de nod

3. Fiecare intrare în tabela antet pentru articole frecvente constă din două câmpuri (1)

nume-articol şi (2) capul listei care pointează spre primul nod din FP-Tree care se

referă la nume-articol.

Pe baza acestei definiţii, a fost propus, în [HPY00], algoritmul de construcţie a

arborelui FP-Tree prezentat în figura 4.2-2.

Fig. 4.2-2. Algoritmul de construire a arborelui FP-Tree

Analizând procesul de construire a arborelui FP-Tree se poate observa că sunt

necesare exact două scanări complete a bazei de date D. Prima scanare colectează

articolele frecvente, iar a doua scanare construieşte arborele FP-Tree. Costul inserării unei

tranzacţii Trans în arbore este O(Trans), unde Trans este numărul de articole frecvente

din Trans.

Intrare: Baza de date tranzacţională D şi suportul minim s; Ieşire: Arborele tiparelor frecvente corespunzător (FP-Tree); Metoda: Arborele FP-Tree este construit în următorii paşi:

1. Se scanează baza de date D. Se colectează setul de articole frecvente F şi suportul corespunzător acestora. Se sortează F în ordinea descrescătoare a suportului în lista articolelor frecvente L

2. Se creează nodul rădăcină al arborelui FP-Tree, T, şi se etichetează cu „root”. Pentru fiecare tranzacţie Trans din D se efectuează următoarele operaţii:

a. Se selectează şi se ordonează articolele din Trans conform ordonării lui L, adică în ordine descrescătoare a suportului.

b. Fie lista articolelor frecvente din Trans [pP], unde p este primul element iar P este restul listei.

c. Se apelează funcţia insert_tree ([pP], T). Funcţia insert_tree se execută astfel: dacă T are un fiu N, astfel încât N.nume-articol = p.nume-articol, atunci se incrementează contorul lui N cu 1; altfel se creează un nou nod, cu contorul iniţializat pe 1, părintele T şi înlănţuire-nod va fi înlănţuit cu nodurile având acelaşi nume-articol. Dacă P nu este goală, se apelează în mod recursiv insert_tree(P, T).

Page 84: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

84

Din procesul de construcţie a arborelui FP-Tree se pot sublinia câteva proprietăţi

importante.

Lema 4.1. Fiind dată o bază de date tranzacţională D şi un suport minim s,

arborele FP-Tree corespunzător conţine informaţia completă din D care este relevantă

pentru extragerea tiparelor frecvente.

Raţionament: Pe baza procesului de construcţie a arborelui FP-Tree, fiecare

tranzacţie din D este mapată pe o cale din arbore, iar informaţia despre tiparele frecvente

din fiecare tranzacţie este stocată complet în arbore. Mai mult, o cale din FP-Tree poate

reprezenta tipare frecvente din mai multe tranzacţii fără nici o ambiguitate, deoarece calea

ce reprezintă fiecare tranzacţie trebuie să pornească de la nodul rădăcină a fiecărui

subarbore prefix. Astfel, rezultă lema de mai sus.

Lema 4.2. Fără a se considera rădăcina, dimensiunea unui FP-Tree este limitată

de numărul total de apariţii ale tiparelor frecvente în baza de date, iar înălţimea arborelui

este limitată la numărul maxim de articole frecvente din orice tranzacţie din baza de date.

Raţionament: Pe baza procesului de construcţie a arborelui FP-Tree, pentru orice

tranzacţie T din D, există o cale în arbore care începe de la subarborele prefix

corespunzător astfel încât setul nodurilor din cale este exact acelaşi ca şi setul articolelor

frecvente din T. Deoarece nici un articol frecvent din nici o tranzacţie nu poate crea mai

mult de un singur nod în arbore, rădăcina fiind singurul nod necreat de o inserţie de articol

frecvent, şi fiecare nod conţine o legătură şi un contor, de aici avem limita asupra

dimensiunii arborelui aşa cum a fost afirmat în lemă. Înălţimea oricărui subarbore p-prefix

este numărul maxim de articole frecvente. Astfel, înălţimea unui arbore este limitată de

numărul maxim de articole frecvente din oricare tranzacţie in baza de date, asta cu condiţia

să nu considerăm nivelul suplimentar adăugat de rădăcină.

Lema 4.2, arată unul din beneficiile importante aduse de FP-Tree: dimensiunea

unui arbore FP-Tree este limitată de dimensiunea bazei de date corespunzătoare deoarece

fiecare tranzacţie va contribui cu cel mult o cale la arborele FP-Tree, cu lungimea egală cu

numărul de articole frecvente din acea tranzacţie.

Page 85: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

85

Deoarece există de multe ori mai multe partajări ale articolelor frecvente între

tranzacţii, dimensiunea arborelui este de cele mai multe ori mult mai mică decât aceea a

bazei de date originale.

Spre deosebire de metodele de tip APRIORI, care pot genera un număr exponenţial

de candidaţi în cel mai rău caz, în nici un caz, nu va fi generat un arbore FP-Tree cu un

număr exponenţial de noduri.

FP-Tree este o structură foarte compactă, care stochează informaţia pentru

extragerea tiparelor frecvente. Deoarece o cale „a1 → a2 → ... → ak” pentru orice 1≤ k ≤ n,

dimensiunea arborelui FP-Tree este substanţial mai mică decât dimensiunea bazei de date

şi decât dimensiunea setului de candidaţi generaţi pe parcursul extragerii regulilor de

asociere.

Articolele din setul frecvent de articole sunt ordonate descrescător în funcţie de

suportul lor. Articolele care apar mai frecvent sunt aranjate mai aproape de vârful 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 fără a genera candidaţi. Metoda adoptă

tehnica „divide et impera” pentru proiectarea şi partiţionarea bazei de date pe baza

tiparelor frecvente descoperite şi creşte 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 substanţial numărul de seturi de candidaţi care sunt generate şi poate

reduce de asemenea numărul de examinări iterative ale bazei de date, conducând 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

Page 86: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

86

memoria calculatorului. Operaţia 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ă.

Aşadar, metoda realizează creşterea numărului tiparelor frecvente datorită a doi

factori: este necesar să examinăm doar o parte a bazei de date şi datele pot fi organizate în

structuri compacte care facilitează creşterea numărului de tipare frecvente controlat.

Construcţia 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 totuşi întâlni

problema combinatorică a generării candidaţilor dacă folosim această structură pentru

generarea şi verificarea tuturor tiparelor candidat.

În continuare se prezintă modul de explorare a informaţiilor compacte stocate în

arborele FP-Tree şi o metodă eficientă de extragere a setului complet de tipare frecvente.

Structura FP-Tree are câteva proprietăţi interesante care facilitează extragerea

tiparelor frecvente:

Proprietatea 4.1. (Proprietatea legăturii nodului) Pentru orice articol frecvent ai,

toate tiparele frecvente posibile care îl conţin pe ai pot fi obţinute prin urmărirea

legăturilor nodurilor care conţin pe ai, începând de la intrarea corespunzătoare ai din

tabela antet.

Această proprietate se bazează direct pe procesul de construcţie al arborelui FP-

Tree. Acesta facilitează accesul tuturor informaţiilor tiparelor legate de ai , prin traversarea

arborelui FP-tree, urmărind legăturile nodurilor ai.

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

proprietăţii 4.1, se colectează toate tiparele la care participă un anumit nod ai, începând de

la capul listei lui ai (din tabela antet) şi se urmează legăturile nodurilor ai. Procesul de

extragere este examinat pornind de la începutul tabelei antet.

Pentru nodul p, se derivează un tipar frecvent (p:3) şi două căi î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ă, deşi şirul ⟨f, c, a⟩ apare de trei ori şi ⟨f⟩ chiar de patru ori,

Page 87: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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

tranzacţiile din D, respectiv calea prefix a lui p este ⟨c:1, b:1⟩. Aceste două căi 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 numeşte

baza condiţională de tipare ale lui p (cu condiţia ca p să existe).

Construcţia unui arbore FP-Tree pe această bază condiţională de tipare (numită FP-

Tree condiţional) 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ă căutarea de tipare frecvente asociate cu p.

Pentru nodul m, se derivează tiparul frecvent (m:3) şi două căi ⟨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

conţin pe p au fost deja analizate în etapa precedentă de analiză a lui p. În mod similar

analizei de mai sus, baza condiţională 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 condiţionale, se derivează

arborele FP-Tree condiţional al lui m, ⟨f:3, c:3, a:3⟩, o singură cale de tipare. După aceea

se apelează în mod recursiv funcţia de explorare bazată pe FP-Tree, astfel mine(⟨f:3, c:3,

a:3⟩m).

În figura 4.3-1.(b), este prezentată construirea bazei condiţionale de tipare şi a

arborelui condiţional pentru m, pornind de la exemplul 1 a cărui arbore FP-Tree global a

fost prezentat în figura 4.3-1 şi reprezentat în figura 4.3-1.(a). Apelarea funcţiei mine(⟨f:3,

c:3, a:3⟩m) 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 funcţiei mine(⟨f:3, c:3⟩am).

Al doilea, reprezentat în figura 4.3-1.(d), produce un tipar frecvent (cm:3) şi un

apel al funcţiei mine(⟨f:3⟩cm).

Al treilea, reprezentat în figura 4.3-1.(e), produce doar un singur tipar frecvent

(fm:3). Mai departe, apelul recursiv al funcţiei mine(⟨f:3, c:3⟩am) produce:

I. Tiparul frecvent (cam:3)

II. Un apel recursiv al funcţiei mine(⟨f:3⟩am) care produce tiparul frecvent (fam:3)

Page 88: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

88

III. Un alt apel recursiv al funcţiei mine(⟨f:3⟩cam) care produce tiparul frecvent

(fcam:3).

(a) FP-Tree global (b) FP-Tree condiţional a lui m

(c) FP-Tree condiţional (d) FP-Tree condiţional (e) FP-Tree condiţional

a lui am a lui cm a lui cam

Fig. 4.3-1. Arborele FP-Tree condiţional construit pentru m

În mod similar, apelul recursiv al funcţiei mine(⟨f:3⟩cm) va produce tiparul

frecvent (fcm:3). Astfel, întregul set de tipare frecvente implicând 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 condiţională de tipare a lui m: (f:2, c:2, a:2) (f:1, c:1, a:1, b:1)

Baza condiţională de

tipare a lui cm: (f:3)

root

f : 3

Baza condiţională de

tipare a lui am: (f:3, c:3)

root

f : 3

c : 3

Baza condiţională de

tipare a lui cam: (f:3)

root

f : 3

Articol Cap listă

f

c

a

Tabela antet

c : 3

a : 3

root

Page 89: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

89

Aceasta indică faptul că un arbore FP-Tree cu o singură cale poate fi explorat prin

producerea tuturor combinaţiilor de articole din cale.

Dacă se procedează la fel pentru nodul b, se derivă (b:3) şi trei căi {⟨f:4, c:3, a:3,

b:1⟩, ⟨f:4, b:1⟩ şi ⟨c:1, b:1⟩}. Deoarece baza condiţională de tipare frecvente a lui b este:

{⟨f:1, c:1, a:1⟩, ⟨f:1, c:1⟩}, ea nu generează nici un articol frecvent, aşadar 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 condiţional cu o singură cale. Astfel, setul său de tipare frecvente

poate fi generat prin generarea combinaţiilor lor. Concatenându-le cu (a:3), rezultă { (fa:3),

(ca:3), (fca:3)}.

Nodul c produce (c:4) şi o bază de sub-tipare {(f:3)}, aşadar setul de tipare

frecvente asociate cu (c:3) este {(fc:3)}.

Nodul f produce doar (f:4) fără o bază condiţionlă de tipare.

În tabelul 4.3-1, sunt sintetizaţi bazele condiţionale de tipare şi arborii FP-Tree

condiţionali pentru exemplul prezentat mai sus.

Articol Baza condiţională de tipare FP-tree condiţional

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 condiţionale

de (sub) - tipare

Proprietatea 4.2. (Proprietatea căii prefix) Pentru a calcula tiparele frecvente

pentru un nod ai din calea P, trebuie să se cumuleze doar sub-calea prefix a nodului ai din

O, fiecare nod din această sub-cale ar trebui să poarte aceeaşi frecvenţă ca şi nodul ai.

Raţionament: Fie nodurile de-a lungul căii P etichetate cu a1, a2, ..., an într-o

ordine astfel încât a1 este rădăcina sub-arborelui prefix, an este frunză a sub-arborelui P şi

ai (1 ≤ i ≤ n) este nodul referit. Bazându-ne pe procesul de construcţie a arborelui prezentat

Page 90: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

90

în algoritmul FP-Tree, pentru fiecare nod prefix ak (1 ≤ k ≤ i), sub-calea prefix a nodului ai

din P apare împreună cu ak exact de ai. count ori. Aşadar, orice astfel de nod prefix ar

trebui să aibă aceeaşi valoare a contorului ca şi nodul ai. De notat faptul că un nod postfix

am (1 ≤ m ≤ n) de-a lungul aceleaşi căi apare de asemenea împreună cu nodul ai. Cu toate

acestea tiparele cu am vor fi generate la examinarea nodului postfix am, incluzându-le aici

ar conduce la generarea redundantă de tipare care ar fi generate pentru am. Aşadar, trebuie

să examinăm doar sub-calea prefix a lui ai din P.

Astfel, în exemplul 2, nodul m este implicat în calea ⟨f:4, c:3, a:3, m:2, p:2⟩, pentru

calcularea frecvenţei 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 frecvenţa fiecărui nod

din calea prefix ar trebui să fie aceeaşi ca şi a nodului m. Asta înseamnă că frecvenţa

nodurilor din calea prefix ar trebui să fie ajustată la ⟨f:2, c:2, a:2⟩.

Pe baza acestei proprietăţi, sub-calea prefix a nodului ai din calea P poate fi copiată

şi transformată într-o sub-cale prefix a frecvenţelor ajustate, prin ajustarea frecvenţelor

fiecărui nod din calea sub-prefix la aceeaşi frecvenţă ca şi a nodului ai. Astfel, această

transformare este numită transformarea căii prefix a lui ai pentru calea P.

Setul de transformări a căii prefix a lui ai formează o bază de date de tipare a lui ai.

Astfel, o bază de tipare a lui ai este numită bază condiţională de tipare a lui ai şi este

notată astfel – „pattern baseai” . După asta se pot calcula toate tiparele frecvente asociate

cu ai în această bază condiţională de tipare a lui ai prin crearea unui arbore mic FP-Tree,

numit FP-Tree condiţional a lui ai (vezi fig. 4.3-1.(b), (c), (d), (e)).

Explorarea ulterioară poate fi făcută pe acest arbore mic FP-Tree condiţional.

Procesul de construire a bazei condiţionale de tipare şi a FP-Tree condiţional a fost

demonstrat în exemplul 2.

Acest proces executat recursiv şi tiparele frecvente pot fi obţinute prin metoda de

creştere a tiparelor (FP-Growth), bazată pe următoarea lemă şi corolar.

Lema 4.3. (Creşterea fragmentului) Fie α un itemset din baza de date D, B fiind

baza condiţională de tipare a lui α şi β un itemset din B. În acest caz, suportul lui α ∪ β

din D este echivalent cu suportul lui β din B.

Raţionament: În conformitate cu definiţia bazei condiţionale de tipare, fiecare sub-

tranzacţie din B apare dacă α apare în baza originală de tranzacţii D. Dacă un itemset β

Page 91: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

91

apare în B de ψ ori, el apare cu α în D de ψ ori. Deoarece toate itemset-urile sunt

colectate în baza condiţională de tipare a lui α, α ∪ β apare exact de ψ ori în D.

Din această lemă se poate deriva uşor un corolar.

Corolar 4.3. (Creşterea tiparelor) Fie α un itemset din baza de date D, B fiind baza

condiţională 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 întâi a

seturilor de articole frecvente de lungime 1 (1-itemset-uri), α, din baza de date D,

construirea bazei condiţionale de tipare a acestora şi apoi explorând 1-itemset-uri, β, în

bazele condiţionale de tipare, şi aşa mai departe. Aceasta înseamnă că procesul de

extragere a tiparelor frecvente poate fi privit şi ca extragerea mai întâi a seturilor de

articole frecvente de lungime 1 (1-itemset-uri) şi apoi progresiv creştem fiecare itemset

prin explorarea bazei condiţionale de tipare a acesteia, care poate fi executată similar.

Astfel, reuşim să transformăm problema extragerii k-itemset-urilor frecvente într-o

secvenţă de k probleme de explorare a 1-itemset-urilor frecvente prin intermediul unor

baze condiţionale de tipare. Nu este necesar să generăm nici o combinaţie de seturi de

candidaţi î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 combinaţiilor de sub-căi ale lui P cu suportul minim al

articolelor conţinute în sub-cale.

Raţionament: Fie o singură cale P în arborele FP-Tree ⟨a1:s1 → a2:s2 → ... →

ak:sk⟩. Suportul si al fiecărui articol ai (1 ≤ i ≤ k) este frecvenţa de apariţie a lui ai împreună

cu şirul său prefix. Astfel, orice combinaţie de articole din cale, cum ar fi ⟨ai ,..., aj⟩ (1 ≤ i, j

≤ k) este un tipar frecvent, cu frecvenţa lor de apariţie având 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.

Page 92: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

92

Pe baza celor arătate mai sus, în figura 4.3-2, este prezentat algoritmul FP-Growth

[HPY00] pentru extragerea tiparelor frecvente utilizând arborele FP-Tree prin creşterea

fragmentelor de tipare.

Fig. 4.3-2. Algoritmul FP-Growth

Cu ajutorul proprietăţilor şi lemelor prezentate anterior, se observă că algoritmul

FP-Growth descoperă setul complet de itemset-uri frecvente din baza de date

tranzacţională D.

Arborele FP-Tree al bazei de date D, conţine informaţiile complete ale bazei de

date legate de extragerea tiparelor frecvente care au suportul peste pragul minsup. Dacă

arborele conţine o singură cale, în conformitate cu lema 4.4, tiparele generate sunt

combinaţii ale nodurilor din cale, iar suportul este suportul minim al nodurilor din sub-căi.

Aceasta se realizează în liniile (1) – (3) ale procedurii FP-Growth. Altfel, se construieşte

baza condiţională de tipare şi se explorează arborele FP-Tree condiţional pentru fiecare

itemset frecvent ai. În conformitate cu proprietatea de creştere a fragmentelor, suportul

fragmentelor se ia ca fiind suportul itemset-urilor frecvente generate din baza condiţională

de tipare.

Intrare: Arborele tiparelor frecvente construit pe baza algoritmului FP-Tree utilizând baza de date D şi un suport minim s;

Ieşire: Setul complet de tipare frecvente; Metoda: Apelul funcţiei FP-Growth (FP-Tree, NULL) Procedure FP-Growth (Tree, α) {

(1) if Tree conţine o singură cale P (2) then for each combinaţie (notată cu β) a nodurilor din calea P do (3) generează tiparele α ∪ β cu support = suportul minim al

nodurilor din β (4) else for each ai din tabela antet Tree do { (5) generează tiparele β = ai ∪ α cu support = ai .support; (6) construieşte baza condiţională de tipare a lui β şi apoi (7) arboreal FP-Tree condiţional a lui β, notat Treeβ; (8) if Treeβ = ∅ (9) then call FP-Growth ( Treeβ, β)

} }

Page 93: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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ă Bai pentru fiecare articol frecvent

ai, fiecare constând din seturi de căi prefix transformate ale lui ai. Extragerea tiparelor

frecvente este apoi executată recursiv pe baza de tipare mică Bai cu construirea unui arbore

FP-Tree condiţional pentru Bai.

Aşa cum a reieşit din analiza algoritmului FP-Tree, un astfel de arbore al unei baze

de date este în general mult mai mic decât dimensiunea bazei de date. Similar, deoarece

arborele FP-Tree condiţional, „FP-Treeai”, este construit pe baza tiparelor Bai, el ar

trebui să fie mult mai mic şi niciodată mai mare decât Bai. Mai mult, o bază de tipare Bai,

este în general mult mai mică decât arborele său FP-Tree original, deoarece ea constă din

căile prefix transformate, referitor doar la unul din articolele frecvente, ai.

Astfel, procesul de extragere următor lucrează pe un set de baze de tipare şi arbori

FP-Tree condiţionali mult mai mici în general. Din acest motiv, procesul este în general

mult mai puţin costisitor decât generarea şi testarea unui număr 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

stăpâneşte („divide et impera”) iar scala de micşorare este impresionantă. În general

factorul de micşorare este în jur de 20 ∼100 pentru construirea unui arbore FP-Tree dintr-o

bază de date.

Se poate menţiona faptul că, chiar dacă o bază de date poate genera un număr

exponenţial de tipare frecvente, dimensiunea arborelui FP-Tree este în general destul de

mică şi niciodată nu va creşte exponenţial.

De exemplu, pentru un tipar frecvent de lungimea 100, ⟨a1 ,..., a100⟩, prin

construcţia arborelui FP-Tree rezultă numai o cale de lungimea 100 pentru tipar, cum ar fi

⟨a1 → ... → a100⟩. Algoritmul FP-Growth va genera însă în jur de 1030 tipare frecvente.

Deoarece arborele FP-Tree conţine numai o cale a tiparului frecvent de 100 de noduri, şi în

conformitate cu lema 4.4, nu este necesar să construim alţi arbori FP-Tree pentru a găsi

toate tiparele.

Page 94: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

94

4.4. Algoritmul AFOPT (Ascending Frequency Ordered Prefix-

Tree)

Problemele principale întâmpinate în procesul de extragere a tiparelor frecvente

folosind creşterea tiparelor este reducerea numărului de baze de date condiţionale

construite pe parcursul întregului proces de extragere şi reducerea costurilor de traversare

şi construcţie a fiecărei baze de date condiţionale. Prima depinde de modul în care sunt

sortate articolele frecvente şi de spaţiul de căutare explorat. A doua depinde de modul de

reprezentare a bazelor de date condiţionale şi de strategia de traversare a acestora.

Cu toate acestea, este foarte greu să reduci în acelaşi timp atât costurile de

construcţie cât şi cele de traversare a bazelor de date condiţionale deoarece scopul însăşi de

construire a unei baze condiţionale noi este acela de a evita o nouă traversare (deci

reducerea costului de traversare). Reducerea unuia dintre costuri implică de obicei mărirea

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 crescător după frecvenţă (ascending frequency ordered prefix-

tree - AFOPT) pentru a reprezenta bazele de date condiţionale, arbore parcurs de sus în jos

(top-down). Au demonstrat că această combinaţie de strategii, parcurgerea arborelui de sus

în jos şi ordonarea frecvenţelor ascendent minimizează atât numărul total de baze de date

condiţionale create cât şi costurile de traversare a acestora.

Spaţiul de căutare pentru extragerea tiparelor frecvente poate fi reprezentat folosind

arborele de enumerare introdus de Raymon [Ray92] şi utilizat mai târziu de Bayard

[Bay98], Agarwal [AAP00a], Burdick [BCG01] şi Gouda şi Zaki [GZ01] în cercetările

lor.

4.4.1. Prezentarea problemei

Se dă un set de articole (itemi) I = {i1, i2, …, in} ordonate crescător. Spunem că un

articolset l = {ia1, ia2, ..., ian} este sortat dacă ∀ j ∈ [1, m-1], iaj ≤ iaj+1. Având două

articolset-uri sortate t1 = {ia1, ia2, ..., ian} şi t2 = {ib1, ib2, ..., ibk} (m ≤ k), dacă ∀ j ∈ [1, m], iaj

= ibj, atunci t1 se numeşte prefix-ul lui t2. Dacă k = m+1, atunci spunem că t1 este prefix-ul

imediat a lui t2.

Page 95: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

95

Orice subset a lui I poate fi frecvent în D. Acestea formează spaţiul de căutare

extragerea tiparelor frecvente. Se poate construi un arbore pentru a reprezenta spaţiul de

căutare pe baza relaţiilor prefixate. Fiecare nod din arbore reprezintă un articolset. Între

articolset şi prefix-ul său imediat există o muchie. Acest arbore este denumit arborele

spaţiului de căutare sau arborele spaţiului tiparelor.

De exemplu, fiind dat un set de articole I = {a, b, c, d, e}, sortate în ordine

lexicografică, arborele spaţiului de căutare este prezentat în figura 4.4-1. Rădăcina

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 mări orice articolset l din arbore, acestuia i se pot adăuga doar acele

articole care se găsesc 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 adăuga un articol x

la p, pentru a forma un articolset frecvent mai lung, atunci x se numeşte 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 găseşte 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 găseşte î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 spaţiului de căutare

Page 96: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

96

Prin extinderea unui articolset frecvent l cu una dintre extensiile sale candidat,

obţinem 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 găsi

itemi frecvenţi pe care îi sortează în ordine crescătoare după frecvenţa lor de apariţie. 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 condiţională a articolelor frecvente.

Baza de date condiţională a unui articlo i include toate tranzacţiile care conţin articolul i,

iar articolele care nu sunt frecvente şi cele care se găsesc înaintea lui i sunt îndepărtate din

fiecare tranzacţie. La stocarea ramurilor simple din arborele prefixat se folosesc tablouri

(array) pentru a salva spaţiu şi a micşora costurile de construcţie a arborelui. Fiecare nod

din arborele AFOPT conţine trei tipuri de informaţii: identificatorul articolului (ID),

numărul articolset-urilor corespunzătoare căii de la rădăcină până la acel nod şi pointerii

care indică fii nodului respectiv. Fiecare element din tablou păstrează două primele două

informaţii. Î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 tranzacţională 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 crescătoare a frecvenţelor lor.

TID Tranzacţii Tranzacţiile 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. Tranzacţiile bazei de date D

Page 97: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

97

La a doua parcurgere a bazei de date, tranzacţia 1 devine T1 = {c, e, f, m, a},

deoarece articolele h şi p au fost îndepărtate pentru că nu sunt frecvente iar cele rămsei au

fost sortate. Se creează astfel o ramură cu fiecare intrare cu numărul 1. Tranzacţia 2, devine

T2 = {c, f, m, a} în mod analog, după îndepărtarea articolelor nefrecvente şi sortarea celor

rămase. Aceasta are în comun cu tranzacţia 1 un prefix c, deci contorul suport al nodului c

este incrementat la 2, el având 2 fii e şi f. În acest mod sunt inserate toate tranzacţiile,

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 p1, ..., pm este

mulţimea nodurilor din T a căror identificator este i, atunci baza de date condiţională a

articolului i este reuniunea subarborilor a căror rădăcină este i.

De exemplu, în arborele din figura 4.4-2., baza de date condiţională a articolului c

este reprezentată de primul subarbore al rădăcinii deoarece, doar rădăcina acestuia este

articolul c. Baza de date condiţională a articolului e conţine 2 subarbori: unul este primul

subarbore al nodului c iar celălalt este al doilea subarbore al rădăcinii.

Arborele AFOPT este o reprezentare compactă a bazei de date condiţionale. El

conţine informaţii complete pentru a putea extrage articolset-urile frecvente din baza de

date originală. Dimensiunea arborelui AFOPT depinde de numărul total de articole

frecvente care apar în baza de date, dar de obicei este mult mai mică decât acesta. După

construirea arborelui AFOPT, restul operaţiei de extragere a tiparelor frecvente se va

efectua doar asupra arborelui, fără a mai fi nevoie să parcurgem baza de date.

Algoritmul traversează arborele (spaţiul de căutare) în adâncime. Mai întâi verifică

prima bază de date condiţională Dc (primul subarbore al rădăcinii), apoi verifică bazele de

date condiţionale descendente lui c, până când 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:13

f:1

m:1

a:1

m:1

a:1 a:1

m:1 d:1 m:1 a:1

a:1 a:1

Page 98: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

98

c. După terminarea examinării lui Dc, acesta nu va mai fi necesar în procesul de extragere.

Toţi subarborii săi vor fi reuniţi cu nodurile fraţi. Noduri fraţi sunt acele noduri care sunt

pe acelaşi nivel şi au acelaşi părinte. Acest pas se numeşte de îndepărtare (push-right step).

În continuare, al doilea subarbore al rădăcinii devine primul subarbore al acesteia,

fiind reprezentarea completă a bazei de date condiţionale a celui de-al doilea item. Procesul

de extragere va continua asupra lui.

În procesul de extragere asupra unei baze de date condiţionale Tl al articolset-ului l,

se execută trei paşi:

• pasul de numărare – Tl este traversat în adâncime de sus în jos, fiecare nod al său fiind

vizitat exact o dată, fiind adunate suporturile tuturor articolelor din Tl. Ieşirea acestui

pas este setul de extensii frecvente ale articolset-ului l.

• pasul de construire - Tl este traversat a doua oară pentru a construi o a doua structură

AFOPT (Tl’) care va stoca baza de date condiţională a extensiilor frecvente ale lui l.

• pasul de îndepărtare – este executat imediat ce sunt extrase toate tiparele care au

prefixul l. Subarborii lui Tl sunt uniţi cei ai cu nodurilor fraţi. Operaţia de unire implică

corectarea pointerilor şi actualizarea suportului, prin traversarea celor doi arbori

deodată. Pe parcursul traversării arborilor se adună suportul aceluiaşi nod şi se

corectează pointerii în cazul în care două noduri cu acelaşi identificator nu au acelaşi

set de fii. Durata acestei operaţii depinde de dimensiunea celui mai mic arbore, în cazul

cel mai nefavorabil, şi este mult mai mică decât dimensiunea celui mai mic arbore în

cazul mediu. Pe parcursul operaţiei de unire nu vor fi create noduri noi, ci vor fi doar

îndepărtate nodurile duplicat.

Considerând î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

Page 99: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

99

În primul rând, vor fi extrase din primul subarbore al rădăcinii toate tiparele care

conţin articolul c. Extensia frecventă a lui c este {a, m}. Astfel, se va construi o nouă

structură AFOPT din Dc , care reprezintă baza de date condiţională a lui ca şi cm, aşa 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 încât putem să

scoatem direct toate subseturile lui cam care conţin c, finalizând procesul de extragere

asupra lui Dc.

Fig. 4.4-4. Reunirea fiilor nodului c cu nodurile fraţi ale lui c

La pasul următor, se reunesc toţi subarborii nodului c cu nodurile fraţi din dreapta

ale acestuia, proces ilustrat în figura 4.4-4. Subarborele care are rădăcina 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:13

a:2

f:1

m:1

a:1

NULL

merge merge

Page 100: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

100

subarborele e, subarborele cf devine al doilea fiu al rădăcinii, şi subarborele cd este reunit

cu subarborele d. După această operaţie, subarborele care are rădăcina e devine primul

subarbore al rădăcinii şi reprezintă baza condiţională a lui e. Procesul de extragere continuă

din acest moment asupra acestui subarbore, şi aşa mai departe.

Corectitudinea algoritmului AFOPT este garantată de faptul că, de câte ori un

subarbore devine primul subarbore al rădăcinii, el reprezintă următoarea bază condiţională

care va fi explorată în totalitate. Cu alte cuvinte, într-o structură AFOPT, baza condiţională

a unui articol (item) i include toţi subarborii care au ca şi rădăcină nodul aferent articolului

i. Presupunând că p este un astfel de subarbore şi p este de asemenea un fiu al rădăcinii,

atunci toţi ceilalţi subarbori trebuie să apară ca şi noduri fraţi stângi ai lui p în conformitate

cu proprietatea structurii AFOPT. În algoritmul AFOPT toţi aceşti subarbori sunt reuniţi

progresiv cu subarborele p. Aşadar, primul subarbore al rădăcinii conţine întotdeauna

informaţiile complete ale bazei condiţionale 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 rădăcina arborelui AFOPT reprezentând toate bazele condiţionale ale extensiilor frecvente ale nodului l;

min_sup este pragul suportului minim; Descriere: 1: if există doar o singură ramură în arbore care are rădăcina root then 2: extrage tiparele şi return; 3: for all fii pchild ale rădăcinii root do

4: extrage tiparul s = l ∪ {pchild.item}; 5: traversează subarborele care are rădăcina pchild, notat F, pentru a

găsi itemi frecvenţi şi îi sortează în ordine crescătoare a frecvenţelor;

6: if ||F|| > 1 then 7: traversează subarborele cu rădăcina pchild pentru a construi o nouă

structură AFOPT cu rădăcina 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); // reuneşte cei doi subarbori

Page 101: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

101

4.5. Studiu comparativ de performanţă

În ciuda tuturor eforturilor depuse de cercetători în ultimii ani, algoritmii care

generează şi testează candidaţi au două dezavantaje:

� Toate necesită generarea unui număr foarte mare de articolset-uri candidat,

multe dintre ele dovedindu-se a fi puţin frecvente după parcurgerea bazei de

date

� Toate necesită parcurgerea bazei de date de mai multe ori, în cel mai

defavorabil caz, numărul de parcurgeri a bazei de date fiind egal cu

lungimea maximă a tiparelor frecvente.

Abordarea prin creşterea tiparelor încearcă să evite aceste două dezavantaje

construind o bază de date condiţională pentru tiparele frecvente. Algoritmii propuşi pentru

aceasta diferă în principal prin maniera prin care este reprezentată baza condiţională. Han

[HPY00] foloseşte o structură de date compactă FP-Tree pentru a reprezenta baza de date

condiţională care este o combinaţie a structurilor arbore prefixat (prefix-tree) şi legătura

nodurilor (node-link). Liu [HPY00] foloseşte o structură de date compactă AFOPT pentru a

reprezenta baza de date condiţională.

Aşa cum am arătat anterior, fiind dată o bază de date condiţională, aceasta poate fi

reprezentată folosind două structuri şi câte o strategie de parcurgere aplicată fiecăreia din

acestea:

1. structura FP-Tree, în care articolele sunt sortate în ordine descrescătoare a

frecvenţei lor de apariţie, şi strategia de parcurgere a arborelui de jos în sus

2. structura AFOPT, în care articolele sunt sortate în ordine crescătoare a

frecvenţei lor de apariţie, şi strategia de parcurgere a arborelui de sus în jos

La prima vedere, se pare că algoritmul AFOPT necesită mai multe traversări ale

bazei de date decât algoritmul FP-Growth. Dar folosirea structurii AFOPT pentru a

reprezenta bazele de date condiţionale duce la obţinerea unor costuri de traversare minime

iar utilizarea ordonării crescătoare după frecvenţă ne conduce la construirea unui număr

minim de baze de date condiţionale. Costurile de traversare ale algoritmului FP-Tree sunt

întotdeauna mai mari decât în cazul algoritmului AFOPT. Numărul total de noduri vizitate

de algoritmul FP-Growth este egal cu lungimea totală a ramurilor arborelui prefixat.

Page 102: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

102

Numărul total de noduri vizitate de algoritmul AFOPT este egal cu dimensiunea structurii

AFOPT, care este mai mică decât lungimea totală a ramurilor arborelui prefixat. Aşadar,

algoritmul AFOPT are nevoie de un număr mai mic de traversări decât algoritmul FP-

Growth.

Numărul total de baze de date condiţionale construite pe parcursul procesului de

extragere a tiparelor frecvente depinde ordinea în care sunt sortate articolele şi în care este

explorat spaţiul de căutare. Ordonarea crescătoare după frecvenţă minimizează numărul

total de baze condiţionale. În cazul structurii FP-Tree articolele sunt sortate în ordine

descrescătoare a frecvenţei lor, motiv pentru care arborele trebuie traversat de jos în sus, de

la nodurile frunze spre rădăcină.

În cazul în care baza de date condiţională a unui articolset poate fi reprezentată

printr-o singură ramură, se pot enumera toate tiparele frecvente conţinute direct în acesta şi

nu este necesară construirea unei noi baze condiţionale chiar dacă articolset-ul respectiv

are mai mult de o extensie frecventă. Structura AFOPT, aşadar, ne ajută să reducem

numărul de baze de date condiţionale construite, deoarece bazele condiţionale sunt de

obicei reprezentate printr-o singură ramură în structura AFOPT.

Folosind structura AFOPT, numărul de noduri vizitate este minim. Dacă baza de

date condiţională 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 condiţională poate fi reprezentată printr-o

singură ramură în structura AFOPT, ea poate conţine mai multe ramuri în arborele FP-

Tree. În structura FP-Tree articolele sunt sortate în ordinea descrescătoare a frecvenţelor

lor ceea ce permite distribuirea prefixată. Aşadar, FP-Tree este o structură mai compactă

decât AFOPT. Structura AFOPT, pe de altă parte poate conţine mai multe noduri decât

FP-Tree deoarece ordonarea crescătoare a frecvenţelor reduce posibilitatea distribuirii

prefixate.

Algoritmul FP-Growth păstrează legătura spre nodul părinte şi legături spre fiecare

nod, ceea ce implică costuri suplimentare la construcţia arborelui şi măreşte spaţiul

necesar. Pentru a micşora spaţiul de stocare, algoritmul AFOPT utilizează structura tablou

(array) pentru a stoca o ramură a arborelui, ceea ce duce şi la micşorarea costurilor de

construcţie.

Costurile suplimentare de traversare apărute în algoritmul AFOPT sunt cauzate de

etapa de reunire spre dreapta. Numărul de subarbori care constituie baza de date

condiţională, în cazul cel mai defavorabil, depinde exponenţial de numărul de articole

Page 103: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

103

precedente celui considerat. Numărul de operaţii de reunire necesare este egal, în cazul cel

mai defavorabil, cu numărul de articole precedente celui considerat.

Dacă aplicăm atât algoritmul AFOPT cât şi algoritmul FP-Growth direct pe nivelul

3 a arborelui bazei de date luate ca exemplu, vom obţine arborele tiparelor frecvente, iar

după scanarea bazei de date vom obţine rezultatele din figura 6.3-6.

Algoritmii au fost implementaţi cu ajutorul limbajului de programare Java şi

compilaţi cu ajutorul platformei Eclipse. S-a folosit pentru testări un calculator Athlon XP

la 1.6 GHz, cu memorie de 256 MBRAM, sub sistemul Microsoft Windows XP

Professional şi aceleaşi condiţii 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 creşterii tiparului şi foloseşte o structură

de arbore prefixat (prefix-tree) pentru a reprezenta baza de date condiţională. El foloseşte 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 adâncime iar

articolele sunt sortate în ordine crescătoare a frecvenţei lor de apariţie. Analiza şi

rezultatele studiilor efectuate arată că prin combinarea acestor două metode rezultatul

obţinut este mai eficient decât combinarea traversării de jos în sus a arborelui şi sortarea în

ordine descrescătoare a frecvenţelor folosite de algoritmul FP-Growth.

Page 104: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

104

5. DESCOPERIREA REGULILOR DE ASOCIERE

GENERALIZATE (MULTI-NIVEL)

5.1. Definiţii şi terminologie

Extragerea regulilor de asociere din seturi mari de date a fost şi este în continuare

subiectul multor cercetări [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 cunoştinţe de pe mai

multe nivele conceptuale.

Pe parcursul studierii procesului de extragere de cunoştinţe (KD), cercetătorii au

încercat prin diverse metode să îndepărteze dintre regulile generate pe cele neinteresante,

propunând câteva măsuri de cuantificare a utilităţii sau gradului de interes pe care regula

respectivă o prezintă [HF95].

Acest fapt, a condus cercetările spre căutarea 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ă flexibilităţii concentrării atenţiei asupra seturilor diferite de date şi a

posibilităţii aplicării unor praguri diferite ale suportului sau confidenţei pentru nivele

diferite.

Metodele de extragere de cunoştinţe de pe mai multe nivele conceptuale au fost, în

general, dezvoltate prin extinderea tehnicilor existente pentru un singur nivel.

Aşadar, 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

Page 105: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

105

Prima cerinţă poate fi satisfăcută oferind concepte taxonomice (clasificabile pe

baza relaţiilor naturale dintre ele) de la nivelul primitiv la nivelele superioare. În cele mai

multe aplicaţii aceste date sunt stocate în baze de date.

Taxonomia presupune organizarea datelor sub formă de ierarhie care permite

descoperirea unor relaţii 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, observăm că jachetele sunt de stradă şi că acestea sunt

îmbrăcăminte.

Regulile de asociere de bază restricţionează ca, pentru apariţia unui articol (item) în

acea regulă să fie pe nivelul frunză al ierarhiei taxonomice. Regulile obţinute la nivelele

inferioare pot să nu aibă suportul minim. În multe domenii de aplicare, numărul 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 găsite. Clasificarea taxonomică ne ajută de asemenea la

curăţarea regulilor neinteresante sau redundante.

În fig. 5.1-2 este prezentat graful unei ierarhii taxonomice multiple, care clasifică

produsele şi în funcţie de perioada din an de vânzare al acestora (de sezon, fără sezon).

Pe baza conceptului de ierarhie şi a câtorva algoritmi existenţi pentru extragerea

regulilor de asociere simplu-nivel, Han [HF95], [HF97], Rajkumar [RKS03] şi alţii 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).

îmbrăcăminte

jachete sandale

haine de stradă încălţăminte

pantaloni de ski

izmene pantofi saboţi

Page 106: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

106

Fig. 5.1-2. Exemplu de ierarhie taxonomică multiplă

În timp, s-au conturat mai multe direcţii 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 acelaşi prag pentru suportul minim şi aceeaşi confidenţă minimă.

Metoda este simplă dar poate oferi rezultate nedorite, în primul rând deoarece

suportul mare apare de obicei la nivele mari de abstractizare. Dacă dorim să obţinem

asocieri puternice la nivele relativ scăzute de abstractizare, pragul suportului minim trebuie

redus substanţial. Aceasta duce în final la obţinerea multor asocieri neinteresante la nivele

înalte sau intermediare. În al doilea rând, aşa cum se arată în cele mai multe dintre studiile

realizate în domeniu [AIS93], [AS94], este greu de obţinut reguli puternice la nivelul

conceptual primitiv, fiind mai uşor la nivele înalte conceptuale.

Aceste dezavantaje prezentate au dus la o altă cale de rezolvare a problemei. S-a

încercat varianta aplicării unor praguri diferite pentru suportul minim şi pentru confidenţa

minimă la diferite nivele de abstractizare. În special, s-a explorat cazul cel mai comun,

scăderea pragului pentru suportul minim odată cu nivelele mai scăzute de abstractizare.

Aceasta a condus la obţinerea unor reguli de asociere interesante la nivele conceptuale

multiple, care, pe lângă faptul că sunt diferite pentru nivele diferite, au şi un potenţial

îmbrăcăminte

haine de stradă încălţăminte

pantaloni de ski

jachete izmene pantofi saboţi sandale

iarnă vară

de sezon fără sezon

Page 107: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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 confidenţei la diferite nivele.

Rajkumar a arătat în lucrarea sa [RKS03] că bazele de date multi-nivel folosesc

tabele de tranzacţii codificate ierarhic în locul tabele de tranzacţii originale. Acest lucru ne

ajută în cazul aplicaţilor care utilizează doar o parte din categoriile de articole din baza de

date (de exemplu alimente). Astfel, se pot colecta mai întâi seturile de date relevante şi

abia apoi se poate lucra doar cu articolset-urile relevante.

Se porneşte de la presupunerea că o bază de date conţine:

1. un set de date format din articol (item) şi descrierea sa, de forma ⟨Ai ,

descrierei⟩, unde Ai ∈ I

2. un set de tranzacţii T, ce conţine tranzacţiile de forma ⟨Ti, {Ap, .., Aq}⟩, unde

Ti este identificatorul tranzacţiei şi Ai ∈ I (pentru i = p, ..., q)

Putem spune că un tipar sau un articolset (itemset), A este unul din articolele

(itemii) Ai sau un set de articole (itemi) conjunctivi Ai ∧ ... ∧ Aj, unde Ai , ... , Aj, ∈ I.

Suportul tiparului A dintr-un set T, notat s (A/T) este numărul de tranzacţii (din T)

care conţine pe A împărţit la numărul total de tranzacţii din T.

Confidenţa relaţiei 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 când tiparul A apare în

T.

α (A ⇒ B/T) = s (A ∧ B/T) / s (A/T) (5.1.1)

Se ştie că pentru a găsi tiparele care apar relativ frecvent în reguli puternice,

utilizatorul trebuie să specifice suportul minim smin şi confidenţa minimă αmin.

În cazul extragerii regulilor de asociere multi-nivel pot fi specificate valori diferite

pentru suportul minim şi/sau pentru confidenţa minimă pentru diferite nivele. Suportul

unui articol dintr-o ierarhie taxonomică nu este egal cu suma suporturilor fiilor săi, atâta

timp cât unii dintre fii acestuia pot apare într-o singură tranzacţie.

Pentru a înţelege algoritmii de extragere a regulilor de asociere generalizate (multi-

nivel), se folosesc următoarele notaţii. Un articolset (itemset) Z)

este numit un strămoş

(predecesor) a lui Z dacă Z, Z)

⊆ I şi ZZ)

= şi dacă se poate obţine Z)

din Z prin

Page 108: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

108

înlocuirea unuia sau mai multor itemi din Z cu strămoşii lor. Nu este important să calculăm

suportul aşteptat al lui Z din Z)

, doar dacă au acelaşi număr de articole.

De exemplu, suportul pentru {îmbrăcăminte} nu ne oferă nici un indiciu despre

suportul pentru {haine de stradă, izmene}.

Regulile YX ⇒)

, YX)

⇒ sau YX))

⇒ se numesc strămoşii regulei YX ⇒ .

Fiind dat un set de reguli, regula YX))

⇒ este numită strămoş apropiat a regulei

YX ⇒ , dacă nu există nici o regulă Y~

X~ ⇒ astfel încât YX

))⇒ să fie un strămoş a

regulei Y~

X~ ⇒ şi Y

~X~ ⇒ să fie un strămoş a regulei YX ⇒ . Analog se aplică

definiţia şi pentru regulile YX ⇒)

şi YX)

⇒ .

Exemplu:

Baza de date D Tipare frecvente

Reguli

Fig. 5.1-3. Exemplu de extragere de reguli de asociere multi-nivel

Tranzacţii Articole (Itemi)

1 Izmene

2 Jachete, saboţi

3 Pantaloni de ski, saboţi

4 Pantofi

5 Pantofi

6 Jachete

Articolset (Itemset) Suport

{jachete} 2

{haine de stradă} 3

{îmbrăcăminte} 4

{pantofi} 2

{saboţi} 2

{încălţăminte } 4

{haine de stradă, saboţi} 2

{îmbrăcăminte, saboţi} 2

{haine de stradă, încălţăminte} 2

{îmbrăcăminte, încălţăminte} 2

Regula Suport Confidenţa

{haine de stradă} ⇒ {saboţi} 0.33 0.67

{haine de stradă} ⇒ {încălţăminte} 0.33 0.67

{saboţi} ⇒ {haine de stradă} 0.33 1.00

{saboţi} ⇒ {îmbrăcăminte} 0.33 1.00

Page 109: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

109

Fiind dat un articolset I ={îmbrăcăminte, haine de stradă, jachete, pantaloni de

ski, izmene, încălţăminte, pantofi, saboţi, sandale} ierarhia taxonomică din figura 5.1-1. Se

consideră smin = 0.3 (de ex. 2 tranzacţii) şi αmin = 0.6. Articolset-urile frecvente rezultate şi

regulile corespunzătoare acestor articolset-uri sunt prezentate în figura 5.1-3.

Observăm că regulile {pantaloni de ski} ⇒ {saboţi} şi {jachete} ⇒ {saboţi} nu

au suport minim, în schimb regula {haine de stradă} ⇒ {saboţi} are.

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

Pe baza conceptului de ierarhie şi a câtorva 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

paşi:

1. găsirea articolset-urilor frecvente

2. utilizarea articolset-urilor frecvente pentru a genera setul de reguli dorite

3. curăţarea 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 scăzut sau pot apărea dificultăţi 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 constrângeri pentru pragul suport care să

specifice care suport minim este solicitat pentru fiecare articol-set, astfel încât 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.

Page 110: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

110

Ţinând cont de faptul că algoritmii existenţi presupun un suport minim uniform,

cea mai bună soluţie este de a aplica un astfel de algoritm pentru suportul minim cel mai

scăzut specificat şi apoi să filtrăm rezultatele folosind un suport minim mai ridicat. Această

metodă va genera o mulţime de candidaţi care apoi vor fi îndepărtaţi. Pe baza experienţei

acumulate, s-a demonstrat că această creştere a candidaţilor generează automat o creştere

non-liniară a timpului de execuţie şi o deteriorare drastică a performanţelor, datorită

transferurilor dintre memoria principală şi disc în timpul calculării suportului, când

candidaţii sunt citiţi de pe disc la fiecare tranzacţie.

Din acest motiv, Wang propune noţiunea de constrângere suport (support

constraint) definită astfel:

O constrângere suport (SC) are forma SCi (B1,..., Bs) ≥ θi (sau simplu SCi ≥ θi),

unde s ≥ 0.

Fiecare Bi, 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 Bi nu are importanţă, acestea putându-se chiar repeta. O SC este

întemeiată dacă nu conţine nici o variabilă, altfel este neîntemeiată. În acest caz, SC poate

fi instanţiată prin înlocuirea fiecărei variabile cu un bin.

Definiţia de mai sus specifică faptul că orice set de articole care conţine cel puţin

un articol din Bi are suportul minim θi.

Constrângerile suport pot fi interpretate în două moduri:

- interpretare deschisă – specificând câteva articole din articolset

- interpretare închisă – specificând toate articolele din articolset

Un articolset I se identifică cu o SC întemeiată SCi ≥ θi în interpretarea deschisă

dacă I conţine cel puţin un articol din fiecare bin în SCi şi aceste articole sunt distincte. Un

articolset I se identifică cu o SC întemeiată SCi ≥ θi în interpretarea închisă dacă I conţine

exact un articol din fiecare bin în SCi şi aceste articole sunt distincte.

Suportul minim al articolului I, notat minsup(I), este cel mai scăzut θi dintre toate

SCi ≥ θ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ă Bi şi suportul minim dintr-o SC în funcţie de aplicaţie

pe baza suporturilor (min, max, sau avg), pe baza ierarhiei conceptuale, pe baza specificării

atributelor articolelor, sau uneori, pe baza enumerării tuturor articolelor dintr-un bin.

Scopul acestui nou algoritm propus de Wang este de a forţa astfel de constrângeri

suport la generarea articolset-urilor pentru a curăţa cât mai devreme candidaţii nefolositori.

Page 111: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

111

Ideea de bază a algoritmului este de a forţa constrângeri suport urmărind

„înlănţuirea dependenţelor” din generarea APRIORI a articolset-urilor (funcţia APRIORI-

Gen). Aceste dependenţe sunt descrise cel mai bine prin arborele schemei de enumerare.

Aici, fiecare nod (exceptând nodul rădăcină) este etichetat printr-un bin Bi. Un nod v

reprezintă schema dată prin etichetele B1...Bk urmărind calea de la rădăcină până la nodul v.

Exemplu: Considerăm o bază de date având 5 tranzacţii şi constrângerile 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 conţine un articol din B1, şi un articol din B3, se identifică atât cu constrângerea

SC1(B1, B3) ≥ 0.2 cât şi cu SC2(B3) ≥ 0.4. Cu toate astea, minsup(I) = 0.2 deoarece este cel

mai scăzut suport minim folosit.

Urmărind exemplul considerat, dintre articolset-urile {0,2}, {0,2,3} şi {2,3,4} doar

primul este frecvent, următoarele 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

SC3(B2) ≥ 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 SC0() ≥ 0.8.

Dacă arborele schemei de enumerare conţine două noduri înlănţuite reprezentând

schemele s1=B1...Bk-2Bk-1 şi s2=B1...Bk-2Bk, unde s1 se găseşte la stânga lui s2, atunci arborele

schemei de enumerare conţine de asemenea nodul care reprezintă schema s=B1...Bk-2Bk-1Bk,

care este fiul nodului s1. s1 şi s2 se numesc în acest caz schemele generatoare ale lui s. De

exemplu, în figura 5.2-2. B2B1 depinde de B2 şi B1, dar nu depinde de B1B0 sau de B3.

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

B0 1,7,8

B1 2,6

B2 4,5

B3 0,3

SC specificate

SC0() ≥ 0.8

SC1(B1, B3) ≥ 0.2

SC2(B3) ≥ 0.4

SC3(B2) ≥ 0.6

Page 112: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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 funcţie 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 defineşte suportul minim impus - Pminsup care este o funcţie din arborele

schemei de enumerare T, cu valori în intervalul [0..1] şi care satisface următoarele:

- Completitudine: pentru fiecare schemă s din T, se difineşte Pminsup(s) ≤ minsup(s) –

aceasta asigură că

- Proprietatea Apriori: pentru fiecare schemă s şi schemele sale generatoare s1 şi s2,

oricând articolset-ul {i1,...,ik-2, ik-1, ik}lui s este frecvent, la fel sunt şi articolset-urile

{i1,...,ik-2, ik-1} a lui s1 şi {i1,...,ik-2, ik}a lui s2.

- Maximalitate: Pminsup este maximal respectând cele două cerinţe de mai sus

Algoritmul extinde arborele schemei de enumerare iterativ, cu un nivel la fiecare

iteraţie. În fiecare iteraţie k există două faze.

Faza 1. Se generează noi noduri si la nivelul k şi se determină Pminsup(si). 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 constrângeri suport SCs pentru acel

nod. Extinderea arborelui la nivelul k, se realizeaă în trei paşi:

Pasul 1. Crează nodurile fii si de pe nivelul k

Pasul 2. Ordonează aceste noduri fie selectând eticheta care specifică cel mai

scăzut suport minim ca următoare înlănţuire, fie selectând eticheta care specifică cele mai

multe constrângeri suport ca şi următoarea înlănţuire.

Pasul 3. Calculează Pminsup(si) aşa cum am arătat mai sus.

Faza 2. Se generează frequent(Pminsup) la nodurile si la fel ca şi în algoritmul APRIORI.

B0 B1 B0 B1 B3 B0 B2 B1 B2 B0

B3 B2 B1 B0

Page 113: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

113

5.2.1.1. Avantajele algoritmului

În general, în lumea reală, suportul minim nu este uniform. Excepţiile şi deviaţiile

au adesea un suport minim mai scăzut decât tendinţa generală. Suportul solicitat variază

odată cu suportul articolelor care alcătuiesc articolset-ul respectiv şi totodată variază la

diferite nivele conceptuale ale bazei de date. În acelaşi timp, clasificările ierarhice ale

bazelor de date necesită descoperirea unor reguli de asociere de pe diferite nivele

conceptuale, aşadar, necesită un suport minim neuniform.

Folosind constrângeri pentru suportul minim, aşa cum face algoritmul ADAPTIVE

APRIORI, se obţine un timp de execuţie mult mai bun la generarea articolset-urilor.

De asemenea, prin forţarea constrângerilor suport la generarea articolset-urilor se

obţine curăţarea cât mai devreme candidaţii nefolositori.

5.2.2. Algoritmul ML_T2L1

O altă metodă de extragere a regulilor de asociere multi-nivel este prezentată în

paragraful următor. Aceasta foloseşte tabele de tranzacţii cu informaţia codificată ierarhic

în locul tabelelor originale din bazele de date relaţionale. Acest lucru se bazează pe

următoarele consideraţii. În primul rând, o interogare de extragere de date este de obicei

relevantă doar unora dintre tranzacţiile bazei de date şi nu tuturor. În acest caz este util să

colectăm mai întâi setul de date relevante şi în continuare să lucrăm doar pe acesta. În al

doilea rând, codificarea poate fi făcută în acelaşi timp cu colectarea setului de date

relevante, astfel se evită parcurgerea bazei de date doar pentru codificarea datelor. În al

treilea rând, un şir de date codificat, care reprezintă o poziţie în ierarhie, necesită mai

puţini biţi decât identificatorul obiectului corespunzător sau un cod de bare. Mai mult,

codificarea realizează unirea sau eliminarea mai multor articole datorită codurilor lor

identice, rezultând astfel un tabel de tranzacţii de dimensiuni reduse.

Algoritmul ML_T2L1 propus de Han J. şi Fu Y. în lucrarea [HF95], găseşte seturi

mari de articole pentru extragerea unor reguli de asociere multi-nivel puternice în baze de

date tranzacţionale. 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.

Page 114: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

114

1. La nivelul 1, 1-itemset-ul L[l,1] (1-articolset-ul) este obţinut din T[1] de către funcţia

get_large_itemsets (T [1], l). La orice alt nivel l, L[l,1] este obţinut din T[2] de

către funcţia 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 fiecărei

tranzacţii t în T[1] (sau T[2]), incrementând contorul suport al articolului i din

articolset, dacă contorul acestuia nu a fost incrementat cu t. După parcurgerea tabelei

de tranzacţii, se filtrează (elimină) acele articole a căror suport este mai mic decât

minsup[l].

2. Tabelul de tranzacţii filtrat T[2] este obţinut de funcţia get_filtered_t_table (T[1],

L[1,1]), care foloseşte L[1,1] ca un filtru pentru a elimina: (1) orice articol care nu

este frecvent de la nivelul 1 şi (2) tranzacţiile care nu conţin articole frecvente.

3. Tabelul setului de articole frecvente k (pentru k > 1) este obţinut în doi paşi:

a. Se calculează mulţimea de candidaţi din L[l, k-1], aşa cum s-a făcut în

algoritmul APRIORI cu ajutorul funcţiei Apriori-gen. Mai întâi se generează

un set Ck în care fiecare articolset conţine k articole, obţinuţi prin reuniunea

a două articole (k-1) în L[l, k] care conţine (k-2) articole. Apoi se şterge k-

articolset-ul c din Ck dacă există un subset k-articol care nu se găseşte.

b. Pentru fiecare tranzacţie t din T[2], pentru fiecare subset c al k-articolset-

ului t, se incrementează contorul suport a lui c, dacă acesta se găseşte în

setul de candidaţi Ck. Apoi se adaugă în L[l, k] fiecare c (împreună cu

suportul său) dacă suportul său este mai mare decât minsup[l].

4. Mulţimea de articole frecvente la nivelul l, LL[l] este reuniunea tuturor L[l, k]

pentru toţi k.

După găsirea articolset-urilor frecvente, se poate obţine mulţimea regulilor de

asociere pentru fiecare nivel l din mulţimea LL[l] pe baza confidenţei minime la acest

nivel, minconf[l]. Pentru fiecare articolset frecvent r, dacă avem un subset a nevid, sau

Page 115: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

115

regula r este inserată în rule_set[l], „a → r - a” dacă support (r) / support (a) ≥ minconf

[l], unde minconf[l] este confidenţa minimă la nivelul l.

Algoritmul ML_T2L1 moşteneşte câteva tehnici de optimizare importante din

cercetările anterioare pentru extragerea regulilor de asociere [AIS93], [AS94]. De

exemplu, funcţia get_candidate_set urmăreşte funcţia Apriori-gen din algoritmul APRIORI

[AS94]. Funcţia get_subsets (Ck, 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 tranzacţională conţinând 2 relaţii: articole (vezi tabelul

5.2-1) şi vânzări (vezi tabelul 5.2-2).

Intrare: (1) T[1]o ierarhie codificată de date şi un set tranzacţii relevante ale bazei de date, de forma ⟨TID, itemset⟩,

(2) pragul suportului minim (minsup[l]) pentru fiecare nivel l. Ieşire: 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. Începând de la nivelul 1, se obţine pentru fiecare nivel l, setul k de itemi,

L [l, k], pentru fiecare k şi setul LL [l] pentru toţi k. Funcţia:

(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) {Ck := get_candidate_set (L[l, k-1]);

(9) foreach transacţie t ∈ T[2] do (10) { Ct := get_subsets ( Ck, t); (11) foreach candidat c ∈ Ct do c.support ++; (12) } (13) L[l, k] := { c ∈ Ck c.support ≥ minsup[l]} (14) }

(15) LL [l] := ∪k L [l, k]; (16) }

Page 116: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

116

alimente

lapte pâine carne

graham albă 3,5% 1,8%

Dorna Milli

Cod_bare categorie firmă conţinut dimensiune valabilitate preţ

17325 lapte Dorna 1,8% 1 l 14 (zile) 2.4

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

Tabel 5.2-1. Articole (descriere)

Id_tranzacţie Set_cod_bare

531428 {17325, 92108, 55349, 8857, …}

982510 {92458, 77451, 66395, . . .}

. . . {. . . , . . .}

Tabel 5.2-2. Tranzacţii

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, conţine codificarea tranzacţiilor.

Page 117: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

117

TID Articole (Itemi)

T1 {111, 121, 211, 221}

T2 {111, 211, 222, 323}

T3 {112, 122, 221, 411}

T4 {111, 121}

T5 {111, 122, 211, 221, 413}

T6 {211, 323, 524}

T7 {323, 411, 524, 713}

Tabel 5.2-3. Codificarea tranzacţiilor TTTT[1]

Nivelul 1

Considerăm suportul minim egal cu 4 (minsup[1]=4). La nivelul 1, tabelul L[1,1]

poate fi obţinut prin parcurgerea tabelului T[1], verificând suporturile fiecărui articol (1**,

..., 4**), verificând dacă tranzacţia conţine un astfel de articol şi filtrând acele articole a

căror contor suport este mai mic decât suportul minim. L[1,1] este folosit pentru a filtra

orice articol care mu este suficient de frecvent în tranzacţie şi tranzacţiile din T[1] care

conţin doar articole puţin frecvente.

Rezultatul este prezentat în tabelul T[2] de mai jos (tabel 5.2-6). Deoarece există

doar 2 intrări, î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 conţine doar 1 articol candidat {1**, 2**} care apare în 4

tranzacţii din T[2].

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

Articolset

(Itemset)

Suport

{1**} 5

{2**} 5

Articolset

(Itemset)

Suport

{1**, 2**} 4

Page 118: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

118

Tabel 5.2-6. Tranzacţiile filtrate TTTT[2]

Nivelul 2

Considerăm suportul minim egal cu 3, minsup[2]=3. La nivelul 2, itemset-urile

frecvente, 1-itemset L[2,1], pot fi obţinute prin filtrarea tabelului tranzacţiilor T[2], prin

incrementarea contorului suport şi prin înlăturarea acelor itemi care au suportul mai mic

decât suportul minim. Obţinem astfel L[2,1] prezentat în tabelul 5.2-7.

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

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

TID Articole( Itemi)

T1 {111, 121, 211, 221}

T2 {111, 211, 222}

T3 {112, 122, 221}

T4 {111, 121}

T5 {111, 122, 211, 221}

T6 {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

Page 119: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

119

Nivelul 3

minsup[3]=3

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

Calculul se opreşte atunci când nu mai există un nou nivel şi când 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 tranzacţionale prin

dezvoltarea unei tehnici de parcurgere top-down progresivă în adâncime

a arborelui conceptual.

� Explorează tehnici de distribuire a structurii datelor şi a rezultatelor

intermediare între nivele.

5.2.2.3. Dezavantajele algoritmului

� Algoritmul foloseşte abordarea APRIORI. Aşa cum am mai arătat,

algoritmul FP-Growth este mai rapid decât APRIORI. Eficienţa

algoritmului ML_T2L1 poate aşadar fi îmbunătăţită aplicând 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

Page 120: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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, fiecărui 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 mulţime.

Mai târziu, 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 trăsături 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 acelaşi timp esenţa algoritmului APRIORI. Ei propun o constrângere asupra

suportului minim la generarea articolset-urilor pentru a curăţa candidaţii cât mai curând

posibil.

Cel mai bun suport minim (Pminsup) a fost definit astfel:

� Fie Pminsup o funcţie a arborelui schemei T la [0..1] care satisface:

o Cerinţele: pentru fiecare schemă s din T, se defineşte Pminsup(s) ≤ minsup(s);

o Abordarea Apriori: pentru orice schemă s şi schemele generate din aceasta s1 şi

s2, oricând {i1, …, ik-2, ik-1, ik} a lui s este suport minim frecvent

frequent(Pminsup), la fel sunt şi {i1, …, ik-2, ik-1} pentru s1 şi {i1, …, ik-2, ik}

pentru s2;

o Maximalitatea: Pminsup este maximal respectând ambele cerinţe de mai sus

Algoritmul parcurge arborele iterativ, un nivel pe iteraţie k, în două faze. Prima

fază generează noduri noi si la nivelul k şi determină Pminsup(si). Această fază examinează

doar suporturile şi schema fără a examina baza de date sau articolset-urile. A doua fază

generează suportul minim frecvent frequent(Pminsup) în nodurile si, în mod similar cu

algoritmul APRIORI.

Page 121: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

121

Cea mai mare parte a algoritmilor existenţi în prezent utilizează abordarea

APRIORI. Una din slăbiciunile cele mai mari ale acestei abordări este, însă, parcurgerea în

mod repetat a bazei de date, ceea ce micşorează eficienţa 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 traversând

un arbore prefixat, în care a fost comprimată baza de date anterior. Oricât 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 decât APRIORI.

Mao R. propune în lucrarea sa [Mao01] o combinaţie a algoritmilor ADAPTIVE

APRIORI şi FP-Growth, sub denumirea de algoritmul ADA-FP. Algoritmul este o

îmbunătăţire a algoritmului FP-Growth, folosind arborele FP-Tree al tiparelor frecvente,

cât şi metoda divide et impera bazată pe partiţionare. De asemenea, atunci când e necesar

de luat în considerare dimensiunea ca şi informaţie, aceasta este tratată la fel ca un item

(articol) informaţie. La citirea bazei de date tranzacţionale, se ţine cont şi de dimensiune.

Aceasta este considerată frecventă dacă apariţia sa satisface un anumit prag specificat.

Algoritmul ADA-FP propune o constrângere flexibilă pentru suport. Pornind de la

faptul că în viaţa reală bazele de date tranzacţionale includ informaţie taxonomică,

articolele apar la diferite nivele de abstractizare. La fiecare nivel, itemii individuali sunt

clasificaţi în două categorii: un grup de itemi normali care au o frecvenţă rezonabilă de

apariţie ş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 cumpărăturile zilnice. Aşadar, este justificabil să-l considerăm infrecvent

dacă apare de mai puţin de 700 de ori în 1000 de tranzacţii. Pe de altă parte, diamantele

sunt produse de lux, aşadar le vom considera frecvente dacă apar măcar de 10 ori în 1000

de tranzacţii.

Cerinţele suportului variază între nivele conceptuale diferite. La fiecare nivel, s-au

folosit două tipuri de praguri suport, atât pentru articolele normale, cât şi pentru articolele

excepţionale. 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 decât pragul de trecere. Un articol (item) este tratat ca frecvent

1-item dacă apariţiile sale depăşesc pragul tipar. Altfel, cât timp suportul său depăşeşte

pragul de trecere, articolul va putea avea şansa să rămână în baza de date pentru a genere

Page 122: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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 decât 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 împărţit în trei paşi.

5.2.3.1.1. Pasul 1- Găsirea articolelor frecvente (1-item)

Pornindu-se de la o bază de date tranzacţională D, cu o mulţime de dimensiuni şi cu

o mulţime de itemi (articole), se consideră pragul suport minim minsup.

În acest pas, baza de date tranzacţională D este parcursă o dată. În timpul acestei

parcurgeri, se contorizează fiecare dimensiune şi articol. În acelaşi timp, se compară

contoarele lor cu cele două tipuri de praguri corespunzătoare – pragul de trecere şi pragul

tipar.

Pentru fiecare dimensiune se compară contorul său cu pragul de trecere al

dimensiunii şi cu pragul tipar al acesteia. Dimensiunile a căror suport nu trece pragul

suport sunt eliminate.

Pentru fiecare articol, se detectează mai întâi nivelul de abstractizare (conceptual)

pe care se găseşte acesta; apoi se verifică dacă este un articol normal sau unul excepţional.

Dacă este un articol normal, se compară suportul său cu pragul de trecere corespunzător şi

cu pragul tipar. Altfel, vom restrânge posibilităţile următoare şi vom eticheta articolul fie

ca unul foarte comun fie ca unul foarte rar, şi vom compara apoi suportul său cu suportul

de trecere şi cu suportul tipar. În orice caz, articolul va fi considerat ca şi 1-item frecvent

doar dacă suportul său depăşeşte pragul tipar corespunzător. Totodată, trebuie să fim

conştienţi că toate articolele a căror suport depăşeşte pragul de trecere e posibil să apară în

tipare frecvente de dimensiune 2 sau mai mare. Articolele a căror suport nu depăşeşte

pragul de trecere nu vor mai fi considerate în continuare.

5.2.3.1.2. Pasul 2- Construirea arborelui FP-Tree

Algoritmul adoptă acelaşi arbore prefixat ca şi FP-Growth, definit astfel:

Page 123: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

123

• O rădăcină etichetată „NULL”, un set de subarbori prefixaţi de articole ca şi fii ai

rădăcinii şi un tabel header al articolelor frecvente.

• Fiecare nod din subarborele prefix al articolelor conţine trei câmpuri: nume, contor şi

nodul de legătură. Numele arată articolul pe care nodul în reprezintă. Contorul arată

numărul de tranzacţii reprezentate de porţiunea de cale care duce la acel nod. Nodul de

legătură pointează (face legătura) spre nodul următor din arborele FP-Tree ce poartă

acelaşi nume. Nodul de legătură este „NULL” dacă nu există în continuare alt nod.

• Fiecare intrare în tabelul header al articolelor frecvente conţine două câmpuri: nume şi

capul nodului de legătură. Numele reprezintă numele articolului sau al dimensiunii.

Capul nodului de legătură pointează spre primul nod din arborele FP-Tree care conţine

numele articolului.

Procedura de construire a arborelui FP-Tree este descrisă în continuare printr-un

proces în doi paşi:

• Se parcurge baza de date tranzacţională D o dată. Se colectează un set de articole

frecvente (sau dimensiuni) F şi suporturile acestora. Se ordonează F în ordinea

descrescătoare a suporturilor formându-se lista L, a articolelor frecvente.

• Se creează rădăcina unui arbore FP-Tree, T, etichetată „NULL”. Pentru fiecare

tranzacţie Trans din baza de date se fac următoarele:

• 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 rămasă. Se apelează funcţia insert_tree([pP], T).

Această funcţie verifică dacă T are un fiu N astfel încât N.nume=p.nume, şi

atunci incrementează contorul lui N cu 1; altfel creează un nod nou N.

Câmpurile de date ale acestui nou nod N vor fi atribuite astfel: contorul lui N

va fi 1, nodul de legătură va pointa spre T şi va fi legat de noduri prin acelaşi

nume ca şi nodul de legătură. Analog, se poate spune că nodul de legătură a

lui N pointează spre intrarea corespunzătoare p din tabelul antet (header) al

articolelor frecvente. Dacă P nu este vidă, se apelează recursiv funcţia

insert_tree(P, N).

Page 124: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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. Informaţia

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

porneşte procesul de generare a tiparelor prin traversarea recursivă a arborelui FP-Tree,

fără a mai implica vreo operaţie cu baza de date. Algoritmul de generare a tiparelor este

prezentat în figura 5.2-9.

Procedura porneşte de la cel mai puţin frecvent articol şi generează baza tiparelor

condiţionale conform căreia se construieşte arborele FP-Tree pentru fiecare membru al

tabelului antet (header). Baza tiparelor condiţionale ale unui articol i, conţine articolele

care sunt în relaţie cu articolul i.

Procedura realizează creşterea fragmentată a tiparelor. Se consideră că suportul

unui articol itemi din baza tiparelor condiţionale a unui tipar k este egal cu suportul

tiparului k+1 corespunzător. Aşadar, dacă un itemi este frecvent în baza tiparelor

condiţionale a tiparului k, Pk, vom obţine tiparul k+1 frecvent, Pk+1, prin concatenarea

acestuia la Pk.

Să nu uităm trăsătura structurii prefix-tree (arbore prefixat) conform căreia, cu cât

un articol este mai frecvent, cu atât există mai multe şanse să se găsească între ramurile

arborelui.

De asemenea, articolele frecvente, indiferent pe ce nivel se găsesc î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 puţin

rigid utilizând constrângeri diferite ale suporturilor. Se introduce un nou concept nou –

pragul de trecere. Astfel, pentru un tipar de lungime k, acesta se evaluează atât faţă de

pragul clasic al suportului cât şi faţă de pragul de trecere al suportului.

Pragul de trecere al suportului are rolul unei bariere împotriva creşterii imposibile a

tiparelor frecvente. Fixarea acestui prag de trecere are o mare influenţă asupra

performanţei. Un prag de trecere prea jos va genera un set mare de candidaţi din care doar

câţiva vor supravieţui.

Page 125: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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 căror contor depăşeşte 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; Ieşire: L setul multi-nivel al item-ilor (item1, ..., itemn) Procedura: (1) if (arborele conţine o singură cale P) then (2) { foreach( combinaţie rezultată ca β a nodurilor din calea P) do { (3) generează tiparul β∪α cu suportul = minsup al nodurilor din β (4) if (tiparul β∪α conţine 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 ( ai din header-ul arborelui) do { (22) generează tiparul β=α cu suportul = ai.support; (23) construieşte baza condiţională a lui β şi apoi arborele

condiţional a lui β FP-Treeβ

(24) } (25) if (Treeβ ≠ ∅) then (26) call ADA-FP-Growth (Treeβ, β) (27) }

Page 126: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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 depăşeşte pragul lor de trecere

corespunzător. Un articol sau unii dintre descendenţii săi pot să apară pe aceeaşi ramură. În

acest caz, relaţia dintre articolele de pe nivele abstracte diferite nu va fi o relaţie unu-la-

unu. Un articol poate avea mai mulţi ascendenţi diferiţi. Astfel, un tipar frecvent care

conţine toată informaţia 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.

Constrângerile asupra suportului apar de obicei în cuplu (pragul de trecere, pragul

tipar). Primul filtrează membrii imposibili pentru mărirea tiparelor iar al doilea este o

măsură de evaluare a dimensiunii curente a tiparului frecvent. Pe lângă aceste praguri,

există pragurile individuale pentru fiecare articol în parte. Articolele vor fi clasificate într-o

clasă normală şi una specială. La mărirea tiparului se va aplica pragul de lungime

corespunzător. 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 numărul 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 adâncime, de sus în jos, până ce nu mai poate fi generat nici un

tipar frecvent. La fiecare nivel este aplicat algoritmul APRIORI pentru a descoperi

Page 127: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

127

tipare frecvente. Tiparele generate de ML_T2L1 sunt alcătuite din articole de pe acelaşi

nivel abstract.

c) Pentru a creşte flexibilitatea, în procesul de extragere a tiparelor frecvente, s-au

introdus constrângeri diferite pentru suport. Astfel, algoritmul ADA-FP este mult mai

eficient decât ML_T2L1.

5.2.4.2. Avantajele ADA-FP faţă de ADAPTIVE APRIORI

În anul 2000, la a 26a conferinţă internaţională (VLDB 2000), Wang K., He Y. şi

Han J., [WHH00], au propus pentru prima dată utilizarea unor constrângeri 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 scăzut, fie la apariţia unor încurcături la generarea setului

de itemi. Aceasta i-a determinat să folosească constrângeri diferite pentru suport la

generarea articolelor.

Acesta este punctul de pornire atât la algoritmul ADAPTIVE APRIORI cât ş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ă decât prima. O altă deosebire dintre cei doi

algoritmi este definirea şi implementarea constrângerilor pentru suport.

Comparând cei doi algoritmi, putem concluziona:

a) Este posibil ca, într-un set de articole, mai multe dintre acestea să aibă mai multe

constrângeri 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 înlocuieşte suportul minim clasic cu o funcţie

notată Pminsup, care defineşte un superset de articolset-uri frecvente definite prin

minsup generat prin metoda APRIORI. Algoritmul ADA-FP foloseşte pragul de

trecere al suportului pentru a îndepărta 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 creşte claritatea rezultatelor procesului de extragere

a tiparelor frecvente.

Page 128: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

128

5.3. Concluzii

Ideea de bază a unui proces eficient de extragere de reguli de asociere din baze

mari de date tranzacţionale este, în primul rând, de a găsi seturi de articole de lungime k (k-

itemsets) (pentru k pornind de la 1), în baza de date, care apar într-un număr suficient de

mare de tranzacţii a căror suport este mai mare decât un prag suport predefinit. În al doilea

rând, 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 tranzacţii se presupune că sunt organizate în ierarhii taxonomice (pe

nivele conceptuale) în funcţie de proprietăţile ce le sunt asociate. Fiecare articol poate fi

codificat implicit sau explicit într-un şir de caractere de forma {3***} în funcţie de poziţia

sa în ierarhie.

Algoritmii de extragere de date de pe mai multe nivele conceptuale au fost, în

general, dezvoltaţi prin extinderea tehnicilor existente pentru un singur nivel.

Aşa cum am arătat la prezentarea unora dintre algoritmi, avem posibilitatea de a

adopta praguri diferite ale suportului sau confidenţei pentru diferite nivele conceptuale. În

special, s-a explorat cazul cel mai comun, scăderea pragului pentru suportul minim odată

cu nivelele mai scăzute de abstractizare. Aceasta a condus la obţinerea unor reguli de

asociere interesante la nivele conceptuale multiple, care, pe lângă faptul că sunt diferite

pentru nivele diferite, au şi un potenţial 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

confidenţei la diferite nivele.

Regulile de asociere de bază restricţionează ca, pentru apariţia 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 găsite.

Clasificarea taxonomică ne ajută de asemenea la curăţarea regulilor neinteresante sau

redundante.

Page 129: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

129

6. ALGORITMI DE EXTRAGERE A DATELOR DIN

BAZE DE DATE MULTI-NIVEL

În ultimii ani asistăm la o creştere explozivă a capacităţii noastre de a genera şi

colecta date. Progresele realizate în colectarea datelor, răspândirea utilizării codurilor bară

pentru majoritatea produselor comerciale şi computerizarea majorităţii tranzacţiilor de

afaceri şi guvernamentale ne-au inundat cu informaţii.

Aceste cantităţi mari de date se memorează în depozite sau antrepozite de date,

numite şi data warehouse, utilizând tehnici speciale, denumite OLTP, OLAP etc. Pentru

astfel de volume de date amorfe, sunt necesare instrumente speciale pentru extragerea

cunoştinţelor. Nu este de mirare că s-a născut o nouă disciplină pe care cei mai mulţi o

denumesc Data Mining (DM), alţii o denumesc Knowledge Discovery (KD), alţii

Knowledge Discovery in Databases (KDD), alţii Information Discovery (ID), alţii

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 găsirea cunoştinţelor dorite în bazele de

date. În primul rând, datorită faptului că, de obicei, seturile de date cu o valoare importantă

a suportului nu se găsesc la nivele conceptuale foarte joase, deoarece tiparele de la nivelele

conceptuale joase tind să fie împrăştiate şi greu au un suport important. În al doilea rând,

regularităţile vor fi găsite mai degrabă la nivele conceptuale înalte, aşadar pot fi deja bine

cunoscute.

Aceste observaţii motivează necesitatea propunerii unor metode de extragere de

cunoştinţe de pe mai multe nivele conceptuale [HF95], [SA95a], [HF97], [Mao01],

[RKS03]. Prin extragerea cunoştinţelor de pe nivele conceptuale diferite putem obţine date

atât de la nivele înalte cât şi de la cele joase. Procesul de extragere de date de pe nivele

multiple poate fi realizat în mai multe moduri:

Page 130: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

130

� Adâncirea progresivă – porneşte în cele mai multe cazuri de la nivele înalte

conceptuale, găseşte reguli puternice la acel nivel şi apoi parcurge selectiv

şi progresiv în adâncime nivelele inferioare acestuia pentru a găsi reguli la

aceste nivele.

� Generalizarea progresivă – porneşte în cele mai multe cazuri de la nivele

conceptuale inferioare, găseşte reguli puternice la aceste nivele şi apoi,

generalizează progresiv rezultatele pentru nivelele superioare.

� Parcurgerea interactivă în sus şi în jos – procesul de descoperire de

cunoştinţe poate urca sau coborî pe diferite nivele conceptuale interactiv, la

instrucţiunile utilizatorului, folosind chiar factori suport diferiţi.

Pe parcursul studierii procesului de extragere de cunoştinţe (KD), cercetătorii au

încercat prin diverse metode să îndepărteze dintre regulile generate pe cele neinteresante,

propunând câteva măsuri de cuantificare a utilităţii sau gradului de interes pe care regula

respectivă o prezintă [HF95]. Acest fapt, a condus cercetările spre căutarea 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ă flexibilităţii concentrării atenţiei asupra seturilor

diferite de date şi a posibilităţii aplicării unor praguri diferite ale suportului sau confidenţei

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 “A1 ∧ … ∧ Am → B1 ∧ … ∧ Bn“, unde Ai (pentru i ∈

{1, ..., m}) şi Bi (pentru j ∈ {1, ..., n}) sunt mulţimi de perechi „atribut-

valoare”.

� Reguli discriminante [HCC93] – care deosebesc trăsăturile generale ale

unui set de date, numit clasa ţintă, de alte seturi de date, numite clase

contrastante.

Page 131: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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 asemănărilor din interiorul

clasei şi minimizarea asemănărilor dintre clase.

� Reguli de evoluţie a datelor [SA95a] – care sunt un set de reguli ce reflectă

evoluţia 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

tranzacţionale ca şi model tipic de investigare, deoarece procesul de găsire a relaţiilor

dintre articolele bazelor mari de date este solicitat în multe aplicaţii care au nevoie de

performanţă.

Ideea generală a extragerii regulilor de asociere din bazele mari de date

tranzacţionale este următoarea: găsirea tuturor mulţimilor mari de articole (k-itemsets,

cu k pornind de la 1) din baza de date, unde un k-itemset este o mulţime de k

articole (itemi) care apar împreună (în aceeaşi tranzacţie) într-un număr cât mai

mare de tranzacţii şi a căror factor suport nu este mai mic decât un prag suport

specificat sau pre-definit. Apoi, se grupează seturile de k articole în reguli de

asociere cu o confienţă calculată, testată în comparaţie cu un prag impus.

Regulile de asociere multi-nivel pot fi descoperite prin extinderea algoritmilor

existenţi de extragere a regulilor de asociere ale unui singur nivel.

Pornind de la algoritmii propuşi de Han [HF95], [HF99], Strikant [SA95], Rantzau

[Ran97], Wang [WHH00] şi Rajkumar [RKS03] pentru extragerea regulilor de asociere

multi-nivel, am propus în continuare câteva metode originale pentru îmbunătăţirea şi

optimizarea acestora.

Page 132: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

132

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

Primul algoritm propus în acest paragraf, denumit DFMLA, pe care l-am publicat

la Conferinţa 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], îmbunătăţind performanţele acestuia, prin reducerea numărului de tranzacţii

verificate inutil la generarea regulilor de asociere între articole, înlăturând astfel risipa de

memorie generată de algoritmul APRIORI.

După cum se ştie, algoritmul APRIORI se bazează pe următoarea observaţie:

� Dacă avem un set de articole {item1, item2,} cu suportul S1, în

cazul în care dorim să adăugăm un articol (item3) la această

mulţime, suportul noului set format va fi mai mic sau egal cu S1.

Altfel spus, dacă un articol (item1) se găseşte în N tranzacţii,

acelaşi articol (item1) împreună cu un alt articol (item2) nu pot să

fie găsite în mai multe tranzacţii decât în câte s-a găsit item1

singur. Aşadar, dacă S1 va fi mai mic decât suportul minim, este

evident că suportul noului set format va fi şi el mai mic decât

pragul minim al suportului, deci nu merită să fie luat în

considerare.

În elaborarea algoritmului DFMLA, am plecat de la această observaţie extinzând-o

la cazul bazelor de date multi-nivel. Am prezentat în capitolul anterior avantajele utilizării

bazelor de date multi-nivel.

6.1.1. Prezentarea algoritmului(DFMLA1)

Aşa cum a arătat Han [HF99] şi Rajkumar [RKS03], o bază de date tranzacţională

poate fi transformată într-o bază de date multi-nivel, folosind codificarea informaţiei

ierarhic în locul tabelelor tranzacţionale clasice. Pentru a crea ierarhia bazei de date se

folosesc relaţiile existente între articolele bazei de date, numite taxonomia informaţiei.

Astfel, în tabela tranzacţiilor, fiecare articol va fi codificat ca o secvenţă de cifre. Acest

Page 133: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

133

lucru este foarte util atunci când ne interesează doar o parte din tranzacţiile bazei de date

(de exemplu o categorie de produse). Astfel, vom putea colecta mai întâi setul relevant de

date şi apoi să lucrăm 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 tranzacţională, D = {T1, …, Tn} ca fiind o mulţime

de tranzacţii Ti ,(i∈{1, ..., n}), unde fiecare tranzacţie este o mulţime de articole (articolset-

itemset).

Baza de date este alcătuită din:

1. un set de articole (itemset) care conţine descrierea fiecărui articol (item) sub

forma Ai, ce reprezintă codul fiecărui produs

2. un set de tranzacţii de forma (TID, Ai), unde TID reprezintă identificatorul

tranzacţiei.

Fiecare articolset X are o importanţă statistică reprezentată prin suport şi frecvenţă.

Suportul unui articolset S(X) este a cea parte din tranzacţiile bazei de date D care

conţin acel articolset raportată la numărul total de tranzacţii (vezi formula 3.1.2).

||

|}|{|)( ...

D

TXDTXS

⊆∈= (6.1.1)

Se ştie de asemenea că o regulă de asociere este o implicare de forma X ⇒ Y.

Regula se menţine cu o confidenţă (încredere) α care este raportul dintre numărul de

tranzacţii care conţin X ∪ Y şi numărul de tranzacţii care conţin X (vezi formula 3.1.4).

)X(S

)YX(S)Y,X(

U=α (6.1.2)

Confidenţa 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 Smin care exclude toate regulile care au un

număr sub acest prag de tranzacţii care conţin reuniunea lui X şi Y. Articolset-urile cu un

suport minim sunt denumite articolset-uri frecvente.

Page 134: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

134

0 alimente

1 lapte

2 băuturi

1 2%

0 1,8%

1 graham

0 albă

0

Coca 1

Pepsi

0 Cola

1 Prigat

0 pâine

Cele două praguri nu trebuie confundate. Pragul pentru suport este definit asupra

articolset-urilor. Când este aplicată asupra regulilor de asociere, el reprezintă procentul

minim din tranzacţiile care conţin toţi itemii ce apar în regulă. Pragul confidenţei specifică

probabilitatea minimă pentru ca Y să fie adevărat dacă X este adevărat. 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 incluzând 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, considerăm 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 „băuturi” 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. conţine codurile categoriilor şi descrierea fiecărui cod (de articol sau

categorie).

Page 135: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

135

Tabel 6.1-1. Codurile şi descrierea articolelor

În cazul în care baza de date este alcătuită din cinci tranzacţii, 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. Tranzacţiile bazei de date

Cod Descriere

0 Alimente

00 Pâine

01 Lapte

02 Băuturi

000 Albă (Pâine)

001 Graham (Pâine)

010 1,8% (Lapte)

011 2% (Lapte)

020 Cola

021 Prigat

0200 Coca (Cola)

0201 Pepsi (Cola)

Tranzacţie Produs (Articol)

T1 Pâine albă, Lapte 1.8%,

Coca Cola, Prigat

T2 Pâine graham, Lapte 1.8%,

Lapte 2%, Prigat

T3 Lapte 2%, Coca Cola

T4 Lapte 2%, Pepsi Cola

T5 Pâine graham, Coca Cola,

Lapte 2%, Prigat

Page 136: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

136

Tabel 6.1-3. Tranzacţiile şi codurile produselor

Am calculat cei doi factori suportul şi confidenţa pentru exemplificare folosind

formulele (6.1.1) şi (6.1.2):

� suportul

%20100*5

1100*

alNrTranzTot

PaineAlbacuNrTranz)Alba.Paine(S ===

%40100*3

2100*

TotalNrTraz

igatPrsiaNrTranzCoc)igatPrCoca((S ===∪

� confidenţa

%66100*3

2100*

CocacuNrTranz

)igatPrsiCocacuNrTranz)igatPrCoca( ===→α

Tranzacţie 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

Page 137: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

137

În bazele de date multi-nivel putem descoperi reguli care conţin articole nu doar de

pe un nivel conceptual, ci de pe nivele conceptuale diferite. Aşadar, putem să ne

concentrăm atenţia 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ă atât la articole cât şi la categorii.

Astfel, suportul unei categorii reprezintă procentul de tranzacţii în care apare acea

categorie. Spre exemplu, suportul categoriei Lapte este calculat mai jos:

%100100*5

5100*

TotalNrTranz

produs.LaptecuNrTranz)Lapte(S ===

Trebuie să ţinem cont de faptul că suportul unei categorii poate să fie diferit de

suma suporturilor descendenţilor săi, dar nu poate fi mai mic decât suportul oricăruia dintre

aceştia.

În acest caz, putem extinde observaţia pe care se bazează algoritmul APRIORI la

nivelul categoriilor:

� Dacă avem o categorie sau un set de categorii cu suportul S1, un

element al acelei categorii va avea un suport mai mic sau egal cu S1.

Aşadar, dacă o categorie nu are suportul mai mare decât pragul

suportului minim, nici un element al său nu va putea avea suportul

mai mare decât pragul suportului minim.

De la această observaţie pleacă algoritmul DFMLA1 pe care l-am propus în acest

paragraf.

Aşa 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, importanţa

unei reguli este măsurată prin factorul suport.

Astfel, presupunând 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ă descendenţii acestor categorii pot avea suport mai mare decât

suportul minim.

Astfel, dacă între Cat1 şi Cat2 nu există o regulă, atunci nici între descendenţii

celor două categorii (1.x şi 2.y) nu va exista nici o regulă (vezi figura 6.1-2).

Page 138: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

138

Fig. 6.1-2. Moştenirea unei reguli

Algoritmul fiind proiectat pentru baze de date multi-nivel ne oferă avantajul

utilizării metodei parcurgerii în adâncime a arborelui ierarhiei conceptuale. Această

metodă găseşte articolele frecvente la cel mai înalt nivel şi apoi, progresiv

adânceşte procesul de extragere la descendenţii frecvenţi ai acestora de pe nivele

conceptuale mai joase.

De fiecare dată când găseşte o nouă regulă între două articolset-uri (f → g), i se

testează acestei reguli importanţa (suportul). Dacă nu depăşeşte pragul suport atunci ştim

că nu vor exista reguli de asociere între descendenţii acestor categorii.

Noutatea adusă de algoritmul DFMLA1 este funcţia 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. Funcţia recursivă pentru verificarea descendenţilor

S-a notat:

- k – numărul de articole din setul k-articolset

- f, g – articolset-uri din regula f → g

- lvl – nivelul pe care se găseşte 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ă } }

Page 139: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

139

Funcţia trebuie apelată înainte de a încerca să găsim o nouă regulă la acelaşi 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)

Aşa cum arată Han şi Fu în [HF95], o interogare pentru extragere de date este

relevantă doar pentru o parte din tranzacţiile bazei de date (de exemplu, doar pentru cele

referitoare la lapte), nu pentru totalitatea lor. Din acest motiv, am introdus în algoritmul

DFMLA1, filtrarea tranzacţiilor, ceea ce înseamnă că fiecare tranzacţie care nu mai este

folosită este îndepărtată. Am obţinut 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, tranzacţiile

(T(k,lvl+1)) în care acestea au fost găsite sunt de fapt unele (sau toate) din

tranzacţiile în care au fost găsite f şi g (T(k,lvl)). Aşadar, la apelul funcţiei

CheckDescendants() putem să-i transmitem o selecţie (sau doar TID) a

tranzacţiilor în care au fost găsite f şi g (T(k,lvl)). Astfel, funcţia nu va trebui să mai

scaneze întreaga bază de date pentru a verifica importanţa unei reguli ci doar

tranzacţiile selecţionate. În acest mod, la trecerea în adâncime de pe un nivel

conceptual (lvl) pe următorul nivel conceptual (lvl+1), numărul tranzacţiilor va fi tot

mai mic, iar parcurgerea bazei de date va fi tot mai rapidă.

În implementarea versiunii DFMLA2, am filtrat din selecţia anterioară de tranzacţii,

doar pe acelea care conţin articole comune din f şi g.

6.1.3. Studiu comparativ de performanţă

6.1.3.1. Avantaje

Aceşti algoritmi (DFMLA1 şi DFMLA2) nu caută să găsească reguli între toate

subset-urile k-articolset ci doar între derivaţiile unui subset din acele reguli care au fost

găsite anterior interesante (importante). Ei parcurg arborele ierarhiei conceptuale în

adâncime şi dacă găsesc 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 următorul nivel

conceptual.

Page 140: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

140

Spre deosebire de algoritmii propuşi de mine, algoritmul lui Han foloseşte funcţia

de generare a candidaţilor din algoritmul APRIORI la fiecare nivel conceptual. Când

termină de examinat un nivel în întregime, trece la următorul nivel, parcurgând aşadar

arborele ierarhiei conceptuale în lăţime. Pentru a sublinia avantajul algoritmilor propuşi,

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 conferinţa CSCS’15, Bucureşti

2005, [PGG+05b]. Algoritmii au fost implementaţi cu ajutorul limbajului de programare

Java şi compilaţi cu ajutorul platformei Eclipse. Testările 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 interfaţa standard ODBC.

Studiul s-a făcut pe baza de date prezentată ca şi exemplu anterior. Baza de date are

50 000 de intrări, 750 de articole distincte codificate pe 10 nivele conceptuale, 7 500 de

tranzacţii, fiecare tranzacţie având cel mult 15 articole.

Ambii algoritmi au fost testaţi pentru regulile: 1→2, 1.1→2.1, 1.1.1→2.1.1, 1→3 şi

2→3. Regulile 1→3 şi 2→3 nu trec testul de importanţă, aşadar algoritmul DFMLA1 nu va

verifica regulile 1.1→3.1, 1.1→3.2, 2.1→3.1, etc. Spre deosebire de celălalt algoritm care

va testa aceste reguli când va ajunge la nivelul respectiv. Se evită astfel multe teste inutile.

Fig. 6.1-4. Comparaţie Multi-level APRIORI (ML_T2L1)cu DFMLA1

Page 141: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

141

Versiunea optimizată a algoritmului, DFMLA2, foloseşte filtrarea

tranzacţiilor. Acest lucru măreşte viteza de lucru a algoritmului deoarece la fiecare

trecere la nivelul conceptual următor vom elimina unele tranzacţii. Cu cât baza de

date are mai multe nivele conceptuale, algoritmul poate deveni mai rapid o dată cu

eliminarea unor categorii. Observăm acesta în figura 6.1-5.

Fig. 6.1-5. Comparaţie DFMLA1 cu DFMLA2

6.1.3.2. Dezavantaje

În cazul în care nu sunt eliminate tranzacţii, algoritmul va fi mai lent datorită

timpului pierdut cu filtrarea tranzacţiilor şi celui alocat efectuării testelor de importanţă.

Un alt dezavantaj al acestui algoritm este cantitatea mare de memorie ocupată cu

reţinerea TID-urilor tranzacţiilor testate pentru a putea reveni la nivelul inferior.

Page 142: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

142

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

Bazele de date simplu-nivel conţin de cele mai multe ori informaţii prea complexe

care sunt uneori mai puţin interesante pentru extragerea regulilor de asociere. Aceste

informaţii se găsesc de obicei pe ultimul nivel al bazelor de date multi-nivel, unde se

găsesc informaţii mai concrete, mai specifice decât la nivelele superioare. Astfel, în

practică, managerii unor magazine vor să ştie, de exemplu, dacă pot să aşeze toate tipurile

de pâine lângă lapte sau nu, aşa încât cumpărătorii să aleagă ce pâine doresc. Ei vor să

cunoască reguli mai generale. Pentru a obţine acest gen de informaţii 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) reducând în

acest mod setul de candidaţi şi numărul 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 candidaţi.

Eficienţa 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ă numărul mare şi costisitor de

parcurgeri a bazelor.

2. Extragerea datelor folosind FP-Tree foloseşte metoda creşterii setului de

tipare frecvente pentru a evita costurile mari provocate de generarea

unui număr mare de seturi de candidaţi.

3. Foloseşte o metodă de partiţionare bazată pe tehnica „divide et impera”

pentru a descompune procesul de extragere de date în procese mai mici

fapt ce reduce simţitor intervalul de căutare.

Baza de date este parcursă tot de sus în jos progresiv. Informaţiile obţinute de la

nivele conceptuale înalte sunt insuficiente pentru a trece la nivelele conceptuale următoare.

Deci este necesară o nouă parcurgere a bazei de date pentru a obţine informaţiile care

lipsesc. În acest mod, pentru a obţine informaţii de pe cel mai jos nivel conceptual vom

avea nevoie de cel puţin n+1 parcurgeri a bazei de date.

Page 143: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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 obţine informaţii de pe acesta, este o metodă mai rapidă decât aplicarea algoritmului

APRIORI multi-nivel. Am arătat acest lucru comparând timpul de execuţie al celor doi

algoritmi, în figura 6.2-1, testele fiind efectuate în aceleaşi condiţii ca şi în paragraful

anterior.

Fig. 6.2-1. Comparaţie ML_T2L1 cu FP-Growth

6.2.1. Prezentarea algoritmului MLFP-Growth

În continuare am propus un alt algoritm, numit MLFP-Growth, publicat la

Conferinţa CSCS’15, Bucureşti 2005, [GGP+05c]. Pentru a putea explica mai bine

realizarea algoritmului propus, am considerat un exemplu, o bază de date a cărei ierarhie

conceptuală de trei nivele este prezentată în figura 6.2-2.

Page 144: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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 roşii

0112 Mere verzi

021 Varză

022 Roşii

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 Roşii

0.2.1 Varză

0.1.2 Pere

0.1.1 Mere

0.1.1.1 Mere roşii

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

Page 145: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

145

Aşa cum am arătat la începutul paragrafului 6.2., de multe ori este necesar să putem

extrage informaţii direct de pe un anumit nivel conceptual k al ierarhiei bazei de date.

Pentru a realiza aceasta, există o metodă:

1. obţinerea 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 informaţiile de pe un nivel l, putem obţine

informaţiile de pe nivelul superior k (l >k) folosind nivelul l.

6.2.1.1. Metoda I: Obţinerea arborelui FP-Tree şi apoi aplicarea

algoritmului FP-Growth direct pe nivelul conceptual k. (MLFP-

Growth I)

Tranzacţiile unei baze de date conţin de obicei articole de pe cel mai jos nivel

conceptual. Pentru a putea obţine informaţii de pe un anumit nivel conceptual va trebui să

transformăm tranzacţiile (sau să le privim într-o altă manieră). Acest lucru se poate realiza

folosind codurile fiecărui produs aşa cum au fost prezentate în tabelul 6.2.1. În cazul în

care rădăcina arborelui nu este considerată un nivel conceptual, fiecare articol este

codificat prin 3 cifre.

Dacă suntem interesaţi de informaţiile de pe al 2-lea nivel conceptual vom folosi

doar primele 2 cifre din identificatorul articolului respectiv. Considerând că suportul

minim este 3, atunci după executarea primului pas al algoritmului de obţinere a arborelui

FP-Tree vom obţine rezultatele prezentate în ultima coloană a tabelului 6.2-2.

Page 146: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

146

TID Articole cumpărate 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 tranzacţională

Pe parcursul celui de-al doilea pas al algoritmului obţinem arborele condiţional din

figura 6.2-3. Se poate observa că au fost eliminate categoriile 2.2 şi 5.1 deoarece nu

îndeplineau condiţia de suport minim.

Metoda este mai rapidă decât cazul în care aplicăm algoritmul FP-Growth

pe baza de date văzută ca un singur nivel deoarece avem mai puţine elemente pe

un nivel conceptual oarecare decât 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

rădăcina

3.1

4.1

2.1

4.1

Page 147: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

147

6.2.1.2. Metoda II: Obţinerea arborelui FP-Tree pentru nivelul k din

arborele nivelului l (l>k) (MLFP-Growth II)

Această metodă am propus-o pentru a putea extrage informaţii direct de pe un

anumit nivel conceptual k, fără a accesa baza de date, folosind arborele FP-Tree al unui

nivel inferior l, obţinut deja.

Deoarece arborele FP-Tree al nivelului conceptual despre care avem

informaţii l, se află deja în memorie, obţinerea arborelui FP-Tree al nivelului k se

face mult mai rapid decât în cazul metodei I. Există cazuri în care nu mai e

necesară o nouă citire din baza de date sau sunt citite foarte puţine tranzacţii.

Arborele FP-Tree obţinut pentru nivelul l conţine aproape toate informaţiile pentru

a construi arborele FP-Tree al nivelului k dorit. Informaţiile 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 construieşte antetul noului arbore FP-Tree pentru nivelul k (fig. 6.2-4). Acesta

se obţine folosind informaţiile 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

Page 148: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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, operaţie uşoară în cazul în care antetul a fost

salvat înaintea pasului de curăţare 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.

observăm că mai poate exista categoria 5) care nu au fost adăugate şi se verifică dacă

acestea îndeplinesc condiţia de suport minim, fiind adăugate în antet în caz afirmativ.

În exemplul meu, articolul 5 este luat în considerare, dar nu este adăugat pentru că

nu îndeplineşte condiţia 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ă adăugăm la arborele FP-Tree al nivelului l acele tranzacţii care

conţin nodurile adăugate. Aceasta presupune accesarea bazei de date, însă doar a câtorva

tranzacţii 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, aşa încât îl adăugăm (adăugăm toate

tranzacţiile în care apare 2.2). De asemenea articolul 5.1, nu a fost adăugat pentru că nu

îndeplineşte 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

rădăcina

3.1

4.1

2.1

4.1

2.2 2.2

Page 149: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

149

Pasul 4. Reordonarea antetului nivelului k

Antetul nivelului k a fost completat la pasul 2 şi conţine în acest moment

identificatorii (ID) articolelor corespunzătoare nivelului k. Elementele antetului nivelului k

vor fi reordonate în funcţie de factorul suport. Putem afla suportul fiecărui element din

antet fără a citi baza de date din nou. Toate informaţiile necesare se găsesc acum în

arborele obţinut 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 rădăcină parcurgem arborele

în jos şi:

1. suportul categoriei 1 este suportul primului element din categorie găsit (ex. 1.1

sau 1.1.1, etc.)

2. dacă ajungem la o intersecţie înainte să găsim un astfel de element, atunci,

pentru fiecare ramură aplicăm din nou regula 1. Suportul va fi egal cu suma

suporturilor găsite 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 rădăcina arborelui nivelului l. Vom urma

tiparele lor condiţionale (ramurile arborelui) şi vom extrage toate articolele nivelului k care

apar. În cazul în care apar mai multe articole ale aceleaşi 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 mulţime (articolset-itemset) care este adăugată

noului arbore al nivelului k (vezi tabelul 6.2-3).

Page 150: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

150

NR Tiparele condiţionale extrase Articolset-urile adăugate î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 condiţionale 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. obţinem astfel categoriile: 2, 3, 2, 1, 1. După ce facem

reordonarea antetului k vom avea: 3, 2, 2, 1, 1. Luăm articolele o singură dată: 3, 2, 1. Apoi

adăugăm această ramură la arborele nivelului k. Analog procedăm cu fiecare ramură a

arborelui obţinând în final arborele FP-Tree al nivelului k (fig. 6.2-6). Aşa cum ştim,

categoria 5 a fost curăţată deoarece nu îndeplinea condiţia suportului minim.

În cazul în care, rar în practică, nici un articol nu va fi curăţat din arborele nivelului

l, paşii 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 îndepărtate articole,

putem obţine informaţii pentru orice alt nivel conceptual fără să accesăm baza de date.

Acest lucru este util atunci când avem nevoie de informaţii 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

rădăcina

3

4

2

4

Page 151: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

151

6.2.2. Studiu comparativ de performanţă

6.2.2.1. Avantaje

Unul din principalii factori care micşorează viteza de lucru a algoritmului de creare

a arborelui FP-Tree este numărul de accesări a bazei de date. Metoda II propusă în

această lucrare (MLFP-Growth II) utilizează informaţii anterioare pentru a evita

accesarea bazei de date lucrând în special cu memoria calculatorului, ceea ce

este mult mai rapid. Baza de date este eventual accesată doar pentru a obţine

informaţiile care lipsesc (vezi pasul 2 şi 3 al metodei).

Pentru a demonstra eficienţa algoritmilor propuşi am făcut o serie de teste de

performanţă, publicate la Conferinţa CSCS’15, Bucureşti 2005, [GGP+05c]. Pentru

aceasta, algoritmii au fost implementaţi cu ajutorul limbajului de programare Java şi

compilaţi cu ajutorul platformei Eclipse. Testările 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 interfaţa standard ODBC.

Am studiat comparativ cele două metode pe o bază de date reală, cu 50 000 de

intrări, 750 de articole codificate pe 10 nivele conceptuale, 6 000 de tranzacţii, fiecare

având cel mult 10 articole. În ambele cazuri factorul suport a variat de la 5% până la 40%.

În tabelul 6.2-4. sunt prezentaţi timpii obţinuţi de algoritmul MLFP-Growth I (Metoda I),

iar în tabelul 6.2-5. sunt prezentaţi timpii obţinuţi 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 obţinute de algoritmii MLFP-Growth I (Metoda I) şi

MLFP-Growth II (Metoda II)

Cu cât distanţa dintre nivelele conceptuale k şi l este mai mare, cu atât pot exista

mai multe informaţii lipsă, ceea ce forţează accesarea bazei de date pentru obţinerea lor. În

cazul în care nu există informaţii lipsă între cele două nivele conceptuale, singurul motiv

Page 152: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

152

de accesare a bazei de date rămâne pentru verificarea factorului suport (vezi pasul 2 al

algoritmului) iar uneori nici aceasta nu este necesar.

Performanţa MLFP-Growth II faţă de MLFP-Growth I depinde de asemenea

de pragul suportului minim. Dacă acesta este foarte scăzut, vom avea foarte

puţine informaţii îndepărtate la cel mai jos nivel conceptual, ceea ce face MLFP-

Growth II mai rapid.

Fig. 6.2-7. Comparaţie 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 obţine arborele iniţial. În cazul în care MLFP-Growth II este folosit

pentru mai multe nivele conceptuale, arborele FP-Tree iniţial este creat o singură

dată.

6.2.2.2. Dezavantaje

Cu cât distanţa dintre cele două nivele conceptuale (k şi l) este mai mare, cu atât pot

exista mai multe informaţii lipsă, ceea ce forţează accesarea bazei de date. Cu cât avem

mai puţine informaţii 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 execuţie al algoritmului MLFP-Growth pentru acelaşi nivel conceptual

diferă în funcţie de distanţa dintre cele două nivele conceptuale.

Page 153: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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 arătat 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 Conferinţa SYNASC 2005, Timişoara,

[GGP+05a].

Algoritmul AFOPT [LLX+03] utilizează o abordare a creşterii tiparului şi foloseşte

o structură de arbore prefixat (prefix-tree) pentru a reprezenta baza de date condiţională. El

foloseşte 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 condiţionale

duce la obţinerea unor costuri de traversare minime iar utilizarea ordonării

crescătoare după frecvenţă ne conduce la construirea unui număr minim de baze

de date condiţionale, deoarece bazele condiţionale sunt de obicei reprezentate

printr-o singură ramură în structura AFOPT.

Aşa cum am arătat în paragraful 6.2.1., pentru a obţine o anumită informaţie situată

pe nivelul conceptual K, există două posibilităţi (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 informaţii obţinute anterior pe un nivel inferior l (l>k), atunci putem

folosi aceste informaţii pentru a obţine informaţiile dorite de pe nivelul k

În cazul algoritmilor de extragere a tiparelor frecvente, bazaţi pe abordarea

APRIORI (de exemplu algoritmul ML_T2L1), nu este indicat să folosim metoda parcurgerii

de sus în jos a arborilor, deoarece aceştia au nevoie de k+1 parcurgeri a bazei de date

pentru obţinerea unor informaţii 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 obţine aceste informaţii.

Page 154: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

154

6.3.1. Prezentarea algoritmului

Vom considera în continuare, o bază de date tranzacţională ale cărei tranzacţii sunt

prezentate în tabelul următor 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. Tranzacţiile bazei de date

Având în vedere faptul că metoda propusă are la bază algoritmul AFOPT,

traversarea bazei de date originale pentru a găsi articole frecvente sau nivele abstracte

frecvente se face în acelaşi mod ca şi în algoritmul original [LLX+03]. De asemenea,

ordonarea articolelor în ordinea crescătoare a frecvenţei lor de apariţie este aceeaşi.

În tabelul 6.2-2. sunt prezentate valorile factorului suport pentru articolele care apar

în aceste tranzacţii, următorul tabel, 6.3-3., prezentând sortarea acestora în ordine

crescătoare a frecvenţei de apariţie.

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

Page 155: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

155

După prima parcurgere a bazei de date se obţine ordonarea crescătoare a articolelor

după frecvenţa lor de apariţie, tabelul 6.3-3. Observăm ca în partea superioară a acestui

tabel, până 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 condiţională de articole frecvente. Mai întâi este

construită tabela antet, folosind doar acele articole (categorii) a căror suport depăşeşte

pragul suportului minim, şi care sunt sortate în ordinea crescătoare a frecvenţei de apariţie,

spre deosebire de sortarea în ordine descrescătoare folosită în algoritmul FP-Growth.

Baza de date condiţională a unui articol i include toate tranzacţiile care conţin

articolul i, iar articolele (itemii) care nu sunt frecvente şi cele care se găsesc înaintea lui i

sunt îndepărtate din fiecare tranzacţie. La stocarea ramurilor simple din arborele prefixat se

folosesc tablouri (array) pentru a salva spaţiu şi a micşora costurile de construcţie a

arborelui. Fiecare nod din arborele AFOPT conţine trei tipuri de informaţii: identificatorul

articolului (ID), numărul articolset-urilor corespunzătoare căii de la rădăcină până la acel

nod şi pointerii care indică fii nodului respectiv. Fiecare element din tablou păstrează

primele două informaţii. În continuare, vom nota p.item identificatorul nodului p din

arborele AFOPT.

Fig. 6.3-1. Arborele AFOPT

În aceşti doi primi paşi este numărat fiecare articol individual, iar informaţiile

complete despre baza de date tranzacţională este comprimată în structura

arborescentă AFOPT. Aceste operaţii sunt realizate cu costul a două parcurgeri

ale bazei de date.

Page 156: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

156

Din acest moment, procesul de generare a tiparelor frecvente este realizat

prin parcurgerea recursivă a structurii AFOPT fără a implica alte operaţii

costisitoare asupra bazei de date.

Metoda ne permite să obţinem informaţii de pe un anumit nivel conceptual k, atunci

când avem deja informaţiile de pe nivelul l, care este un nivel conceptual mai jos decât k.

Arborele AFOPT obţinut pentru nivelul l conţine deja aproape toate informaţiile necesare

construirii arborelui AFOPT necesar nivelului k. Singurele informaţii 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 legătură din tabela antet ne arată poziţia elementelor respective în

arbore.

Pentru a obţine structura arborescentă AFOPT a nivelului k se parcurg următorii

paşi:

Pasul 1. Crearea tabelei antet pentru nivelul k:

Arborele AFOPT al nivelului k are nevoie de o tabelă antet care este obţinută folosind

clasificarea informaţiile pe categorii şi subcategorii specifică bazelor de date multi-nivel.

Astfel, din tabela antet a nivelului l se poate obţine tabela antet parţială a nivelului k, care

va fi completată la pasul 2.

Tabela antet al nivelului l Tabela antet al nivelului k Articol Noduri de legătură

3.1.1

1.2.2

2.2.3

........

Articol Noduri de legătură

3.1

1.2

2.2

........

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

Page 157: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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

curăţare sau dacă articolele au fost doar ascunse în loc să fie şterse. Pentru fiecare articol

adăugat în tabela antet a nivelului l, trebuie să adăugam categoria corespunzătoare în tabela

antet a nodului k, şi să obţinem suportul acesteia. Dacă în nivelul k aceste articole

(categorii) nu îndeplinesc suportul minim ele sunt curăţate (îndepărtate); articolele

corespunzătoare din nivelul l sunt de asemenea curăţate, chiar dacă ele tocmai au fost

adăugate. 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 adăugate la pasul anterior trebuie să adăugăm din baza de date

tranzacţiile care conţin aceste articole (vezi tabelul 6.3-4). Aceasta presupune accesarea

bazei de date, dar numai pentru citirea tranzacţiilor necesare, spre deosebire de cele două

parcurgeri integrale necesare în cazul utilizării metodei 1.

Completarea arborelui AFOPT cu articolele lipsă este prezentată în figura 6.3-4.

Observăm ca articolele 5.1.3 şi 2.2.2 nu au fost adăugate (au fost adăugate şi apoi

îndepărtate) deoarece articolele (categoriile) corespunzătoare 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

Page 158: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

158

nu îndeplinesc suportul minim. De asemenea tranzacţiile care conţin aceste articole nu au

fost adăugate în arborele AFOPT.

TID Articole

T1 2.1.1 1.1.4 1.2.2 3.1.1 1.1.2

T2 Nu se citeşte T3 4.1.2

2.1.2 1.1.2 T4 Nu se citeşte T5 Nu se citeşte

Tabel 6.3-4. Tranzacţiile adăugate

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 conţine identificatorii articolelor

corespunzătoare 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 rădăcină în jos, vom avea:

- Suportul pentru categoria X (de exemplu) va fi suportul primului articol găsit

care face parte din categoria X. În cazul nostru concret, suportul pentru

categoria 2.1 va fi suportul primului articol găsit care face parte din categoria

2.1, adică 2.1.1

- Dacă ajungem la o ramificaţie (şi nu am găsit articolul căutat) vom aplica aceşti

paşi pe fiecare ramură adunând suporturile obţinute. În exemplul nostru, există

Page 159: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

159

o ramificaţie chiar sub rădăcină. Astfel, pentru categoria 2.1, suportul se va

obţine adunând suportul obţinut pe fiecare ramură:

• Pe prima ramură, întâlnim 2.1.1 cu suportul 1 ⇒ suportul parţial pentru

2.1 va fi 1

• Pe ramura a doua, întâlnim 2.1.2 cu suportul 1 ⇒ suportul parţial pentru

2.1 va fi 1

• Pe ramura a treia, întâlnim 2.1.2 cu suportul 1 ⇒ suportul parţial pentru

2.1 va fi 1

• Adunând suporturile parţiale obţinem suportul total 1+1+1 = 3

Reordonăm tabela antet a nivelului k şi obţinem (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 condiţional

şi vom extrage toate articolele de pe nivelul k care apar şi suportul corespunzător 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 adăugat 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

Page 160: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

160

Reordonăm antetul şi în final, se obţine arborele AFOPT al nivelului k (fig. 6.3-5).

Aplicând asupra acestuia algoritmul FP-Growth putem obţine 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 îndepărtat. În acest caz, paşii 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 îndepărtate articole, atunci vom putea obţine informaţii

de pe orice nivel conceptual fără a fi necesară o accesare a bazei de date. Acest

caz este util atunci când avem nevoie de informaţii de pe mai multe nivele

conceptual.

6.3.2. Studiu comparativ de performanţă

6.3.2.1. Avantaje

Prin traversarea nodurilor structurii AFOPT în adâncime, de sus în jos, fiecare nod

va fi vizitat exact o dată.

Numărul total de noduri vizitate în cazul algoritmului FP-Growth este egal cu

lungimea totală a ramurilor arborelui FP-Tree.

Numărul total de noduri vizitate în cazul algoritmului ML-AFOPT este egal

cu dimensiunea structurii AFOPT, care este mai mică decât lungimea totală a

ramurilor sale nfp. Aşadar, algoritmul ML-AFOPT necesită costuri mai mici de

traversare decât algoritmul FP-Growth.

Page 161: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

161

În cazul structurii FP-Tree articolele sunt sortate în ordine descrescătoare, aşa cum

am arătat, ceea ce favorizează distribuirea prefixată. Astfel, structura FP-Tree este mai

compactă decât structura AFOPT. Aplicarea algoritmului ML-AFOPT asupra structurii

AFOPT este aproximativ acelaşi lucru ca şi transformarea arborelui FP-Tree, deoarece sunt

extrase aceleaşi tipare frecvente (maximale), singura diferenţă fiind ordinea (inversă). Pe

de altă parte, aşa cum am arătat mai înainte, algoritmul ML-AFOPT necesită costuri de

traversare mai mici decât algoritmul FP-Growth.

Dacă este disponibilă informaţia 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 obţinute de algoritmul ML-AFOPT

Fig. 6.3-6. Timpii de execuţie ai algoritmului ML-AFOPT

Page 162: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

162

Studierea comparativă a acestor algoritmi a făcut subiectul lucrării [GGP+05a]

publicate la Conferinţa SYNASC 2005, Timişoara. Testările 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 interfaţa standard ODBC.

Am folosit o bază de date reală de 50 000 de intrări în 6 000 de tranzacţii.

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 condiţionale 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 condiţionale, 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ă decât

posibilitatea ca baza de date condiţională să fie reprezentată printr-o singură ramură.

Numărul de subarbori care constituie baza de date condiţională, în cazul cel mai

defavorabil, depinde exponenţial de numărul de articole precedente celui considerat.

Numărul de operaţii de reunire necesare este egal, în cazul cel mai defavorabil, cu numărul

de articole precedente celui considerat.

Page 163: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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 decât algoritmii FP-

Growth [HPY00] şi AFOPT [LLX+03], acesta din urmă dovedindu-se a fi mai rapid decât

algoritmii FP-Growth şi APRIORI [AS94]. Algoritmul propus a fost publicat la Conferinţa

SYNASC 2005, Timişoara, [GGP+05b].

Am arătat în capitolele anterioare că toţi algoritmii bazaţi pe extragerea tiparelor

frecvente sunt superiori celor care au la bază ideea algoritmului APRIORI, în special în

cazul bazelor de date mai dense.

Am văzut că una dintre particularităţile 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 condiţională, 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 crescătoare a frecvenţelor de apariţie a articolelor are ca efect minimizarea

atât a numărului total de baze condiţionale cât şi a costurilor de traversare a bazelor de date

individuale.

Structura AFOPT este o reprezentare compactă a bazei de date condiţionale. Ea

conţine informaţii complete pentru a putea extrage seturile frecvente de articole din baza

de date originală. Dimensiunea structurii AFOPT este limitată de numărul total de articole

frecvente care apar în baza de date, fiind de obicei mult mai mică decât acesta.

O dată structura AFOPT construită, procesul de extragere va continua asupra

acesteia. Ca şi în cazul algoritmului FP-Growth, care foloseşte structura arborescentă FP-

Tree, nu este necesară parcurgerea din nou a bazei de date originale. Cu toate acestea,

există destul de multe diferenţe î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 obţinut prin adaptarea algoritmului

AFOPT [LLX+03] la baze de date multi-nivel, păstrându-se toate trăsăturile de bază ale

algoritmului original AFOPT.

Page 164: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

164

În practică există cazuri în care trebuie să se ţină cont, de multe ori, de informaţia

dimensiune. Astfel, apare problema de adaptare a algoritmilor existenţi de extragere a

tiparelor frecvente (AFOPT, FP-Growth) astfel încât aceştia să ţină cont şi de informaţia

despre dimensiune la fel ca şi de informaţia despre articole (itemi) aşa 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 potenţiale tipare interesante la nivele de abstractizare joase, algoritmul

ADA-FP foloseşte 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, atât pentru articolele normale cât şi pentru cele speciale. Cele două

tipuri de prag suport sunt pragul de trecere (item passage threshold) şi pragul de afişare

(item printing threshold). De obicei, cel de-al doilea este mai mare decât primul.

Un articol este tratat ca un 1-itemset frecvent dacă numărul său de apariţii depăşeşte

pragul de afişare. Pe de altă parte, cât timp suportul său depăşeşte pragul de trecere, item-ul

va putea avea şansa să rămână în baza de date pentru a genera un set frecvent de 2 itemi (2-

itemsets). Aceasta se bazează pe observaţia că tiparele de dimensiune mare au de obicei

asociate praguri suport mai mici decât sub-tiparele lor.

Exemplu: Pentru a ilustra cele afirmate mai sus, considerăm 1 000 de tranzacţii în care

ciocolata apare de 50 de ori, laptele apare de 500 de ori, diamantul apare 1 dată. Articolele

au fost împărţite în două categorii: normale şi speciale. Cele speciale pot fi de asemenea de

două tipuri: rare şi frecvente. În acest caz, atât laptele cât ş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 cât şi un prag suport de afişare.

Folosirea unui prag suport uniform poate duce la pierderea unor informaţii importante.

Astfel, este important orice set se articole care conţine diamant, chiar dacă s-a vândut unul

singur (având în vedere preţul acestuia). Pe de altă parte, sunt mai puţin importante seturile

de articole care conţin lapte din care s-au vândut câteva sute de litri, acestea ar fi

importante dacă s-ar vinde în cantităţi 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, pâine) şi

prag suport minim pentru articolele normale (ciocolata).

Page 165: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

165

Algoritmul ADA-FP ajută utilizatorii, prin utilizarea acestor tipuri variate de

praguri suport în tranzacţiile bazei de date, îmbunătăţind 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 găsi articolele

frecvente sau nivelele de abstractizare şi pentru a le sorta în ordine crescătoare a

apariţiei lor. Apoi, baza de date originală este parcursă a doua oară pentru a

construi structura arborescentă AFOPT care reprezintă baza de date condiţională

a articolelor frecvente.

Baza de date condiţională a unui articol i include toate tranzacţiile care conţin acest

articol i, articolele care nu sunt frecvente şi cele care se găsesc înaintea acestora fiind

îndepărtate din fiecare tranzacţie.

Pentru a stoca ramurile simple ale arborelui AFOPT sunt utilizate structuri de date

tablou (array) deoarece acestea economisesc spaţiu de memorie şi micşorează costurile de

construcţie.

Fiecare nod din arborele AFOPT conţine trei tipuri de informaţii:

• Identificatorul articolului (ID)

• Numărul de articolset-uri corespunzătoare căii de la rădăcină la acel nod

• Pointeri spre fii nodului respectiv

După primii doi paşi prezentaţi mai sus se obţine un contor (care va conţine

numărul de apariţii) pentru fiecare articol în parte iar informaţiile complete despre

tranzacţiile 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ă funcţii care realizează verificarea îndeplinirii de

către fiecare set de articole a condiţiei de suport minim (fig. 6.4-1.) şi a pragului suport de

afişare (fig. 6.4-2.).

Folosirea structurii AFOPT, care este un arbore prefixat, presupune sortarea în

ordine crescătoare a frecvenţei de apariţie a articolelor. Acest arbore este traversat în

adâncime de sus în jos. Fiecare nod este vizitat o singură dată. În cazul algoritmului FP-

Growth, numărul total de noduri vizitate este egal cu lungimea totală a ramurilor arborelui.

Page 166: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

166

În cazul algoritmului AFOPT, numărul total de noduri vizitate este egal cu dimensiunea

structurii AFOPT, care este mai mică decât lungimea totală a celor nFP ramuri. Aşadar,

algoritmul AFOPT are nevoie de costuri mai mici de traversare decât algoritmul FP-

Growth.

Fig. 6.4-1. Funcţia Meets_Min_Support

Fig. 6.4-2. Funcţia 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 obţine o

bază de date condiţională formată din mai mulţi subarbori. Numărul de subarbori care

constituie baza de date condiţională creşte exponenţial, în cazul cel mai defavorabil, cu

numărul articolelor care se găsesc înaintea celui considerat. În acelaşi timp, numărul de

operaţii de unificare necesar, este egal, în cazul cel mai defavorabil, cu numărul de articole

care se găsesc înaintea celui considerat. Aşadar, pentru a micşora costurile de traversare

este indicat să efectuăm cât mai multe operaţii 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]) }

Page 167: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

167

6.4.2. Studiu comparativ de performanţă

Evoluţia timpilor de execuţie ai algoritmului ML-ADA-AFOPT în funcţie 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 intrări în 6 000 de tranzacţii. Implementarea algoritmilor s-a

realizat în limbajul Java şi au fost compilaţi folosind platforma Eclipse.

În primul test comparativ dintre algoritmii ML-AFOPT şi ML-ADA-AFOPT, a cărui

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 informaţii decât în mod normal ţinând

seama şi de pragurile de suport de trecere şi de afişare corespunzătoare 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.

Page 168: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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 obţinute 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 cărui rezultate sunt reprezentate în graficul din figura

6.4-5., s-au aplicat aceleaşi condiţii atât pentru algoritmul AFOPT cât şi pentru algoritmul

ML-ADA-AFOPT, considerându-se că există articole speciale comune frecvente care au

praguri suport de trecere şi de afişare (mai mari decât pragul suportul obişnuit).

Este nevoie de un suport mai mare decât în mod normal pentru ca aceste articole să

fie luate în considerare. Astfel, în final vor fi mai puţine elemente luate în considerare,

astfel încât algoritmul ML-ADA-AFOPT va fi executat mai rapid decât ML-AFOPT.

Page 169: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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 obţinute 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 următorul test, prezentat în graficul din figura 6.4-6., au fost comparaţi algoritmii

FP-Growth standard, ADA-FP şi ML-ADA-AFOPT. Aşa cum am arătat mai devreme,

algoritmul AFOPT clasic este mai rapid decât algoritmul FP-Growth. Aşadar, ca o

consecinţă, algoritmul ML-ADA-AFOPT (care are la bază algoritmii ADAPTIVE şi

AFOPT) este mai rapid decât ADA-FP (care are la bază algoritmii ADAPTIVE şi FP-

Growth). Acest lucru este adevărat chiar şi în cazul cel mai defavorabil în care algoritmul

AFOPT are de parcurs mai multe articole iar algoritmul FP-Growth foloseşte pragul

standard al suportului.

Page 170: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

170

Fig. 6.4-6. Studiu comparativ - algoritmii ML-ADA-AFOPT vs. MLFP-Growth

şi ML-ADA-FP

În final, am comparat toţi algoritmii propuşi în aceleaşi condiţii, pentru un factor

suport cuprins în intervalul 0.1% – 0.9%, utilizând în cadrul bazei da date reale 5 000 de

tranzacţii, pentru a evidenţia evoluţia timpilor de execuţie 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 obţinute pentru 5 000 de tranzacţii

Page 171: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

171

Fig. 6.4-7. Studiu comparativ pentru 5 000 de tranzacţii

În cazul în care baza de date are 10 000 de tranzacţii timpii de execuţie obţinuţi

sunt prezentaţi î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 obţinute pentru 10 000 de tranzacţii

Page 172: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

172

Fig. 6.4-8. Studiu comparative pentru 10 000 de tranzacţii

Se poate observa clar din cele două teste, pentru 5 000 şi 10 000 de tanzacţii, că

algoritmul ML-AFOPT a obţinut cei mai buni timpi de execuţie în ambele cazuri, urmat

îndeaproape de algoritmul ML-ADA-AFOPT. Următorii în clasamentul timpilor de

execuţie se situează cele două variante ale algoritmului MLFP-Growth I şi II. Cei mai lenţi

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 orientaţi pe un singur

nivel. În acest caz, pot fi descoperite doar asocierile puternice dintre articole. Din acest

motiv au fost extinşi aceşti algoritmi pentru a realiza extragerea tiparelor frecvente multi-

nivel.

Algoritmul ML-AFOPT traversează aceste structuri arborescente în adâncime de

sus în jos, iar articolele din arborii prefixaţi sunt sortaţi în ordine crescătoare a frecvenţei

Page 173: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

173

lor de apariţie. Combinarea acestor două metode este mult mai eficientă decât combinând

traversarea arborelui de jos în sus şi sortarea articolelor în ordine descrescătoare, folosită

de algoritmul FP-Growth.

Pe de altă parte, oricare din aceste două combinaţii este mult mai eficientă decât

celelalte combinaţii posibile: traversarea de sus în jos şi sortarea descrescătoare şi

traversarea de jos în sus şi sortarea în ordine crescătoare.

Page 174: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

174

7. CONCLUZII ŞI CONTRIBUŢII 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 cunoştinţe din bazele de date (KDD), punând accent mai mult pe una

din subramurile acesteia şi anume extragerea regulilor de asociere, aducând şi câteva

contribuţii personale la dezvoltarea acesteia.

Descoperirea regulilor de asociere din bazele de date de dimensiuni mari este o

problemă complexă deoarece spaţiul de căutare creşte exponenţial cu numărul de atribute

din baza de date şi cu obiectele bazei de date. Extragerea regulilor de asociere a fost iniţial

generată de analizarea coşului de cumpărături. Mai târziu ea a fost aplicată în multe alte

domenii cum ar fi: afaceri, inginerie, medicină sau finanţe. Mai mult decât atât, 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

ieşiri sau suport de decizii. Descoperirea regulilor de asociere are ca scop descoperirea

unui set de atribute comune care aparţin unui număr 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. Găsirea tuturor seturilor de articole (itemsets) care au suportul mai mare

decât suportul minim.

4. Folosirea seturilor de articole pentru generarea regulilor dorite.

De obicei, aşa cum am mai arătat, bazele de date implicate în astfel de aplicaţii sunt

de dimensiuni foarte mari. Din acest motiv, este foarte importantă utilizarea unor algoritmi

cât mai rapizi pentru aceste aplicaţii. Cele mai recente abordări sunt de natură iterativă

necesitând scanări multiple ale bazei de date, ceea ce este foarte costisitor. Etapa cea mai

costisitoare din punct de vedere computaţional este descoperirea tiparelor sau seturilor de

articole (itemset-uri) frecvente datorită cantităţii 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 cunoştinţe de pe mai

Page 175: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

175

multe nivele conceptuale. Pe parcursul studierii procesului de extragere de cunoştinţe

(KD), cercetătorii au încercat prin diverse metode să îndepărteze dintre regulile generate pe

cele neinteresante, propunând câteva măsuri de cuantificare a utilităţii sau gradului de

interes pe care regula respectivă o prezintă.

Acest fapt, a condus cercetările spre căutarea 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ă flexibilităţii concentrării atenţiei asupra seturilor diferite de date şi a

posibilităţii aplicării unor praguri diferite ale suportului sau confidenţei pentru nivele

diferite.

Metodele de extragere de cunoştinţe 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 vârf în descoperirea regulilor de

asociere, contribuţiile aduse în această lucrare sunt metode originale de

îmbunătăţire a performanţelor unor algoritmi de extragere a regulilor de asociere

din bazele de date multi-nivel.

7.1. Contribuţii personale

Contribuţiile personale aduse de această lucrare la domeniul abordat sunt

următoarele:

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

consideraţi noi şi performanţi 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].

Page 176: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

176

Propunerea unei noi metode de parcurgere în adâncime a arborelui

tiparelor frecvente pe care am denumit-o algoritmul DFMLA1, spre

deosebire de parcurgerea în lăţime a algoritmului ML_T2L1 propusă de

Han [HF95], care reduce substanţial numărul de verificări efectuate,

mărind astfel eficienţa sa, algoritm prezentat la Conferinţa microCAD

2005, Miskolcs, [PGG+05a].

Optimizarea algoritmului DFMLA1 prin introducerea unei filtrări a

tranzacţiilor ce trebuie testate ceea ce poate reduce foarte mult, în

cazurile favorabile, numărul acestora. Această variantă optimizată a

algoritmului am numit-o DFMLA2, şi a fost de asemenea prezentată la

Conferinţa microCAD 2005, Miskolcs, [PGG+05a].

Studierea performanţelor şi compararea algoritmilor propuşi în

această lucrare DFMLA1 şi DFMLA2, atât cu algoritmul original

ML_T2L1 propus de Han J. [HF95] cât şi între ei, studiu prezentat la

Conferinţa CSCS’15, Bucureşti, 2005 [PGG+05b].

Propunerea unei metode noi de aplicare a unuia dintre cei mai

promiţători 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 informaţii de pe un anumit nivel

conceptual al bazei de date, după construirea arborelui FP-Tree, am

propus două metode de a obţine aceste informaţii:

o Aplicând direct algoritmul FP-Growth direct pe nivelul de pe care

dorim informaţii din baza de date multi-nivel

o Stocând informaţiile de pe cel mai jos nivel conceptual în

memorie sau pe disc, putem folosi aceste informaţii pentru a

construi arborele FP-Tree al nivelului care ne interesează fără a

face o nouă citire a bazei de date. Am numit acest algoritm

MLFP-Growth, fiind prezentat la Conferinţa CSCS’15, Bucureşti,

2005 [GGP+05c] .

Page 177: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

177

Studierea performanţelor şi compararea algoritmului propus în

această lucrare MLFP-Growth, cu algoritmul original FP-Growth propus

de Han în [HPY00], studiu prezentat la Conferinţa CSCS’15, Bucureşti,

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 obţinerea informaţilor de pe un anumit nivel conceptual al bazei

de date folosind informaţiile stocate pe un nivel inferior al acesteia.

Acest algoritm a fost publicat la Conferinţa SYNASC 2005, Timişoara,

[GGP+05a].

Studierea performanţelor algoritmului propus în această lucrare ML-

AFOPT, studiu ce a fost prezentat la Conferinţa SYNASC 2005,

Timişoara, [GGP+05a], şi compararea utilizării structurii arborescente

FP-Tree cu structura arborescentă AFOPT care s-a dovedit a fi mai

eficientă, studiu comparativ în curs de publicare la Conferinţa 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 Conferinţa SYNASC 2005, Timişoara,

[GGP+05b].

Studierea performanţelor algoritmului propus în această lucrare ML-

ADA-AFOPT, şi compararea acestuia cu algoritmii originali de la care s-

a plecat cât şi cu algoritmul propus anterior ML-AFOPT, studiu care a

fost prezentat la Conferinţa SYNASC 2005, Timişoara, [GGP+05b].

Studierea şi compararea performanţelor tuturor algoritmilor propuşi în

această lucrare

Page 178: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

178

7.2. Concluzii finale

Extragerea de date (Data Mining - DM) denumită şi descoperirea de cunoştinţe din

bazele de date (Knowledge Discovery in Databases – KDD) reprezintă un proces însemnat

de extragere a informaţiilor implicite, previzibile şi potenţial folositoare din bazele de date

[PSF91].

La ora actuală există mai multe metode de Data Mining, aşa cum au fost prezentate

în capitolul doi al acestei lucrări. Alegerea metodei potrivite unei aplicaţii se face ţinând

cont de date, de situaţie ş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

vânzărilor cu amănuntul, dar ele pot fi aplicate cu acelaşi succes şi în serviciile de

marketing (analiza coşului de cumpărături) pentru determinarea caracteristicilor comune

ale clienţilor. Industria serviciilor financiare utilizează, de asemenea, frecvent extragerea

de reguli de asociere. Analiştii folosesc aceste tehnici pentru a analiza cantităţi masive de

date pentru a construi afaceri şi modele de risc pentru dezvoltarea strategiilor de investiţii.

Multe companii din sectorul financiar au testat aceste tehnici care au produs rezultate

pozitive în analiza conturilor clienţilor şi la identificarea serviciilor financiare pe care

aceştia le solicită împreună.

Datorită importanţei şi aplicabilităţii pe care o au, aşa cum am arătat, î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ă

contribuţie a colectivelor de cercetători din domeniul descoperirii de cunoştinţe din baze de

date şi este cercetată în continuare şi la ora actuală.

În capitolul trei sunt prezentaţi 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 performanţele

acestor algoritmi pe diferite baze de date cu un număr de tranzacţii începând de la 10 000

până la 520 00 de tranzacţii şi pentru factori suport de la 5% până la 40%, am realizat un

studiu comparativ al acestora.

Page 179: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

179

Astfel, din experimentele pe care le-am făcut, a rezultat că algoritmul APRIORI are

performanţă slabă când se execută pe baze de date mari care conţin un număr mare de

articole pe tranzacţie. Această performanţă scăzută 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ă decât algoritmii PARTITIONING şi SAMPLING, dar

pentru un factor suport mic (< 5%) performanţa algoritmului APRIORI scade dramatic.

Algoritmii SAMPLING şi PARTITIONING reduc numărul de scanări ale bazei de

date la două şi au o performanţă mai bună decât APRIORI atunci când sunt aplicaţi pe baze

de date mari şi pentru un factor suport mic (< 5%).

Algoritmul PARTITIONING reduce numărul de scanări ale bazei de date la două şi

împarte baza de date în partiţii astfel ca fiecare partiţie să poată fi încărcată în memorie. În

timpul celei de-a doua scanări, numai acele itemset-uri care sunt frecvente în cel puţin una

din partiţii sunt folosite ca şi candidate şi sunt numărate pentru a determina dacă ele sunt

frecvente în întreaga baza de date, reducând astfel setul de candidaţi, iar timpul de execuţie

fiind mai mic decât a algoritmului APRIORI.

În concluzie, algoritmul APRIORI are o performanţă mai bună decât ceilalţi

doi pentru baze de date mari şi cu un factor suport mare. În cazul în care sunt

aplicaţi pe baze de date mari cu un factor suport mic, algoritmii SAMPLING şi

PARTITIONING sunt mai performanţi decât algoritmul APRIORI.

În cazul algoritmilor iterativi, de tip APRIORI, sunt obţinute performanţe mai bune

prin reducerea seturilor de candidaţi. Cu toate acestea, în cazurile în care se obţine un

număr mare de tipare frecvente, de lungime mare, sau sunt aplicate praguri de suport

minim foarte joase, aceşti algoritmi prezintă două dezavantaje majore: primul este

manipularea unui număr mare de seturi de candidaţi iar al doilea este generat de a doua

parcurgere a bazei de date şi verificarea unui număr mare de candidaţi prin potrivire de

tipare, mai ales în cazul extragerii tiparelor lungi.

Metodele de extragere a tiparelor frecvente, prezentate în capitolul patru al lucrării,

bazate pe o structură de arbore denumită arbore de tipare frecvente, FP-Tree, reduc doar la

două numărul de parcurgeri a bazelor de date, micşorând astfel semnificativ timpul de

descoperire şi extragere a acestora.

Page 180: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

180

În ultimii ani au fost dezvoltaţi mai mulţi algoritmi destul de eficienţi pentru

extragerea tiparelor frecvente. Au fost propuse două abordări: generarea şi testarea

candidaţilor şi creşterea tiparelor. Ultima s-a dovedit a fi mult superioară celei dintâi, mai

ales în cazul seturilor de date mari. Ambele abordări au fost implementate într-o manieră

iterativă.

În ciuda tuturor eforturilor depuse de cercetători în ultimii ani, algoritmii care

generează şi testează candidaţi au două dezavantaje:

� Toate necesită generarea unui număr forte mare de itemset-uri candidat,

multe dintre ele dovedindu-se a fi puţin frecvente după parcurgerea bazei de

date

� Toate necesită parcurgerea bazei de date de mai multe ori, în cel mai

defavorabil caz, numărul de parcurgeri a bazei de date fiind egal cu

lungimea maximă a tiparelor frecvente.

Abordarea prin creşterea tiparelor încearcă să evite aceste două dezavantaje

construind o bază de date condiţională pentru tiparele frecvente. Algoritmii propuşi pentru

aceasta diferă în principal prin maniera prin care este reprezentată baza condiţională. Han

[HPY00] foloseşte o structură de date compactă FP-Tree pentru a reprezenta baza de date

condiţională care este o combinaţie a structurilor arbore prefixat (prefix-tree) şi legătura

nodurilor (node-link). Pe de altă parte, Liu [LLX+03] utilizează o altă structură compactă

de date AFOPT pentru reprezentarea bazei de date condiţionale.

Aşa cum am arătat anterior, fiind dată o bază de date condiţională, aceasta poate fi

reprezentată folosind una din cele două structuri şi câte o strategie de parcurgere aplicată

fiecăreia din acestea, utilizate de algoritmii FP-Growth şi AFOPT:

1. structura FP-Tree [HPY00], în care articolele sunt sortate în ordine

descrescătoare a frecvenţei lor de apariţie, şi strategia de parcurgere a arborelui de

jos în sus

2. structura AFOPT [LLX+03], în care articolele sunt sortate în ordine crescătoare a

frecvenţei lor de apariţie, şi strategia de parcurgere a arborelui de sus în jos

Folosirea structurii AFOPT pentru a reprezenta bazele de date condiţionale duce la

obţinerea unor costuri de traversare minime iar utilizarea ordonării crescătoare după

frecvenţă ne conduce la construirea unui număr minim de baze de date condiţionale.

Costurile de traversare ale algoritmului FP-Tree sunt întotdeauna mai mari decât în cazul

Page 181: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

181

algoritmului AFOPT. Numărul total de noduri vizitate de algoritmul FP-Growth este egal

cu lungimea totală a ramurilor arborelui prefixat. Numărul total de noduri vizitate de

algoritmul AFOPT este egal cu dimensiunea structurii AFOPT, care este mai mică decât

lungimea totală a ramurilor arborelui prefixat. Aşadar, algoritmul AFOPT are nevoie de un

număr mai mic de traversări decât algoritmul FP-Growth.

Numărul total de baze de date condiţionale construite pe parcursul procesului de

extragere a tiparelor frecvente depinde ordinea în care sunt sortaţi item-ii şi în care este

explorat spaţiul de căutare. Ordonarea crescătoare după frecvenţă minimizează numărul

total de baze condiţionale. În cazul structurii FP-Tree item-ii sunt sortaţi în ordine

descrescătoare a frecvenţei lor, motiv pentru care arborele trebuie traversat de jos în sus, de

la nodurile frunze spre rădăcină.

În cazul în care baza de date condiţională a unui itemset poate fi reprezentată printr-

o singură ramură, se pot enumera toate tiparele frecvente conţinute direct în acesta şi nu

este necesară construirea unei noi baze condiţionale chiar dacă itemset-ul respectiv are mai

mult de o extensie frecventă. Structura AFOPT, aşadar, ne ajută să reducem numărul de

baze de date condiţionale construite, deoarece bazele condiţionale sunt de obicei

reprezentate printr-o singură ramură în structura AFOPT.

Pe parcursul studierii procesului de extragere de cunoştinţe (KD), cercetătorii au

încercat prin diverse metode să îndepărteze dintre regulile generate pe cele neinteresante,

propunând câteva măsuri de cuantificare a utilităţii sau gradului de interes pe care regula

respectivă o prezintă [HF95].

Acest fapt, a condus cercetările spre căutarea 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ă flexibilităţii concentrării atenţiei asupra seturilor diferite de date şi a

posibilităţii aplicării unor praguri diferite ale suportului sau confidenţei pentru nivele

diferite.

Metodele de extragere de cunoştinţe 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

Page 182: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

182

Pe baza conceptului de ierarhie şi a câtorva 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 lucrării sunt prezentaţi principalii algoritmi de extragere

a regulilor de asociere multi-nivel existenţi la ora actuală, şi anume algoritmul ADAPTIVE

APRIORI [SA95b], algoritmul ML-T2L1 [HF95] şi algoritmul ADA-FP [Mao01].

La fel ca şi în cazul celorlalţi algoritmi prezentaţi am realizat un studiu comparativ

al performanţelor acestor algoritmi.

Astfel, putem spune că algoritmul ADA-FP este mult mai eficient decât algoritmul

ML_T2L1 deoarece are nevoie doar de două parcurgeri a bazei de date, în timp ce numărul

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 adâncime, de sus în jos, până 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 alcătuite din articole de pe acelaşi nivel abstract.

Pentru a creşte flexibilitatea, în procesul de extragere a tiparelor frecvente, s-au

introdus constrângeri diferite pentru suport. Astfel, algoritmul ADA-FP este mult mai

eficient decât 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

scăzut, fie la apariţia unor încurcături la generarea setului de itemi. Aceasta a determinat

folosirea unor constrângeri pentru suport la generarea item-ilor.

Acesta este punctul de pornire atât la algoritmul ADAPTIVE APRIORI cât ş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ă decât prima. O altă deosebire dintre cei doi

algoritmi este definirea şi implementarea constrângerilor pentru suport.

Page 183: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

183

În algoritmul ADAPTIVE APRIORI se înlocuieşte suportul minim clasic cu o

funcţie notată Pminsup, care defineşte un superset de itemset-uri frecvente definite prin

minsup generat prin metoda APRIORI. Algoritmul ADA-FP foloseşte pragul de trecere al

suportului pentru a îndepărta 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 creşte 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 găsirea cunoştinţelor dorite în bazele de

date. În primul rând, datorită faptului că, de obicei, seturile de date cu o valoare importantă

a suportului nu se găsesc la nivele conceptuale foarte joase, deoarece tiparele de la nivelele

conceptuale joase tind să fie împrăştiate şi greu au un suport important. În al doilea rând,

regularităţile vor fi găsite mai degrabă la nivele conceptuale înalte, aşadar pot fi deja bine

cunoscute.

Pornind de la algoritmii propuşi de Han [HF95], [HF99], Strikant [SA95], Rantzau

[Ran97], [WHH00] şi Rajkumar [RKS03] pentru extragerea regulilor de asociere multi-

nivel, am încercat îmbunătăţirea şi optimizarea acestora propunând în capitolul şase al

acestei lucrări 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], îmbunătăţind performanţele acestuia,

prin reducerea numărului de tranzacţii verificate inutil la generarea regulilor de

asociere între articole, înlăturând astfel risipa de memorie generată de algoritmul

APRIORI.

Aceşti algoritmi (DFMLA1 şi DFMLA2) nu caută să găsească reguli între toate

subset-urile k-itemset ci doar între derivaţiile unui subset din acele reguli care au fost găsite

anterior interesante (importante). Ei parcurg arborele ierarhiei conceptuale în adâncime şi

dacă găsesc 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 următorul nivel conceptual.

Pentru a sublinia acest avantaj, am comparat DFMLA1 cu algoritmul APRIORI

multi-nivel (ML_T2L1). Algoritmul lui Han foloseşte funcţia de generare a candidaţilor din

algoritmul APRIORI la fiecare nivel conceptual. Când termină de examinat un nivel în

Page 184: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

184

întregime, trece la următorul nivel, parcurgând aşadar arborele ierarhiei conceptuale în

lăţime. Cu cât baza de date are mai multe nivele conceptuale, algoritmul poate deveni mai

rapid o dată cu eliminarea unor categorii.

Bazele de date simplu-nivel conţin de cele mai multe ori informaţii prea complexe

care sunt uneori mai puţin interesante pentru extragerea regulilor de asociere. Aceste

informaţii se găsesc de obicei pe ultimul nivel al bazelor de date multi-nivel, unde se

găsesc informaţii mai concrete, mai specifice decât la nivelele superioare. Pentru a obţine

acest gen de informaţii 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) reducând în acest mod setul de candidaţi şi numărul

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 candidaţi.

Aplicarea algoritmului FP-Growth direct la ultimul nivel, pentru a obţine informaţii de pe

acesta, este o metodă mai rapidă decât aplicarea algoritmului APRIORI multi-nivel.

Unul din principalii factori care micşorează viteza de lucru a algoritmului de creare

a arborelui FP-Tree este numărul de accesări a bazei de date. Metoda II propusă în

această lucrare (MLFP-Growth II) utilizează informaţii anterioare pentru a evita

accesarea bazei de date lucrând în special cu memoria calculatorului, ceea ce

este mult mai rapid. Baza de date este eventual accesată doar pentru a obţine

informaţiile care lipsesc (vezi pasul 2 şi 3 al metodei).

Am studiat comparativ cele două metode pe o bază de date cu 50 000 de intrări,

750 de articole codificate pe 10 nivele conceptuale, 5 000 de tranzacţii, fiecare având cel

mult 10 articole. În ambele cazuri factorul suport a variat de la 0.1% până la 0.9%. Cu cât

distanţa dintre nivelele conceptuale k şi l este mai mare, cu atât pot exista mai multe

informaţii lipsă, ceea ce forţează accesarea bazei de date pentru obţinerea lor. În cazul în

care nu există informaţii lipsă între cele două nivele conceptuale, singurul motiv de

accesare a bazei de date rămâne pentru verificarea factorului suport (vezi pasul 2 al

algoritmului) iar uneori nici aceasta nu este necesar.

Performanţa MLFP-Growth II faţă de MLFP-Growth I depinde de

asemenea de pragul suportului minim. Dacă acesta este foarte scăzut, vom avea

foarte puţine informaţii îndepărtate la cel mai jos nivel conceptual, ceea ce face

MLFP-Growth II mai rapid.

Page 185: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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 arătat 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 obţinut prin adaptarea algoritmului AFOPT [LLX+03] la baze de

date multi-nivel, păstrându-se toate trăsăturile de bază ale algoritmului original AFOPT.

Algoritmul AFOPT utilizează o abordare a creşterii tiparului şi foloseşte o structură

de arbore prefixat (prefix-tree) pentru a reprezenta baza de date condiţională. El foloseşte 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 condiţionale duce la

obţinerea unor costuri de traversare minime iar utilizarea ordonării crescătoare după

frecvenţă ne conduce la construirea unui număr minim de baze de date condiţionale,

deoarece bazele condiţionale 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 bazaţi pe abordarea APRIORI (de

exemplu algoritmul ML_T2L1) deoarece aceştia au nevoie de k+1 parcurgeri a bazei de

date pentru obţinerea unor informaţii 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 obţine aceste informaţii.

Prin traversarea nodurilor structurii AFOPT în adâncime, de sus în jos, fiecare nod

va fi vizitat exact o dată.

Numărul total de noduri vizitate în cazul algoritmului FP-Growth este egal

cu lungimea totală a ramurilor arborelui FP-Tree. Numărul total de noduri vizitate

în cazul algoritmului ML-AFOPT este egal cu dimensiunea structurii AFOPT, care

este mai mică decât lungimea totală a ramurilor sale nfp. Aşadar, algoritmul ML-

AFOPT necesită costuri mai mici de traversare decât algoritmul FP-Growth.

Am văzut că una dintre particularităţile 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 condiţională ş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 crescătoare a frecvenţelor de apariţie a articolelor are ca

Page 186: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

186

efect minimizarea atât a numărului total de baze condiţionale cât şi a costurilor de

traversare a bazelor de date individuale.

Structura AFOPT este o reprezentare compactă a bazei de date condiţionale. Ea

conţine informaţii complete pentru a putea extrage seturile frecvente de articole din baza

de date originală. Dimensiunea structurii AFOPT este limitată de numărul total de articole

frecvente care apar în baza de date, fiind de obicei mult mai mică decât acesta.

O dată structura AFOPT construită, procesul de extragere va continua asupra

acesteia. Ca şi în cazul algoritmului FP-Growth, care foloseşte structura arborescentă FP-

Tree, nu este necesară parcurgerea din nou a bazei de date originale. Cu toate acestea,

există destul de multe diferenţe î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 potenţiale tipare interesante la nivele de abstractizare joase, am propus în

continuare un algoritm care foloseşte 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 crescătoare a apariţiei lor. Apoi, baza de date originală este parcursă a doua

oară pentru a construi structura arborescentă AFOPT care reprezintă baza de date

condiţională a articolelor frecvente.

Ca o consecinţă, algoritmul ML-ADA-AFOPT (care are la bază algoritmii

ADAPTIVE şi AFOPT) este mai rapid decât ADA-FP (care are la bază algoritmii

ADAPTIVE şi FP-Growth). Acest lucru este adevărat chiar şi în cazul cel mai

defavorabil în care algoritmul AFOPT are de parcurs mai multe articole iar

algoritmul FP-Growth foloseşte pragul standard al suportului.

În concluzie, se poate spune că descoperirea de cunoştinţe şi în cadrul acesteia

descoperirea regulilor de asociere, iar mai nou descoperirea regulilor de asociere multi-

nivel, rămâne în continuare un domeniu de cercetare care prezintă un real interes pentru

cercetătorii din ziua de azi. În contextul în care cantitatea de date acumulate devine din ce

în ce mai mare, iar nevoia de informaţie şi cunoştinţe necesare unui suport decizional de

bună calitate şi util în timp creşte, cercetările din domeniul abordat pot să ducă la

îmbunătăţiri semnificative în acest sens.

Page 187: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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.

Page 188: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

188

[Bay98] Bayardo, R.J. Jr., “Efficiently mining long patterns from databases”,

Proceedings of the 1998 ACM SIGMOD Conference, ACM Press, pp.

85–93, 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”,

Page 189: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

189

Proceedings of 4th Int. Symp. On Large Spatial Databases (SSD’95),

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 1st Int. Conf. on Knowledge Discovery and Data Mining

(KDD’95), 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] Győrödi C., Győrödi R., Bogan-Marta A., Pater M., ”The distributed

algorithms in mining associations rules”, Revista Academiei Române

„FUZZY SYSTEMS & A.I.” Reports & Letters Vol. 10, 2004

[GGP+05a] Győrödi R., Győrödi C., Pater M., Boc O., David Z., “AFOPT Algorithm

for multi-level databases”, SYNASC’05, The 7th International

Symposium on Symbolic and Numeric Algorithms for Scientific

Computing, September 25 - 29, Timisoara, Romania , 2005

[GGP+05b] Győrödi C., Győrödi R., Pater M., Boc O., David Z., “Adaptive AFOPT

Algorithm”, SYNASC’05, The 7th International Symposium on Symbolic

and Numeric Algorithms for Scientific Computing, September 25 - 29,

Timisoara, Romania , 2005

Page 190: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

190

[GGP+05c] Győrödi R., Győrödi C., Pater M., Boc O., David Z., “FP-Growth

algorithm for multi-level databases”, CSCS-15 The 15th International

Conference on Control Systems and Computer Science, Bucuresti, Mai

2005

[GGP03] Győrödi R., Győrödi C., Pater M., “Aplicarea tehnicilor de Data Mining

într-un sistem de gestiune a unei firme de distribuţie”, ALETHEIA 14,

Revistă de ştiinţă şi dialog interdisciplinar, ISBN 973-8032-31-8, ISSN

973-8032-31-8, Oradea, Septembrie, 2003

[GHGP02] Győrödi C., Holban S., Győrödi R., Pater M., “Mining Knowledge in

Relational Databases”, CONTI’2002, The 5th International Conference on

Technical Informatics, Timişoara, Romania, Transactions on Automatic

Control and Computer Science, Scientific Bulletin of „Politehnica”

University of Timişoara, Vol 47(61) nr. 2, October 18-19th 2002

[GPG02] Győrödi C., Pater M., Győrödi R., “Overview of Knowledge Discovery

and Data Mining in Databases”, Proceedings of Arad, Sesiunea Jubiliară

de Comunicări Ştiinţifice, Arad, Romania, November 28-30, 2002

[Gyo03] Győrödi C., “Contribuţii la dezvoltarea sistemelor de descoperire a

cunoştinţelor”, teză de doctorat, Timişoara, 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, 2nd 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

Page 191: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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):58–64, 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

Page 192: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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, 249–274, 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.

Page 193: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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., Győrödi R., Győrödi 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., Győrödi R., Győrödi C., Boc O., David Z., “Multi-level Apriori

Algorithms”, CSCS-15 15th International Conference on Control Systems

and Computer Science, Bucuresti, 2005

[PGG05] Pater M., Győrödi R., Győrödi C., “Comparison study of leading data

mining tools”, Proceedings of EMES ‘05, May 26-28, Oradea, 2005

Page 194: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

194

[PGGB06] Pater M., Győrödi C., Győrödi 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, Băile 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, Timişoara,

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

Page 195: TEZĂ DE DOCTORAT - aspc.cs.upt.roaspc.cs.upt.ro/~calin/research/pater.pdf · universitatea „politehnica” timi Şoara facultatea de automatic Ă Şi calculatoare ing. alexandrina

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. 407–419, 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 432–444, September 1995.

[WHH00] Wang K., He Y. and Han J., “Mining frequent itemsets using support

constrains”, Proceedings of the 26th 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