Cuprins
- 1. Introducere in data mining 2
- 2. Despre identificarea sabloanelor frecvente 7
- 3. Descriere problemei 11
- 4. Baze de date ce contin tranzactii 14
- 5. Spatiul de cautare 16
- 6. Structuri de date 18
- 6.1 Hash-tree 18
- 6.2 Trie 19
- 7. Algoritmul Apriori 21
- 7.1 Itemset Mining 21
- 7.2 Identificarea regulilor de asociere 23
- 7.3 Optimizari 25
- 7.3.1 AprioriTid, AprioriHybrid 25
- 7.3.2 DHP 26
- 8. Algoritmul DIC (Dynamic Intemset Counting) 28
- 9. O comparatie intre algoritmii Eclat si FP-growth 34
- 9.1 Definirea problemei 34
- 9.2 Eclat vs. FP-growth 36
- 9.3 Eclat 37
- 9.4 FP-growth 38
- 9.5 Medic 42
- 10. Implementarea algoritmului Apriori 44
- 11. Implementarea algoritmului DIC 51
- 12. Implementarea algoritmului Eclat 56
- 13. Rularea aplicatiei 58
- 14. Fisier cu rezultate 59
- 15. Aspecte experimentale 62
- 16. Bibliografie 65
- Anexa A – Surse 66
Extras din proiect
Data mining poate produce rezultate remarcabile pentru aproape orice organizatie care colecteaza date de la proprii clienti, de la piete comerciale sau produse . Descoperind tipare ascunse si relatii intre date, data mining permite utilizatorilor sa obtina rezultate excelente din datele colectate in baze de date mari .
Pentru a descoperi sabloane ascunse in date, trebuie sa construim un model constand in variabile independente(ex: venit, casatorit/necasatorit) care pot fi folosite pentru a determina variabile dependente(ex: riscul creditului). A construi un model data mining inseamna a identifica variabile independente relevante si minimiza erorile predictive. Pentru a identifica un model care are cea mai mica eroare si care este cel mai bun predictor ar putea solicita construirea a sute de modele pentru a alege pe cel mai bun.
Din fericire, am atins un prag al dezvoltarii computationale, ca capacitatii de inmagazinare a informatiei si datelor si costuri care ne permit sa adunam si sa analizam cantitati insemnate de date.Cat timp probleme de date mining apar la birou sau la un simpla legatura client-server, multe probleme cer un produs data mining scalabil
Literal, scalabilitate inseamna ca un sistem cat creste, performanta se imbunatateste corespunzator. Pentru data mining , scalabilitatea inseamna ca folosind avantajul de a lucra in paralel unui sistem care manageriaza o baza de date si procesoarele aditionale, poti rezolva o clasa mare de probleme fara a fi nevoit sa schimbi mediul de jos de data mining. Se poate lucra cu mai multe date, construi mai multe modele si se poate imbunatati acuratetea lor prin simpla adaugare de procesoare aditionale. Ideal ar fi ca scalabilitatea sa fie liniara sau mai buna. De exemplu, daca se dubleaza numarul de procesoare intr-un sistem paralel , poti construi de 2 ori mai multe modele in acelasi timp sau acelasi numar de modele intr-un timp redus la jumatate. Data mining este un instrument si nu un magician. Nu va sta in baza de date sa vada ce se intampla si te va atentiona cand vede un tipar interesant. Nu elimina necesitatea de a-ti cunoaste afacerea, de a intelege datele sau metodele analitice. Data mining ajuta analistii prin indentificarea unor tipare si relatii intre date, dar nu iti spune valoarea tiparelor pentru organizatie. Pe de alta parte, tiparele descoperite de data mining trebuiesc verificate in realitate.
Primul si cel mai simplu pas in data mining este descrierea datelor – a rezuma calitatile ei statistice (cum ar fi medii si abateri standard), a le observa utilizand grafice si a cauta potentiale legaturi importante printre variabile (cum ar fi valori care apar des impreuna). Colectarea,studiul si selectia datele corecte prezinta o importanta cruciala.
Dar descrierea datelor nu poate sa genereze un plan de una singura. Trebuie construit un model predictiv bazat pe tiparele create pe baza rezultatelor cunoscute, apoi trebuie testat modelul rezultat in alte conditii decat datele initiale. Un bun model nu ar trebui sa fie niciodata confruntat cu realitatea (se stie ca o harta a drumurilor nu ofera o reprezantare perfecta a drumurilor respective), dar poate fi un ajutor important pentru a intelege afacerea respectiva.
Ultimul pas este sa verificam empiric acel model. De exemplu, dintr-o baza de date de clienti care au raspuns deja unei oferte, s-a construit un model care prezice ce categorii de clienti ar putea sa raspunda aceleiasi oferte. Dar putem fi siguri de aceasta predictie? Pentru aceasta, trimitem un e-mail unei portiuni a listei de clienti presupusa ca va raspunde ofertei si vedem care sunt raspunsurile.
In principiu , motivul alegerii scalabilitatii este de a fi capabil sa construiesti un model data mining bun cat mai repede cu putinta. Aceasta ofera 2 beneficii.
Primul , este de apreciat faptul de a putea desfasura si folosi un model cat mai repede cu putinta. In al doilea exemplu de mai jos, gasirea unui model bun va duce la cresterea platii finale inclusiv a notei de plata. Vanzatorul ce foloseste credit cardul nu doreste sa lase multe facturi sa treaca fara a folosi rezultatele data mining aspura datelor din credit carduri.
Al doilea , intoarcere de mai multe ori produce modele mai bune. Dupa cum vom vedea, cautarea in baze de date foarte mari si construirea de modele complexe solicita o baza hardware serioasa ca si pentru a o putea testa , valida si a extrage exemple. Daca analistul trebuie sa astepte ore sau nopti pentru un model pentru a putea lucra, atunci efortul lor o sa fie foarte mare comparativ cu cazul cand ar putea obtine modelul calificat in cateva minute. Timpul folosit pentru a astepta rezultate ar putea fi folosit pentru a gasi care model este cel mai bun si ofera solutia cea mai viabila.
Preview document
Conținut arhivă zip
- Identificarea Sabloanelor Frecvente.doc